OPAL  Version 3.18.8
IAX2SpecialProcessor Class Reference

#include <specialprocessor.h>

Inheritance diagram for IAX2SpecialProcessor:
Collaboration diagram for IAX2SpecialProcessor:

Public Member Functions

 IAX2SpecialProcessor (IAX2EndPoint &ep)
 
virtual ~IAX2SpecialProcessor ()
 
- Public Member Functions inherited from IAX2Processor
 IAX2Processor (IAX2EndPoint &ep)
 
virtual ~IAX2Processor ()
 
IAX2SequenceNumbersGetSequenceInfo ()
 
IAX2EncryptionGetEncryptionInfo ()
 
void IncomingEthernetFrame (IAX2Frame *frame)
 
IAX2EndPointGetEndPoint ()
 
void SetCallToken (const PString &newToken)
 
PString GetCallToken ()
 
IAX2RemoteGetRemoteInfo ()
 
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
IAX2EndPointendpoint
 
PTimeInterval callStartTick
 
IAX2Remote remote
 
PTimer noResponseTimer
 
IAX2WaitingForAck nextTask
 
PSyncPoint activate
 
PBoolean endThread
 
IAX2Encryption encryption
 
IAX2SequenceNumbers sequence
 
IAX2ActiveFrameList frameList
 
SafeString callToken
 
PBoolean specialPackets
 
atomic< uint32_t > controlFramesSent
 
atomic< uint32_t > 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 )
inlineprotectedvirtual

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 ( )
protectedvirtual

Called when there is no response to a request

Implements IAX2Processor.

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

Print information about the class on to a stream

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::ProcessFullFrame ( IAX2FullFrame fullFrame)
protectedvirtual

Processes a full frame

Implements IAX2Processor.

void IAX2SpecialProcessor::ProcessIaxCmdPoke ( IAX2FullFrameProtocol src)
protected

Process a poke command

virtual void IAX2SpecialProcessor::ProcessLists ( )
protectedvirtual

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

Implements IAX2Processor.

virtual void IAX2SpecialProcessor::ProcessNetworkFrame ( IAX2MiniFrame src)
protectedvirtual

Processes are mini frame

Implements IAX2Processor.

virtual PBoolean IAX2SpecialProcessor::ProcessNetworkFrame ( IAX2FullFrameProtocol src)
protectedvirtual

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: