IAXTransaction Class Reference

An IAX2 transaction. More...

#include <yateiax.h>

Inheritance diagram for IAXTransaction:

RefObject Mutex GenObject

List of all members.

Public Types

enum  Type {
  Incorrect, New, RegReq, RegRel,
  Poke
}
enum  State {
  Connected, NewLocalInvite, NewLocalInvite_AuthRecv, NewLocalInvite_RepSent,
  NewRemoteInvite, NewRemoteInvite_AuthSent, NewRemoteInvite_RepRecv, Unknown,
  Terminated, Terminating
}

Public Member Functions

virtual ~IAXTransaction ()
IAXEnginegetEngine () const
Type type () const
State state () const
u_int64_t timeStamp () const
bool outgoing () const
void setUserData (void *data)
void * getUserData () const
u_int16_t localCallNo () const
u_int16_t remoteCallNo () const
const SocketAddrremoteAddr () const
const Stringusername ()
const StringcallingNo ()
const StringcallingName ()
const StringcalledNo ()
const StringcalledContext ()
const Stringchallenge ()
u_int32_t format ()
u_int32_t formatIn ()
u_int32_t formatOut () const
u_int32_t capability () const
u_int32_t expire () const
const Stringauthdata ()
IAXTransactionprocessFrame (IAXFrame *frame)
IAXTransactionprocessMedia (DataBlock &data, u_int32_t tStamp, bool voice=false)
IAXTransactionsendMedia (const DataBlock &data, u_int32_t format)
IAXEventgetEvent (u_int64_t time)
bool sendAnswer ()
bool sendRinging ()
bool sendProgress ()
bool sendAccept ()
bool sendHangup (const char *cause=0, u_int8_t code=0)
bool sendReject (const char *cause=0, u_int8_t code=0)
bool sendAuth ()
bool sendAuthReply (const String &response)
bool sendDtmf (u_int8_t dtmf)
bool sendText (const char *text)
bool sendNoise (u_int8_t noise)
bool abortReg ()
bool enableTrunking (IAXMetaTrunkFrame *trunkFrame)
void print ()

Static Public Member Functions

static IAXTransactionfactoryIn (IAXEngine *engine, IAXFullFrame *frame, u_int16_t lcallno, const SocketAddr &addr, void *data=0)
static IAXTransactionfactoryOut (IAXEngine *engine, Type type, u_int16_t lcallno, const SocketAddr &addr, IAXIEList &ieList, void *data=0)
static unsigned char getMaxFrameList ()
static bool setMaxFrameList (unsigned char value)

Static Public Attributes

static String s_iax_modNoAuthMethod
static String s_iax_modNoMediaFormat
static String s_iax_modInvalidAuth
static String s_iax_modNoUsername

Protected Member Functions

 IAXTransaction (IAXEngine *engine, IAXFullFrame *frame, u_int16_t lcallno, const SocketAddr &addr, void *data=0)
 IAXTransaction (IAXEngine *engine, Type type, u_int16_t lcallno, const SocketAddr &addr, IAXIEList &ieList, void *data=0)
