OPAL  Version 3.14.3
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)
 
SIPEndPointGetEndPoint () const
 
SIPConnectionGetConnection () const
 
PString GetInterface () const
 
- Public Member Functions inherited from SIPTransactionBase
 SIPTransactionBase (const PString &transactionID)
 
Comparison Compare (const PObject &other) const
 
- 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 (SIPEndPoint &endpoint, const OpalMediaFormatList &masterList)
 
bool IsContentSDP (bool emptyOK=false) const
 
const PString & GetExternalTransportAddress () const
 
OpalTransportPtr GetTransport () const
 
void SetTransport (const OpalTransportPtr &transport)
 

Static Public Member Functions

static PString GenerateCallID ()
 

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)
 
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

SIPTransactionOwnerm_owner
 
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
 

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, 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
inline

References m_localInterface.

bool SIPTransaction::IsCanceled ( ) const
inline

References m_state.

bool SIPTransaction::IsCompleted ( ) const
inline

References m_state.

bool SIPTransaction::IsFailed ( ) const
inline

References m_state.

bool SIPTransaction::IsInProgress ( ) const
inline

References m_state.

bool SIPTransaction::IsProceeding ( ) const
inline

References m_state.

bool SIPTransaction::IsTerminated ( ) const
inlinevirtual

Reimplemented from SIPTransactionBase.

References m_state.

bool SIPTransaction::IsTrying ( ) const
inline

References m_state.

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
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
bool SIPTransaction::m_deleteOwner
protected
PString SIPTransaction::m_localInterface
protected

Referenced by GetInterface().

SIPTransactionOwner* 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: