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/connection.h> 00048 00049 #include <iax2/processor.h> 00050 #include <iax2/frame.h> 00051 #include <iax2/iedata.h> 00052 #include <iax2/remote.h> 00053 #include <iax2/safestrings.h> 00054 #include <iax2/sound.h> 00055 00060 class IAX2SpecialProcessor : public IAX2Processor 00061 { 00062 PCLASSINFO(IAX2SpecialProcessor, IAX2Processor); 00063 00064 public: 00066 IAX2SpecialProcessor(IAX2EndPoint & ep); 00067 00069 virtual ~IAX2SpecialProcessor(); 00070 00071 protected: 00073 virtual void ProcessLists(); 00074 00076 virtual void ProcessFullFrame(IAX2FullFrame & fullFrame); 00077 00079 virtual void ProcessNetworkFrame(IAX2MiniFrame * src); 00080 00082 virtual void PrintOn(ostream & strm) const; 00083 00085 virtual void OnNoResponseTimeout(); 00086 00089 virtual PBoolean ProcessNetworkFrame(IAX2FullFrameProtocol * src); 00090 00092 void ProcessIaxCmdPoke(IAX2FullFrameProtocol * src); 00093 00100 virtual PBoolean IncomingMessageOutOfOrder(IAX2FullFrame *) 00101 { return PFalse; } 00102 00103 00104 }; 00105 00106 #endif /*SPECIALPROCESSOR_H*/