void init (IAXIEList &ieList)
bool incrementSeqNo (const IAXFullFrame *frame, bool inbound)
bool isFrameAcceptable (const IAXFullFrame *frame)
bool changeState (State newState)
IAXEventterminate (u_int8_t evType, bool local, const IAXFullFrame *frame=0, bool createIEList=true)
IAXEventwaitForTerminate (u_int8_t evType, bool local, const IAXFullFrame *frame)
void postFrame (IAXFrame::Type type, u_int32_t subclass, void *data=0, u_int16_t len=0, u_int32_t tStamp=0, bool ackOnly=false)
bool sendFrame (IAXFrameOut *frame, bool vnak=false)
IAXEventcreateEvent (u_int8_t evType, bool local, const IAXFullFrame *frame, State newState)
IAXEventcreateResponse (IAXFrameOut *frame, u_int8_t findType, u_int8_t findSubclass, u_int8_t evType, bool local, State newState)
IAXEventgetEventResponse (IAXFrameOut *frame, bool &delFrame)
IAXEventgetEventResponse_New (IAXFrameOut *frame, bool &delFrame)
IAXEventprocessAuthReq (IAXEvent *event)
IAXEventprocessAccept (IAXEvent *event)
IAXEventprocessAuthRep (IAXEvent *event)
IAXEventgetEventResponse_Reg (IAXFrameOut *frame, bool &delFrame)
IAXEventprocessRegAck (IAXEvent *event)
IAXEventgetEventStartTrans (IAXFullFrame *frame, bool &delFrame)
IAXEventgetEventRequest (IAXFullFrame *frame, bool &delFrame)
IAXEventgetEventRequest_New (IAXFullFrame *frame, bool &delFrame)
IAXFullFramefindInFrame (IAXFrame::Type type, u_int32_t subclass)
bool findInFrameTimestamp (const IAXFullFrame *frameOut, IAXFrame::Type type, u_int32_t subclass)
bool findInFrameAck (const IAXFullFrame *frameOut)
void ackInFrames ()
bool sendConnected (IAXFullFrame::ControlType subclass, IAXFrame::Type frametype=IAXFrame::Control)
void sendAck (const IAXFullFrame *frame)
void sendInval ()
void sendVNAK ()
void sendUnsupport (u_int32_t subclass)
IAXEventprocessInternalOutgoingRequest (IAXFrameOut *frame, bool &delFrame)
IAXEventprocessInternalIncomingRequest (const IAXFullFrame *frame, bool &delFrame)
IAXEventprocessMidCallControl (const IAXFullFrame *frame, bool &delFrame)
IAXEventprocessMidCallIAXControl (const IAXFullFrame *frame, bool &delFrame)
IAXEventremoteRejectCall (const IAXFullFrame *frame, bool &delFrame)
IAXEventgetEventTerminating (u_int64_t time)
IAXTransactionprocessVoiceFrame (const IAXFullFrame *frame)
IAXTransactionretransmitOnVNAK (u_int16_t seqNo)
IAXEventinternalAccept ()
IAXEventinternalReject (String &reason)
void eventTerminated (IAXEvent *event)
IAXEventkeepEvent (IAXEvent *event)

Friends

class IAXEvent
class IAXEngine


Detailed Description

An IAX2 transaction.

This class holds all the data needded for the management of an IAX2 transaction which might be a call leg, a register/unregister or a poke one


Member Enumeration Documentation

enum State

The transaction state as enumeration

enum Type

The transaction type as enumeration


Constructor & Destructor Documentation

virtual ~IAXTransaction (  )  [virtual]

Destructor

IAXTransaction ( IAXEngine engine,
IAXFullFrame frame,
u_int16_t  lcallno,
const SocketAddr addr,
void *  data = 0 
) [protected]

Constructor: constructs an incoming transaction from a received full frame with an IAX control message that needs a new transaction

Parameters:
engine The engine that owns this transaction
frame A valid full frame
lcallno Local call number
addr Address from where the frame was received
data Pointer to arbitrary user data

IAXTransaction ( IAXEngine engine,
Type  type,
u_int16_t  lcallno,
const SocketAddr addr,
IAXIEList ieList,
void *  data = 0 
) [protected]

Constructor: constructs an outgoing transaction with an IAX control message that needs a new transaction

Parameters:
engine The engine that owns this transaction
type Transaction type: see Type enumeration
lcallno Local call number
addr Address to use
ieList Starting IE list
data Pointer to arbitrary user data


Member Function Documentation

bool abortReg (  ) 

Abort a registration transaction This method is thread safe

Returns:
False transaction is not a registration one or is already terminating

void ackInFrames (  )  [protected]

Acknoledge the last received full frame

const String& authdata (  )  [inline]

Retrive the authentication data sent/received during authentication

Returns:
A reference to the authentication data

const String& calledContext (  )  [inline]

Retrive the called context

Returns:
A reference to the called context

const String& calledNo (  )  [inline]

Retrive the called number

Returns:
A reference to the called number

const String& callingName (  )  [inline]

Retrive the calling name

Returns:
A reference to the calling name

const String& callingNo (  )  [inline]

Retrive the calling number

Returns:
A reference to the calling number

u_int32_t capability (  )  const [inline]

Retrive the media capability of this transaction

Returns:
The media capability of this transaction

const String& challenge (  )  [inline]

Retrive the challenge sent/received during authentication

Returns:
A reference to the challenge

