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*/

Generated on Mon Sep 22 12:24:54 2008 for OPAL by  doxygen 1.5.1