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: 21283 $
00028  * $Author: rjongbloed $
00029  * $Date: 2008-10-11 07:10:58 +0000 (Sat, 11 Oct 2008) $
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 PFalse; }
00098 
00099 
00100 };
00101 
00102 
00103 #endif // OPAL_IAX2
00104 
00105 #endif // OPAL_IAX2_SPECIALPROCESSOR_H

Generated on Mon Feb 23 02:01:39 2009 for OPAL by  doxygen 1.5.1