bool changeState ( State  newState  )  [protected]

Change the transaction state

Parameters:
newState the new transaction state
Returns:
False if trying to change a termination state into a non termination one

IAXEvent* createEvent ( u_int8_t  evType,
bool  local,
const IAXFullFrame frame,
State  newState 
) [protected]

Create an event

Parameters:
evType Event type
local If true it is a locally generated event.
frameOut Frame to create from
newState The transaction new state
Returns:
Pointer to an IAXEvent or 0 (invalid IE list)

IAXEvent* createResponse ( IAXFrameOut frame,
u_int8_t  findType,
u_int8_t  findSubclass,
u_int8_t  evType,
bool  local,
State  newState 
) [protected]

Create an event from a received frame that is a response to a sent frame and change the transaction state to newState. Remove the response from incoming list.

Parameters:
frame Frame to create response for
findType Frame type to find
findSubclass Frame subclass to find
evType Event type to generate
local Local flag for the generated event.
newState New transaction state if an event was generated
Returns:
Pointer to an IAXEvent or 0 (invalid IE list)

bool enableTrunking ( IAXMetaTrunkFrame trunkFrame  ) 

Enable trunking for this transaction

Parameters:
trunkFrame Pointer to IAXMetaTrunkFrame used to send trunked media
Returns:
False trunking is already enabled for this transactio or trunkFrame is 0

void eventTerminated ( IAXEvent event  )  [protected]

Event terminated feedback This method is thread safe

Parameters:
event The event notifying termination

u_int32_t expire (  )  const [inline]

Retrive the expiring time for a register/unregister transaction

Returns:
The expiring time for a register/unregister transaction

static IAXTransaction* factoryIn ( IAXEngine engine,
IAXFullFrame frame,
u_int16_t  lcallno,
const SocketAddr addr,
void *  data = 0 
) [static]

Constructs an incoming transaction from a received full frame with an IAX control message that needs a new transaction

Parameters:
engine The engine that owns this transaction
frame A valid full frame
lcallno Local call number
addr Address from where the frame was received
data Pointer to arbitrary user data

static IAXTransaction* factoryOut ( IAXEngine engine,
Type  type,
u_int16_t  lcallno,
const SocketAddr addr,
IAXIEList ieList,
void *  data = 0 
) [static]

Constructs an outgoing transaction with an IAX control message that needs a new transaction

Parameters:
engine The engine that owns this transaction
type Transaction type
lcallno Local call number
addr Address to use
ieList Starting IE list
data Pointer to arbitrary user data

IAXFullFrame* findInFrame ( IAXFrame::Type  type,
u_int32_t  subclass 
) [protected]

Search for a frame in m_inFrames having the given type and subclass

Parameters:
type Frame type to find.
subclass Frame subclass to find.
Returns:
Pointer to frame if found or 0.

bool findInFrameAck ( const IAXFullFrame frameOut  )  [protected]

Search in m_inFrames for an ACK frame which confirm the received frame and deletes it

Parameters:
frameOut Frame to find response for
Returns:
True if found.

bool findInFrameTimestamp ( const IAXFullFrame frameOut,
IAXFrame::Type  type,
u_int32_t  subclass 
) [protected]

Search in m_inFrames for a frame with the same timestamp as frameOut and deletes it.

Parameters:
frameOut Frame to find response for
type Frame type to find
subclass Frame subclass to find
Returns:
True if found.

u_int32_t format (  )  [inline]

Retrive the media format used during initialization

Returns:
The initial media format

u_int32_t formatIn (  )  [inline]

Retrive the incoming media format

Returns:
The incoming media format

u_int32_t formatOut (  )  const [inline]

Retrive the outgoing media format

Returns:
The outgoing media format

IAXEngine* getEngine (  )  const [inline]

The IAX engine this transaction belongs to

Returns:
Pointer to the IAXEngine of this transaction

IAXEvent* getEvent ( u_int64_t  time  ) 

Get an IAX event from the queue This method is thread safe.

Parameters:
time The time this method was called
Returns:
Pointer to an IAXEvent or 0 if none available

IAXEvent* getEventRequest ( IAXFullFrame frame,
bool &  delFrame 
) [protected]

Find out if a frame is a remote request

