# specialprocessor.h

Go to the documentation of this file.

    00001 /*
    00002  * Inter Asterisk Exchange 2
    00003  *
    00004  * The entity which receives all manages weirdo iax2 packets that are
    00005  * sent outside of a regular call.
    00006  *
    00007  * Open Phone Abstraction Library (OPAL)
    00008  *
    00009  * Copyright (c) 2006 Stephen Cook
    00010  *
    00011  * The contents of this file are subject to the Mozilla Public License
    00012  * Version 1.0 (the "License"); you may not use this file except in
    00013  * compliance with the License. You may obtain a copy of the License at
    00014  * http://www.mozilla.org/MPL/
    00015  *
    00016  * Software distributed under the License is distributed on an "AS IS"
    00017  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00018  * the License for the specific language governing rights and limitations
    00019  * under the License.
    00020  *
    00021  * The Original Code is Open Phone Abstraction Library.
    00022  *
    00023  * The Initial Developer of the Original Code is Indranet Technologies Ltd
    00024  *
    00025  * The author of this code is Stephen Cook
    00026  *
    00027  * $Revision: 24178 $
    00028  * $Author: rjongbloed $
    00029  * $Date: 2010-04-05 19:10:56 -0500 (Mon, 05 Apr 2010) $
    00030  */
    00031
    00032 #ifndef OPAL_IAX2_SPECIALPROCESSOR_H
    00033 #define OPAL_IAX2_SPECIALPROCESSOR_H
    00034
    00035 #ifndef _PTLIB_H
    00036 #include <ptlib.h>
    00037 #endif
    00038
    00039 #include <opal/buildopts.h>
    00040
    00041 #if OPAL_IAX2
    00042
    00043 #include <opal/connection.h>
    00044
    00045 #include <iax2/processor.h>
    00046 #include <iax2/frame.h>
    00047 #include <iax2/iedata.h>
    00048 #include <iax2/remote.h>
    00049 #include <iax2/safestrings.h>
    00050 #include <iax2/sound.h>
    00051
    00056 class IAX2SpecialProcessor : public IAX2Processor
    00057 {
    00058   PCLASSINFO(IAX2SpecialProcessor, IAX2Processor);
    00059
    00060  public:
    00062   IAX2SpecialProcessor(IAX2EndPoint & ep);
    00063
    00065   virtual ~IAX2SpecialProcessor();
    00066
    00067  protected:
    00069   virtual void ProcessLists();
    00070
    00072   virtual void ProcessFullFrame(IAX2FullFrame & fullFrame);
    00073
    00075   virtual void ProcessNetworkFrame(IAX2MiniFrame * src);
    00076
    00078   virtual void PrintOn(ostream & strm) const;
    00079
    00081   virtual void OnNoResponseTimeout();
    00082
    00085   virtual PBoolean ProcessNetworkFrame(IAX2FullFrameProtocol * src);
    00086
    00088   void ProcessIaxCmdPoke(IAX2FullFrameProtocol * src);
    00089
    00096   virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *)
    00097   { return false; }
    00098
    00099
    00100 };
    00101
    00102
    00103 #endif // OPAL_IAX2
    00104
    00105 #endif // OPAL_IAX2_SPECIALPROCESSOR_H