OPAL  Version 3.18.8
SIPTransaction Class Referenceabstract

#include <sippdu.h>

Inheritance diagram for SIPTransaction:
Collaboration diagram for SIPTransaction:

Public Member Functions

 ~SIPTransaction ()
 
virtual SIPTransactionCreateDuplicate () const =0
 
bool Start ()
 
bool IsTrying () const
 
bool IsProceeding () const
 
bool IsInProgress () const
 
bool IsFailed () const
 
bool IsCompleted () const
 
bool IsCanceled () const
 
bool IsTerminated () const
 
void WaitForCompletion ()
 
PBoolean Cancel ()
 
void Abort ()
 
virtual PBoolean OnReceivedResponse (SIP_PDU &response)
 
virtual PBoolean OnCompleted (SIP_PDU &response)
 
virtual bool ReSend (const SIP_PDU &)
 
SIPEndPointGetEndPoint () const
 
SIPConnectionGetConnection () const
 
PString GetInterface () const
 
- Public Member Functions inherited from SIPTransactionBase
 SIPTransactionBase (const PString &transactionID)
 
- Public Member Functions inherited from SIP_PDU
 SIP_PDU (Methods method=SIP_PDU::NumMethods, const OpalTransportPtr &transport=NULL, const PString &transactionID=PString::Empty())
 
 SIP_PDU (const SIP_PDU &request, StatusCodes code, const SDPSessionDescription *sdp=NULL)
 
 SIP_PDU (const SIP_PDU &)
 
SIP_PDUoperator= (const SIP_PDU &)
 
 ~SIP_PDU ()
 
void PrintOn (ostream &strm) const
 
void InitialiseHeaders (const SIPURL &dest, const SIPURL &to, const SIPURL &from, const PString &callID, unsigned cseq)
 
void InitialiseHeaders (SIPDialogContext &dialog, unsigned cseq=0)
 
void InitialiseHeaders (SIPConnection &connection, unsigned cseq=0)
 
void InitialiseHeaders (const SIP_PDU &request)
 
bool SetRoute (const SIPURLList &routeSet)
 
bool SetRoute (const SIPURL &proxy)
 
void SetAllow (unsigned bitmask)
 
StatusCodes Read ()
 
StatusCodes Parse (istream &strm, bool truncated)
 
virtual bool Send ()
 
bool SendResponse (StatusCodes code)
 
void Build (PString &pduStr, PINDEX &pduLen)
 
const PString & GetTransactionID () const
 
Methods GetMethod () const
 
StatusCodes GetStatusCode () const
 
void SetStatusCode (StatusCodes c)
 
const SIPURLGetURI () const
 
void SetURI (const SIPURL &newuri)
 
unsigned GetVersionMajor () const
 
unsigned GetVersionMinor () const
 
void SetCSeq (unsigned cseq)
 
const PString & GetEntityBody () const
 
void SetEntityBody (const PString &body)
 
void SetEntityBody ()
 
const PString & GetInfo () const
 
void SetInfo (const PString &info)
 
const SIPMIMEInfoGetMIME () const
 
SIPMIMEInfoGetMIME ()
 
SDPSessionDescription * GetSDP ()
 
void SetSDP (SDPSessionDescription *sdp)
 
bool DecodeSDP (SIPConnection &connection, PMultiPartList &parts)
 
bool DecodeSDP (SIPConnection &connection, PString &sdpText, PMultiPartList &parts)
 
bool IsContentSDP (bool emptyOK=false) const
 
const OpalTransportAddressArrayGetResponseAddresses () const
 
OpalTransportPtr GetTransport () const
 
void SetTransport (const OpalTransportPtr &transport PTRACE_PARAM(, const char *location))
 

Static Public Member Functions

static PString GenerateCallID ()
 
- Static Public Member Functions inherited from SIP_PDU
static PString GetStatusCodeDescription (int code)
 

Protected Types

typedef SIPPoolTimer
< SIPTransaction
PoolTimer
 

Protected Member Functions

 SIPTransaction (Methods method, SIPTransactionOwner *owner, OpalTransport *transport, bool deleteOwner=false, const PString &transactionID=PString::Empty())
 
