OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

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
62 class H323_RTP_Session : public RTP_UserData
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:
142 H323_RTP_Session(
143 const H323Connection & connection
144 );
146
147 const H323Connection & connection;
148 };
149
150
153 class H323_RTP_UDP : public H323_RTP_Session
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
226 RTP_UDP & rtp;
227 };
228
229
230 #endif // OPAL_H323
231
232 #endif // OPAL_H323_H323RTP_H
233
234