Parameters:
frame Frame to process
delFrame Delete rame flag. If true on exit, a request was found
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventRequest_New ( IAXFullFrame frame,
bool &  delFrame 
) [protected]

Find out if a frame is a remote request if transaction type is New

Parameters:
frame Frame to process
delFrame Delete rame flag. If true on exit, a request was found
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventResponse ( IAXFrameOut frame,
bool &  delFrame 
) [protected]

Find a response for a previously sent frame

Parameters:
frame Frame to find response for
delFrame Delete frame flag. If true on exit, a response was found
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventResponse_New ( IAXFrameOut frame,
bool &  delFrame 
) [protected]

Find a response for a previously sent frame if the transaction type is New

Parameters:
frame Frame to find response for
delFrame Delete frame flag. If true on exit, a response was found
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventResponse_Reg ( IAXFrameOut frame,
bool &  delFrame 
) [protected]

Find a response for a previously sent frame if the transaction type is RegReq/RegRel

Parameters:
frame Frame to find response for
delFrame Delete frame flag. If true on exit, a response was found
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventStartTrans ( IAXFullFrame frame,
bool &  delFrame 
) [protected]

Find out if an incoming frame would start a transaction

Parameters:
frame Frame to process
delFrame Delete frame flag. If true on exit, frame is valid
Returns:
Pointer to an IAXEvent or 0

IAXEvent* getEventTerminating ( u_int64_t  time  )  [protected]

Terminate the transaction if state is Terminating on a remote request

Parameters:
time Current time
Returns:
A valid IAXEvent or 0

static unsigned char getMaxFrameList (  )  [static]

Get the maximum allowed number of full frames in the incoming frame list

Returns:
The maximum allowed number of full frames in the incoming frame list

void* getUserData (  )  const [inline]

Return the opaque user data stored in the transaction

Returns:
Pointer set by user

bool incrementSeqNo ( const IAXFullFrame frame,
bool  inbound 
) [protected]

Increment sequence numbers (inbound or outbound) for the frames that need it

Parameters:
frame Received frame if inbound is true, otherwise a transmitted one
inbound True for inbound frames
Returns:
True if incremented.

void init ( IAXIEList ieList  )  [protected]

Init data members from an IE list

Parameters:
ieList IE list to init from

IAXEvent* internalAccept (  )  [protected]

Generate an Accept event after internally accepting a transaction

Returns:
A valid IAXEvent

IAXEvent* internalReject ( String reason  )  [protected]

Generate a Reject event after internally rejecting a transaction

Parameters:
reason The reason of rejecting
Returns:
A valid IAXEvent

bool isFrameAcceptable ( const IAXFullFrame frame  )  [protected]

Test if frame is acceptable (not an out of order or a late one)

Parameters:
frame Frame to test
Returns:
True if frame can be added to incoming frame list

IAXEvent* keepEvent ( IAXEvent event  )  [inline, protected]

Set the current event

Parameters:
event The event notifying termination
Returns:
event

u_int16_t localCallNo (  )  const [inline]

Retrive the local call number

Returns:
15-bit local call number

bool outgoing (  )  const [inline]

Get the direction of this transaction

Returns:
True if it is an outgoing transaction

void postFrame ( IAXFrame::Type  type,
u_int32_t  subclass,
void *  data = 0,
u_int16_t  len = 0,
u_int32_t  tStamp = 0,
bool  ackOnly = false 
) [protected]

Constructs an IAXFrameOut frame, send it to remote peer and put it in the transmission list This method is thread safe

Parameters:
type Frame type
subclass Frame subclass
data Frame IE list
len Frame IE list length
tStamp Frame timestamp. If 0 the transaction timestamp will be used
ackOnly Frame's acknoledge only flag

void print (  ) 

Print transaction data on stdin

IAXEvent* processAccept ( IAXEvent event  )  [protected]

Process an accept. If not valid (call m_engine->acceptFormatAndCapability) send a reject. Otherwise return the event

Parameters:
event Already generated event
Returns:
Pointer to a valid IAXEvent

IAXEvent* processAuthRep ( IAXEvent event  )  [protected]

Process an authentication reply

Parameters:
event Already generated event
Returns:
Pointer to a valid IAXEvent

IAXEvent* processAuthReq ( IAXEvent event  )  [protected]

