SIP_PDU Class Reference

#include <sippdu.h>

Inheritance diagram for SIP_PDU:

SIPAck SIPTransaction SIPInvite SIPMessage SIPMWISubscribe SIPOptions SIPRefer SIPReferNotify SIPRegister List of all members.

Public Types

enum  Methods {
  Method_INVITE, Method_ACK, Method_OPTIONS, Method_BYE,
  Method_CANCEL, Method_REGISTER, Method_SUBSCRIBE, Method_NOTIFY,
  Method_REFER, Method_MESSAGE, NumMethods
}
enum  StatusCodes {
  IllegalStatusCode, 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
}
enum  { MaxSize = 65535 }

Public Member Functions

 SIP_PDU ()
 SIP_PDU (Methods method, const SIPURL &dest, const PString &to, const PString &from, const PString &callID, unsigned cseq, const OpalTransportAddress &via)
 SIP_PDU (Methods method, SIPConnection &connection, const OpalTransport &transport)
 SIP_PDU (const SIP_PDU &request, StatusCodes code, const char *contact=NULL, const char *extra=NULL)
 SIP_PDU (const SIP_PDU &)
SIP_PDUoperator= (const SIP_PDU &)
 ~SIP_PDU ()
void PrintOn (ostream &strm) const
void Construct (Methods method)
void Construct (Methods method, const SIPURL &dest, const PString &to, const PString &from, const PString &callID, unsigned cseq, const OpalTransportAddress &via)
void Construct (Methods method, SIPConnection &connection, const OpalTransport &transport)
BOOL SetRoute (SIPConnection &connection)
void SetAllow (void)
void AdjustVia (OpalTransport &transport)
OpalTransportAddress GetViaAddress (OpalEndPoint &)
OpalTransportAddress GetSendAddress (SIPConnection &)
BOOL Read (OpalTransport &transport)
BOOL Write (OpalTransport &transport)
PString GetTransactionID () const
Methods GetMethod () const
StatusCodes GetStatusCode () const
const SIPURLGetURI () const
unsigned GetVersionMajor () const
unsigned GetVersionMinor () const
const PString & GetEntityBody () const
const PString & GetInfo () const
const SIPMIMEInfoGetMIME () const
SIPMIMEInfoGetMIME ()
BOOL HasSDP () const
SDPSessionDescriptionGetSDP () const
void SetSDP (SDPSessionDescription *s)
void SetSDP (const SDPSessionDescription &s)

Static Public Member Functions

static const char * GetStatusCodeDescription (int code)

Protected Attributes

Methods method
StatusCodes statusCode
SIPURL uri
unsigned versionMajor
unsigned versionMinor
PString info
SIPMIMEInfo mime
PString entityBody
SDPSessionDescriptionsdp

Detailed Description

Session Initiation Protocol message. Each message contains a header, MIME lines and possibly SDP. Class provides methods for reading from and writing to transport.


Member Enumeration Documentation

anonymous enum
 

Enumerator:
MaxSize 

enum SIP_PDU::Methods
 

Enumerator:
Method_INVITE 
Method_ACK 
Method_OPTIONS 
Method_BYE 
Method_CANCEL 
Method_REGISTER 
Method_SUBSCRIBE 
Method_NOTIFY 
Method_REFER 
Method_MESSAGE 
NumMethods 

enum SIP_PDU::StatusCodes
 

Enumerator:
IllegalStatusCode 
Information_Trying 
Information_Ringing 
Information_CallForwarded 
Information_Queued 
Information_Session_Progress 
Successful_OK 
Successful_Accepted 
Redirection_MultipleChoices 
Redirection_MovedPermanently 
Redirection_MovedTemporarily 
Redirection_UseProxy 
Redirection_AlternativeService 
Failure_BadRequest 
Failure_UnAuthorised 
Failure_PaymentRequired 
Failure_Forbidden 
Failure_NotFound 
Failure_MethodNotAllowed 
Failure_NotAcceptable 
Failure_ProxyAuthenticationRequired 
Failure_RequestTimeout 
Failure_Conflict 
Failure_Gone 
Failure_LengthRequired 
Failure_RequestEntityTooLarge 
Failure_RequestURITooLong 
Failure_UnsupportedMediaType 
Failure_UnsupportedURIScheme 
Failure_BadExtension 
Failure_ExtensionRequired 
Failure_IntervalTooBrief 
Failure_TemporarilyUnavailable 
Failure_TransactionDoesNotExist 
Failure_LoopDetected 
Failure_TooManyHops 
Failure_AddressIncomplete 
Failure_Ambiguous 
Failure_BusyHere 
Failure_RequestTerminated 
Failure_NotAcceptableHere 
Failure_BadEvent 
Failure_RequestPending 
Failure_Undecipherable 
Failure_InternalServerError 
Failure_NotImplemented 
Failure_BadGateway 
Failure_ServiceUnavailable 
Failure_ServerTimeout 
Failure_SIPVersionNotSupported 
Failure_MessageTooLarge 
GlobalFailure_BusyEverywhere 
GlobalFailure_Decline 
GlobalFailure_DoesNotExistAnywhere 
GlobalFailure_NotAcceptable 
MaxStatusCode 


