Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

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_PDU & operator= (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 SIPURL & GetURI () const
unsigned GetVersionMajor () const
unsigned GetVersionMinor () const
const PString & GetEntityBody () const
const PString & GetInfo () const
const SIPMIMEInfo & GetMIME () const
SIPMIMEInfo & GetMIME ()
BOOL HasSDP () const
SDPSessionDescription & GetSDP () 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
SDPSessionDescription * sdp

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
 

Enumeration values:
MaxSize 

enum SIP_PDU::Methods
 

Enumeration values:
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
 

Enumeration values:
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 Fri Jun 16 09:23:41 2006 for OPAL by  doxygen 1.4.2