# h323rtp.h

Go to the documentation of this file.

    00001 /*
    00002  * h323rtp.h
    00003  *
    00004  * H.323 RTP protocol handler
    00005  *
    00006  * Open H323 Library
    00007  *
    00008  * Copyright (c) 1998-2001 Equivalence Pty. Ltd.
    00009  *
    00010  * The contents of this file are subject to the Mozilla Public License
    00011  * Version 1.0 (the "License"); you may not use this file except in
    00012  * compliance with the License. You may obtain a copy of the License at
    00013  * http://www.mozilla.org/MPL/
    00014  *
    00015  * Software distributed under the License is distributed on an "AS IS"
    00016  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00017  * the License for the specific language governing rights and limitations
    00018  * under the License.
    00019  *
    00020  * The Original Code is Open H323 Library.
    00021  *
    00022  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
    00023  *
    00024  * Portions of this code were written with the assisance of funding from
    00025  * Vovida Networks, Inc. http://www.vovida.com.
    00026  *
    00027  * Contributor(s): ______________________________________.
    00028  *
    00029  * $Revision: 28351 $
    00030  * $Author: rjongbloed $
    00031  * $Date: 2012-09-13 19:58:35 -0500 (Thu, 13 Sep 2012) $
    00032  */
    00033
    00034 #ifndef OPAL_H323_H323RTP_H
    00035 #define OPAL_H323_H323RTP_H
    00036
    00037 #ifdef P_USE_PRAGMA
    00038 #pragma interface
    00039 #endif
    00040
    00041 #include <opal/buildopts.h>
    00042
    00043 #if OPAL_H323
    00044
    00045 #include <h323/channels.h>
    00046 #include <rtp/rtp_session.h>
    00047
    00048
    00049 class H225_RTPSession;
    00050
    00051 class H245_TransportAddress;
    00052 class H245_H2250LogicalChannelParameters;
    00053 class H245_H2250LogicalChannelAckParameters;
    00054 class H245_ArrayOf_GenericInformation;
    00055
    00056 class H323Connection;
    00057 class H323_RTPChannel;
    00058
    00059 class H245_TransportCapability;
    00060
    00061
    00063
    00066 class H323_RTPChannel : public H323_RealTimeChannel
    00067 {
    00068     PCLASSINFO(H323_RTPChannel, H323_RealTimeChannel);
    00069   public:
    00074     H323_RTPChannel(
    00075       H323Connection & connection,
    00076       const H323Capability & capability,
    00077       Directions direction,
    00078       OpalMediaSession & session
    00079     );
    00080
    00082     ~H323_RTPChannel();
    00084
    00091     virtual unsigned GetSessionID() const;
    00092
    00099     virtual bool SetSessionID(
    00100       unsigned sessionID
    00101     );
    00102
    00109     virtual PBoolean GetMediaTransportAddress(
    00110       OpalTransportAddress & data,
    00111       OpalTransportAddress & control
    00112     ) const;
    00114
    00119     virtual PBoolean OnSendingPDU(
    00120       H245_H2250LogicalChannelParameters & param
    00121     ) const;
    00122
    00125     virtual PBoolean OnSendingAltPDU(
    00126       H245_ArrayOf_GenericInformation & alternate
    00127     ) const;
    00128
    00132     virtual void OnSendOpenAck(
    00133       H245_H2250LogicalChannelAckParameters & param
    00134     ) const;
    00135
    00142     virtual PBoolean OnReceivedPDU(
    00143       const H245_H2250LogicalChannelParameters & param,
    00144       unsigned & errorCode
    00145     );
    00146
    00153     virtual PBoolean OnReceivedAckPDU(
    00154       const H245_H2250LogicalChannelAckParameters & param
    00155     );
    00156
    00159     virtual PBoolean OnReceivedAckAltPDU(
    00160       const H245_ArrayOf_GenericInformation & alternate
    00161     );
    00163
    00172     virtual void OnSendRasInfo(
    00173       H225_RTPSession & info
    00174     );
    00176
    00177 #if 0 // NOTE QOS?
    00178
    00182     virtual PBoolean WriteTransportCapPDU(
    00183        H245_TransportCapability & cap,
    00184        const H323_RTPChannel & channel
    00185        ) const;
    00186
    00189     virtual void ReadTransportCapPDU(
    00190     const H245_TransportCapability & cap,
    00191     H323_RTPChannel & channel
    00192         );
    00194 #endif
    00195
    00196   protected:
    00197     virtual bool ExtractTransport(
    00198       const H245_TransportAddress & pdu,
    00199       bool isDataPort,
    00200       unsigned & errorCode
    00201     );
    00202
    00203   protected:
    00204     OpalMediaSession & m_session;
    00205 };
    00206
    00207
    00208 #endif // OPAL_H323
    00209
    00210 #endif // OPAL_H323_H323RTP_H
    00211
    00212