SIP & SIPS Uniform Resource Indictor (URI)

.

Definition

SIP or SIPS URI is a logical address. Generally it is not tight to a single physical device. SIP user can register itself and make calls from any device connected to the internet and has SIP client installed and configured. SIP/SIPS URI identifies a communication resource (e.g. user of an online service, a group such as “sales” or “helpdesk” in an organization , mailbox on a messaging system, PSTN number at a gateway service). SIPS is used when SIP messages are protected by TLS across each hop (the communication resource is contacted securely).

Due to the mobility of SIP/SIPS URI, the user needs to periodically register its physical location with its SIP proxy/registrar (sending SIP REGISTER Request periodically). So the SIP/SIPS URI is mapped to its physical location (FQDN/IP Address) after registration. The physical location is kept in Contact header of the SIP REGISTER Request. The mapping between SIP/SIPS URI and the physical location is stored in the database of the SIP router and used when the router wants to forward a call to a user or group.

SIP URIs are used in “To”, “From”, “Contact” SIP Message’s headers, as well as in Request-URI. The general form of SIP URI is sip:user:password@host:port;uri-parameters?headers. The same format is for SIPS but the scheme is SIPS instead of SIP. The userinfo “user:password”  is optional (for example it is not exist in the URI of the proxy. e.g. sip:proxy.mydomain.com). If the @ sign is present , the user field MUST NOT be empty. The user field can be a telephone number. The password field is not recommended because of security reason (password in clear text). The host portion “host:port” represent where the request has to be sent (e.g. proxy/registrar). The host can be FQDN (recommended) or IP address.

SIP URI Parameters

 URI parameters comes after the portion “host:port” and are separated by semicolon “;“. The parameters are: “cause” RFC 4458, “transport” RFC 3261, “comp”, RFC 3486, “content-type”, RFC 4240, “delay”, RFC 4240, “duration” ,RFC 4240, “local”, RFC 4240, “param[n]”, RFC 4240, “play”, RFC 4240, “repeat”, RFC 4240, “gr” RFC 5627, “lr” RFC 3261, “maddr”, RFC 3261, “method”, RFC 3261, “ob” RFC 5626, “sigcomp-id”, RFC 5049, “target”, RFC 4240,4458, “ttl”, RFC 3261, “user”, RFC 3261, “voicexml”, RFC 4240.

Examples

sip:binan@mydomain.org;transport=tcp  #transport is a parameter

sip:alice@atlanta.com;maddr=239.255.255.1;ttl=15

SIP URI Headers

SIP URI Headers comes after “?“. The format is Header Name = Header Value.

SIP & SIPS URI Examples taken from RFC 3261

 sip:alice@atlanta.com
 sip:alice:secretword@atlanta.com;transport=tcp
 sips:alice@atlanta.com?subject=project%20x&priority=urgent
 sip:+1-212-555-1212:1234@gateway.com;user=phone
 sips:1212@gateway.com
 sip:alice@192.0.2.4
 sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com
 sip:alice;day=tuesday@atlanta.com

Comparison between SIP/SIPS URI is case sensitive for the portion “user:password”. Characters other than reserved, can be written in HEX. Example: These URIs are equivalent:

sip:%61lice@atlanta.com;transport=TCP
sip:alice@AtLanTa.CoM;Transport=tcp

 Converting tel URL to SIP URI

The tel URL is specified in RFC 2806. The portion telephone-subscriber of the tel URL is placed into userinfo part of the SIP/SIPS URI. The telephone-subscriber can be local or global phone number.

Thus, tel:+358-555-1234567;postd=pp22

becomes

sip:+358-555-1234567;postd=pp22@foo.com;user=phone


 More Information


 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s