OPAL  Version 3.10.10
SIPTransaction Class Referenceabstract

#include <sippdu.h>

Inheritance diagram for SIPTransaction:
SIP_PDU SIPBye SIPInfo SIPInvite SIPMessage SIPNotify SIPOptions SIPPing SIPPrack SIPPublish SIPRefer SIPReferNotify SIPRegister SIPResponse SIPSubscribe

Public Member Functions

 SIPTransaction (Methods method, SIPEndPoint &endpoint, OpalTransport &transport)
 
 SIPTransaction (Methods method, SIPConnection &connection)
 
 ~SIPTransaction ()
 
virtual SIPTransactionCreateDuplicate () const =0
 
PBoolean 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)
 
OpalTransportGetTransport () const
 
SIPConnectionGetConnection () const
 
PString GetInterface () const
 
void SetInterface (const PString &localIf)
 
- Public Member Functions inherited from SIP_PDU
 SIP_PDU (Methods method=SIP_PDU::NumMethods)
 
 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, const PString &via)
 
void InitialiseHeaders (SIPDialogContext &dialog, const PString &via=PString::Empty(), unsigned cseq=0)
 
void InitialiseHeaders (SIPConnection &connection, const OpalTransport &transport, unsigned cseq=0)
 
void InitialiseHeaders (const SIP_PDU &request)
 
bool SetRoute (const SIPURLList &routeSet)
 
bool SetRoute (const SIPURL &proxy)
 
void SetAllow (unsigned bitmask)
 
void AdjustVia (OpalTransport &transport)
 
PString CreateVia (SIPEndPoint &endpoint, const OpalTransport &transport)
 
SIP_PDU::StatusCodes Read (OpalTransport &transport)
 
PBoolean Write (OpalTransport &transport, const OpalTransportAddress &remoteAddress=OpalTransportAddress(), const PString &localInterface=PString::Empty())
 
bool SendResponse (OpalTransport &transport, StatusCodes code, SIPEndPoint *endpoint=NULL) const
 
bool SendResponse (OpalTransport &transport, SIP_PDU &response, SIPEndPoint *endpoint=NULL) const
 
PString Build ()
 
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 ()
 
SDPSessionDescriptionGetSDP (const OpalMediaFormatList &masterList)
 
void SetSDP (SDPSessionDescription *sdp)
 

Static Public Member Functions

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

Protected Types

enum  States {
  NotStarted, Trying, Proceeding, Cancelling,
  Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded,
  Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted, NumStates
}
 

Protected Member Functions

bool SendPDU (SIP_PDU &pdu)
 
bool ResendCANCEL ()
 
void SetParameters (const SIPParameters &params)
 
 PDECLARE_NOTIFIER (PTimer, SIPTransaction, OnRetry)
 
 PDECLARE_NOTIFIER (PTimer, SIPTransaction, OnTimeout)
 
virtual void SetTerminated (States newState)
 

Protected Attributes

SIPEndPointm_endpoint
 
OpalTransportm_transport
 
PSafePtr< SIPConnectionm_connection
 
PTimeInterval m_retryTimeoutMin
 
PTimeInterval m_retryTimeoutMax
 
States m_state
 
unsigned m_retry
 
PTimer m_retryTimer
 
PTimer m_completionTimer
 
PSyncPoint m_completed
 
PString m_localInterface
 
OpalTransportAddress m_remoteAddress
 
- 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
 
SDPSessionDescriptionm_SDP
 
PString m_transactionID
 

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,
  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_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 Enumeration Documentation

◆ States

enum SIPTransaction::States
protected
Enumerator
NotStarted 
Trying 
Proceeding 
Cancelling 
Completed 
Terminated_Success 
Terminated_Timeout 
Terminated_RetriesExceeded 
Terminated_TransportError 
Terminated_Cancelled 
Terminated_Aborted 
NumStates 

Constructor & Destructor Documentation

◆ SIPTransaction() [1/2]

SIPTransaction::SIPTransaction ( Methods  method,
SIPEndPoint endpoint,
OpalTransport transport 
)

