Yate
IAXFrameOut Class Reference

This class holds an outgoing IAX full frame. More...

#include <yateiax.h>

Inheritance diagram for IAXFrameOut:
IAXFullFrame IAXFrame RefObject GenObject

Public Member Functions

 IAXFrameOut (Type type, u_int32_t subclass, u_int16_t sCallNo, u_int16_t dCallNo, unsigned char oSeqNo, unsigned char iSeqNo, u_int32_t tStamp, const unsigned char *buf, unsigned int len, u_int16_t retransCount, u_int32_t retransIntervalMs, bool ackOnly, bool mark=false)
 
 IAXFrameOut (Type type, u_int32_t subclass, u_int16_t sCallNo, u_int16_t dCallNo, unsigned char oSeqNo, unsigned char iSeqNo, u_int32_t tStamp, IAXIEList *ieList, u_int16_t maxlen, u_int16_t retransCount, u_int32_t retransIntervalMs, bool ackOnly, bool mark=false)
 
virtual ~IAXFrameOut ()
 
unsigned int retransCount () const
 
bool timeForRetrans (u_int64_t time) const
 
void setRetrans ()
 
void transmitted ()
 
bool ack () const
 
void setAck ()
 
bool ackOnly () const
 
bool canSetTimeout ()
 
void setTimeout (u_int64_t tout)
 
- Public Member Functions inherited from IAXFullFrame
 IAXFullFrame (Type type, u_int32_t subclass, u_int16_t sCallNo, u_int16_t dCallNo, unsigned char oSeqNo, unsigned char iSeqNo, u_int32_t tStamp, bool retrans, const unsigned char *buf, unsigned int len, bool mark=false)
 
 IAXFullFrame (Type type, u_int32_t subclass, u_int16_t sCallNo, u_int16_t dCallNo, unsigned char oSeqNo, unsigned char iSeqNo, u_int32_t tStamp, const unsigned char *buf=0, unsigned int len=0, bool mark=false)
 
 IAXFullFrame (Type type, u_int32_t subclass, u_int16_t sCallNo, u_int16_t dCallNo, unsigned char oSeqNo, unsigned char iSeqNo, u_int32_t tStamp, IAXIEList *ieList, u_int16_t maxlen, bool mark=false)
 
virtual ~IAXFullFrame ()
 
u_int16_t destCallNo () const
 
unsigned char oSeqNo () const
 
unsigned char iSeqNo () const
 
u_int32_t subclass () const
 
bool isAuthReq () const
 
bool isInval () const
 
virtual IAXFullFramefullFrame ()
 
void updateBuffer (u_int16_t maxlen)
 
IAXIEListieList ()
 
bool updateIEList (bool incoming)
 
IAXIEListremoveIEList (bool delObj=true)
 
void toString (String &dest, const SocketAddr &local, const SocketAddr &remote, bool incoming)
 
- Public Member Functions inherited from IAXFrame
 IAXFrame (Type type, u_int16_t sCallNo, u_int32_t tStamp, bool retrans, const unsigned char *buf, unsigned int len, bool mark=false)
 
virtual ~IAXFrame ()
 
Type type () const
 
DataBlockdata ()
 
bool retrans () const
 
u_int16_t sourceCallNo () const
 
u_int32_t timeStamp () const
 
bool mark () const
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual void * getObject (const String &name) const
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtoString () const
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Additional Inherited Members

- Public Types inherited from IAXFullFrame
enum  ControlType {
  Hangup = 0x01 , Ringing = 0x03 , Answer = 0x04 , Busy = 0x05 ,
  Congestion = 0x08 , FlashHook = 0x09 , Option = 0x0b , KeyRadio = 0x0c ,
  UnkeyRadio = 0x0d , Progressing = 0x0e , Proceeding = 0x0f , Hold = 0x10 ,
  Unhold = 0x11 , VidUpdate = 0x12 , SrcUpdate = 0x14 , StopSounds = 0xff
}
 
- Public Types inherited from IAXFrame
enum  Type {
  DTMF = 0x01 , Voice = 0x02 , Video = 0x03 , Control = 0x04 ,
  Null = 0x05 , IAX = 0x06 , Text = 0x07 , Image = 0x08 ,
  HTML = 0x09 , Noise = 0x0a
}
 
- Static Public Member Functions inherited from IAXFullFrame
static const char * controlTypeText (int type)
 
- Static Public Member Functions inherited from IAXFrame
static IAXFrameparse (const unsigned char *buf, unsigned int len, IAXEngine *engine=0, const SocketAddr *addr=0)
 
static void buildMiniFrame (DataBlock &dest, u_int16_t sCallNo, u_int32_t ts, void *data, unsigned int len)
 
