IAX2SpecialProcessor Class Reference

`#include <specialprocessor.h>`

Inheritance diagram for IAX2SpecialProcessor:

## Public Member Functions

| IAX2SpecialProcessor (IAX2EndPoint &ep)
virtual | ~IAX2SpecialProcessor ()
Public Member Functions inherited from IAX2Processor
| IAX2Processor (IAX2EndPoint &ep)
virtual | ~IAX2Processor ()
IAX2SequenceNumbers & | GetSequenceInfo ()
IAX2Encryption & | GetEncryptionInfo ()
void | IncomingEthernetFrame (IAX2Frame *frame)
IAX2EndPoint & | GetEndPoint ()
void | SetCallToken (const PString &newToken)
PString | GetCallToken ()
IAX2Remote & | GetRemoteInfo ()
const PTimeInterval & | GetCallStartTick ()
void | Main ()
PBoolean | IsStatusQueryEthernetFrame (IAX2Frame *frame)
void | SetSpecialPackets (PBoolean newValue)
void | Terminate ()
void | Activate ()
void | ReportLists (PString &answer)

## Protected Member Functions

virtual void | ProcessLists ()
virtual void | ProcessFullFrame (IAX2FullFrame &fullFrame)
virtual void | ProcessNetworkFrame (IAX2MiniFrame *src)
virtual void | PrintOn (ostream &strm) const
virtual void | OnNoResponseTimeout ()
virtual PBoolean | ProcessNetworkFrame (IAX2FullFrameProtocol *src)
void | ProcessIaxCmdPoke (IAX2FullFrameProtocol *src)
virtual PBoolean | IncomingMessageOutOfOrder (IAX2FullFrame *)
Protected Member Functions inherited from IAX2Processor
void | StartNoResponseTimer (PINDEX msToWait=60000)
void | StopNoResponseTimer ()
void | CleanPendingLists ()
PBoolean | IsHandlingSpecialPackets ()
virtual void | ProcessIaxCmdLagRq (IAX2FullFrameProtocol *src)
virtual void | ProcessIaxCmdLagRp (IAX2FullFrameProtocol *src)
virtual void | ProcessIaxCmdVnak (IAX2FullFrameProtocol *src)
virtual void | ProcessIaxCmdPing (IAX2FullFrameProtocol *src)
virtual void | ProcessIaxCmdPong (IAX2FullFrameProtocol *src)
PBoolean | ProcessOneIncomingEthernetFrame ()
void | IncControlFramesSent ()
void | IncControlFramesRcvd ()
void | TransmitFrameToRemoteEndpoint (IAX2Frame *src)
void | TransmitFrameToRemoteEndpoint (IAX2FullFrame *src, IAX2WaitingForAck::ResponseToAck response)
void | TransmitFrameNow (IAX2Frame *src)
void | TransmitFrameToRemoteEndpoint (IAX2FullFrameProtocol *src)
PBoolean | Authenticate (IAX2FullFrameProtocol *reply, PString &password)
void | SendAckFrame (IAX2FullFrame *inReplyTo)
void | SendVnakFrame (IAX2FullFrame *inReplyTo)
void | SendUnsupportedFrame (IAX2FullFrame *inReplyTo)

## Additional Inherited Members

Protected Types inherited from IAX2Processor
enum | DefinedNoResponseTimePeriod { NoResponseTimePeriod = 5000 }
Protected Attributes inherited from IAX2Processor
IAX2EndPoint & | endpoint
PTimeInterval | callStartTick
IAX2Remote | remote
PTimer | noResponseTimer
IAX2WaitingForAck | nextTask
PSyncPoint | activate
PBoolean | endThread
IAX2Encryption | encryption
IAX2SequenceNumbers | sequence
IAX2ActiveFrameList | frameList
SafeString | callToken
PBoolean | specialPackets
PAtomicInteger | controlFramesSent
PAtomicInteger | controlFramesRcvd
IAX2IeData | ieData
DWORD | currentSoundTimeStamp

## Detailed Description

This is the special processor which is created to handle the weirdo iax2 packets that are sent outside of a particular call. Examples of weirdo packets are the ping/pong/lagrq/lagrp.

## Constructor & Destructor Documentation

IAX2SpecialProcessor::IAX2SpecialProcessor | ( | IAX2EndPoint & | ep | ) |

Construct this class

virtual IAX2SpecialProcessor::~IAX2SpecialProcessor | ( |  | ) |

virtual

Destructor

## Member Function Documentation

virtual PBoolean IAX2SpecialProcessor::IncomingMessageOutOfOrder | ( | IAX2FullFrame * |  | ) |

inline protected virtual

Test the sequence number of the incoming frame. This is only valid for handling a call. If the message is outof order, the supplied fullframe is deleted.

Returns
  false always, as the special packet handler never gets frame ordered correctly - there will always be skipped frames.

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::OnNoResponseTimeout | ( |  | ) |

protected virtual

Called when there is no response to a request

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::PrintOn | ( | ostream & | strm | ) | const

protected virtual

Print information about the class on to a stream

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::ProcessFullFrame | ( | IAX2FullFrame & | fullFrame | ) |

protected virtual

Processes a full frame

Implements IAX2Processor.

void IAX2SpecialProcessor::ProcessIaxCmdPoke | ( | IAX2FullFrameProtocol * | src | ) |

protected

Process a poke command

virtual void IAX2SpecialProcessor::ProcessLists | ( |  | ) |

protected virtual

Go through the three lists for incoming data (ethernet/sound/UI commands.

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::ProcessNetworkFrame | ( | IAX2MiniFrame * | src | ) |

protected virtual

Processes are mini frame

Implements IAX2Processor.

virtual PBoolean IAX2SpecialProcessor::ProcessNetworkFrame | ( | IAX2FullFrameProtocol * | src | ) |

protected virtual

Process an IAX2FullFrameProtocol. This special processor handles things relative to special needs of full frame protocols.

Reimplemented from IAX2Processor.

The documentation for this class was generated from the following file:

- specialprocessor.h