◆ SIPTransaction() [2/2]

SIPTransaction::SIPTransaction ( Methods  method,
SIPConnection connection 
)

Construct a transaction for requests in a dialog. The transport is used to determine the local address

◆ ~SIPTransaction()

SIPTransaction::~SIPTransaction ( )

Member Function Documentation

◆ Abort()

void SIPTransaction::Abort ( )

◆ Cancel()

PBoolean SIPTransaction::Cancel ( )

◆ CreateDuplicate()

virtual SIPTransaction* SIPTransaction::CreateDuplicate ( ) const
pure virtual

◆ GenerateCallID()

static PString SIPTransaction::GenerateCallID ( )
static

◆ GetConnection()

SIPConnection* SIPTransaction::GetConnection ( ) const
inline

◆ GetInterface()

PString SIPTransaction::GetInterface ( ) const
inline

◆ GetTransport()

OpalTransport& SIPTransaction::GetTransport ( ) const
inline

◆ IsCanceled()

bool SIPTransaction::IsCanceled ( ) const
inline

◆ IsCompleted()

bool SIPTransaction::IsCompleted ( ) const
inline

◆ IsFailed()

bool SIPTransaction::IsFailed ( ) const
inline

◆ IsInProgress()

bool SIPTransaction::IsInProgress ( ) const
inline

◆ IsProceeding()

bool SIPTransaction::IsProceeding ( ) const
inline

◆ IsTerminated()

bool SIPTransaction::IsTerminated ( ) const
inline

◆ IsTrying()

bool SIPTransaction::IsTrying ( ) const
inline

◆ OnCompleted()

virtual PBoolean SIPTransaction::OnCompleted ( SIP_PDU response)
virtual

◆ OnReceivedResponse()

virtual PBoolean SIPTransaction::OnReceivedResponse ( SIP_PDU response)
virtual

Reimplemented in SIPInvite.

◆ PDECLARE_NOTIFIER() [1/2]

SIPTransaction::PDECLARE_NOTIFIER ( PTimer  ,
SIPTransaction  ,
OnRetry   
)
protected

◆ PDECLARE_NOTIFIER() [2/2]

SIPTransaction::PDECLARE_NOTIFIER ( PTimer  ,
SIPTransaction  ,
OnTimeout   
)
protected

◆ ResendCANCEL()

bool SIPTransaction::ResendCANCEL ( )
protected

◆ SendPDU()

bool SIPTransaction::SendPDU ( SIP_PDU pdu)
protected

◆ SetInterface()

void SIPTransaction::SetInterface ( const PString &  localIf)
inline

◆ SetParameters()

void SIPTransaction::SetParameters ( const SIPParameters params)
protected

◆ SetTerminated()

virtual void SIPTransaction::SetTerminated ( States  newState)
protectedvirtual

◆ Start()

PBoolean SIPTransaction::Start ( )

◆ WaitForCompletion()

void SIPTransaction::WaitForCompletion ( )

Field Documentation

◆ m_completed

PSyncPoint SIPTransaction::m_completed
protected

◆ m_completionTimer

PTimer SIPTransaction::m_completionTimer
protected

◆ m_connection

PSafePtr<SIPConnection> SIPTransaction::m_connection
protected

◆ m_endpoint

SIPEndPoint& SIPTransaction::m_endpoint
protected

◆ m_localInterface

PString SIPTransaction::m_localInterface
protected

◆ m_remoteAddress

OpalTransportAddress SIPTransaction::m_remoteAddress
protected

◆ m_retry

unsigned SIPTransaction::m_retry
protected

◆ m_retryTimeoutMax

PTimeInterval SIPTransaction::m_retryTimeoutMax
protected

◆ m_retryTimeoutMin

PTimeInterval SIPTransaction::m_retryTimeoutMin
protected

◆ m_retryTimer

PTimer SIPTransaction::m_retryTimer
protected

◆ m_state

States SIPTransaction::m_state
protected

◆ m_transport

OpalTransport& SIPTransaction::m_transport
protected

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