How to obtain the home emergency dialstring by LoST
Background:
phoneBCP says:
ED-6/SP-5 Devices MUST be able to be configured with the home country from which the home dial string(s) can be determined.
LoST queries
This page describes how a home emergency dialstring can be queried with the help of LoST, when the home country of the user is known.
The idea is to use the country code of the home country of the user as location information for LoST. The actual mapping response can be disregared except for the service number, which contains the home emergency dialstring.
A possible solution is shown below.
First step is a query for all the sos services in the home country:
<?xml version="1.0" encoding="UTF-8"?>
<listServicesByLocation
xmlns="urn:ietf:params:xml:ns:lost1"
recursive="true">
<location id="homecountry" profile="civic">
<civicAddress
xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
<country>AT</country>
</civicAddress>
</location>
<service>urn:service:sos</service>
</listServicesByLocation>
In this example, the home country is set to AT.
For example, the server answers with:
<?xml version="1.0" encoding="UTF-8"?>
<listServicesByLocationResponse
xmlns="urn:ietf:params:xml:ns:lost1">
<serviceList>
urn:service:sos.ambulance
urn:service:sos.fire
urn:service:sos.police
</serviceList>
<path>
<via source="resolver.example"/>
<via source="authoritative.example"/>
</path>
<locationUsed id="homecountry"/>
</listServicesByLocationResponse>
In this example, ambulance, fire brigade and police services are available. Hence, a mapping for this services has to be performed (as well as for urn:service:sos itself since top-level services aren't listed in the response!).
The example below shows the mapping request for police. Again, the country code is used as location information.
<?xml version="1.0" encoding="UTF-8"?>
<findService xmlns="urn:ietf:params:xml:ns:lost1"
recursive="true" serviceBoundary="reference">
<location id="homecountry" profile="civic">
<civicAddress
xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
<country>AT</country>
</civicAddress>
</location>
<service>urn:service:sos.police</service>
</findService>
Note that the response form the LoST server may contain a warning since the location information is not precise. However, the actual mapping isn't of interest anyway, just the service number of the response is important:
<?xml version="1.0" encoding="UTF-8"?>
<findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1"
<mapping
expires="2007-01-01T01:44:33Z"
lastUpdated="2006-11-01T01:00:00Z"
source="authoritative.example"
sourceId="7e3f40b098c711dbb6060800200c9a66">
<displayName xml:lang="de">
Police Vienna - Default PSAP for Austria
</displayName>
<service>urn:service:sos.police</service>
<serviceBoundaryReference
source="authoritative.example"
key="7214148E0433AFE2FA2D48003D31172E"/>
<uri>sip:polizei@example.at</uri>
<serviceNumber>133</serviceNumber>
</mapping>
<path>
<via source="resolver.example"/>
<via source="authoritative.example"/>
</path>
<locationUsed id="homecountry"/>
</findServiceResponse>
The client has just to extract the serviceNumber (in this case 133), all the other information can be dropped. To reduce unnecessary traffic, the service boundary should be requested by reference only (since the boundary information isn't of interest at all).
The mapping procedure has to be repeated for each service to gather all the home emergency dialstrings. After that, the client is detect an emergency call when the user dials his well-known home emergency dialstrings.
The procedure described above works automatically, just the home country of the user has to be configured. Certainly, the configuration of the home country is much easier for a user that the manual configuration of the different dialstrings.
Note that in most jurisdictions the home emergency dialstring is optional, the local dialstring are mandatory.
