00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
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