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: 21293 $
00030  * $Author: rjongbloed $
00031  * $Date: 2008-10-12 18:24:41 -0500 (Sun, 12 Oct 2008) $
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 <rtp/rtp.h>
00046 
00047 
00048 class H225_RTPSession;
00049 
00050 class H245_TransportAddress;
00051 class H245_H2250LogicalChannelParameters;
00052 class H245_H2250LogicalChannelAckParameters;
00053 
00054 class H323Connection;
00055 class H323_RTPChannel;
00056 
00057 
00059 
00062 class H323_RTP_Session : public RTP_UserData
00063 {
00064   PCLASSINFO(H323_RTP_Session, RTP_UserData);
00065 
00074     virtual void OnTxStatistics(
00075       const RTP_Session & session   
00076     ) const;
00077 
00084     virtual void OnRxStatistics(
00085       const RTP_Session & session   
00086     ) const;
00088 
00093     virtual PBoolean OnSendingPDU(
00094       const H323_RTPChannel & channel,            
00095       H245_H2250LogicalChannelParameters & param  
00096     ) const = 0;
00097 
00101     virtual void OnSendingAckPDU(
00102       const H323_RTPChannel & channel,              
00103       H245_H2250LogicalChannelAckParameters & param 
00104     ) const = 0;
00105 
00110     virtual PBoolean OnReceivedPDU(
00111       H323_RTPChannel & channel,                  
00112       const H245_H2250LogicalChannelParameters & param, 
00113       unsigned & errorCode                              
00114     ) = 0;
00115 
00120     virtual PBoolean OnReceivedAckPDU(
00121       H323_RTPChannel & channel,                  
00122       const H245_H2250LogicalChannelAckParameters & param 
00123     ) = 0;
00124 
00131     virtual void OnSendRasInfo(
00132       H225_RTPSession & info  
00133     ) = 0;
00135 
00136 
00137   protected:
00142     H323_RTP_Session(
00143       const H323Connection & connection  
00144     );
00146 
00147     const H323Connection & connection; 
00148 };
00149 
00150 
00153 class H323_RTP_UDP : public H323_RTP_Session
00154 {
00155   PCLASSINFO(H323_RTP_UDP, H323_RTP_Session);
00156 
00157   public:
00162     H323_RTP_UDP(
00163       const H323Connection & connection, 
00164       RTP_UDP & rtp                      
00165     );
00167 
00172     virtual PBoolean OnSendingPDU(
00173       const H323_RTPChannel & channel,            
00174       H245_H2250LogicalChannelParameters & param  
00175     ) const;
00176 
00180     virtual void OnSendingAckPDU(
00181       const H323_RTPChannel & channel,              
00182       H245_H2250LogicalChannelAckParameters & param 
00183     ) const;
00184 
00191     virtual PBoolean OnReceivedPDU(
00192       H323_RTPChannel & channel,                  
00193       const H245_H2250LogicalChannelParameters & param, 
00194       unsigned & errorCode                              
00195     );
00196 
00203     virtual PBoolean OnReceivedAckPDU(
00204       H323_RTPChannel & channel,                  
00205       const H245_H2250LogicalChannelAckParameters & param 
00206     );
00207 
00214     virtual void OnSendRasInfo(
00215       H225_RTPSession & info  
00216     );
00218 
00219   protected:
00220     virtual PBoolean ExtractTransport(
00221       const H245_TransportAddress & pdu,
00222       PBoolean isDataPort,
00223       unsigned & errorCode
00224     );
00225 
00226     RTP_UDP & rtp;
00227 };
00228 
00229 
00230 #endif // OPAL_H323
00231 
00232 #endif // OPAL_H323_H323RTP_H
00233 
00234 

Generated on Mon Feb 21 20:19:20 2011 for OPAL by  doxygen 1.4.7