OPAL  Version 3.10.4
SIPURL Class Reference

#include <sippdu.h>

Public Types

enum  UsageContext {
  ExternalURI, RequestURI, ToURI, FromURI,
  RouteURI, RedirectURI, ContactURI, RegContactURI,
  RegisterURI
}

Public Member Functions

 SIPURL ()
 SIPURL (const PURL &url)
SIPURLoperator= (const PURL &url)
 SIPURL (const char *cstr, const char *defaultScheme=NULL)
SIPURLoperator= (const char *cstr)
 SIPURL (const PString &str, const char *defaultScheme=NULL)
SIPURLoperator= (const PString &str)
 SIPURL (const PString &name, const OpalTransportAddress &address, WORD listenerPort=0)
 SIPURL (const OpalTransportAddress &address, WORD listenerPort=0)
SIPURLoperator= (const OpalTransportAddress &address)
 SIPURL (const SIPMIMEInfo &mime, const char *name)
virtual Comparison Compare (const PObject &obj) const
PString AsQuotedString () const
PString GetDisplayName (PBoolean useDefault=true) const
void SetDisplayName (const PString &str)
const PStringOptions & GetFieldParameters () const
 Return string options in field parameters.
PStringOptions & GetFieldParameters ()
OpalTransportAddress GetHostAddress () const
void SetHostAddress (const OpalTransportAddress &addr)
void Sanitise (UsageContext context)
PBoolean AdjustToDNS (PINDEX entry=0)
void SetTag (const PString &tag=PString::Empty(), bool force=false)
 Set a tag with a new unique ID.

Static Public Member Functions

static PString GenerateTag ()
 Generate a unique string suitable as a dialog tag.

Protected Member Functions

void ParseAsAddress (const PString &name, const OpalTransportAddress &_address, WORD listenerPort=0)
virtual PBoolean InternalParse (const char *cstr, const char *defaultScheme)
bool ReallyInternalParse (bool fromField, const char *cstr, const char *defaultScheme)

Protected Attributes

PString m_displayName
PStringOptions m_fieldParameters

Detailed Description

This class extends PURL to include displayname, optional "<>" delimiters and extended parameters - like tag. It may be used for From:, To: and Contact: lines.


Member Enumeration Documentation

Enumerator:
ExternalURI 

URI used anywhere outside of protocol.

RequestURI 

Request-URI (after the INVITE)

ToURI 

To header field.

FromURI 

From header field.

RouteURI 

Record-Route header field.

RedirectURI 

Redirect Contact header field.

ContactURI 

General Contact header field.

RegContactURI 

Registration Contact header field.

RegisterURI 

URI on REGISTER request line.


Constructor & Destructor Documentation

SIPURL::SIPURL ( )
SIPURL::SIPURL ( const PURL &  url)
inline
SIPURL::SIPURL ( const char *  cstr,
const char *  defaultScheme = NULL 
)

str goes straight to Parse()

Parameters:
cstrC string representation of the URL.
defaultSchemeDefault scheme for URL
SIPURL::SIPURL ( const PString &  str,
const char *  defaultScheme = NULL 
)

str goes straight to Parse()

Parameters:
strString representation of the URL.
defaultSchemeDefault scheme for URL
SIPURL::SIPURL ( const PString &  name,
const OpalTransportAddress address,
WORD  listenerPort = 0 
)

If name does not start with 'sip' then construct URI in the form


          sip:name@host:port;transport=transport
        

where host comes from address, port is listenerPort or port from address if that was 0 transport is udp unless address specified tcp Send name starting with 'sip' or constructed URI to Parse()

SIPURL::SIPURL ( const OpalTransportAddress address,
WORD  listenerPort = 0 
)
SIPURL::SIPURL ( const SIPMIMEInfo mime,
const char *  name 
)

Member Function Documentation

PBoolean SIPURL::AdjustToDNS ( PINDEX  entry = 0)

This will adjust the current URL according to RFC3263, using DNS SRV records.

   @return FALSE if DNS is available but entry is larger than last SRV record entry,
           TRUE if DNS lookup fails or no DNS is available
Parameters:
entryEntry in the SRV record to adjust to
PString SIPURL::AsQuotedString ( ) const

Returns complete SIPURL as one string, including displayname (in quotes) and address in angle brackets.

virtual Comparison SIPURL::Compare ( const PObject &  obj) const
virtual

Compare the two SIPURLs and return their relative rank. Note that does an intelligent comparison according to the rules in RFC3261 Section 19.1.4.

Returns:
LessThan, EqualTo or GreaterThan according to the relative rank of the objects.
Parameters:
objObject to compare against.
static PString SIPURL::GenerateTag ( )
static

Generate a unique string suitable as a dialog tag.

PString SIPURL::GetDisplayName ( PBoolean  useDefault = true) const

Returns display name only

const PStringOptions& SIPURL::GetFieldParameters ( ) const
inline

Return string options in field parameters.

References m_fieldParameters.

PStringOptions& SIPURL::GetFieldParameters ( )
inline

References m_fieldParameters.

OpalTransportAddress SIPURL::GetHostAddress ( ) const

Get the host and port as a transport address.

virtual PBoolean SIPURL::InternalParse ( const char *  cstr,
const char *  defaultScheme 
)
inlineprotectedvirtual

References ReallyInternalParse().

SIPURL& SIPURL::operator= ( const PURL &  url)
inline
SIPURL& SIPURL::operator= ( const char *  cstr)
inline
SIPURL& SIPURL::operator= ( const PString &  str)
inline
SIPURL& SIPURL::operator= ( const OpalTransportAddress address)
void SIPURL::ParseAsAddress ( const PString &  name,
const OpalTransportAddress _address,
WORD  listenerPort = 0 
)
protected
bool SIPURL::ReallyInternalParse ( bool  fromField,
const char *  cstr,
const char *  defaultScheme 
)
protected

Referenced by InternalParse().

void SIPURL::Sanitise ( UsageContext  context)

Removes tag parm & query vars and recalculates urlString (scheme, user, password, host, port & URI parms (like transport)) which are not allowed in the context specified, e.g. Request-URI etc According to RFC3261, 19.1.1 Table 1

Parameters:
contextContext for URI
void SIPURL::SetDisplayName ( const PString &  str)
inline

References m_displayName.

void SIPURL::SetHostAddress ( const OpalTransportAddress addr)

Set the host and port as a transport address.

void SIPURL::SetTag ( const PString &  tag = PString::Empty(),
bool  force = false 
)

Set a tag with a new unique ID.


Field Documentation

PString SIPURL::m_displayName
protected

Referenced by SetDisplayName().

PStringOptions SIPURL::m_fieldParameters
protected

Referenced by GetFieldParameters().


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