# 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  *  $Log: specialprocessor.h,v $
    00028  *  Revision 1.4  2007/04/19 06:17:21  csoutheren
    00029  *  Fixes for precompiled headers with gcc
    00030  *
    00031  *  Revision 1.3  2007/01/17 03:48:13  dereksmithies
    00032  *  Tidy up comments, remove leaks, improve reporting of packet types.
    00033  *
    00034  *  Revision 1.2  2006/09/11 03:12:51  dereksmithies
    00035  *  Add logging and MPL license statements.
    00036  *
    00037  *
    00038  */
    00039
    00040 #ifndef SPECIALPROCESSOR_H
    00041 #define SPECIALPROCESSOR_H
    00042
    00043 #ifndef _PTLIB_H
    00044 #include <ptlib.h>
    00045 #endif
    00046
    00047 #include <opal/buildopts.h>
    00048
    00049 #include <opal/connection.h>
    00050
    00051 #include <iax2/processor.h>
    00052 #include <iax2/frame.h>
    00053 #include <iax2/iedata.h>
    00054 #include <iax2/remote.h>
    00055 #include <iax2/safestrings.h>
    00056 #include <iax2/sound.h>
    00057
    00062 class IAX2SpecialProcessor : public IAX2Processor
    00063 {
    00064   PCLASSINFO(IAX2SpecialProcessor, IAX2Processor);
    00065
    00066  public:
    00068   IAX2SpecialProcessor(IAX2EndPoint & ep);
    00069
    00071   virtual ~IAX2SpecialProcessor();
    00072
    00073  protected:
    00075   virtual void ProcessLists();
    00076
    00078   virtual void ProcessFullFrame(IAX2FullFrame & fullFrame);
    00079
    00081   virtual void ProcessNetworkFrame(IAX2MiniFrame * src);
    00082
    00084   virtual void PrintOn(ostream & strm) const;
    00085
    00087   virtual void OnNoResponseTimeout();
    00088
    00091   virtual PBoolean ProcessNetworkFrame(IAX2FullFrameProtocol * src);
    00092
    00094   void ProcessIaxCmdPoke(IAX2FullFrameProtocol * src);
    00095
    00102   virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *)
    00103   { return PFalse; }
    00104
    00105
    00106 };
    00107
    00108 #endif /*SPECIALPROCESSOR_H*/