NG9-1-1 Prototype Demo - Emergency Services Workshop

Download Report

Transcript NG9-1-1 Prototype Demo - Emergency Services Workshop

NG9-1-1 Prototype Demo
Jong Yul Kim, Wonsang Song,
and Henning Schulzrinne
Internet Real-Time Lab,
Columbia University
Overview
• Prototype Architecture and Components
• Demonstration of Features
–
–
–
–
–
–
–
–
–
Demo 1 : Location determination
Demo 2 : Call Routing
Demo 3 : Multimedia and Mapping
Demo 4 : Inviting third party
Demo 5: Fully Mute / Partially Mute
Demo 6 : Callback
Demo 7 : Logging
Demo 8 : Queue
Demo 9 : Overload Control
Prototype Architecture
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
sip:psap@domain2
w/location
911
112
PSAP
sip:psap@domain2
with location
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
Conference
Server
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
SIPc, a multi-function SIP UA
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
sip:psap@domain2
w/location
911
112
PSAP
sip:psap@domain2
with location
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function (caller side)
– Identifies and initiates emergency call
– Determines location from various sources
• Function (calltaker side)
– Interfaces with location mapping software
– Shows calltaker status, responder list, incident type
• Implementation
– Tcl/Tk based User Interface and SIP stack
– External programs for audio, video, application sharing, stun, etc.
Location Information Sources
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
LIS
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
Local SIP Proxy
civil location
geo location
DHCP Server
GPS
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
CDP
Skyhook
• Function
– Provides location information to SIPc
• Implementation
– GPS : USB device and NMEA 0183 parser
– Location Information Server built using Apache, MySQL, and PHP
LoST Cluster
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function
– Translates (Location, Service) to a PSAP URL and emergency dial
string
– Verifies civic address
• Implementation
– PostgreSQL with PostGIS extension as a Database
• US county boundary polygons to simulate geo PSAP boundary
• Sample MSAG data for civic PSAP boundary
– Tomcat + Axis for Web Service
sipd, a SIP proxy and registrar
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function
– Routes call to destination
– Resolves SIP URL to a reachable address
– Invokes sip-cgi for in-network special services
• Implementation
– CINEMA (Columbia InterNet Extensible Multimedia Architecture)
– sip-cgi is perl-based
psapd, a back-to-back SIP UA
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function
– Facilitates multi-party conference setup
– Distributes incoming call to call takers
– Logs call details
• Implementation
– CINEMA C++ library (libsipapi)
– Call distribution logic is written in Tcl
psapd handles an incoming call
caller
conf.
server
psapd
call taker
(1) INVITE psap
(loc, SDP1)
Make Conference
Select Available
Calltaker
(2) INVITE calltaker
(loc, no SDP)
Call-info: <sos call’s confuri>; purpose=incident
• All signals go through psapd
180 Ringing
180 Ringing
• psapd controls conference
instances through MSCML
(3) 200 OK
(SDP2)
(4) INVITE calltaker conf.
(no loc, SDP2)
(5) 200 OK
(SDP2')
• Media is directed to
conference server
(6) ACK
(7) ACK
(SDP2')
(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
Conference Server
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
Conference
Server
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function
–
–
–
–
Mixes and records audio
Distributes video
Call Queuing
Interactive Voice Response
• Implementation
– sipconf from CINEMA
– Snowshore IP Media Server from Cantata Technology
Location Mapping Software
GPS
LIS
Location
Info
DHCP Server
Location
key
Location
Info
LoST Cluster
Location
PSAP
Info
PSAP
sip:psap@domain2
with location
sip:psap@domain2
w/location
911
112
SIP UA
PSAP SIP Proxy
urn:service:sos
w/out location
Local SIP Proxy
Conference
Server
civil location
geo location
sip:psap@domain2
with location
sip:rep@domain2
with location
911
POTS/Wireless
Network
IP Gateway
psapd
3PCC Controller
GeoLynx /
Google Maps
• Function
– Plots caller’s location and other information on a local map
– Shows nearby responders on map
• Implementation
– Geolynx Mapping System from GeoComm
– Google Maps
Emergency Call Flow
(2)
Location +
Service
Identifier
(1) Location
LoST Cluster
(3)
PSAP URL +
emergency
dial-string
INVITE call taker
From: caller
(7) <Location>
(6)
(4)
SOS caller
(5)
dial emergency dialstring
or
INVITE PSAP URL
To: urn:service:sos
SIP proxy
INVITE PSAP URL
To: urn:service:sos
<Location>
<Location>
push emergency
button
call taker
Media Stream
Media Stream
Demo 1 : Location Determination
• DHCP
• CDP
• SkyHook
DHCP for Location
•
•
•
Mainly for stationary users
We modified ISC’s dhcpd to generate location information
Use MAC address to get location information
DHCPINFORM
[MAC=00:11:20:9d:a0:03]
request
or
response
DHCPACK
[option=0:US:1:NY:2:NEW YORK:
3:NEW YORK:6:AMSTERDAM:19:1214]
DHCP Server
CDP for Location
•
•
•
•
Mainly for stationary and nomadic users
Cisco Discovery Protocol (Layer2)
Cisco switches broadcast switch/port ID periodically.
A Switch covers a floor, a port leads to a jack in a room
-> room-level accuracy
Switch 2
Path of CDP
advertisement
Segment from
switch 2/port 5
Physical
location
Invoke
cdpCap
cdpCap listens to
advertisements
Switch/port
LIS
SIP UA
Send switch/port
information
SkyHook for Location
•
•
•
•
Mainly for nomadic, mobile users
Wireless device receives signals from Wi-Fi sites in range
Skyhook compares signals to its database of geographically known
locations
Location data is used to direct safety services
Taken from http://www.skyhookwireless.com
Demo 2 : LoST
http://honamsun.cs.columbia.edu:8080/index.jsp
Demo 3 : Multimedia and Mapping
Demo 4 : Inviting third party
caller
conf.
server
psapd
call taker
(0) sos call established
(1) REFER (refer-to:3rd-party)
(2) 202 ACCEPTED
(3) NOTIFY (100 Trying)
(4) 200 OK
(5) INVITE 3rd-party
(loc, no SDP)
(6) 200 OK
(SDP3)
(7) INVITE 3rd-party conf.
(no loc, SDP3)
(8) 200 OK
(SDP3')
(9) ACK
(10) ACK
(SDP3')
(11) media
(12) NOTIFY (200 OK)
(13) 200 OK
(14) multi-party sos call established
3rd party
Demo 5 : Fully / Partially Mute
Demo 6 : Callback
caller
conf.
server
psapd
(2) INVITE caller
In-Reply-To: <original
sos call’s callid>
(no loc, no SDP)
(3) 200 OK
(loc, SDP2)
call taker
(1) INVITE psap
Call-info: <original sos call’s confuri>; purpose=callback
(SDP1)
(4) INVITE caller conf.
(no loc, SDP2)
(5) 200 OK
(SDP2')
(6) ACK
(7) ACK
(SDP2')
(8) media
(9) INVITE calltaker conf.
(no loc, SDP1)
(10) 200 OK
(SDP1')
(11) 200 OK
Call-info: <sos call’s confuri>; purpose=incident
(loc, SDP1')
(12) ACK
(13) ACK
(14) media
(15) sos call established
Demo 7 : Logging
http://ng911serv.cs.columbia.edu/psap/
Demo 8 : Automatic Call Distribution
• Based on availability of call taker
• Language-based distribution
• Queue
– Auto-Response based on time and location of
new incoming call
Demo 9 : Overflow Control
SUBSCRIBE
NOTIFY
INVITE
REDIRECT
INVITE
Demo 9 : Overflow Control
SUBSCRIBE
NOTIFY
INVITE
INVITE
Future Work
• Implement additional Features
– Auto-Response based on time and location of
incoming call
– Video Push to caller (e.g. CPR how-to)
• Measuring and reducing latency
More Information
• A VoIP Emergency Services Architecture and Prototype
– Matthew Mintz-Habib, Anshuman Rawat, Henning Schulzrinne, and
Xiaotao Wu
– ICCCN 2005, Oct. 2005
• An Enhanced VoIP Emergency Services Prototype
– Jong Yul Kim, Wonsang Song, and Henning Schulzrinne
– ISCRAM 2006, May 2006
• More information available on
http://ng911.tamu.edu