# iax2medstrm.h

Go to the documentation of this file.

    00001 /*
    00002  *
    00003  * Inter Asterisk Exchange 2
    00004  *
    00005  * Open Phone Abstraction Library (OPAL)
    00006  *
    00007  * Extension of the Opal Media stream, where the media from the IAX2 side is
    00008  * linked to the OPAL
    00009  *
    00010  * Copyright (c) 2005 Indranet Technologies Ltd.
    00011  *
    00012  * The contents of this file are subject to the Mozilla Public License
    00013  * Version 1.0 (the "License"); you may not use this file except in
    00014  * compliance with the License. You may obtain a copy of the License at
    00015  * http://www.mozilla.org/MPL/
    00016  *
    00017  * Software distributed under the License is distributed on an "AS IS"
    00018  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00019  * the License for the specific language governing rights and limitations
    00020  * under the License.
    00021  *
    00022  * The Original Code is Open Phone Abstraction Library.
    00023  *
    00024  * The Initial Developer of the Original Code is Indranet Technologies Ltd.
    00025  *
    00026  * The author of this code is Derek J Smithies
    00027  *
    00028  * $Revision: 27154 $
    00029  * $Author: rjongbloed $
    00030  * $Date: 2012-03-07 19:21:33 -0600 (Wed, 07 Mar 2012) $
    00031  */
    00032
    00033 #ifndef OPAL_IAX2_MEDIASTRM_H
    00034 #define OPAL_IAX2_MEDIASTRM_H
    00035
    00036 #ifdef P_USE_PRAGMA
    00037 #pragma interface
    00038 #endif
    00039
    00040 #include <opal/buildopts.h>
    00041
    00042 #if OPAL_IAX2
    00043
    00044 #include <opal/mediafmt.h>
    00045 #include <iax2/iax2con.h>
    00046
    00047 class OpalMediaPatch;
    00048 class OpalLine;
    00049
    00050
    00054 class OpalIAX2MediaStream : public OpalMediaStream
    00055 {
    00056   PCLASSINFO(OpalIAX2MediaStream, OpalMediaStream);
    00062     OpalIAX2MediaStream(
    00063                    IAX2Connection &con,
    00064                    const OpalMediaFormat & mediaFormat,
    00065                    unsigned sessionID,
    00066                    PBoolean isSource
    00067                    );
    00070     ~OpalIAX2MediaStream();
    00072
    00073
    00074
    00075  public:
    00082     virtual PBoolean Open();
    00083
    00089     virtual PBoolean Start();
    00090
    00096     virtual PBoolean ReadPacket(
    00097       RTP_DataFrame & packet
    00098     );
    00099
    00103     virtual PBoolean WriteData(
    00104       const BYTE * data,
    00105       PINDEX length,
    00106       PINDEX & written
    00107     );
    00108
    00113     virtual PBoolean IsSynchronous() const;
    00114
    00116
    00117   protected:
    00118     virtual void InternalClose() { }
    00119
    00121     IAX2Connection & connection;
    00122
    00126     PBYTEArray pendingData;
    00127 };
    00128
    00129
    00130 #endif // OPAL_IAX2
    00131
    00132 #endif  // OPAL_IAX2_MEDIASTRM_H
    00133
    00134 /* The comment below is magic for those who use emacs to edit this file.
    00135  * With the comment below, the tab key does auto indent to 2 spaces.
    00136  *
    00137  * Local Variables:
    00138  * mode:c
    00139  * c-basic-offset:2
    00140  * End:
    00141  */