static void buildVideoMetaFrame (DataBlock &dest, u_int16_t sCallNo, u_int32_t tStamp, bool mark, void *data, unsigned int len)
 
static u_int8_t packSubclass (u_int32_t value)
 
static u_int32_t unpackSubclass (u_int8_t value)
 
static const char * typeText (int type)
 
- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Protected Member Functions inherited from IAXFullFrame
virtual void destroyed ()
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 
- Protected Attributes inherited from IAXFrame
DataBlock m_data
 
bool m_retrans
 

Detailed Description

This class holds an outgoing IAX full frame.

This class holds all data needded to manage an outgoing IAX full frame

Constructor & Destructor Documentation

◆ IAXFrameOut() [1/2]

IAXFrameOut ( Type type,
u_int32_t subclass,
u_int16_t sCallNo,
u_int16_t dCallNo,
unsigned char oSeqNo,
unsigned char iSeqNo,
u_int32_t tStamp,
const unsigned char * buf,
unsigned int len,
u_int16_t retransCount,
u_int32_t retransIntervalMs,
bool ackOnly,
bool mark = false )
inline

Constructor. Constructs an outgoing full frame

Parameters
typeFrame type
subclassFrame subclass
sCallNoSource (remote) call number
dCallNoDestination (local) call number
oSeqNoOutgoing sequence number
iSeqNoIncoming (expected) sequence number
tStampFrame timestamp
bufIE buffer
lenIE buffer length
retransCountRetransmission counter
retransIntervalMsTime interval to the next retransmission
ackOnlyAcknoledge only flag. If true, the frame only expects an ACK
markMark flag

References ackOnly(), IAXFullFrame::IAXFullFrame(), IAXFullFrame::iSeqNo(), IAXFrame::mark(), IAXFullFrame::oSeqNo(), retransCount(), IAXFullFrame::subclass(), and IAXFrame::type().

◆ IAXFrameOut() [2/2]

IAXFrameOut ( Type type,
u_int32_t subclass,
u_int16_t sCallNo,
u_int16_t dCallNo,
unsigned char oSeqNo,
unsigned char iSeqNo,
u_int32_t tStamp,
IAXIEList * ieList,
u_int16_t maxlen,
u_int16_t retransCount,
u_int32_t retransIntervalMs,
bool ackOnly,
bool mark = false )
inline

Constructor. Constructs an outgoing full frame

Parameters
typeFrame type
subclassFrame subclass
sCallNoSource (remote) call number
dCallNoDestination (local) call number
oSeqNoOutgoing sequence number
iSeqNoIncoming (expected) sequence number
tStampFrame timestamp
ieListList of frame IEs
maxlenMax frame data length
retransCountRetransmission counter
retransIntervalMsTime interval to the next retransmission
ackOnlyAcknoledge only flag. If true, the frame only expects an ACK
markMark flag

References ackOnly(), IAXFullFrame::IAXFullFrame(), IAXFullFrame::ieList(), IAXFullFrame::iSeqNo(), IAXFrame::mark(), IAXFullFrame::oSeqNo(), retransCount(), IAXFullFrame::subclass(), and IAXFrame::type().

◆ ~IAXFrameOut()

virtual ~IAXFrameOut ( )
inlinevirtual

Destructor

Member Function Documentation

◆ ack()

bool ack ( ) const
inline

Get the acknoledged flag of this frame

Returns
The acknoledged flag of this frame

◆ ackOnly()

bool ackOnly ( ) const
inline

Get the acknoledge only flag of this frame

Returns
The acknoledge only flag of this frame

Referenced by IAXFrameOut(), and IAXFrameOut().

◆ canSetTimeout()

bool canSetTimeout ( )
inline

Check if absolute timeout can be set

Returns
True if absolute timeout can be set

◆ retransCount()

unsigned int retransCount ( ) const
inline

Get the retransmission counter of this frame

Returns
The retransmission counter is 0

Referenced by IAXFrameOut(), and IAXFrameOut().

◆ setAck()

void setAck ( )
inline

Set the acknoledged flag of this frame

◆ setRetrans()

void setRetrans ( )
inline

Set the retransmission flag of this frame

References IAXFrame::m_data, and IAXFrame::m_retrans.

◆ setTimeout()

void setTimeout ( u_int64_t tout)
inline

Set absolute timeout. Reset retransmission counter

Parameters
toutTimeout time

◆ timeForRetrans()

bool timeForRetrans ( u_int64_t time) const
inline

Ask the frame if it's time for retransmit

Parameters
timeCurrent time
Returns
True if it's time to retransmit

◆ transmitted()

void transmitted ( )
inline

Update the retransmission counter and the time to next retransmission


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