Constructor & Destructor Documentation

SIP_PDU::SIP_PDU  ) 
 

SIP_PDU::SIP_PDU Methods  method,
const SIPURL dest,
const PString &  to,
const PString &  from,
const PString &  callID,
unsigned  cseq,
const OpalTransportAddress via
 

Construct a Request message

SIP_PDU::SIP_PDU Methods  method,
SIPConnection connection,
const OpalTransport transport
 

Construct a Request message for requests in a dialog

SIP_PDU::SIP_PDU const SIP_PDU request,
StatusCodes  code,
const char *  contact = NULL,
const char *  extra = NULL
 

Construct a Response message extra is passed as message body

SIP_PDU::SIP_PDU const SIP_PDU  ) 
 

SIP_PDU::~SIP_PDU  ) 
 


Member Function Documentation

void SIP_PDU::AdjustVia OpalTransport transport  ) 
 

Update the VIA field following RFC3261, 18.2.1 and RFC3581.

void SIP_PDU::Construct Methods  method,
SIPConnection connection,
const OpalTransport transport
 

void SIP_PDU::Construct Methods  method,
const SIPURL dest,
const PString &  to,
const PString &  from,
const PString &  callID,
unsigned  cseq,
const OpalTransportAddress via
 

void SIP_PDU::Construct Methods  method  ) 
 

const PString& SIP_PDU::GetEntityBody  )  const [inline]
 

const PString& SIP_PDU::GetInfo  )  const [inline]
 

Methods SIP_PDU::GetMethod  )  const [inline]
 

SIPMIMEInfo& SIP_PDU::GetMIME  )  [inline]
 

const SIPMIMEInfo& SIP_PDU::GetMIME  )  const [inline]
 

SDPSessionDescription& SIP_PDU::GetSDP  )  const [inline]
 

OpalTransportAddress SIP_PDU::GetSendAddress SIPConnection  ) 
 

Return the address to which the request PDU should be sent according to the RFC, for a request in a dialog.

StatusCodes SIP_PDU::GetStatusCode  )  const [inline]
 

static const char* SIP_PDU::GetStatusCodeDescription int  code  )  [static]
 

PString SIP_PDU::GetTransactionID  )  const
 

const SIPURL& SIP_PDU::GetURI  )  const [inline]
 

unsigned SIP_PDU::GetVersionMajor  )  const [inline]
 

unsigned SIP_PDU::GetVersionMinor  )  const [inline]
 

OpalTransportAddress SIP_PDU::GetViaAddress OpalEndPoint  ) 
 

Return the address from the via field. That address should be used to send responses to incoming PDUs.

BOOL SIP_PDU::HasSDP  )  const [inline]
 

SIP_PDU& SIP_PDU::operator= const SIP_PDU  ) 
 

void SIP_PDU::PrintOn ostream &  strm  )  const
 

BOOL SIP_PDU::Read OpalTransport transport  ) 
 

Read PDU from the specified transport.

void SIP_PDU::SetAllow void   ) 
 

Set mime allow field to all supported methods.

BOOL SIP_PDU::SetRoute SIPConnection connection  ) 
 

Add and populate Route header if connection has routeSet. If first route is strict, exchange with URI. Returns TRUE if conection has a routeSet.

void SIP_PDU::SetSDP const SDPSessionDescription s  )  [inline]
 

void SIP_PDU::SetSDP SDPSessionDescription s  )  [inline]
 

BOOL SIP_PDU::Write OpalTransport transport  ) 
 

Write the PDU to the transport.


Member Data Documentation

PString SIP_PDU::entityBody [protected]
 

PString SIP_PDU::info [protected]
 

Methods SIP_PDU::method [protected]
 

SIPMIMEInfo SIP_PDU::mime [protected]
 

SDPSessionDescription* SIP_PDU::sdp [protected]
 

StatusCodes SIP_PDU::statusCode [protected]
 

SIPURL SIP_PDU::uri [protected]
 

unsigned SIP_PDU::versionMajor [protected]
 

unsigned SIP_PDU::versionMinor [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Mar 14 22:43:42 2006 for OPAL by  doxygen 1.4.6