1© 2004, Cisco Systems, Inc. All rights reserved.VVT-A01 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
SIP Location Conveyance
draft-ietf-sip-location-conveyance-04.txt
James Polk
Brian Rosen
Oct 5th/6th, 2006
Needs changes to be made!!!!
2© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Location Conveyance
• Based on Presence Information Data Format (PIDF) for Location Objects (LO) as defined in the Geopriv Working Group of IETF
– simply PIDF-LO
• PIDF-LO uses GML (Geography Markup Language from OpenGIS)
• 2 Location Representations are specified:– Civil Addressing (basically Post Office addresses which are internationalized)
– Coordinate or Geodetic (Lat/Long/Alt with datum)
• Two types of Location Conveyance in SIP:– User-to-User (I want to tell you where I am, have been or will be)
– Routing based on UAC location (Proxies need to know my location to properly route the SIP Request (shown in Emergency example))
draft-ietf-sip-location-conveyance
draft-ietf-geopriv-dhcp-civil
RFC 3825 Coordinate Location in DHCP
RFC 4119 Geopriv PIDF-LO
3© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
• The Session Initiation Protocol (SIP) is an application layer control (signaling) protocol for:
– creating
– modifying and
– terminating
multimedia sessions with one or more participants
SIP BasicsRFC 3261
4© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
SIP components include:
• User Agents (UAs)
• Gateways
• Registrar Servers
• Proxy Servers
– have degrees of statefulness
– CSCF(s), B2BUAs, SBCs
• Redirect Servers
SIP Basics (cont’d)
5© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
IHL Total Length
Identification Flags Fragment Offset
Header ChecksumProtocolTime to Live
Source Address
Destination Address
PaddingOptions
Version DSCP ECN
IPv4 Header is 20 Bytes and Binary
Source PortSource Port Destination PortDestination Port
ChecksumChecksumLengthLength
UDP Header is 8 Bytes and Binary(Layer 4 here could also be TCP or SCTP)
SIP Headers in US-ASCII(variable in length per header/per message)SIP Header is Text-based
and variable in length
SIP messages *sometimes* have a message body- a SIP message header indicates the type of body
- could be text, data, or something about audio, videoor something else
SIP message body is alsovariable, but not always present (depending on the Message-type)
Example IPv4 SIP Packet format with UDP
6© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
SIP—INVITE Message
INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhdsMax-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected] CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142
- Message body goes down here - Content-Length Header indicates one is present
RFC 3261
7© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
• INVITE (RFC 3261)
• REGISTER (RFC 3261)
• SUBSCRIBE and NOTIFY (RFC 3265)
• UPDATE (RFC 3311)
• MESSAGE (RFC 3428)
• PUBLISH* (RFC 3903)
Applicable SIP Requests with Location
* NOT discussed in SIP Location ID
8© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice
SIP INVITE including Location I
Bob
Location within SIP— carried in header as URI or message body– A UAC can include its
location as a message body:
• Geolocation header,
• Supported header,
• geolocation option-tag,
• Content-Type multipart/mixed
INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/TCP pc33.atlanta.com ;branch=z9hG4bK77i832k9Max-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected] Geolocation: cid:[email protected] Supported: geolocation CSeq: 314159 INVITEContact: <sip:[email protected]>Accept: application/sdp, application/pidf-xmlContent-Type: multipart/mixed; boundary=0a0Content-Length: 543
INVITE
RFC 3261
geolocation (if as a message body)
sdp
9© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice
SIP INVITE including Location II
Bob
INVITE
RFC 3261
--0a0Content-Type: application/sdp
v=0o=alice 2890844526 2890844526 IN IP4 atlanta.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000
Location within SIP— carried in header as URI or message body
– A UAC can include its location as a message body:
• Here’s the SDP
10© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
• An SDP message body for voice only
SIP Message Body for multimedia
v=0o=alice 2890844526 2890844526 IN IP4 atlanta.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000m=video 51172 RTP/AVP 31 34a=rtpmap:31 H.261/90000a=rtpmap:34 H.263/90000
- Video- UDP port (51172) for video- Codecs included: H.261, H.263
- Audio- UDP port (49172) for audio- Codecs included: G.711
v=0o=alice 2890844526 2890844526 IN IP4 atlanta.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000
- Audio- UDP port (49172) to receive RTP - Codecs included: G.711
• An SDP message body for voice and video
RFC 4566, 3264
12© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
--0a0Content-Type: application/pidf+xml (short form*)Content-ID: cid:[email protected]
<gml:location> <gml:coordinates>36.132N 115.151W </gml:coordinates> </gml:location>
<method>802.11</method> <provided-by>www.cisco.com</provided-by/>
--0a0--
Alice
SIP INVITE including Location III
Bob
INVITELocation within SIP—
carried in header as URI or message body
–A UAC can include its location as a message body:
• Here’s a short form version of the location message body (long form on next slide)
• Location in Coordinates
Valid size on next slide
13© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
GEOPRIV Geospatial/Coordinate format
• Based on this GML schema
<?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" entity="pres:[email protected]"> <tuple id="sg89ae"> <timestamp>2006-03-27T09:00:00Z</timestamp> <status> <gp:geopriv> <gp:location-info> <gml:location> <gml:Point gml:id="point96" srsName="epsg:4326"> <gml:coordinates>36.132N 115.151W </gml:coordinates> </gml:Point> </gml:location> </gp:location-info> <gp:usage-rules> <gp:retransmission-allowed>no</gp:retransmission-allowed> <gp:retention-expiry>2006-03-29T16:30:00Z</gp:retention-expiry> <method>802.11</method> <provided-by>www.cisco.com</provided-by/> </gp:usage-rules> </gp:geopriv> </status> </tuple> </presence>
• To a point, a line, a polygon
• Provides how location was derived
• and who is responsible for it
– After the fact troubleshooting
RFC 4119
14© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice
SIP INVITE including Location IV
Bob
INVITE
--0a0Content-Type: application/pidf+xml (short form*)Content-ID: cid:[email protected]
... <gp:geopriv> <gp:location-info> <cl:civilAddress> <cl:country>US</cl:country> <cl:A1>Nevada</cl:A1> <cl:A3>Las Vegas</cl:A3> <cl:HNO>399</cl:HNO> <cl:A6>Convention Center</cl:A6> <cl:STS>Drive</cl:STS> <cl:PC>89109</cl:PC> <cl:LMK>LVCC</cl:LMK> <cl:RM>110</cl:RM> <cl:civilAddress> <gp:location-info> ...--0a0--
Location within SIP— carried in header as URI or message body
–A UAC can include its location as a message body:
• Here’s a short form version of the location message body (long form on next slide)
• Location in civic address form
Valid size on next slide
15© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
GEOPRIV civic format
• Newly defined in the PIDF-LO ID
<?xml version="1.0" encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" entity="pres:[email protected]"> <tuple id="sg89ae"> <timestamp>2006-03-27T09:00:00Z</timestamp> <status> <gp:geopriv> <gp:location-info> <cl:civilAddress> <cl:country>US</cl:country> <cl:A3>Las Vegas</cl:A3> <cl:A6>Convention Center</cl:A6> <cl:STS>Drive</cl:STS> <cl:HNO>399</cl:HNO> <cl:LMK>Las Vegas Convention Center</cl:LMK> <cl:PC>89109</cl:PC> <cl:civilAddress> </gp:location-info> <gp:usage-rules> <gp:retransmission-allowed>no</gp:retransmission-allowed> <gp:retention-expiry>2006-03-29T16:30:00Z</gp:retention-expiry> <method>802.11</method> <provided-by>www.cisco.com</provided-by> </gp:usage-rules> </gp:geopriv> </status> </tuple> </presence>
• Provides how location was derived
• and who is responsible for it
– After the fact troubleshooting
• Specifies up to 27 fields for civil location
RFC 4119
17© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice
SIP INVITE including Location V
Bob
INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/TCP pc33.atlanta.com ;branch=z9hG4bK77i832k9Max-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected] Geolocation: sips:[email protected] Supported: geolocation CSeq: 314159 INVITEContact: <sip:[email protected]>Accept: application/sdp, application/pidf-xmlContent-Type: application/sdpContent-Length: 243
INVITE Location within SIP— carried in header as URI or message body
–A UAC can include its location as a URI:
•Geolocation header with URI,
•Supported header,
•geolocation option-tag,
•Content-Type application/sdp
18© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice Bob
200 OK
Location within SIP— carried in header as URI or message body– 200 OK may contain
either form of location delivery (message body or URI)
• Since Request had appropriate Accept header
SIP/2.0 200 OKVia: SIP/2.0/TCP sip:[email protected] ;branch=z9hG4bK77i832k9To: Bob <sip:[email protected]>; tag=a6c85e3From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected] Geolocation: sips:[email protected] Supported: geolocation CSeq: 314159 INVITEAccept: application/sdp, application/pidf-xmlContent-Type: application/sdpContent-Length: 142
(Bob’s SDP here)
INVITE
SIP Response including Location
19© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Alice
Dereferencing Location URI
Bob
INVITE (w/Loc URI)
Location URI within SIP— carried in header as URI or message body has to be dereferenced to be any good
– Location URI recipient (UA or server) will dereference the URI based on the scheme used
LIS
SUBSCRIBE (w/Loc URI)
200 OK
NOTIFY (w/ Location)
200 OK
– What happens next is up to what device type did the dereferencing
• if it’s a UA, it could be done or send its location to UAC
• if it’s a routing server, the location would be used by LoST next
20© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
INVITE (with Location)
180 Ringing
200 OK
ACK
INVITE (to URI as R-URI, with Location)
LoST (w/ Loc)
LoST Answer (w/ PSAP URI)
180 Ringing
200 OK
Session Established
SIP Routing based on Location of UAC
Alice CES.com Proxy LoST Server
LV PSAP#1LV PSAP#2
LV PSAP#3
21© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
Location-based call routing – UA learns its location
36° 13' N 115° 15' W
Real-Time LoST Query
36° 13' N 115° 15' W Las Vegas fire department
GPS
DHCP Backend DB
INVITE sips:psap1.lv...
Las Vegas Fire Department
Access Point
Use of SIP UPDATE Method to update location changes noticed by UAC after call establishment
LoST Mapping Server
Early LoST Query
INVITE sips:usn... or psap2.lv...
psap2.lv.clark.nv.us.arpa.sos
22© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
SIP Routing based on UAC’s Location
Alice Outbound Proxy
• SIP Routing based on Location
– “sos@...” is not globally unique
* “Short form” means not enough room here
--0a0Content-Type: application/sdpv=0o=alice 2890844526 2890844526 IN IP4 atlanta.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000– Location message body
could be in the civic format
--0a0Content-Type: application/pidf+xml (short form*)<country>US</country><A2>Las Vegas</A2><A6>Convention Center</A6><STS>Drive</STS><HNO>399</HNO><NAM>Las Vegas Convention Center</NAM><RM>N111</RM>--0a0--
INVITE w/ SDP and Location
INVITE sips:urn:service:sos SIP/2.0Via: SIP/2.0/TCP pc33.atlanta.com;branch=z9hG4bK74Max-Forwards: 70From: Alice <sip:[email protected]>;tag=9fxced76sl To: <sip:urn:service:sos>Call-ID: [email protected]: sips:[email protected] Supported: geolocation CSeq: 31862 INVITERoute: <sips:psap2.lv.clark.nv.us.arpa.sos>Contact: <sip:[email protected]>Content-Type: multipart/mixed; boundary=0a0Content-Length: 311
23© 2006 Cisco Systems, Inc. All rights reserved. Cisco Public
SIP Emergency based on UAC’s Location
ESRP PSAP
--0a0Content-Type: application/sdpv=0o=alice 2890844526 2890844526 IN IP4 atlanta.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000
--0a0Content-Type: application/pidf+xml (short form*)
<gml:location> <gml:coordinates>36.132N 115.151W </gml:coordinates> </gml:location> <method>802.11</method> <provided-by>www.cisco.com</provided-by/> --0a0--
• SIP Routing based on Location
– Request-URI based on current LoST Query by ESRP during call
– If this “in-call” LoST Query fails, <lr> Route header is fallback
– Location could be in geo
INVITE w/ SDP and Location
INVITE sips:psap2.lv.clark.nv.us.arpa.sos SIP/2.0Via: SIP/2.0/TLS pc33.atlanta.com;branch=z9hG4bK74Max-Forwards: 70From: Alice <sip:[email protected]>;tag=9fxced76sl To: <sip:urn:service:sos>Call-ID: [email protected]: sips:[email protected] Supported: geolocation CSeq: 31862 INVITERoute: <sips:psap2.lv.clark.nv.us.arpa.sos;lr>Contact: <sip:[email protected]>Content-Type: multipart/mixed; boundary=0a0Content-Length: 311
* “Short form” means not enough room here