SIPURL Class Reference

`#include <sippdu.h>`

Inheritance diagram for SIPURL:

## Public Types

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

## Public Member Functions

| SIPURL ()
| SIPURL (const PURL &url)
SIPURL & | operator= (const PURL &url)
| SIPURL (const char *cstr, const char *defaultScheme=NULL)
SIPURL & | operator= (const char *cstr)
| SIPURL (const PString &str, const char *defaultScheme=NULL)
SIPURL & | operator= (const PString &str)
| SIPURL (const PString &name, const OpalTransportAddress &address, WORD listenerPort=0)
| SIPURL (const OpalTransportAddress &address, WORD listenerPort=0)
SIPURL & | operator= (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. More...
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. More...

## Static Public Member Functions

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

## 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

enum SIPURL::UsageContext

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

  cstr | C string representation of the URL.
  defaultScheme | Default scheme for URL

SIPURL::SIPURL | ( | const PString & | str,
|  | const char * | defaultScheme = `NULL`
| ) |  |

str goes straight to Parse()

Parameters

  str | String representation of the URL.
  defaultScheme | Default 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.

Returns
  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

  entry | Entry 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

  obj | Object 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
| ) |  |

inline protected virtual

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

  context | Context 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:

- sippdu.h