32 #ifndef OPAL_IAX2_FRAME_H 33 #define OPAL_IAX2_FRAME_H 46 #include <ptlib/sockets.h> 70 class IAX2Transmitter;
142 virtual void PrintOn(ostream & strm)
const;
145 static DWORD
CalcTimeStamp(
const PTimeInterval & callStartTick);
339 virtual void PrintOn(ostream & strm)
const;
349 void AlterTimeStamp(PINDEX newValue);
389 PBoolean IsPingFrame();
392 PBoolean IsNewFrame();
395 PBoolean IsLagRqFrame();
398 PBoolean IsLagRpFrame();
401 PBoolean IsPongFrame();
404 PBoolean IsAuthReqFrame();
407 PBoolean IsVnakFrame();
410 PBoolean IsRegReqFrame();
413 PBoolean IsRegAuthFrame();
416 PBoolean IsRegAckFrame();
419 PBoolean IsRegRelFrame();
422 PBoolean IsRegRejFrame();
425 PBoolean IsCallTokenFrame();
429 PBoolean FrameIncrementsInSeqNo();
438 PBoolean IsHangupFrame();
452 PString GetFullFrameName()
const;
456 {
return PString(
" subclass=") + PString(subClass); }
461 void MarkDeleteNow();
467 void MarkVnakSendNow();
489 void ModifyFrameHeaderSequenceNumbers(PINDEX inNo, PINDEX outNo);
495 void ModifyFrameTimeStamp(PINDEX newTimeStamp);
512 virtual void PrintOn(ostream & strm)
const;
539 void UnCompressSubClass(BYTE a);
542 int CompressSubClass();
545 void ClearListFlags();
558 void OnTransmissionTimeout(PTimer &, INT);
560 PDECLARE_NOTIFIER(PTimer,
IAX2FullFrame, OnTransmissionTimeout);
580 maxRetryTime = 010000,
630 PString subClassValue
635 virtual PString GetSubClassName()
const;
693 PINDEX usersTimeStamp = 0);
699 virtual PString GetSubClassName()
const;
704 {
return GetSubClassName((
unsigned int) testValue); }
708 static PString GetSubClassName(
unsigned int testValue);
713 static PString GetOpalNameOfCodec(PINDEX testValue);
717 {
return GetSubClassName((
unsigned short) testValue); }
721 static unsigned short OpalNameToIax2Value(
const PString opalName);
762 virtual PString GetSubClassName()
const;
806 callHoldRelease = 17,
836 virtual PString GetSubClassName()
const;
947 PINDEX subClassValue,
976 void SetRetransmissionRequired();
985 virtual PString GetSubClassName()
const;
988 static PString GetSubClassName(PINDEX t);
999 void WriteIeAsBinaryData();
1008 void GetRemoteCapability(
unsigned int & capability,
1009 unsigned int & preferred);
1016 virtual void PrintOn(ostream & strm)
const;
1026 PBoolean ReadInformationElements();
1053 const PString& textValue
1065 virtual PString GetSubClassName()
const;
1071 PString GetTextString()
const;
1098 virtual PString GetSubClassName()
const;
1125 virtual PString GetSubClassName()
const;
1151 virtual PString GetSubClassName()
const;
1161 #ifdef DOC_PLUS_PLUS //This makes emacs bracket matching code happy. 1175 void ReportList(PString & answer);
1184 PBoolean
Empty() {
return GetSize() == 0; }
1202 void GetResendFramesDeleteOldFrames(
IAX2FrameList & framesToSend);
1205 virtual PINDEX
GetSize() { PWaitAndSignal m(mutex);
return PAbstractList::GetSize(); }
1208 void MarkAllAsResent();
1234 #endif // OPAL_IAX2_FRAME_H PBoolean Read1Byte(BYTE &res)
virtual BYTE GetFullFrameType()
Definition: frame.h:773
PString connectionToken
Definition: frame.h:298
PINDEX GetSubClass() const
Definition: frame.h:477
PBoolean Read2Bytes(PINDEX &res)
IAX2FrameType GetFrameType()
Definition: frame.h:186
PINDEX DataSize()
Definition: frame.h:112
void Write4Bytes(unsigned int newVal)
virtual PString GetSubClassName() const
Definition: frame.h:455
IAX2Remote remote
Definition: frame.h:225
PBoolean DecryptContents(IAX2Encryption &encryption)
virtual BYTE GetFullFrameType()
Definition: frame.h:658
IAX2SequenceNumbers sequence
Definition: frame.h:585
virtual BYTE GetFullFrameType()
Definition: frame.h:529
virtual void PrintOn(ostream &strm) const
PBoolean IsVideo() const
Definition: frame.h:96
PMutex mutex
Definition: frame.h:1215
VideoSc
Definition: frame.h:765
ConnectionRequired
Definition: frame.h:523
virtual BYTE GetFullFrameType()
Definition: frame.h:1128
IAX2FrameType
Definition: frame.h:169
static PString GetSubClassName(int testValue)
Definition: frame.h:716
PTimeInterval timeOffset
Definition: frame.h:572
PINDEX GetUnReadBytes()
Definition: frame.h:132
ProtocolSc
Definition: frame.h:891
virtual void InitialiseHeader(IAX2Processor *)
Definition: frame.h:191
PINDEX currentWriteIndex
Definition: frame.h:286
Definition: callprocessor.h:57
PBoolean canRetransmitFrame
Definition: frame.h:292
PTimeInterval retryDelta
Definition: frame.h:569
AudioSc
Definition: frame.h:724
virtual PBoolean TransmitPacket(PUDPSocket &sock)
PString GetConnectionToken() const
Definition: frame.h:199
IAX2Frame * BuildAppropriateFrameType()
DWORD timeStamp
Definition: frame.h:289
virtual BYTE GetFullFrameType()
Definition: frame.h:740
PBoolean packetResent
Definition: frame.h:594
virtual PBoolean ProcessNetworkPacket()
PBoolean deleteFrameNow
Definition: frame.h:591
virtual ~IAX2FullFrameSessionControl()
Definition: frame.h:833
PBoolean callMustBeActive
Definition: frame.h:597
IAX2EndPoint & GetEndpoint()
Definition: frame.h:153
virtual BYTE * GetMediaDataPointer()
Definition: frame.h:104
void SetSubClass(PINDEX newValue)
Definition: frame.h:480
void Write1Byte(BYTE newVal)
virtual PBoolean WriteHeader()
Definition: frame.h:135
virtual BYTE GetFullFrameType()
Definition: frame.h:1013
DtmfSc
Definition: frame.h:638
PBoolean sendFrameNow
Definition: frame.h:588
IAX2ActiveFrameList()
Definition: frame.h:1227
virtual PINDEX GetEncryptionOffset()
PBoolean SendFrameNow()
Definition: frame.h:502
virtual PBoolean IsFullFrame()
Definition: frame.h:433
PBoolean IsAckFrame()
Definition: frame.h:386
IAX2Ie * GetIeAt(PINDEX i)
Definition: frame.h:992
virtual PINDEX GetEncryptionOffset()
Definition: frame.h:532
PBYTEArray data
Definition: frame.h:271
IAX2SequenceNumbers & GetSequenceInfo()
Definition: frame.h:509
IAX2EndPoint & endpoint
Definition: frame.h:267
void AppendIe(IAX2Ie *newElement)
Definition: frame.h:995
PINDEX retries
Definition: frame.h:575
virtual PBoolean IsFullFrame()
Definition: frame.h:93
SessionSc
Definition: frame.h:789
PBoolean isVideo
Definition: frame.h:277
PBoolean CanRetransmitFrame() const
Definition: frame.h:195
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
Definition: processor.h:136
PINDEX currentReadIndex
Definition: frame.h:283
IAX2IeList ieElements
Definition: frame.h:1031
void SetTimeStamp(DWORD newValue)
void SetConnectionToken(PString newToken)
Definition: frame.h:203
virtual BYTE GetFullFrameType()
Definition: frame.h:1068
IAX2FrameType frameType
Definition: frame.h:229
DWORD presetTimeStamp
Definition: frame.h:302
IAX2Remote & GetRemoteInfo()
Definition: frame.h:115
virtual PBoolean InformationElementsPresent()
Definition: frame.h:979
PBoolean isAckFrame
Definition: frame.h:600
virtual PINDEX GetEntries()
Definition: frame.h:1212
const BYTE * GetDataPointer()
Definition: frame.h:118
PBoolean IsAudio() const
Definition: frame.h:99
static DWORD CalcTimeStamp(const PTimeInterval &callStartTick)
virtual BYTE GetFullFrameType()
Definition: frame.h:839
static PString GetSubClassName(unsigned short testValue)
Definition: frame.h:703
PBoolean Read4Bytes(DWORD &res)
virtual PBoolean CallMustBeActive()
Definition: frame.h:166
virtual BYTE GetFullFrameType()
Definition: frame.h:1101
PBoolean ReadNetworkPacket(PUDPSocket &sock)
PBoolean DeleteFrameNow()
Definition: frame.h:506
virtual BYTE GetFullFrameType()
Definition: frame.h:1154
PBoolean isAudio
Definition: frame.h:280
DWORD GetTimeStamp()
Definition: frame.h:160
PTimer transmissionTimer
Definition: frame.h:563
virtual PBoolean InformationElementsPresent()
Definition: frame.h:498
virtual PINDEX GetMediaDataSize()
Definition: frame.h:109
PBoolean Empty()
Definition: frame.h:1184
IAX2Frame(IAX2EndPoint &_endpoint)
PString internalText
Definition: frame.h:1076
PBoolean isFullFrame
Definition: frame.h:274
virtual PINDEX GetSize()
Definition: frame.h:1205
RetryTime
Definition: frame.h:578
PBoolean EncryptContents(IAX2Encryption &encData)
void BuildConnectionToken()
ProtocolSc GetSubClass() const
Definition: frame.h:982
virtual PBoolean CallMustBeActive()
Definition: frame.h:536
virtual void BuildTimeStamp(const PTimeInterval &callStartTick)
PINDEX subClass
Definition: frame.h:566
void Write2Bytes(PINDEX newVal)