#include <remote.h>
Public Member Functions | |
| IAX2SequenceNumbers () | |
| virtual | ~IAX2SequenceNumbers () |
| void | ZeroAllValues () |
| PINDEX | InSeqNo () |
| PINDEX | OutSeqNo () |
| BOOL | IsSequenceNosZero () |
| void | SetInSeqNo (PINDEX newVal) |
| void | SetOutSeqNo (PINDEX newVal) |
| void | SetInOutSeqNo (PINDEX inVal, PINDEX outVal) |
| void | SetAckSequenceInfo (IAX2SequenceNumbers &other) |
| BOOL | operator!= (IAX2SequenceNumbers &other) |
| BOOL | operator== (IAX2SequenceNumbers &other) |
| void | MassageSequenceForSending (IAX2FullFrame &src) |
| void | WrapAroundFrameSequence (IAX2SequenceNumbers &src) |
| BOOL | IncomingMessageIsOk (IAX2FullFrame &src) |
| void | CopyContents (IAX2SequenceNumbers &src) |
| PString | AsString () const |
| virtual void | PrintOn (ostream &strm) const |
| BOOL | IsFirstReply () |
| void | AddWrapAroundValue (PINDEX newOffset) |
Protected Types | |
| enum | sequenceDefines { minSpacing = 3 } |
Protected Attributes | |
| PINDEX | inSeqNo |
| PINDEX | outSeqNo |
| PMutex | mutex |
| PINDEX | lastSentTimeStamp |
| IAX2PacketIdList | receivedLog |
enum IAX2SequenceNumbers::sequenceDefines [protected] |
| IAX2SequenceNumbers::IAX2SequenceNumbers | ( | ) | [inline] |
Constructor, which sets the in and out sequence numbers to zero
| virtual IAX2SequenceNumbers::~IAX2SequenceNumbers | ( | ) | [inline, virtual] |
Destructor, which is provided as this class contains virtual methods
| void IAX2SequenceNumbers::ZeroAllValues | ( | ) |
Initialise to Zero values
| PINDEX IAX2SequenceNumbers::InSeqNo | ( | ) |
Read the incoming sequence number
| PINDEX IAX2SequenceNumbers::OutSeqNo | ( | ) |
Read the outgoing sequence number
| BOOL IAX2SequenceNumbers::IsSequenceNosZero | ( | ) |
Report true if the frame has inSeqNo and outSeqNo of zero, indicating if it is a "New" packet.
| void IAX2SequenceNumbers::SetInSeqNo | ( | PINDEX | newVal | ) |
Assign new value to the in (or expected) seq number
| void IAX2SequenceNumbers::SetOutSeqNo | ( | PINDEX | newVal | ) |
Assign a new value to the sequence number used for outgoing frames
| void IAX2SequenceNumbers::SetInOutSeqNo | ( | PINDEX | inVal, | |
| PINDEX | outVal | |||
| ) |
Assign a new value to the seq.in and seq.out, which is used prior to sending a frame
| void IAX2SequenceNumbers::SetAckSequenceInfo | ( | IAX2SequenceNumbers & | other | ) |
Assign the sequence nos as appropropriate for when we are sending a sequence set in a ack frame
| BOOL IAX2SequenceNumbers::operator!= | ( | IAX2SequenceNumbers & | other | ) |
Comparison operator - tests if sequence numbers are different
| BOOL IAX2SequenceNumbers::operator== | ( | IAX2SequenceNumbers & | other | ) |
Comparison operator - tests if sequence numbers are equal
| void IAX2SequenceNumbers::MassageSequenceForSending | ( | IAX2FullFrame & | src | ) |
Increment this sequences outSeqNo, and assign the results to the source arg
| void IAX2SequenceNumbers::WrapAroundFrameSequence | ( | IAX2SequenceNumbers & | src | ) |
Take the incoming frame, and increment seq nos by some multiple of 256 to bring them into line with the current values. Use the wrapAound member variable to do this.
| BOOL IAX2SequenceNumbers::IncomingMessageIsOk | ( | IAX2FullFrame & | src | ) |
We have received a message from the remote node. Check sequence numbers are ok. If ok reply TRUE
| void IAX2SequenceNumbers::CopyContents | ( | IAX2SequenceNumbers & | src | ) |
Copy the sequence info from the source argument to this class
| PString IAX2SequenceNumbers::AsString | ( | ) | const |
Report the contents as a string
| virtual void IAX2SequenceNumbers::PrintOn | ( | ostream & | strm | ) | const [virtual] |
Pretty print in and out sequence numbers to the designated stream
| BOOL IAX2SequenceNumbers::IsFirstReply | ( | ) | [inline] |
Report TRUE if this sequnece info is the very first packet received from a remote node, where we have initiated the call
| void IAX2SequenceNumbers::AddWrapAroundValue | ( | PINDEX | newOffset | ) |
Add an offset to the inSeqNo and outSeqNo variables
PINDEX IAX2SequenceNumbers::inSeqNo [protected] |
Packet number (next incoming expected)
PINDEX IAX2SequenceNumbers::outSeqNo [protected] |
Packet number (outgoing)
PMutex IAX2SequenceNumbers::mutex [protected] |
Mutex to protect access to this structrue while doing seqno changes
PINDEX IAX2SequenceNumbers::lastSentTimeStamp [protected] |
Last sent time stamp - ensure 3 ms gap between time stamps.
IAX2PacketIdList IAX2SequenceNumbers::receivedLog [protected] |
Dictionary of timestamp and OutSeqNo for frames received by this iax device
1.5.1