bool ResendCANCEL ()
 
void SetParameters (const SIPParameters &params)
 
void OnRetry ()
 
void OnTimeout ()
 
 P_DECLARE_TRACED_ENUM (States, NotStarted, Trying, Proceeding, Cancelling, Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded, Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted)
 
States GetState () const
 
virtual void SetTerminated (States newState)
 
- Protected Member Functions inherited from SIPTransactionBase
 SIPTransactionBase (Methods method, const OpalTransportPtr &transport, const PString &transactionID)
 
- Protected Member Functions inherited from SIP_PDU
void CalculateVia ()
 
StatusCodes InternalSend (bool canDoTCP)
 

Protected Attributes

SIPTransactionOwner *const m_owner
 
const bool m_deleteOwner
 
PTimeInterval m_retryTimeoutMin
 
PTimeInterval m_retryTimeoutMax
 
States m_state
 
unsigned m_retry
 
PoolTimer m_retryTimer
 
PoolTimer m_completionTimer
 
PSyncPoint m_completed
 
bool m_pduSizeOK
 
PString m_localInterface
 
- Protected Attributes inherited from SIP_PDU
Methods m_method
 
StatusCodes m_statusCode
 
SIPURL m_uri
 
unsigned m_versionMajor
 
unsigned m_versionMinor
 
PString m_info
 
SIPMIMEInfo m_mime
 
PString m_entityBody
 
PString m_transactionID
 
SDPSessionDescription * m_SDP
 
OpalTransportPtr m_transport
 
OpalTransportAddress m_viaAddress
 
OpalTransportAddressArray m_responseAddresses
 

Friends

class SIPConnection
 

Additional Inherited Members

- Public Types inherited from SIP_PDU
enum  Methods {
  Method_INVITE, Method_ACK, Method_OPTIONS, Method_BYE,
  Method_CANCEL, Method_REGISTER, Method_SUBSCRIBE, Method_NOTIFY,
  Method_REFER, Method_MESSAGE, Method_INFO, Method_PING,
  Method_PUBLISH, Method_PRACK, NumMethods
}
 
enum  StatusCodes {
  IllegalStatusCode, Local_TransportError, Local_BadTransportAddress, Local_Timeout,
  Local_NoCompatibleListener, Local_CannotMapScheme, Local_TransportLost, Local_KeepAlive,
  Local_NotAuthenticated, Local_IllegalDatagram, Information_Trying = 100, Information_Ringing = 180,
  Information_CallForwarded = 181, Information_Queued = 182, Information_Session_Progress = 183, Successful_OK = 200,
  Successful_Accepted = 202, Redirection_MultipleChoices = 300, Redirection_MovedPermanently = 301, Redirection_MovedTemporarily = 302,
  Redirection_UseProxy = 305, Redirection_AlternativeService = 380, Failure_BadRequest = 400, Failure_UnAuthorised = 401,
  Failure_PaymentRequired = 402, Failure_Forbidden = 403, Failure_NotFound = 404, Failure_MethodNotAllowed = 405,
  Failure_NotAcceptable = 406, Failure_ProxyAuthenticationRequired = 407, Failure_RequestTimeout = 408, Failure_Conflict = 409,
  Failure_Gone = 410, Failure_LengthRequired = 411, Failure_RequestEntityTooLarge = 413, Failure_RequestURITooLong = 414,
  Failure_UnsupportedMediaType = 415, Failure_UnsupportedURIScheme = 416, Failure_BadExtension = 420, Failure_ExtensionRequired = 421,
  Failure_IntervalTooBrief = 423, Failure_UnresolvableDestination = 476, Failure_TemporarilyUnavailable = 480, Failure_TransactionDoesNotExist = 481,
  Failure_LoopDetected = 482, Failure_TooManyHops = 483, Failure_AddressIncomplete = 484, Failure_Ambiguous = 485,
  Failure_BusyHere = 486, Failure_RequestTerminated = 487, Failure_NotAcceptableHere = 488, Failure_BadEvent = 489,
  Failure_RequestPending = 491, Failure_Undecipherable = 493, Failure_InternalServerError = 500, Failure_NotImplemented = 501,
  Failure_BadGateway = 502, Failure_ServiceUnavailable = 503, Failure_ServerTimeout = 504, Failure_SIPVersionNotSupported = 505,
  Failure_MessageTooLarge = 513, GlobalFailure_BusyEverywhere = 600, GlobalFailure_Decline = 603, GlobalFailure_DoesNotExistAnywhere = 604,
  GlobalFailure_NotAcceptable = 606, MaxStatusCode = 699
}
 

