OPAL  Version 3.10.10
h323rtp.h
Go to the documentation of this file.
1 /*
2  * h323rtp.h
3  *
4  * H.323 RTP protocol handler
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 1998-2001 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Portions of this code were written with the assisance of funding from
25  * Vovida Networks, Inc. http://www.vovida.com.
26  *
27  * Contributor(s): ______________________________________.
28  *
29  * $Revision: 21293 $
30  * $Author: rjongbloed $
31  * $Date: 2008-10-12 18:24:41 -0500 (Sun, 12 Oct 2008) $
32  */
33 
34 #ifndef OPAL_H323_H323RTP_H
35 #define OPAL_H323_H323RTP_H
36 
37 #ifdef P_USE_PRAGMA
38 #pragma interface
39 #endif
40 
41 #include <opal/buildopts.h>
42 
43 #if OPAL_H323
44 
45 #include <rtp/rtp.h>
46 
47 
48 class H225_RTPSession;
49 
50 class H245_TransportAddress;
51 class H245_H2250LogicalChannelParameters;
52 class H245_H2250LogicalChannelAckParameters;
53 
54 class H323Connection;
55 class H323_RTPChannel;
56 
57 
59 
63 {
64  PCLASSINFO(H323_RTP_Session, RTP_UserData);
65 
74  virtual void OnTxStatistics(
75  const RTP_Session & session
76  ) const;
77 
84  virtual void OnRxStatistics(
85  const RTP_Session & session
86  ) const;
88 
93  virtual PBoolean OnSendingPDU(
94  const H323_RTPChannel & channel,
95  H245_H2250LogicalChannelParameters & param
96  ) const = 0;
97 
101  virtual void OnSendingAckPDU(
102  const H323_RTPChannel & channel,
103  H245_H2250LogicalChannelAckParameters & param
104  ) const = 0;
105 
110  virtual PBoolean OnReceivedPDU(
111  H323_RTPChannel & channel,
112  const H245_H2250LogicalChannelParameters & param,
113  unsigned & errorCode
114  ) = 0;
115 
120  virtual PBoolean OnReceivedAckPDU(
121  H323_RTPChannel & channel,
122  const H245_H2250LogicalChannelAckParameters & param
123  ) = 0;
124 
131  virtual void OnSendRasInfo(
132  H225_RTPSession & info
133  ) = 0;
135 
136 
137  protected:
143  const H323Connection & connection
144  );
146 
148 };
149 
150 
154 {
155  PCLASSINFO(H323_RTP_UDP, H323_RTP_Session);
156 
157  public:
162  H323_RTP_UDP(
163  const H323Connection & connection,
164  RTP_UDP & rtp
165  );
167 
172  virtual PBoolean OnSendingPDU(
173  const H323_RTPChannel & channel,
174  H245_H2250LogicalChannelParameters & param
175  ) const;
176 
180  virtual void OnSendingAckPDU(
181  const H323_RTPChannel & channel,
182  H245_H2250LogicalChannelAckParameters & param
183  ) const;
184 
191  virtual PBoolean OnReceivedPDU(
192  H323_RTPChannel & channel,
193  const H245_H2250LogicalChannelParameters & param,
194  unsigned & errorCode
195  );
196 
203  virtual PBoolean OnReceivedAckPDU(
204  H323_RTPChannel & channel,
205  const H245_H2250LogicalChannelAckParameters & param
206  );
207 
214  virtual void OnSendRasInfo(
215  H225_RTPSession & info
216  );
218 
219  protected:
220  virtual PBoolean ExtractTransport(
221  const H245_TransportAddress & pdu,
222  PBoolean isDataPort,
223  unsigned & errorCode
224  );
225 
227 };
228 
229 
230 #endif // OPAL_H323
231 
232 #endif // OPAL_H323_H323RTP_H
233 
234 
virtual PBoolean OnSendingPDU(const H323_RTPChannel &channel, H245_H2250LogicalChannelParameters &param) const
RTP_UDP & rtp
Definition: h323rtp.h:226
virtual PBoolean ExtractTransport(const H245_TransportAddress &pdu, PBoolean isDataPort, unsigned &errorCode)
Definition: rtp.h:502
Definition: channels.h:570
const H323Connection & connection
Owner of the RTP session.
Definition: h323rtp.h:147
H323_RTP_Session(const H323Connection &connection)
virtual PBoolean OnReceivedAckPDU(H323_RTPChannel &channel, const H245_H2250LogicalChannelAckParameters &param)
Definition: h323rtp.h:153
virtual void OnSendingAckPDU(const H323_RTPChannel &channel, H245_H2250LogicalChannelAckParameters &param) const
Definition: h323con.h:130
Definition: rtp.h:444
virtual void OnSendRasInfo(H225_RTPSession &info)
Definition: h323rtp.h:62
virtual PBoolean OnReceivedPDU(H323_RTPChannel &channel, const H245_H2250LogicalChannelParameters &param, unsigned &errorCode)
H323_RTP_UDP(const H323Connection &connection, RTP_UDP &rtp)
Definition: rtp.h:1098