Yate
|
An MGCP transaction. More...
#include <yatemgcp.h>
Public Types | |
enum | State { Invalid = 0, Initiated = 1, Trying = 2, Responded = 3, Ack = 4, Destroying = 5 } |
Public Member Functions | |
MGCPTransaction (MGCPEngine *engine, MGCPMessage *msg, bool outgoing, const SocketAddr &address) | |
virtual | ~MGCPTransaction () |
State | state () const |
unsigned int | id () const |
bool | outgoing () const |
const String & | ep () const |
const SocketAddr & | addr () const |
MGCPEngine * | engine () |
const MGCPMessage * | initial () const |
const MGCPMessage * | msgProvisional () const |
const MGCPMessage * | msgResponse () const |
const MGCPMessage * | msgAck () const |
bool | timeout () const |
void | ackRequest (bool request) |
void * | userData () const |
void | userData (void *data) |
MGCPEvent * | getEvent (u_int64_t time=Time()) |
bool | sendProvisional (int code=100, const char *comment=0) |
bool | setResponse (int code, const char *comment=0) |
bool | setResponse (int code, const NamedList *params, MimeSdpBody *sdp1=0, MimeSdpBody *sdp2=0) |
bool | setResponse (MGCPMessage *msg) |
Protected Member Functions | |
virtual void | destroyed () |
void | processMessage (MGCPMessage *msg) |
MGCPEvent * | checkTimeout (u_int64_t time) |
void | eventTerminated (MGCPEvent *event) |
void | changeState (State newState) |
void | setProvisional (int code=100) |
void | send (MGCPMessage *msg) |
Friends | |
class | MGCPEngine |
class | MGCPEvent |
An MGCP transaction.
This class implements an MGCP transaction
enum State |
Transaction state enumeration
MGCPTransaction | ( | MGCPEngine * | engine, |
MGCPMessage * | msg, | ||
bool | outgoing, | ||
const SocketAddr & | address | ||
) |
Constructor. Construct a transaction from its first message
engine | The engine owning this transaction |
msg | The command creating this transaction |
outgoing | The direction of this transaction |
address | Remote enpoint's address |
virtual ~MGCPTransaction | ( | ) | [virtual] |
Destructor
void ackRequest | ( | bool | request | ) | [inline] |
Set the remote ACK request flag
request | False if remote is not required to send an ACK |
const SocketAddr& addr | ( | ) | const [inline] |
Get the remote endpoint's IP address
void changeState | ( | State | newState | ) | [protected] |
Change transaction's state if the new state is a valid one
newState | The new state of this transaction |
MGCPEvent* checkTimeout | ( | u_int64_t | time | ) | [protected] |
Check timeouts. Manage retransmissions
time | Current time in milliseconds |
virtual void destroyed | ( | ) | [protected, virtual] |
Gracefully terminate this transaction. Release memory
Reimplemented from RefObject.
MGCPEngine* engine | ( | ) | [inline] |
Get the engine owning this transaction
Get the id of the endpoint owning this transaction
void eventTerminated | ( | MGCPEvent * | event | ) | [protected] |
Event termination notification
event | The notifier |
Get an event from this transaction. Check timeouts
time | Current time in microseconds |
unsigned int id | ( | ) | const [inline] |
Get the id of this transaction
const MGCPMessage* initial | ( | ) | const [inline] |
Get the initial command message sent or received by this transaction
const MGCPMessage* msgAck | ( | ) | const [inline] |
Get the response aknowledgement message sent or received by this transaction
const MGCPMessage* msgProvisional | ( | ) | const [inline] |
Get the provisional response message sent or received by this transaction
const MGCPMessage* msgResponse | ( | ) | const [inline] |
Get the final response message sent or received by this transaction
bool outgoing | ( | ) | const [inline] |
Get the direction of this transaction
void processMessage | ( | MGCPMessage * | msg | ) | [protected] |
Consume (process) a received message, other then the initiating one
msg | The received message |
void send | ( | MGCPMessage * | msg | ) | [protected] |
(Re)send one the initial, provisional or final response. Change transaction's state
msg | The message to send |
bool sendProvisional | ( | int | code = 100 , |
const char * | comment = 0 |
||
) |
Explicitely transmits a provisional code
code | Provisional response code to send, must be in range 100-199 |
comment | Optional response comment text |
void setProvisional | ( | int | code = 100 | ) | [protected] |
Set and send the provisional response (codes between 100 and 199)
code | The response code |
bool setResponse | ( | int | code, |
const char * | comment = 0 |
||
) | [inline] |
Creates and transmits a final response (code must at least 200) message if this is an incoming transaction
code | Response code to send |
comment | Optional response comment text |
References MGCPTransaction::setResponse().
Referenced by MGCPTransaction::setResponse().
bool setResponse | ( | int | code, |
const NamedList * | params, | ||
MimeSdpBody * | sdp1 = 0 , |
||
MimeSdpBody * | sdp2 = 0 |
||
) |
Creates and transmits a final response (code must at least 200) message if this is an incoming transaction. The SDP(s) will be consumed (appended to the message or destroyed)
code | Response code to send |
params | Parameters to set in response, name will be set as comment |
sdp1 | Optional SDP to be added to the response |
sdp2 | Optional second SDP to be added to the response if the first one is not 0 |
bool setResponse | ( | MGCPMessage * | msg | ) |
Transmits a final response (code must at least 200) message if this is an incoming transaction
msg | The message to transmit |
Get the current transaction's state
bool timeout | ( | ) | const [inline] |
Check if this transaction timed out
void* userData | ( | ) | const [inline] |
Get the private user data of this transaction
void userData | ( | void * | data | ) | [inline] |
Set the private user data of this transaction
data | The new private user data of this transaction |