OPAL  Version 3.14.3
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: 31184 $
30  * $Author: rjongbloed $
31  * $Date: 2014-01-14 14:27:25 +1100 (Tue, 14 Jan 2014) $
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_config.h>
42 
43 #if OPAL_H323
44 
45 #include <h323/channels.h>
46 #include <rtp/rtp_session.h>
47 
48 
49 class H225_RTPSession;
50 
51 class H245_TransportAddress;
52 class H245_H2250LogicalChannelParameters;
53 class H245_H2250LogicalChannelAckParameters;
54 class H245_ArrayOf_GenericInformation;
55 
56 class H323Connection;
57 class H323_RTPChannel;
58 
59 class H245_TransportCapability;
60 
61 
63 
67 {
69  public:
76  const H323Capability & capability,
77  Directions direction,
78  OpalMediaSession & session
79  );
80 
84 
91  virtual unsigned GetSessionID() const;
92 
99  virtual bool SetSessionID(
100  unsigned sessionID
101  );
102 
109  virtual PBoolean GetMediaTransportAddress(
110  OpalTransportAddress & data,
111  OpalTransportAddress & control
112  ) const;
114 
119  virtual PBoolean OnSendingPDU(
120  H245_H2250LogicalChannelParameters & param
121  ) const;
122 
125  virtual PBoolean OnSendingAltPDU(
126  H245_ArrayOf_GenericInformation & alternate
127  ) const;
128 
132  virtual void OnSendOpenAck(
133  H245_H2250LogicalChannelAckParameters & param
134  ) const;
135 
142  virtual PBoolean OnReceivedPDU(
143  const H245_H2250LogicalChannelParameters & param,
144  unsigned & errorCode
145  );
146 
153  virtual PBoolean OnReceivedAckPDU(
154  const H245_H2250LogicalChannelAckParameters & param
155  );
157 
166  virtual void OnSendRasInfo(
167  H225_RTPSession & info
168  );
170 
171 #if 0 // NOTE QOS?
172 
176  virtual PBoolean WriteTransportCapPDU(
177  H245_TransportCapability & cap,
178  const H323_RTPChannel & channel
179  ) const;
180 
183  virtual void ReadTransportCapPDU(
184  const H245_TransportCapability & cap,
185  H323_RTPChannel & channel
186  );
188 #endif
189 
190  protected:
191  virtual bool ExtractTransport(
192  const H245_TransportAddress & pdu,
193  bool isDataPort,
194  unsigned & errorCode
195  );
196 
197  protected:
199 };
200 
201 
202 #endif // OPAL_H323
203 
204 #endif // OPAL_H323_H323RTP_H
205 
206