Detailed Description

Session Initiation Protocol transaction. A transaction is a stateful independent entity that provides services to a connection (Transaction User). Transactions are contained within connections. A client transaction handles sending a request and receiving its responses. A server transaction handles sending responses to a received request. In either case the SIP_PDU ancestor is the sent or received request.

Member Typedef Documentation

Constructor & Destructor Documentation

SIPTransaction::SIPTransaction ( Methods  method,
SIPTransactionOwner owner,
OpalTransport transport,
bool  deleteOwner = false,
const PString &  transactionID = PString::Empty() 
)
protected
SIPTransaction::~SIPTransaction ( )

Member Function Documentation

void SIPTransaction::Abort ( )
PBoolean SIPTransaction::Cancel ( )
virtual SIPTransaction* SIPTransaction::CreateDuplicate ( ) const
pure virtual
static PString SIPTransaction::GenerateCallID ( )
static
SIPConnection* SIPTransaction::GetConnection ( ) const
SIPEndPoint& SIPTransaction::GetEndPoint ( ) const
inline
PString SIPTransaction::GetInterface ( ) const
States SIPTransaction::GetState ( ) const
protected
bool SIPTransaction::IsCanceled ( ) const
inline

References GetState().

bool SIPTransaction::IsCompleted ( ) const
inline

References GetState().

bool SIPTransaction::IsFailed ( ) const
inline

References GetState().

bool SIPTransaction::IsInProgress ( ) const
inline

References GetState().

bool SIPTransaction::IsProceeding ( ) const
inline

References GetState().

bool SIPTransaction::IsTerminated ( ) const
inlinevirtual

Reimplemented from SIPTransactionBase.

References GetState().

bool SIPTransaction::IsTrying ( ) const
inline

References GetState().

virtual PBoolean SIPTransaction::OnCompleted ( SIP_PDU response)
virtual
virtual PBoolean SIPTransaction::OnReceivedResponse ( SIP_PDU response)
virtual

Reimplemented in SIPInvite.

void SIPTransaction::OnRetry ( )
protected
void SIPTransaction::OnTimeout ( )
protected
SIPTransaction::P_DECLARE_TRACED_ENUM ( States  ,
NotStarted  ,
Trying  ,
Proceeding  ,
Cancelling  ,
Completed  ,
Terminated_Success  ,
Terminated_Timeout  ,
Terminated_RetriesExceeded  ,
Terminated_TransportError  ,
Terminated_Cancelled  ,
Terminated_Aborted   
)
protected
virtual bool SIPTransaction::ReSend ( const SIP_PDU )
inlinevirtual

Reimplemented in SIPResponse.

bool SIPTransaction::ResendCANCEL ( )
protected
void SIPTransaction::SetParameters ( const SIPParameters params)
protected
virtual void SIPTransaction::SetTerminated ( States  newState)
protectedvirtual
bool SIPTransaction::Start ( )
void SIPTransaction::WaitForCompletion ( )

Friends And Related Function Documentation

friend class SIPConnection
friend

Field Documentation

PSyncPoint SIPTransaction::m_completed
protected
PoolTimer SIPTransaction::m_completionTimer
protected
const bool SIPTransaction::m_deleteOwner
protected
PString SIPTransaction::m_localInterface
protected
SIPTransactionOwner* const SIPTransaction::m_owner
protected

Referenced by GetEndPoint().

bool SIPTransaction::m_pduSizeOK
protected
unsigned SIPTransaction::m_retry
protected
PTimeInterval SIPTransaction::m_retryTimeoutMax
protected
PTimeInterval SIPTransaction::m_retryTimeoutMin
protected
PoolTimer SIPTransaction::m_retryTimer
protected
States SIPTransaction::m_state
protected

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