OPAL  Version 3.12.9
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: 28351 $
30  * $Author: rjongbloed $
31  * $Date: 2012-09-14 10:58:35 +1000 (Fri, 14 Sep 2012) $
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 <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  );
156 
159  virtual PBoolean OnReceivedAckAltPDU(
160  const H245_ArrayOf_GenericInformation & alternate
161  );
163 
172  virtual void OnSendRasInfo(
173  H225_RTPSession & info
174  );
176 
177 #if 0 // NOTE QOS?
178 
182  virtual PBoolean WriteTransportCapPDU(
183  H245_TransportCapability & cap,
184  const H323_RTPChannel & channel
185  ) const;
186 
189  virtual void ReadTransportCapPDU(
190  const H245_TransportCapability & cap,
191  H323_RTPChannel & channel
192  );
194 #endif
195 
196  protected:
197  virtual bool ExtractTransport(
198  const H245_TransportAddress & pdu,
199  bool isDataPort,
200  unsigned & errorCode
201  );
202 
203  protected:
205 };
206 
207 
208 #endif // OPAL_H323
209 
210 #endif // OPAL_H323_H323RTP_H
211 
212