Needs changes to be made SIP Location Conveyance
Needs changes to be made!!!! SIP Location Conveyance draft-ietf-sip-location-conveyance-04. txt James Polk Brian Rosen Oct 5 th/6 th, 2006 VVT-A 01 © Cisco Systems, Inc. All rights reserved. © 2004, 2006 Cisco Public 1
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 Open. GIS) • 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)) RFC 3825 Coordinate Location in DHCP draft-ietf-sip-location-conveyance RFC 4119 Geopriv PIDF-LO draft-ietf-geopriv-dhcp-civil © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 2
RFC 3261 SIP Basics • The Session Initiation Protocol (SIP) is an application layer control (signaling) protocol for: – creating – modifying and – terminating multimedia sessions with one or more participants © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 3
SIP Basics (cont’d) SIP components include: • • User Agents (UAs) Gateways Registrar Servers Proxy Servers – have degrees of statefulness – CSCF(s), B 2 BUAs, SBCs • Redirect Servers © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 4
Example IPv 4 SIP Packet format with UDP IPv 4 Header is 20 Bytes and Binary Version IHL DSCP ECN Identification Time to Live Total Length Flags Protocol Fragment Offset Header Checksum Source Address UDP Header is 8 Bytes and Binary (Layer 4 here could also be TCP or SCTP) SIP Header is Text-based and variable in length SIP message body is also variable, but not always present (depending on the Message-type) © 2006 Cisco Systems, Inc. All rights reserved. Destination Address Options Padding Source Port Destination Port Length Checksum SIP Headers in US-ASCII (variable in length per header/per message) SIP messages *sometimes* have a message body - a SIP message header indicates the type of body - could be text, data, or something about audio, video or something else Cisco Public 5
RFC 3261 SIP—INVITE Message INVITE sip: bob@biloxi. com SIP/2. 0 Via: SIP/2. 0/UDP pc 33. atlanta. com; branch=z 9 h. G 4 b. K 776 asdhds Max-Forwards: 70 To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 66710@pc 33. atlanta. com CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Content-Type: application/sdp Content-Length: 142 - Message body goes down here - Content-Length Header indicates one is present © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 6
Applicable SIP Requests with Location • INVITE (RFC 3261) • REGISTER (RFC 3261) • SUBSCRIBE and NOTIFY (RFC 3265) • UPDATE (RFC 3311) • MESSAGE (RFC 3428) • PUBLISH* (RFC 3903) * NOT discussed in SIP Location ID © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 7
RFC 3261 SIP INVITE including Location I Bob Alice INVITE Location within SIP— carried in header as URI or message body INVITE sip: bob@192. 168. 10. 20 SIP/2. 0 Via: SIP/2. 0/TCP pc 33. atlanta. com ; branch=z 9 h. G 4 b. K 77 i 832 k 9 Max-Forwards: 70 To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 6 Kr 456@pc 33. atlanta. com Geolocation: cid: alice 123@atlanta. example. com Supported: geolocation CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Accept: application/sdp, application/pidf-xml Content-Type: multipart/mixed; boundary=0 a 0 Content-Length: 543 – A UAC can include its location as a message body: • Geolocation header, • Supported header, • geolocation optiontag, • Content-Type multipart/mixed sdp geolocation (if as a message body) © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 8
RFC 3261 SIP INVITE including Location II Bob Alice INVITE --0 a 0 Content-Type: application/sdp v=0 o=alice 2890844526 IN IP 4 atlanta. com c=IN IP 4 10. 1. 3. 33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap: 0 PCMU/8000 © 2006 Cisco Systems, Inc. All rights reserved. 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 Cisco Public 9
RFC 4566, 3264 SIP Message Body for multimedia • An SDP message body for voice only - Audio - UDP port (49172) to receive RTP - Codecs included: G. 711 v=0 o=alice 2890844526 IN IP 4 atlanta. com c=IN IP 4 10. 1. 3. 33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap: 0 PCMU/8000 • An SDP message body for voice and video - Audio - UDP port (49172) for audio - Codecs included: G. 711 - Video - UDP port (51172) for video - Codecs included: H. 261, H. 263 © 2006 Cisco Systems, Inc. All rights reserved. v=0 o=alice 2890844526 IN IP 4 atlanta. com c=IN IP 4 10. 1. 3. 33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap: 0 PCMU/8000 m=video 51172 RTP/AVP 31 34 a=rtpmap: 31 H. 261/90000 a=rtpmap: 34 H. 263/90000 Cisco Public 10
SIP INVITE including Location III Bob Alice INVITE --0 a 0 Content-Type: application/pidf+xml (short form*) Content-ID: cid: alice 123@atlanta. example. com <gml: location> <gml: coordinates>36. 132 N 115. 151 W </gml: coordinates> </gml: location> <method>802. 11</method> <provided-by>www. cisco. com</provided-by/> 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 Coordinates --0 a 0 -- Valid size on next slide © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 12
RFC 4119 GEOPRIV Geospatial/Coordinate format • Based on this GML schema • To a point, a line, a polygon • Provides how location was derived <? xml version="1. 0" encoding="UTF-8"? > <presence xmlns="urn: ietf: params: xml: ns: pidf" xmlns: gp="urn: ietf: params: xml: ns: pidf: geopriv 10" xmlns: gml="urn: opengis: specification: gml: schema-xsd: feature: v 3. 0" entity="pres: geotarget@example. com"> <tuple id="sg 89 ae"> <timestamp>2006 -03 -27 T 09: 00 Z</timestamp> <status> <gp: geopriv> <gp: location-info> <gml: location> <gml: Point gml: id="point 96" srs. Name="epsg: 4326"> <gml: coordinates>36. 132 N 115. 151 W </gml: coordinates> </gml: Point> </gml: location> </gp: location-info> <gp: usage-rules> <gp: retransmission-allowed>no</gp: retransmission-allowed> <gp: retention-expiry>2006 -03 -29 T 16: 30: 00 Z</gp: retention-expiry> <method>802. 11</method> <provided-by>www. cisco. com</provided-by/> </gp: usage-rules> </gp: geopriv> </status> </tuple> </presence> • and who is responsible for it – After the fact troubleshooting © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 13
SIP INVITE including Location IV Bob Alice INVITE --0 a 0 Content-Type: application/pidf+xml (short form*) Content-ID: cid: alice 123@atlanta. example. com. . . <gp: geopriv> <gp: location-info> <cl: civil. Address> <cl: country>US</cl: country> <cl: A 1>Nevada</cl: A 1> <cl: A 3>Las Vegas</cl: A 3> <cl: HNO>399</cl: HNO> <cl: A 6>Convention Center</cl: A 6> <cl: STS>Drive</cl: STS> <cl: PC>89109</cl: PC> <cl: LMK>LVCC</cl: LMK> <cl: RM>110</cl: RM> <cl: civil. Address> <gp: location-info>. . . --0 a 0 -© 2006 Cisco Systems, Inc. All rights reserved. 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 Cisco Public 14
RFC 4119 GEOPRIV civic format • Newly defined in the PIDF-LO ID • Specifies up to 27 fields for civil location • Provides how location was derived • and who is responsible for it – After the fact troubleshooting © 2006 Cisco Systems, Inc. All rights reserved. <? xml version="1. 0" encoding="UTF-8"? > <presence xmlns="urn: ietf: params: xml: ns: pidf" xmlns: gp="urn: ietf: params: xml: ns: pidf: geopriv 10" xmlns: gml="urn: opengis: specification: gml: schema-xsd: feature: v 3. 0" entity="pres: geotarget@example. com"> <tuple id="sg 89 ae"> <timestamp>2006 -03 -27 T 09: 00 Z</timestamp> <status> <gp: geopriv> <gp: location-info> <cl: civil. Address> <cl: country>US</cl: country> <cl: A 3>Las Vegas</cl: A 3> <cl: A 6>Convention Center</cl: A 6> <cl: STS>Drive</cl: STS> <cl: HNO>399</cl: HNO> <cl: LMK>Las Vegas Convention Center</cl: LMK> <cl: PC>89109</cl: PC> <cl: civil. Address> </gp: location-info> <gp: usage-rules> <gp: retransmission-allowed>no</gp: retransmission-allowed> <gp: retention-expiry>2006 -03 -29 T 16: 30: 00 Z</gp: retention-expiry> <method>802. 11</method> <provided-by>www. cisco. com</provided-by> </gp: usage-rules> </gp: geopriv> </status> </tuple> </presence> 15 Cisco Public
SIP INVITE including Location V Bob Alice INVITE Location within SIP— carried in header as URI or message body INVITE sip: bob@192. 168. 10. 20 SIP/2. 0 Via: SIP/2. 0/TCP pc 33. atlanta. com ; branch=z 9 h. G 4 b. K 77 i 832 k 9 Max-Forwards: 70 To: Bob <sip: bob@biloxi. com> From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 6 Kr 456@pc 33. atlanta. com Geolocation: sips: alice 123@atlanta. example. com Supported: geolocation CSeq: 314159 INVITE Contact: <sip: alice@pc 33. atlanta. com> Accept: application/sdp, application/pidf-xml Content-Type: application/sdp Content-Length: 243 © 2006 Cisco Systems, Inc. All rights reserved. –A UAC can include its location as a URI: • Geolocation header with URI, • Supported header, • geolocation optiontag, • Content-Type application/sdp Cisco Public 17
SIP Response including Location Bob Alice INVITE 200 OK Location within SIP— carried in header as URI or message body SIP/2. 0 200 OK Via: SIP/2. 0/TCP sip: alice@atlanta. com ; branch=z 9 h. G 4 b. K 77 i 832 k 9 To: Bob <sip: bob@biloxi. com>; tag=a 6 c 85 e 3 From: Alice <sip: alice@atlanta. com>; tag=1928301774 Call-ID: a 84 b 4 c 76 e 6 Kr 456@pc 33. atlanta. com Geolocation: sips: alice 123@atlanta. example. com Supported: geolocation CSeq: 314159 INVITE Accept: application/sdp, application/pidf-xml Content-Type: application/sdp Content-Length: 142 – 200 OK may contain either form of location delivery (message body or URI) • Since Request had appropriate Accept header (Bob’s SDP here) © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 18
Dereferencing Location URI LIS Bob Alice INVITE (w/Loc URI) SUBSCRIBE (w/Loc URI) 200 OK NOTIFY (w/ Location) 200 OK 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 – 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 Lo. ST next © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 19
SIP Routing based on Location of UAC Alice CES. com Proxy Lo. ST Server LV PSAP#2 LV PSAP#1 INVITE (with Location) LV PSAP#3 Lo. ST (w/ Loc) Lo. ST Answer (w/ PSAP URI) INVITE (to URI as R-URI, with Location) 180 Ringing 200 OK ACK Session Established © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 20
Location-based call routing – UA learns its location Lo. ST Mapping Server uery Early Lo. ST Q GPS . sos la 2. lv. c p a s p rk a s. arp u. v n. INVITE sips: usn. . . or 36° 13' N psap 2. lv. . . 115° 15' W Real-Time Lo. ST Query Use of SIP UPDATE Method to update location changes noticed by UAC after call establishment Access Point INVITE sips: psap 1. lv. . . Las Vegas Fire Department DHCP Backend DB © 2006 Cisco Systems, Inc. All rights reserved. 36° 13' N 115° 15' W Las Vegas fire department Cisco Public 21
SIP Routing based on UAC’s Location Alice Outbound Proxy INVITE w/ SDP and Location • SIP Routing based on Location – “sos@. . . ” is not globally unique – Location message body could be in the civic format * “Short form” means not enough room here © 2006 Cisco Systems, Inc. All rights reserved. INVITE sips: urn: service: sos SIP/2. 0 Via: SIP/2. 0/TCP pc 33. atlanta. com; branch=z 9 h. G 4 b. K 74 Max-Forwards: 70 From: Alice <sip: alice@atlanta. com>; tag=9 fxced 76 sl To: <sip: urn: service: sos> Call-ID: 3848276298220188511@pc 33. atlanta. com Geolocation: sips: alice 123@atlanta. example. com Supported: geolocation CSeq: 31862 INVITE Route: <sips: psap 2. lv. clark. nv. us. arpa. sos> Contact: <sip: alice@atlanta. com> Content-Type: multipart/mixed; boundary=0 a 0 Content-Length: 311 --0 a 0 Content-Type: application/sdp v=0 o=alice 2890844526 IN IP 4 atlanta. com c=IN IP 4 10. 1. 3. 33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap: 0 PCMU/8000 --0 a 0 Content-Type: application/pidf+xml (short form*) <country>US</country> <A 2>Las Vegas</A 2> <A 6>Convention Center</A 6> <STS>Drive</STS> <HNO>399</HNO> <NAM>Las Vegas Convention Center</NAM> <RM>N 111</RM> --0 a 0 -Cisco Public 22
SIP Emergency based on UAC’s Location ESRP PSAP INVITE w/ SDP and Location • SIP Routing based on Location – Request-URI based on current Lo. ST Query by ESRP during call – If this “in-call” Lo. ST Query fails, <lr> Route header is fallback – Location could be in geo * “Short form” means not enough room here © 2006 Cisco Systems, Inc. All rights reserved. INVITE sips: psap 2. lv. clark. nv. us. arpa. sos SIP/2. 0 Via: SIP/2. 0/TLS pc 33. atlanta. com; branch=z 9 h. G 4 b. K 74 Max-Forwards: 70 From: Alice <sip: alice@atlanta. com>; tag=9 fxced 76 sl To: <sip: urn: service: sos> Call-ID: 3848276298220188511@pc 33. atlanta. com Geolocation: sips: alice 123@atlanta. example. com Supported: geolocation CSeq: 31862 INVITE Route: <sips: psap 2. lv. clark. nv. us. arpa. sos; lr> Contact: <sip: alice@atlanta. com> Content-Type: multipart/mixed; boundary=0 a 0 Content-Length: 311 --0 a 0 Content-Type: application/sdp v=0 o=alice 2890844526 IN IP 4 atlanta. com c=IN IP 4 10. 1. 3. 33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap: 0 PCMU/8000 --0 a 0 Content-Type: application/pidf+xml (short form*) <gml: location> <gml: coordinates>36. 132 N 115. 151 W </gml: coordinates> </gml: location> <method>802. 11</method> <provided-by>www. cisco. com</provided-by/> --0 a 0 -Cisco Public 23
Open Issues with ID • ABNF determining schemas possible? • OPTIONS usage to learn UAS’s location – has to do with Require header usage – probably will kill this idea • Location-by-reference allowed? • Granular Error Responses in 424 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 24
- Slides: 22