SIPRegister Class Reference

`#include <sippdu.h>`

Inheritance diagram for SIPRegister:

## Data Structures

struct | Params
| Registrar parameters. More...

## Public Types

enum | CompatibilityModes { e_FullyCompliant, e_CannotRegisterMultipleContacts, e_CannotRegisterPrivateContacts, e_HasApplicationLayerGateway }
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
}

## Public Member Functions

| SIPRegister (SIPEndPoint &endpoint, OpalTransport &transport, const PString &callId, unsigned cseq, const Params &params)
virtual SIPTransaction * | CreateDuplicate () const
Public Member Functions inherited from SIPTransaction
| SIPTransaction (Methods method, SIPEndPoint &endpoint, OpalTransport &transport)
| SIPTransaction (Methods method, SIPConnection &connection)
| ~SIPTransaction ()
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)
OpalTransport & | GetTransport () const
SIPConnection * | GetConnection () 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_PDU & | operator= (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 SIPURL & | GetURI () 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 SIPMIMEInfo & | GetMIME () const
SIPMIMEInfo & | GetMIME ()
SDPSessionDescription * | GetSDP (const OpalMediaFormatList &masterList)
void | SetSDP (SDPSessionDescription *sdp)

## Additional Inherited Members

Static Public Member Functions inherited from SIPTransaction
static PString | GenerateCallID ()
Static Public Member Functions inherited from SIP_PDU
static const char * | GetStatusCodeDescription (int code)
Protected Types inherited from SIPTransaction
enum | States { NotStarted, Trying, Proceeding, Cancelling, Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded, Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted, NumStates }
Protected Member Functions inherited from SIPTransaction
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 inherited from SIPTransaction
SIPEndPoint & | m_endpoint
OpalTransport & | m_transport
PSafePtr< SIPConnection > | m_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
SDPSessionDescription * | m_SDP
PString | m_transactionID

## Member Enumeration Documentation

enum SIPRegister::CompatibilityModes

Enumerator
e_FullyCompliant | Registrar is fully compliant, we will register all listeners of all types (e.g. sip, sips etc) in the Contact field.
e_CannotRegisterMultipleContacts | Registrar refuses to register more than one contact field. Correct behaviour is to return a contact with the fields it can accept in the 200 OK
e_CannotRegisterPrivateContacts | Registrar refuses to register any RFC contact field. Correct behaviour is to return a contact with the fields it can accept in the 200 OK
e_HasApplicationLayerGateway | Router has Application Layer Gateway code that is doing address transations, so we do not try to do it ourselves as well or it goes horribly wrong.

## Constructor & Destructor Documentation

SIPRegister::SIPRegister | ( | SIPEndPoint & | endpoint,
|  | OpalTransport & | transport,
|  | const PString & | callId,
|  | unsigned | cseq,
|  | const Params & | params
| ) |  |

## Member Function Documentation

virtual SIPTransaction* SIPRegister::CreateDuplicate | ( |  | ) | const

virtual

Implements SIPTransaction.

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

- sippdu.h