Process an authentication request. If valid, send an authentication reply

Parameters:
event Already generated event
Returns:
Pointer to a valid IAXEvent

IAXTransaction* processFrame ( IAXFrame frame  ) 

Process a frame from remote peer This method is thread safe.

Parameters:
frame IAX frame belonging to this transaction to process
Returns:
'this' if successful or NULL if the frame is invalid

IAXEvent* processInternalIncomingRequest ( const IAXFullFrame frame,
bool &  delFrame 
) [protected]

Internal protocol incoming frames processing (PING/LAGRQ)

Parameters:
frame Frame to process
delFrame Delete frame flag. If true on exit, a request was found
Returns:
0.

IAXEvent* processInternalOutgoingRequest ( IAXFrameOut frame,
bool &  delFrame 
) [protected]

Internal protocol outgoing frames processing (PING/LAGRQ)

Parameters:
frame Frame to process
delFrame Delete frame flag. If true on exit, a response was found
Returns:
0.

IAXTransaction* processMedia ( DataBlock data,
u_int32_t  tStamp,
bool  voice = false 
)

Process received mini frame data

Parameters:
data Received data
tStamp Mini frame timestamp
voice True if received mini frame inside a Voice full frame
Returns:
0

IAXEvent* processMidCallControl ( const IAXFullFrame frame,
bool &  delFrame 
) [protected]

Process mid call control frames

Parameters:
frame Frame to process
delFrame Delete frame flag. If true on exit, a request was found
Returns:
A valid IAXEvent or 0

IAXEvent* processMidCallIAXControl ( const IAXFullFrame frame,
bool &  delFrame 
) [protected]

Process mid call IAX control frames

Parameters:
frame Frame to process
delFrame Delete frame flag. If true on exit, a request was found
Returns:
A valid IAXEvent or 0

IAXEvent* processRegAck ( IAXEvent event  )  [protected]

Update transaction data from the event

Parameters:
event Already generated event
Returns:
The received event

IAXTransaction* processVoiceFrame ( const IAXFullFrame frame  )  [protected]

Process received Voice frames

Parameters:
frame Received voice frame
Returns:
0

const SocketAddr& remoteAddr (  )  const [inline]

Retrive the remote host+port address

Returns:
A reference to the remote address

u_int16_t remoteCallNo (  )  const [inline]

Retrive the remote call number

Returns:
15-bit remote call number

IAXEvent* remoteRejectCall ( const IAXFullFrame frame,
bool &  delFrame 
) [protected]

Test if frame is a Reject/RegRej frame

Parameters:
frame Frame to process.
delFrame Delete frame flag. If true on exit, a request was found
Returns:
A valid IAXEvent or 0.

IAXTransaction* retransmitOnVNAK ( u_int16_t  seqNo  )  [protected]

Send all frames from outgoing queue with outbound sequence number starting with seqNo.

Parameters:
seqNo Requested sequence number
Returns:
0

bool sendAccept (  ) 

Send an ACCEPT/REGACK frame to remote peer This method is thread safe

Returns:
False if the transaction type is not New and state is NewRemoteInvite or NewRemoteInvite_AuthRep or if the transaction type is not RegReq and state is NewRemoteInvite or type is not RegReq/RegRel and state is NewRemoteInvite_AuthRep

void sendAck ( const IAXFullFrame frame  )  [protected]

Send an ACK frame

Parameters:
frame Aknoledged frame

bool sendAnswer (  )  [inline]

Send an ANSWER frame to remote peer This method is thread safe

Returns:
False if the current transaction state is not Connected

bool sendAuth (  ) 

Send an AUTHREQ/REGAUTH frame to remote peer This method is thread safe

Returns:
False if the current transaction state is not NewRemoteInvite

bool sendAuthReply ( const String response  ) 

Send an AUTHREP/REGREQ/REGREL frame to remote peer as a response to AUTHREQ/REGREQ/REGREL This method is thread safe

Parameters:
response Response to send
Returns:
False if the current transaction state is not NewLocalInvite_AuthRecv

bool sendConnected ( IAXFullFrame::ControlType  subclass,
IAXFrame::Type  frametype = IAXFrame::Control 
) [protected]

Send a frame to remote peer in state Connected This method is thread safe

