OPAL
Version 3.10.4
|
#include <frame.h>
Handle IAX specific protocol issues. Used for initiating a call, closing a call, registration, reject a call etc.. These are used to manipulate the session.
The data section contains information elements, or type Ie classes.
enum comtaining the possible subclass value for these IAX protocol control frames
IAX2FullFrameProtocol::IAX2FullFrameProtocol | ( | const IAX2Frame & | srcFrame | ) |
Construction from a supplied dataframe. In this case, this class is filled from an incoming data packet. Classes generated like this are used to handle received data.
IAX2FullFrameProtocol::IAX2FullFrameProtocol | ( | const IAX2FullFrame & | srcFrame | ) |
Construction from a supplied dataframe. In this case, this class is filled from an incoming data packet. Classes generated like this are used to handle received data.
IAX2FullFrameProtocol::IAX2FullFrameProtocol | ( | IAX2Processor * | processor, |
PINDEX | subClassValue, | ||
ConnectionRequired | needCon = IAX2FullFrame::callActive |
||
) |
Construction from a Connection class. Classes generated from this are then on sent to a remote endpoint.
processor | Iax Processor from which this frame originates |
subClassValue | IAX protocol command for remote end to process |
needCon | this frame is only sent if the Connection class exists |
IAX2FullFrameProtocol::IAX2FullFrameProtocol | ( | IAX2Processor * | processor, |
ProtocolSc | subClassValue, | ||
ConnectionRequired | needCon = IAX2FullFrame::callActive |
||
) |
Construction from an Connection class. Classes generated from this are then on sent to a remote endpoint.
processor | Iax Processor from which this frame originates |
subClassValue | IAX protocol command for remote end to process |
needCon | this frame is only sent if the Connection class exists |
IAX2FullFrameProtocol::IAX2FullFrameProtocol | ( | IAX2Processor * | processor, |
ProtocolSc | subClassValue, | ||
IAX2FullFrame * | inReplyTo, | ||
ConnectionRequired | needCon = IAX2FullFrame::callActive |
||
) |
Construction from a Connection class. Classes generated from this are then on sent to a remote endpoint.
We have received a IAX2FullFrameProtocol, and this constructor is used to create a reply. Use the iseqno and time stamp from the supplied frame to construct the reply
processor | Iax Processor from which this frame originates |
subClassValue | IAX protocol command for remote end to process |
inReplyTo | this message was sent in reply to this frame |
needCon | this frame is only sent if the Connection class exists |
virtual IAX2FullFrameProtocol::~IAX2FullFrameProtocol | ( | ) | [virtual] |
Destructor, which deletes all current Information Elements
void IAX2FullFrameProtocol::AppendIe | ( | IAX2Ie * | newElement | ) | [inline] |
Add a new Information Element (Ie) to the intenral list
References IAX2IeList::AppendIe(), and ieElements.
void IAX2FullFrameProtocol::CopyDataFromIeListTo | ( | IAX2IeData & | res | ) |
Transfer the data (stored in the IeList) and place it in into the IeData class. This is done when precessing a frame we have received from an external node, which has to be stored in the IeData class
PBoolean IAX2FullFrameProtocol::GetCallTokenIe | ( | IAX2IeCallToken & | callToken | ) |
Go through the list of IEs read in, and find the CallToken Ie, and return a copy of it to the caller. If found, return true.
virtual BYTE IAX2FullFrameProtocol::GetFullFrameType | ( | ) | [inline, virtual] |
Return the IAX2FullFrame type represented here (voice, protocol, session etc
Reimplemented from IAX2FullFrame.
References IAX2Frame::iax2ProtocolType.
IAX2Ie* IAX2FullFrameProtocol::GetIeAt | ( | PINDEX | i | ) | [inline] |
Return a pointer to the n'th Ie in the internal list. If it is not there, a NULL is returned
References IAX2IeList::GetIeAt(), and ieElements.
void IAX2FullFrameProtocol::GetRemoteCapability | ( | unsigned int & | capability, |
unsigned int & | preferred | ||
) |
Look through the list of IEs, and look for remote capabability and preferred codec
ProtocolSc IAX2FullFrameProtocol::GetSubClass | ( | ) | const [inline] |
Report the current value of the subClass variable
Reimplemented from IAX2FullFrame.
References IAX2FullFrame::subClass.
virtual PString IAX2FullFrameProtocol::GetSubClassName | ( | ) | const [virtual] |
Get text description of the subclass contents
Reimplemented from IAX2FullFrame.
static PString IAX2FullFrameProtocol::GetSubClassName | ( | PINDEX | t | ) | [static] |
Get text description of the subclass contents
virtual PBoolean IAX2FullFrameProtocol::InformationElementsPresent | ( | ) | [inline, virtual] |
Mark this frame as having (or not having) information elements
Reimplemented from IAX2FullFrame.
References ieElements, and IAX2IeList::IsEmpty().
virtual void IAX2FullFrameProtocol::PrintOn | ( | ostream & | strm | ) | const [virtual] |
Pretty print this frame data to the designated stream
Reimplemented from IAX2FullFrame.
PBoolean IAX2FullFrameProtocol::ReadInformationElements | ( | ) | [protected] |
Read the information elements from the incoming data array to generate a list of information element classes
Set internal variable to say that this frame does not need to be retransmitted
Write the contents of the Ie internal list to the frame data array. This is usually done in preparation to transmitting this frame
IAX2IeList IAX2FullFrameProtocol::ieElements [protected] |
A list of the IEs read from/(or written to) the data section of this frame,
Referenced by AppendIe(), GetIeAt(), and InformationElementsPresent().