NG911 project status Henning Schulzrinne (with Jong Yul Kim, Wonsang Song, Anshuman Rawat, Matthew Mintz-Habib, Amrita Rajagopal and Xiaotao Wu) Dept. of Computer Science Columbia University
Dec 22, 2015
NG911 project status
Henning Schulzrinne(with Jong Yul Kim, Wonsang Song, Anshuman Rawat, Matthew Mintz-
Habib, Amrita Rajagopal and Xiaotao Wu)
Dept. of Computer ScienceColumbia University
NG911 project meeting (College Station, February 2006)
Options for location delivery• GPS• L2: LLDP-MED (standardized version of CDP + location
data)– periodic per-port broadcast of configuration
information– currently implementing CDP
• L3: DHCP for– geospatial (RFC 3825)– civic (draft-ietf-geopriv-dhcp-civil)
• L7: proposals for retrievals– for own IP address (draft-linsner-geopriv-lcp)
– by IP address– by MAC address– by identifier (conveyed by DHCP or PPP)
NG911 project meeting (College Station, February 2006)
Phase 3 : Routing to Correct PSAP
NG911 project meeting (College Station, February 2006)
IETF ECRIT working group• Emergency Contact Resolution with Internet Technologies• Solve four major pieces of the puzzle:
– location conveyance (with SIPPING & GEOPRIV)– emergency call identification– mapping geo and civic caller locations to PSAP– discovery of local and visited emergency dial string
• Not solving– location discovery– inter-PSAP communication and coordination– citizen notification
• Current status:– finishing general and security requirements– tentative agreement on mapping protocol and identifier– later, to work on overall architecture and UA requirements
NG911 project meeting (College Station, February 2006)
Emergency identifier requirements• Direct user interface, without “dialing” number
– but do NOT require user to input this identifier directly
– i.e., separate user interface from protocol identifier!
• Reach emergency help in any country, without knowledge of local numbers– also, universally recognizable by proxies
regardless of location of caller• Deployable incrementally
– even if not all entities support the mechanism• Testable without impacting PSAP (human)
resources
NG911 project meeting (College Station, February 2006)
Defining an (emergency) services URN• URN = universal resource name
– identifies resource, not its network location– translated by protocol (e.g., DNS) into location(s)
• New: service URN urn:service:service• Identifies a generic service, not a specific resource• Uses mapping protocol:
– {identifier, location} URL(s)• Can be used anywhere a URN or URL is allowed, e.g.:
– web pages– result returned by mapping protocol– request and To URI in SIP
• For emergency services:– urn:service:sos, urn:service:sos.fire, urn:service:sos.police,
urn:service:sos.marine, urn:service:sos.mountain, urn:service:sos.rescue, urn:service:sos.poison, urn:service:sos.suicide, urn:service:sos.mental-health
• Could also be used for other services: urn:service:directory
NG911 project meeting (College Station, February 2006)
UA recognition & UA resolution
INVITE sip:[email protected]: urn:service:sos
<location>
9-1-1(dial string)
mapping
INVITE sip:[email protected]: urn:service:sos
<location>
leonianj.gov
mapping may recurse
location information
DHCPLLDP-MED
NG911 project meeting (College Station, February 2006)
UA recognition & proxy resolution
9-1-1
mapping
INVITE urn:service:sosTo: urn:service:sos
<location>
INVITE sip:[email protected]: urn:service:sos
<location>
provider.com
NG911 project meeting (College Station, February 2006)
UA recognition & proxy resolution(proxy location determination)
9-1-1
mapping
INVITE urn:service:sosTo: urn:service:sos
INVITE sip:[email protected]: urn:service:sosLocation: <location>
provider.com
NG911 project meeting (College Station, February 2006)
Proxy recognition & proxy resolution
9-1-1
mapping
INVITE sip:[email protected];user=phoneTo: sip:[email protected];user=phone
INVITE sip:[email protected]: sip:[email protected];user=phoneLocation: <location>
provider.com
NG911 project meeting (College Station, February 2006)
Phase 1 & 2 : Identifying Emergency Calls & Determining Caller Location
NG911 project meeting (College Station, February 2006)
DHCP for locations
• modified dhcpd (ISC) to generate location information• use MAC address backtracking to get location information
DHCPserver
DHCP answer:0:US:1:CA:2:LOS ANGELES:3:LONG BEACH:6:HYATT AVE:19:300
DHCPINFORM00:11:20:9d:a0:03
NG911 project meeting (College Station, February 2006)
DHCP for locations (cont.)
# ip_phone 1host sip0011209da003 { next-server ng911serv.irt.cs.columbia.edu; hardware ethernet 00:11:20:9d:a0:03; fixed-address 128.59.17.59; option tftp-server-name "128.59.19.174"; option host-name "sip0011209da003";#0:US:1:CA:2:LOS ANGELES:3:LONG BEACH:6:HYATT AVE:19:300option loc-civil
55:53:2:1:2:43:41:2:b:4c:4f:53:20:41:4e:47:45:4c:45:53:3:a:4c:4f:4e:47:20:42:45:41:43:48:6:9:48:59:41:54:54:20:41:56:45:13:3:33:30:30;
}
dhcpd.conf
NG911 project meeting (College Station, February 2006)
Emergency dial strings• ~60 different dial strings in use
– some countries separate fire/police/…, others don’t
– some are used for other services• PBX, information, prefix, …
• Needs to support both home and visited dial string when traveling
• Home = dial string at home location of traveler– traveler may not know local conventions
• Visited = dial string at visited location– fellow tourist picks up phone– babysitter in ex-pat household
• Configure– via DHCP– via SIP configuration mechanism– via location mapping
NG911 project meeting (College Station, February 2006)
LUMP: Mapping service URNs + locations to URLs
• Common problem:– {geo or civic location, service} set of URLs– e.g., {Broadway/NY, “911”} [email protected]– also applies to anything from towing service to pizza delivery
• Need to be able to validate addresses ahead of emergency– does this street address resolve to a PSAP?– can the ambulance find the address?
• Service providers don’t trust each other (fully)– e.g., who gets to include Jerusalem in its map– service may depend which warlord you belong to – can’t wait for UN (or ICANN) to create global emergency
services database• Suggested approach: new distributed mapping protocol
– LUMP: location-to-URL mapping protocol– uses SOAP, but special service URLs
NG911 project meeting (College Station, February 2006)
LUMP: overview• Support global-scale resolution of service
identifiers (e.g., service URNs) + locations to other URLs
• Attempts to be reliable and scalable– borrow concepts, but not protocol
limitations, from DNS• Architecture: “Forest of trees with a cloud
above”– avoid root as only deployment alternative
• Uses standard web services building blocks
NG911 project meeting (College Station, February 2006)
LUMP: Location-to-URL Mapping
clusterserves VSP2
NYUS
NJUS
Bergen CountyNJ US
123 Broad AveLeoniaBergen CountyNJ US
cluster serving VSP1
replicateroot information
searchreferral
rootnodes
LeoniaNJ US
VSP1
NG911 project meeting (College Station, February 2006)
LUMP architecture
T1
(.us)
T2
(.de) T3
(.dk)
G
G
GG
G broadcast (gossip)T1: .us
T2: .de
resolver
seeker313 Westview
Leonia, NJ US
Leonia, NJ sip:[email protected]
tree guide
NG911 project meeting (College Station, February 2006)
Caching• Generally, UA caches lookup results
– query: “I’m at (X,Y), what’s my PSAP?”– answer: “Your PSAP is sip:[email protected] as long as you stay
in polygon (X1,Y1; X2, Y2; …); this is valid for 12 hours”• almost no impact of node mobility on query frequency
– same for civic: “as long as you stay on Main Street, your town”• civic only relevant for nomadic users
– actual PSAP coverage area may be larger just an optimization
• Almost always avoids query during emergency call– MAY re-query during call– load distribution via DNS
• given frequency of calls for one resolver, likely to be no DNS caching anyway
• Further optimization: query with timestamp (or etag) of last answer– answer: “still the same, thanks for asking”
NG911 project meeting (College Station, February 2006)
Performance notes• US: only about 6 calls/second for whole country
– on average, but may spike during mass casualty events
• Use TCP (or TCP/TLS) for reliability• Expect 1-2 queries/day/client• Typical: >> 100 queries/second/server
– almost all rows will be cached in memory•only about 6,000 rows
– one server 8,640,000 queries– probably N+1 spared– data center cost: $300/month/server
$0.0003/user/month (1Mq/day)
NG911 project meeting (College Station, February 2006)
Implementation status• Prototype
implementation at Columbia University:– includes referrals– both geo and civic
coordinates– from draft WSDL
(with minor fixes)• Server
– Axis (Apache) SOAP server
– Postgres SQL geo database
• does polygon intersection
• Client– Java app (web page)– Tcl (for our SIP client)
NG911 project meeting (College Station, February 2006)
LUMP geo mapping
NG911 project meeting (College Station, February 2006)
LUMP: SOAP request
NG911 project meeting (College Station, February 2006)
Calltaker Routing
• Using SIP caller preferences/callee capabilities– Example: caller language preference
• automatically route to call taker who speaks French
•Accept-Language: fr
NG911 project meeting (College Station, February 2006)
Phase 4 : Call Presentation
Call Taker 1
Call Taker 2
Call Taker n
Hospital Police Fire Envinsa Server
HTTP SOAPTelephone #
Location Info
psap@domainw/location
Controller (psapd)
Policy
Conference Mixer
selectavailable calltaker
createconference
INVITE toconference
joinconference
REFER PoliceTo conference
joinconference
(1)
(3)(2)
(4)
(5)
(6a)
(6b)
(8)
(7)
INVITE toconference
NG911 project meeting (College Station, February 2006)
caller psapd conf.server
call taker
(2) INVITE calltaker(loc, no SDP)
(1) INVITE psap(loc, SDP1)
(4) INVITE calltaker conf.(no loc, SDP2)
(5) 200 OK(SDP2')
(7) ACK(SDP2')
(6) ACK
(8) media
(9) INVITE caller conf.(no loc, SDP1)
(10) 200 OK(SDP1')
(11) 200 OK(SDP1')
(12) ACK
(13) ACK
(14) media
(15) sos call established
(3) 200 OK(SDP2)
180 Ringing
180 Ringing
Controller (psapd) Flow
NG911 project meeting (College Station, February 2006)
PSAP interface
using GeoLynx or Google Maps as “GIS”
NG911 project meeting (College Station, February 2006)
Ongoing work (Spring 2006)• Track LUMP specification• SIPc
– DHCP support– DB for CDP– Call history window for call back– Determine if call dropped without
normal termination messaging– Call taker blocking others from call
• SIPc + psapd– Emergency number determination– Civic address validation using MSAG
• psapd– Transfer to another psapd– TLS support and testing
• Other– Video push– sipd must handle “486 Busy” from
psapd– Assign unique number to each
incident– Associate multiple calls with an
incident
•System-wide– Pre-determined limit of
simultaneous calls– Incoming Call Queue at the
option of the PSAP• Incident specific
announcements• Prioritize calls in queue
– Overflow calls to designated backup IP PSAP• Indications of overflow for
originating and destination PSAP
– Adding information in PIDF-LO– Call taker re-bids location
information• Caller updates location
information• Re-routing calls when
location changes• Interaction with external elements
– TDD support
NG911 project meeting (College Station, February 2006)
Conclusion• IETF ECRIT working group converging on set of
solutions– mapping protocol– emergency identifier– location conveyance– to be done: UA requirements
• Demo implementation of LUMP• Multi-call taker PSAP approximation• Working on solving core I3 & PSAP requirements from
NENA documents