Class JsSIP.URI

An instance of the JsSIP.URI class represents a SIP URI and provides a set of attributes and methods to retrive and set the different parts of a URI.

It provides a way to represent the URI in its full form (including parameters and headers) and in the AoR form.

The URI permits itself to be clonned so a second URI can be formed from itself.

Instantiation

JsSIP.URI(scheme="sip", user=null, host, port=null, parameters=null, headers=null)

Instantiation of this class will raise an exception if no host value is passed.

scheme
Optional String indicating the uri scheme. Default value is is sip
user
Optional String indicating the user name.
host
String representing the host. It can be an IP address or a hostname.
parameters
Optional Object with property values represented in String form. For empty parameters, a null value must be indicated.
headers
Optional Object with property values represented in String or Array of Strings form.

Throws

Example

var parameters = {
  param_name: 'param_value',
  valueless_param: null
}

var headers = {
  header_name: 'header_value',
  multi_header: ['multi_header_value1','multi_header_value2']
}
var uri = new JsSIP.URI('sip', 'alice', 'atlanta.com', 5060, parameters, headers)

uri.toAor() // Returns "sip:alice@atlanta.com"
uri.toString() // Returns "sip:alice@atlanta.com:5060;param_name=param_value;valueless_param?Header-Name=header_value&Multi-Header=multi_header_value1&Multi-Header=multi_header_value2"

Instance Attributes

scheme

Set or get a String indicating the URI scheme.

Example

uri.scheme = 'sip';
uri.scheme // Returns 'sip'

uri.scheme = 'sIP';
uri.scheme // Returns 'sip'

user

Set or get a String indicating the URI user.

Example

uri.user = 'alice';
uri.user // Returns 'alice'

uri.user = 'Alice';
uri.user // Returns 'Alice'

uri.user = 'j@s0n'
uri.toAor() // Returns 'sip:j%40s0n@atlanta.com'

host

Set or get a String indicating the URI host.

uri.host = 'atlanta.com';
uri.host // Returns 'atlanta.com'

uri.host = 'AtLATta.cOm';
uri.host // Returns 'atlanta.com'

port

Set or get a Number indicating the URI port.

Example

uri.port = 5060;
uri.port // Returns 5060

uri.port = '5060';
uri.port // Returns 5060

Instance Methods

setParam(key, value=null)

Creates or replaces the given URI parameter with given value.

Parameters

key
String indicating the parameter name.
value
Optional String indicating the parameter value.

Example

uri.setParam('param_name', 'param_value');

getParam(key)

Gets the value of the given URI parameter. Returns undefined if the parameter does not exist in the paramter set.

Parameters

key
String indicating the parameter name.

Example

uri.getParam('param_name'); // Returns 'param_value'

hasParam(key)

Verifies the existence of the given URI parameter. Returns true if the parameter exists, false otherwise.

Parameters

key
String indicating the parameter name.

Example

uri.hasParam('param_name'); // Returns true

deleteParam(key)

Deletes the given parameter from the URI.

Parameters

key
String indicating the parameter name.

Example

uri.deleteParam('param_name');

clearParams()

Removes all the URI parameters.

setHeader(key, value)

Creates or replaces the given URI header with given value.

Parameters

key
String indicating the header name.
value
String or Array indicating the header value.

Example

uri.setHeader('header_name','header_value');
uri.setHeader('header_name',['header_value1','header_value2']);

getHeader(key)

Gets the value of the given URI header. Returns an Array with the header value/s for the given header name or undefined if the header does not exist in the header set.

Parameters

key
String indicating the header name.

Example

uri.setHeader('header_name',['header_value1','header_value2']);
uri.getHeader('header_name'); // Returns ['header_value1','header_value2']

uri.setHeader('header_name','header_value');
uri.getHeader('header_name'); // Returns ['header_value']

hasHeader(key)

Verifies the existence of the given URI header. Returns true if the header exists, false otherwise.

Parameters

key
String indicating the header name.

Example

uri.setHeader('header_name','header_value');
uri.hasHeader('header_name'); // Returns true

deleteHeader(key)

Deletes the given header from the URI.

Parameters

key
String indicating the header name.

Example

uri.delteHeader('header_name');

clearHeaders()

Removes all URI headers.

Example

uri.clearHeaders();

clone()

Returns a cloned JsSIP.URI instance of the the URI.

cloned_uri = uri.clone();
cloned_uri === uri // Returns false

toString()

Returns a String representing the URI.

Characters that can’t appear unescaped are escaped as stated in the BNF grammar of the RFC 3261.

uri.toString(); // Returns "sip:alice@atlanta.com:5060?header_name=header_value1&header_name=header_value2"

toAor()

Returns a String representing the AoR of the URI.

Characters that can’t appear unescaped are escaped as stated in the BNF grammar of the RFC 3261.

uri.toAor(); // Returns "sip:alice@atlanta.com"

uri.user = 'j%40s0n'
uri.toAor(): // Returns "sip:j%40s0n@atlanta.com"

Module Functions

parse(uri)

Parses the given String against the SIP URI grammar rule. Returns a JsSIP.URI instance if parsing success, undefined otherwise.

Parameters

uri
String representing a SIP URI.

Example

var uri = JsSIP.URI.parse('sip:alice@atlanta.com');