Parameters:
subclass Frame subclass to send
subclass Frame type to send
Returns:
False if the current transaction state is not Connected

bool sendDtmf ( u_int8_t  dtmf  )  [inline]

Send a DTMF frame to remote peer This method is thread safe

Parameters:
dtmf DTMF char to send
Returns:
False if the current transaction state is not Connected or dtmf is grater then 127

bool sendFrame ( IAXFrameOut frame,
bool  vnak = false 
) [protected]

Send a full frame to remote peer

Parameters:
frame Frame to send
vnak If true the transmission is a response to a VNAK frame
Returns:
True on success

bool sendHangup ( const char *  cause = 0,
u_int8_t  code = 0 
)

Send a HANGUP frame to remote peer This method is thread safe

Parameters:
cause Optional reason for hangup
code Optional code of reason
Returns:
False if the transaction type is not New or state is Terminated/Terminating

void sendInval (  )  [protected]

Send an INVAL frame

IAXTransaction* sendMedia ( const DataBlock data,
u_int32_t  format 
)

Send media data to remote peer. Update the outgoing media format if changed

Parameters:
data Data to send
format Data format
Returns:
'this' if successful or 0

bool sendNoise ( u_int8_t  noise  )  [inline]

Send a NOISE frame to remote peer This method is thread safe

Parameters:
noise Noise value to send
Returns:
False if the current transaction state is not Connected or noise is grater then 127

bool sendProgress (  )  [inline]

Send a PROCEEDING frame to remote peer This method is thread safe

Returns:
False if the current transaction state is not Connected

bool sendReject ( const char *  cause = 0,
u_int8_t  code = 0 
)

Send a REJECT/REGREJ frame to remote peer This method is thread safe

Parameters:
cause Optional reason for reject
code Optional code of reason
Returns:
False if the transaction type is not New/RegReq/RegRel or state is Terminated/Terminating

bool sendRinging (  )  [inline]

Send a RINGING frame to remote peer This method is thread safe

Returns:
False if the current transaction state is not Connected

bool sendText ( const char *  text  ) 

Send a TEXT frame to remote peer This method is thread safe

Parameters:
text Text to send
Returns:
False if the current transaction state is not Connected

void sendUnsupport ( u_int32_t  subclass  )  [protected]

Send an Unsupport frame

Parameters:
subclass Unsupported frame's subclass

void sendVNAK (  )  [protected]

Send an VNAK frame

static bool setMaxFrameList ( unsigned char  value  )  [static]

Set the maximum allowed number of full frames in the incoming frame list

Parameters:
value The new value of m_maxInFrames
Returns:
False if value is greater then IAX2_MAX_TRANSINFRAMELIST

void setUserData ( void *  data  )  [inline]

Store a pointer to arbitrary user data

Parameters:
data User provided pointer

State state (  )  const [inline]

Get the state of this transaction

Returns:
The state of the transaction as enumeration

IAXEvent* terminate ( u_int8_t  evType,
bool  local,
const IAXFullFrame frame = 0,
bool  createIEList = true 
) [protected]

Terminate the transaction.

Parameters:
evType IAXEvent type to generate
local If true it is a locally generated event
frame Frame to build event from
createIEList If true create IE list in the generated event
Returns:
Pointer to a valid IAXEvent

u_int64_t timeStamp (  )  const [inline]

Get the timestamp of this transaction

Returns:
The timestamp of this transaction

References Time::msecNow().

Type type (  )  const [inline]

Get the type of this transaction

Returns:
The type of the transaction as enumeration

const String& username (  )  [inline]

Retrive the username

Returns:
A reference to the username

IAXEvent* waitForTerminate ( u_int8_t  evType,
bool  local,
const IAXFullFrame frame 
) [protected]

Wait for ACK to terminate the transaction. No more events will be generated

Parameters:
evType IAXEvent type to generate
local If true it is a locally generated event
frame Frame to build event from
Returns:
Pointer to a valid IAXEvent


Member Data Documentation

Standard message sent if the received authentication data is incorrect

Standard message sent if unsupported/unknown/none authentication methosd was received

Standard message sent if unsupported/unknown/none media format was received

Standard message sent if a received frame doesn't have an username information element


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

Generated on Sun Dec 7 21:36:12 2008 for Yate by  doxygen 1.5.7.1