SIP Uniform Resource Indicators (URIs)
SIP Uniform Resource Indicators (URIs)
Two URI schemes - similar to the form of an e-mail addresses: user@domain
SIP URI - introduced in RFC 2543
- example: sip:maguire@kth.se
Secure SIP URI - introduced in RFC 3261
- example: sips:maguire@kth.se
- Requires TLS over TCP as transport for security
Three types of SIP URIs:
Address of Record (AOR) (identifies a user)
- example: sip:maguire@kth.se
- Need DNS SRV records to locate SIP Servers for kth.se domain
Fully Qualified Domain Name (FQDN) (identifies a specific device)
- examples: sip:maguire@130.237.212.2 or sip:maguire@chipsphone.it.kth.se
- sip:+46-8-790-6000@kth.se; user=phone the main KTH phone number in E.164 format via a gateway; note that the visual separators in a phone number (dashes, dots, etc.) are ignored by the protocol
Globally Routable UA URIs (GRUU) (identifies an instance of a user at a given UA, for the duration of the registration of the UA to which it is bound)[RFC 5627]
Slide Notes
J. Rosenberg, “Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)”, IETF, Network Working Group, RFC 5627, October 2009, http://datatracker.ietf.org/doc/rfc5627/ Links to an external site.
Transcript
[slide123] So how do we deal with addressing the other party? Well, SIP introduces SIP uniform resource indicators, or URIs. There are two basic methods. SIP URI and secure SIP URI, so I can say SIP:Maguire @KTH.SE or SIPS:Maguire @KTH.SE. In the second case, it means I need to send it over a TLS connection. Right? Because I want to protect the security of that traffic. I have three basic types of URIs: an address of record that identifies the user, a fully qualified domain name which identifies a specific device, so for example, I could send an INVITE to the phone in my laboratory and only that phone would receive that INVITE. But if I send it to me, or you send it to me, it would go to any of the places that were registered as a location that I'm available at. There's also globally routable UA URI, and here the interesting feature is it's a given user at a particular user agent. So, for instance, if you sent a SIP invite to me, but I said, no, I can't answer that right now, ah, now I'm not busy, I want to call you back, do I want to send the invite to all the possible places you are? No, I want to send it to which particular user agent you were using when you just tried to send it to me. For that I used this GRUU -- as that defines both the user and the device.