One document matched: draft-ietf-ecrit-additional-data-38.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY I-D.ietf-slim-negotiating-human-language PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-slim-negotiating-human-language.xml">
]>
<?rfc inline="yes"?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<rfc category="std" ipr="trust200902" docName="draft-ietf-ecrit-additional-data-38.txt"
updates="6443, 6881">
<front>
<title abbrev="Additional Call Data">Additional Data Related to an Emergency Call</title>
<author fullname="Randall Gellens" initials="R." surname="Gellens">
<organization></organization>
<address>
<postal>
<street></street>
<city>San Diego</city>
<region>CA</region>
<code>92121</code>
<country>US</country>
</postal>
<email>rg+ietf@randy.pensive.org</email>
</address>
</author>
<author fullname="Brian Rosen" initials="B.R" surname="Rosen">
<organization>NeuStar</organization>
<address>
<postal>
<street>470 Conrad Dr.</street>
<city>Mars</city>
<region>PA</region>
<code>16046</code>
<country>US</country>
</postal>
<phone>+1 724 382 1051</phone>
<email>br@brianrosen.net</email>
</address>
</author>
<author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
<organization></organization>
<address>
<postal>
<street></street>
<city>Hall in Tirol</city>
<code> 6060 </code>
<country>Austria</country>
</postal>
<email>Hannes.tschofenig@gmx.net </email>
<uri>http://www.tschofenig.priv.at</uri>
</address>
</author>
<author initials="R." surname="Marshall" fullname="Roger Marshall">
<organization>TeleCommunication Systems, Inc.</organization>
<address>
<postal>
<street>2401 Elliott Avenue</street>
<city>Seattle</city>
<region>WA</region>
<code>98121</code>
<country>US</country>
</postal>
<phone>+1 206 792 2424</phone>
<email>rmarshall@telecomsys.com</email>
<uri>http://www.telecomsys.com</uri>
</address>
</author>
<author initials="J." surname="Winterbottom" fullname="James Winterbottom">
<organization></organization>
<address>
<postal>
<street></street>
<street></street>
<street></street>
<city></city>
<region></region>
<code></code>
<country>AU</country>
</postal>
<email>a.james.winterbottom@gmail.com</email>
</address>
</author>
<date year="2016"/>
<area>ART</area>
<workgroup>ECRIT</workgroup>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>
<keyword>Additional Call Data</keyword>
<keyword>Emergency Services</keyword>
<keyword>Call Information</keyword>
<abstract>
<t>When an emergency call is sent to a Public Safety Answering Point (PSAP), the originating device, the access network provider to which the device is connected, and all service providers in the path of the call have information about the call, the caller or the location which is helpful for the PSAP to have in handling the emergency. This document describes data structures and mechanisms to convey such data to the PSAP. The intent is that every emergency call carry as much as possible of the information described here using the mechanisms described here.</t>
<t>The mechanisms permit the data to be conveyed by reference (as an external resource) or by value (within the body of a SIP message or a location object). This follows the tradition of prior emergency services standardization work where data can be conveyed by value within the call signaling (i.e., in the body of the SIP message) or by reference.</t>
</abstract>
</front>
<middle>
<!-- ******************************************************************************* -->
<section anchor="introduction" title="Introduction">
<t>When an IP-based emergency call is initiated, a rich set of data from multiple data sources is conveyed to the
Public Safety Answering Point (PSAP). This data includes information about the calling party
identity, the multimedia capabilities of the device, the request for emergency services, location information, and meta-data about the sources of the data.
In addition, the device, the access network provider, and any service
provider in the call path has even more information that is useful for a PSAP when handling an emergency.</t>
<t>This document extends the basic set of data communicated with a
Session Initiation Protocol (SIP) based emergency call, as described in <xref target="RFC6443"/> and <xref target="RFC6881"/>, in order
to carry additional data which is useful to an entity or call taker handling the call. This data is "additional" to the basic
information found in the emergency call signaling used. The intent is that every emergency call carry as much as possible of the information described here using the mechanisms described here.
</t>
<t>This document defines three categories of this additional data that can be transmitted with an emergency call:
<list style="hanging">
<t hangText="Data Associated with a Location:">Primary location data is conveyed in the Presence Information Data Format Location Object (PIDF-LO) data structure as defined in RFC 4119 <xref target="RFC4119"/> and extended by RFC 5139 <xref target="RFC5139"/> and RFC 6848 <xref target="RFC6848"/> (for civic location information), RFC 5491 <xref target="RFC5491"/> and RFC 5962 <xref target="RFC5962"/> (for geodetic location information), and <xref target="RFC7035"/> (for relative location). This primary location data identifies the location or estimated location of the caller. However, there might exist additional, secondary data which is specific to the location, such as floor plans, tenant and building owner contact data, heating, ventilation and air conditioning (HVAC) status, etc. Such secondary location data is not included in the location data structure but can be transmitted using the mechanisms defined in this document. Although this document does not define any structures for such data, future documents can do so following the procedures defined here.</t>
<t hangText="Data Associated with a Call:">While some information is carried in the call setup procedure itself (as part of the SIP headers as well as in the body of the SIP message), there is additional data known by the device making the call, the access network to which the device is connected, and service providers along the path of the call. This information includes service provider contact information, subscriber identity and contact information, the type of service the service provider and the access network provide, what type of device is being used, etc. Some data is broadly applicable, while other data is dependent on the type of device or service. For example, a medical monitoring device might have sensor data. The data structures defined in this document (Data Provider Information, Device Information, and Owner/Subscriber Information) all fall into the category of "Data Associated with a Call". Note that the Owner/Subscriber Information includes the subscriber's vCard, which might contain personal information such as birthday, anniversary, etc., but the data block itself is still considered to be about the call, not the caller.</t>
<t hangText="Data Associated with a Caller:">This is personal data about a caller, such as medical information and emergency contact data. Although this document does not define any structures within this category, future documents can do so following the procedures defined here.</t>
</list>
</t>
<t>While this document defines data structures only within the category of Data Associated with a Call, by establishing the overall framework of Additional Data, along with general mechanisms for transport of such data, extension points and procedures for future extensions, it minimizes the work needed to carry data in the other categories. Other specifications can make use of the facilities provided here.</t>
<t>For interoperability, there needs to be a common way for the
information conveyed to a PSAP to be encoded and identified.
Identification allows emergency services authorities to know
during call processing which types of data are present and to
determine if they wish to access it. A common encoding allows
the data to be successfully accessed.</t>
<t>This document defines an extensible set of data structures,
and mechanisms to transmit this data either by value or by reference, either in the Session Initiation Protocol (SIP) call signaling or in the Presence Information Data Format Location Object (PIDF-LO). The data structures are usable by other communication systems and transports as well. The data structures are defined in <xref target="data-structures"/>, and the transport mechanisms (using SIP and HTTPS) are defined in <xref target="transport"/>.</t>
<t>Each data structure described in this document is encoded as a "block" of information.
Each block is an XML structure with an associated Multipurpose Internet Mail
Extensions (MIME) media type for identification within transport such as SIP and HTTPS. The set of blocks is extensible. Registries are defined to identify the block types that can be used and to allow blocks to be included in emergency call signaling.
</t>
<!--
<t>Devices or services can have data useful to PSAPs and emergency responders that is specific to the type of device or service providing the data. An example is telematics data available from vehicles equipped with sensors and mechanisms to provide the sensor data (for example, the VEDS data set). The mechanism described in this document can be used to provide such data by defining a MIME media type and including a reference to the data in a Call-Info header field. PSAPS and emergency responders have to be prepared in advance to handle such data, and may or may not choose to accept it. To control the types of data a PSAP or responder may encounter using this mechanism, a registry of data sets is created by this document. The registry allows the PSAP, responder, or entity processing the
call to identify in advance the types of data it is prepared to
accept, and fetch or access only those types.</t>
-->
<t>
Much of the information supplied by service providers and devices is
private and confidential; service providers and devices generally go
to lengths to protect this information; disclosing it in the context
of an emergency call is a trade-off to protect the greater interest
of the customer in an emergency.
</t>
</section>
<!-- ******************************************************************************* -->
<section title="Terminology">
<t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as
described in <xref target="RFC2119">RFC 2119</xref>.</t>
<!-- <t>The term "Service Provider" is used throughout this document as a service entity in the path of an emergency call (such as a carrier or a relay service) or the access infrastructure provider who may provide location.</t> -->
<t>This document also uses terminology from <xref target="RFC5012"/>.
We use the term service provider to refer to an Application Service Provider (ASP). A Voice Service Provider (VSP) is a special type of ASP. With the term "Access Network Provider" we refer to the Internet Access Provider (IAP) and the Internet Service Provider (ISP) without further distinguishing these two entities, since the difference between the two is not relevant for this document. Note that the roles of ASP and access network provider might be provided by a single company. An Emergency Services Provider is an entity directly involved in providing emergency services. This includes PSAPs, dispatch, police, fire, emergency medical, other responders, and other similar agencies.</t>
<t>Within each data block definition (see <xref target="data-structures"/>), the values for the "Use:" label are specified as one of the following:
<list style="hanging">
<t hangText="'Required':"> means it MUST be present in the data structure.</t>
<t hangText="'Conditional':"> means it MUST be present if the specified condition(s) is met.
It MAY be present if the condition(s) is not met.</t>
<t hangText="'Optional':"> means it MAY be present.</t>
</list>
</t>
<t>vCard <xref target="RFC6350"/> is a data format for representing and exchanging a variety of information about individuals and other entities. For applications that use XML, the format defined in vCard is not immediately applicable. For this reason, an XML-based encoding of the information elements defined in the vCard specification has been defined and the name of that specification is xCard <xref target="RFC6351"/>. Since the term vCard is more familiar to most readers, we use the terms xCard and vCard interchangeably.</t>
</section>
<!-- ******************************************************************************* -->
<section anchor="scope" title="Document Scope">
<t>The scope of this document is explicitly limited to emergency calls. The data structures defined here are not appropriate to be conveyed in non-emergency calls because they carry sensitive and private data. However, in certain private-use situations between a specialized service provider (such as a vehicle telematics service provider) and dedicated equipment (such as in a vehicle) where the endpoints have a preexisting relationship and privacy issues are addressed within the relationship, the mechanisms and data structures defined here can be used with communications within the limited context of the preexisting relationship.</t>
</section>
<!-- ******************************************************************************* -->
<section anchor="data-structures" title="Data Structures">
<t>This section defines the following five data structures, each as a data block. For each block we define the MIME media type, and the XML encoding. The five data structures are:
<list style="hanging">
<t hangText="'Data Provider':"> This block supplies name and contact information for the entity that created the data. <xref target="data-provider"/> provides the details. </t>
<t hangText="'Service Information':"> This block supplies information about the service. The description can be found in <xref target="service-information"/>.</t>
<t hangText="'Device Information':"> This block supplies information about the device placing the call. Device information can be found in <xref target="device-information"/>.</t>
<t hangText="'Owner/Subscriber':"> This block supplies information about the owner of the device or about the subscriber. Details can be found in <xref target="owner-subscriber"/>.</t>
<t hangText="'Comment':"> This block provides a way to supply free form human readable text to the PSAP or emergency responders. This simple structure is defined in <xref target="comment"/>.</t>
</list>
</t>
<t>Each block contains a mandatory <DataProviderReference> element. The purpose of the <DataProviderReference> element is to associate all blocks added by the same data provider as a unit. The <DataProviderReference> element associates the data provider block to each of the other blocks added as a unit. Consequently, when a data provider adds additional data to an emergency call (such as device information) it MUST add information about itself (via the data provider block) and the blocks added contain the same value in the <DataProviderReference> element. All blocks added by a single entity at the same time MUST have the same <DataProviderReference> value. (In certain situations, the same provider might process a call more than once, likely in different roles, and in such cases, each time it processes the call, it adds a new set of bocks with a new <DataProviderReference> value.) The value of the <DataProviderReference> element has the same syntax and properties (specifically, world-uniqueness) as the value of the "Message-ID" message body header field specified in <xref target="RFC5322">RFC 5322</xref> except that the <DataProviderReference> element is not enclosed in brackets (the "<" and ">" symbols are omitted). In other words, the value of a <DataProviderReference> element is syntactically a msg-id as specified in <xref target="RFC5322">RFC 5322</xref>.</t>
<t>Each block is added to the Additional Data Blocks Registry created in <xref target="additional-data-blocks-registy"/> and categorized as providing data about the caller. New blocks added to the registry in the future MUST also be categorized per the description of the three categories in <xref target="introduction"/>. See <xref target="new-types-of-data"/> and <xref target="new-block-vs-type"/> for additional considerations when adding new blocks or types of data.</t>
<t>Note that the xCard format is re-used in some of the data structures to provide contact information. In an xCard there is no way to specify a "main" telephone number (that is, a primary or main contact number, typically of an enterprise, as opposed to a direct dial number of an individual). These numbers are useful to emergency responders who are called to a large enterprise. This document adds a new parameter value called 'main-number' to the "TYPE" parameter of the "tel" property. It can be used in any xCard in an emergency call additional data block.</t>
<section anchor="data-provider" title="Data Provider Information">
<t>This block is intended to be supplied by any service provider in the path of the call, or the access network provider, and the device. It includes identification and contact information. This block MUST be supplied by any entity that provides any other block; it SHOULD be supplied by every service provider in the call path and by the access network provider if those entities do not add any other blocks. Devices SHOULD use this block to provide identifying information. The MIME media type is "application/EmergencyCallData.ProviderInfo+xml".
An access network provider SHOULD provide this block either by value or by reference in
the <provided-by> element of a PIDF-LO</t>
<section title="Data Provider String">
<t>
<list style="hanging">
<t hangText="Data Element:">Data Provider String
</t>
<t hangText="Use:">Conditional. Optional for blocks supplied by the originating device, mandatory otherwise.
</t>
<t hangText="XML Element:"><DataProviderString>
</t>
<t hangText="Description:">This is a plain text string suitable for displaying the
name of the service provider that supplied the data structure. If the device
creates the structure, it SHOULD use the value of the contact header field in the SIP INVITE.
<!-- This data is required and reflects the contact information of the owner of the
device. -->
</t>
<t hangText="Reason for Need:"> Inform the call taker of the identity of the entity
providing the data.</t>
<t hangText="How Used by Call Taker:">Allows the call taker to interpret the data in
this structure. The source of the information often influences how the information is
used, believed or verified. </t>
</list>
</t>
</section>
<section title="Data Provider ID">
<t>
<list style="hanging">
<t hangText="Data Element:">Data Provider ID
</t>
<t hangText="Use:">Conditional. Optional for blocks supplied by the originating device, mandatory otherwise. This data MUST be provided by all entities other than the originating device in order to uniquely identify the service provider or access provider.
</t>
<t hangText="XML Element:"><ProviderID>
</t>
<t hangText="Description:">A jurisdiction-specific code for, or the fully-qualified domain name of,
the access network provider or service provider shown in the
<DataProvidedBy> element that created the structure. NOTE:
The value SHOULD be assigned by an organization appropriate for the jurisdiction. In the U.S., if the provider is registered with NENA, the provider's NENA Company ID MUST appear here. Additional information can be found
at <eref target="http://www.nena.org/?page=cid2014">NENA Company Identifier Program</eref> or <eref target="http://www.nena.org/?page=CompanyID">NENA Company ID</eref>. The NENA Company ID MUST be in the form of
a URI in the following format: urn:nena:companyid:<NENA Company ID>. If the organization does not have an identifier registered with a jurisdiction-specific emergency services registrar (such as NENA), then the value MAY be the fully-qualified domain name of the service provider or access provider. The device MAY use its IP address or fully-qualified domain name (and set the "Data Provider ID Series" element to "domain").
</t>
<t hangText="Reason for Need:">Inform the call taker of the identity of the entity
providing the data.
</t>
<t hangText="How Used by Call Taker:">Where jurisdictions have lists of providers the Data Provider ID provides useful information about the data source. The Data Provider ID uniquely identifies the source of the data, which might be needed especially during unusual circumstances and for routine logging.</t>
</list>
</t>
</section>
<section title="Data Provider ID Series">
<t>
<list style="hanging">
<t hangText="Data Element:">Data Provider ID Series
</t>
<t hangText="Use:">Conditional. Optional for blocks supplied by the originating device, mandatory otherwise.
</t>
<t hangText="XML Element:"><ProviderIDSeries>
</t>
<t hangText="Description:">Identifies the issuer of
the <ProviderID>. The Provider ID Series Registry created in <xref target="ProviderIDSeries-Registry"/> initially contains the entries shown in <xref target="ProviderIDSeries-Registry-values" />.
</t>
<t hangText="Reason for Need:">Identifies how to interpret the Data Provider ID. The combination of ProviderIDSeries and ProviderID MUST be globally unique.
</t>
<t hangText="How Used by Call Taker:">Determines which provider ID registry to consult for more information</t>
</list>
</t>
<figure anchor="ProviderIDSeries-Registry-values" title="Provider ID Series Registry">
<artwork>
+-----------+--------------------------+----------------------+
| Name | Source | URL |
+-----------+--------------------------+----------------------+
| NENA | National Emergency | http://www.nena.org |
| | Number Association | |
| EENA | European Emergency | http://www.eena.org |
| | Number Association | |
| domain | (The ID is a fully- | (not applicable) |
| | qualified domain name) | |
+-----------+--------------------------+----------------------+
</artwork>
</figure>
</section>
<section title="Type of Data Provider">
<t>
<list style="hanging">
<t hangText="Data Element:">Type of Data Provider
</t>
<t hangText="Use:">Required.
</t>
<t hangText="XML Element:"><TypeOfProvider>
</t>
<t hangText="Description:">Identifies the type of data provider supplying the data. The registry containing all valid values is created in <xref target="TypeOfProvider-Registry" /> and the initial set of values is shown in <xref target="TypeOfProvider-Registry-values"/>.
</t>
<t hangText="Reason for Need:">Identifies the category of data provider.</t>
<t hangText="How Used by Call Taker:">This information can be helpful when deciding whom to contact when further information is needed.</t>
</list>
</t>
<figure anchor="TypeOfProvider-Registry-values" title="Type of Data Provider Registry">
<artwork>
+------------------------------+------------------------------------+
| Token | Description |
+------------------------------+------------------------------------+
|Client | Originating client/device |
|Access Network Provider | Access network service provider |
|Telecom Provider | Telecom service provider (including|
| | native and over-the-top VoIP |
| | services) |
|Telematics Provider | A sensor-based service provider, |
| | especially vehicle-based |
|Language Translation Provider | A spoken language translation |
| | service |
|Emergency Service Provider | An emergency service provider |
| | conveying information to another|
| | emergency service provider. |
|Emergency Modality Translation| An emergency-call-specific |
| | modality translation service |
| | e.g., for sign language |
|Relay Provider | An interpretation service, e.g., |
| | video relay for sign language |
| | interpretation |
|Other | Any other type of service provider |
+------------------------------+------------------------------------+
</artwork>
</figure>
</section>
<section title="Data Provider Contact URI">
<t>
<list style="hanging">
<t hangText="Data Element:">Data Provider Contact URI
</t>
<t hangText="Use:">Required
</t>
<t hangText="XML Element:"><ContactURI>
</t>
<t hangText="Description:">When provided by a service provider or an access network provider, this information is expected to be a
URI to a 24/7 support organization tasked to provide PSAP support
for this emergency call. When provided by a device, this MUST be the contact information of the user or owner of the device. (Ideally, this is the contact information of the device user, but when the owner and user are separate (e.g., the device owner is an organization), this MAY be the contact information of the owner.) The Data Provider Contact URI SHOULD be a TEL URI <xref target="RFC3966"/> in E.164 format fully specified with country code. If a TEL URI is not available, a generic SIP URI is acceptable.
Note that this contact information is not used by PSAPs for callbacks (a call from a PSAP directly related to a recently terminated emergency call, placed by the PSAP using a SIP Priority header field set to "psap-callback", as described in <xref target="RFC7090"/>).
</t>
<t hangText="Reason for Need:">Additional data providers might need to be contacted in
error cases or other unusual circumstances.
</t>
<t hangText="How Used by Call Taker:">To contact the supplier of the additional data for assistance in handling the call.</t>
</list>
</t>
</section>
<section title="Data Provider Languages(s) Supported">
<t>
<list style="hanging">
<t hangText="Data Element:">Data Provider Language(s) supported
</t>
<t hangText="Use:">Required.
</t>
<t hangText="XML Element:"><Language>
</t>
<t hangText="Description:">This field encodes the language used by the entity at the Data Provider Contact URI. The content of this field consists of a single token from the language tags registry, which can be found at <xref target="LanguageTagRegistry"/>, and is
defined in <xref target="RFC5646"/>. Multiple instances of
this element MAY occur but the order is significant and the preferred language SHOULD appear first.
The content MUST reflect the languages supported at the contact URI.
<vspace blankLines="1"/>
(Note that this field informs the PSAP of the language(s) used by the data provider. If the PSAP needs to contact the data provider, it can be helpful to know in advance the language(s) used by the data provider. If the PSAP uses a communication protocol to reach the data provider, that protocol might have language facilities of its own (such as the 'language' media feature tag, defined in RFC 3840 <xref target="RFC3840"/> and the more extensive language negotiation mechanism proposed with <xref target="I-D.ietf-slim-negotiating-human-language"/>), and if so, those are independent of this field.)
</t>
<t hangText="Reason for Need:">This information indicates if the emergency service authority can directly
communicate with the service provider or if an interpreter will be needed.
</t>
<t hangText="How Used by Call Taker:">If the call taker cannot speak any language supported
by the service provider, a translation service will need to be added to the conversation. Alternatively,
other persons at the PSAP, besides the call taker, might be consulted for help (depending on the urgency and the type of interaction).</t>
</list>
</t>
</section>
<section title="xCard of Data Provider">
<t>
<list style="hanging">
<t hangText="Data Element:">xCard of Data Provider
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><DataProviderContact>
</t>
<t hangText="Description:">Per <xref target="RFC6351"/> the xCard structure is represented within a <vcard> element. Although multiple <vcard> elements can be contained in a structure only one <vcard> element SHOULD be provided. If more than one appears, the first SHOULD be used. There are many fields in the xCard and the creator of the data structure is encouraged to provide all available information. N, ORG, ADR, TEL, EMAIL are suggested at a minimum. N SHOULD contain the name of the support group or device owner as appropriate. If more than one TEL property is provided, a parameter from the vCard Property Value registry SHOULD be specified for each TEL. For encoding of the vCard this specification uses the XML-based encoding specified in <xref target="RFC6351"/>, referred to in this document as "xCard".</t>
<t hangText="Reason for Need:">Information needed to determine additional contact
information.
</t>
<t hangText="How Used by Call Taker:">Assists the call taker by providing additional contact
information aside from what is included in the SIP INVITE or the PIDF-LO.</t>
</list>
</t>
</section>
<section title="Subcontractor Principal">
<t>When the entity providing the data is a subcontractor, the Data Provider Type is set to that of the primary service provider and this entry is supplied to provide information regarding the subcontracting entity.</t>
<t>
<list style="hanging">
<t hangText="Data Element:">Subcontractor Principal
</t>
<t hangText="Use:">Conditional. This data is required if the entity providing the data is a subcontractor.
</t>
<t hangText="XML Element:"><SubcontractorPrincipal>
</t>
<t hangText="Description:">Some providers outsource their obligations to handle aspects of emergency services to specialized providers. If the data provider is a subcontractor to another
provider this element contains the DataProviderString of the
service provider to indicate which provider the subcontractor is working for.
</t>
<t hangText="Reason for Need:"> Identify the entity the subcontractor works for.</t>
<t hangText="How Used by Call Taker:">Allows the call taker to understand what the relationship
between data providers and the service providers in the path of the call are.</t>
</list>
</t>
</section>
<section title="Subcontractor Priority">
<t>
<list style="hanging">
<t hangText="Data Element:">Subcontractor Priority
</t>
<t hangText="Use:">Conditional. This data is required if the entity providing the data is a subcontractor.
</t>
<t hangText="XML Element:"><SubcontractorPriority>
</t>
<t hangText="Description:">If the subcontractor is supposed to be contacted first then this element MUST have the value "sub". If the provider the subcontractor is working for is supposed to be contacted first then this element MUST have the value "main".
</t>
<t hangText="Reason for Need:"> Inform the call taker whom to contact first, if support is needed.</t>
<t hangText="How Used by Call Taker:">To decide which entity to contact first if assistance is needed.</t>
</list>
</t>
</section>
<section title="ProviderInfo Example">
<figure anchor="EmergencyCallData.ProviderInfo-example-fig" title="EmergencyCallData.ProviderInfo Example.">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<ad:EmergencyCallData.ProviderInfo
xmlns:ad="urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<ad:DataProviderReference>string0987654321@example.org
</ad:DataProviderReference>
<ad:DataProviderString>Example VoIP Provider
</ad:DataProviderString>
<ad:ProviderID>urn:nena:companyid:ID123</ad:ProviderID>
<ad:ProviderIDSeries>NENA</ad:ProviderIDSeries>
<ad:TypeOfProvider>Telecom Provider</ad:TypeOfProvider>
<ad:ContactURI>tel:+1-201-555-0123</ad:ContactURI>
<ad:Language>en</ad:Language>
<ad:DataProviderContact
xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Hannes Tschofenig</text></fn>
<n>
<surname>Hannes</surname>
<given>Tschofenig</given>
<additional/>
<prefix/>
<suffix>Dipl. Ing.</suffix>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>20090808T1430-0500</date-time>
</anniversary>
<gender><sex>M</sex></gender>
<lang>
<parameters><pref><integer>1</integer></pref>
</parameters>
<language-tag>de</language-tag>
</lang>
<lang>
<parameters><pref><integer>2</integer></pref>
</parameters>
<language-tag>en</language-tag>
</lang>
<org>
<parameters><type><text>work</text></type>
</parameters>
<text>Example VoIP Provider</text>
</org>
<adr>
<parameters>
<type><text>work</text></type>
<label><text>Hannes Tschofenig
Linnoitustie 6
Espoo , Finland
02600</text></label>
</parameters>
<pobox/>
<ext/>
<street>Linnoitustie 6</street>
<locality>Espoo</locality>
<region>Uusimaa</region>
<code>02600</code>
<country>Finland</country>
</adr>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+358 50 4871445</uri>
</tel>
<tel>
<parameters>
<type>
<text>work</text>
<text>main-number</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+358 50 5050505</uri>
</tel>
<email>
<parameters><type><text>work</text></type>
</parameters>
<text>hannes.tschofenig@nsn.com</text>
</email>
<geo>
<parameters><type><text>work</text></type>
</parameters>
<uri>geo:60.210796,24.812924</uri>
</geo>
<key>
<parameters><type><text>home</text></type>
</parameters>
<uri>
http://www.tschofenig.priv.at/key.asc
</uri>
</key>
<tz><text>Finland/Helsinki</text></tz>
<url>
<parameters><type><text>home</text></type>
</parameters>
<uri>http://www.tschofenig.priv.at</uri>
</url>
</vcard>
</ad:DataProviderContact>
</ad:EmergencyCallData.ProviderInfo>
]]></artwork>
</figure>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="service-information" title="Service Information">
<t>This block describes the service that the service provider provides to the caller. It SHOULD be included by all service providers in the path of the call. The MIME media type is "application/EmergencyCallData.ServiceInfo+xml".</t>
<section title="Service Environment">
<t>
<list style="hanging">
<t hangText="Data Element:">Service Environment
</t>
<t hangText="Use:">Conditional: Required unless the 'ServiceType' value is 'wireless'.
</t>
<t hangText="XML Element:"><ServiceEnvironment>
</t>
<t hangText="Description:">This element indicates whether a call is from a business or residence. Currently, the only valid entries are 'Business', 'Residence', and 'unknown', as shown in <xref target="ServiceEnvironment-Registry-values"/>. New values can be defined via the registry created in <xref target="ServiceEnvironment-Registry"/>.
</t>
<t hangText="Reason for Need:">To provide context and a hint when determining equipment and manpower requirements.
</t>
<t hangText="How Used by Call Taker:">Information can be used to provide context and a hint to assist in determining equipment and manpower requirements for emergency responders. This is non-authoritative: There are situations where the service provider does not know the type of service (e.g., anonymous pre-paid service). The type of service does not necessarily reflect the nature of the premises (e.g., a business line installed in a residence, or cellular service). The registry does not contain all possible values for all situations. Hence, this is at best advisory information, but since it mimics a similar capability in some current emergency calling systems (e.g., a field in the Automatic Location Information (ALI) information used with legacy North American wireline systems), it is known to be valuable to PSAPs. The service provider uses its best information (such as a rate plan, facilities used to deliver service or service description) to determine the information and is not responsible for determining the actual characteristics of the location from which the call originated. Because the usefulness is unknown (and less clear) for cellular, this element is OPTIONAL for commercial mobile radio services (e.g., cellular) and REQUIRED otherwise.</t>
</list>
</t>
<figure anchor="ServiceEnvironment-Registry-values" title="Service Environment Registry">
<artwork>
+-----------+--------------------------+
| Token | Description |
+-----------+--------------------------+
| Business | Business service |
| Residence | Residential service |
| unknown | Type of service unknown |
| | (e.g., anonymous pre- |
| | paid service) |
+-----------+--------------------------+
</artwork>
</figure>
</section>
<section title="Service Type">
<t>
<list style="hanging">
<t hangText="Data Element:">Service Delivered by Provider to End User
</t>
<t hangText="Use:">Required
</t>
<t hangText="XML Element:"><ServiceType>
</t>
<t hangText="Description:">This defines the type of service over which the call is placed (similar to the Class of Service delivered with legacy emergency calls in some some regions). The implied mobility of this service cannot be relied upon.
A registry is created in <xref target="ServiceType-Registry"/>. The initial set of values is shown in <xref target="ServiceType-Registry-values"/>. More than one value MAY be returned. For example, a VoIP inmate telephone service is a reasonable combination.
</t>
<t hangText="Reason for Need:">Knowing the type of service can assist the PSAP in handling of the call.
</t>
<t hangText="How Used by Call Taker:">Call takers often use this information to determine what kinds of questions
to ask callers, and how much to rely on supportive information. As the information is not always available, and the registry is not all-encompassing, this is at best advisory information, but since it mimics a similar capability in some legacy emergency calling systems, it is known to be valuable.</t>
</list>
</t>
<figure anchor="ServiceType-Registry-values" title="Service Delivered by Provider to End User Registry">
<artwork>
+--------------+----------------------------------------+
| Name | Description |
+--------------+----------------------------------------+
| wireless | Wireless Telephone Service: Includes |
| | CDMA, GSM, Wi-Fi, WiMAX, LTE (but |
| | not satellite) |
| coin | Fixed public pay/coin telephones: Any |
| | coin or credit card operated device |
| one-way | One way outbound service |
| temp | Soft dial tone/quick service/warm |
| | disconnect/suspended |
| MLTS-hosted | Hosted multi-line telephone system |
| | such as Centrex |
| MLTS-local | Local multi-line telephone system, |
| | includes all PBX, key systems, |
| | Shared Tenant Service |
| sensor- | These are devices that generate DATA |
| unattended | ONLY. This is a one-way information |
| | transmit without interactive media |
| sensor- | Devices that are supported by a |
| attended | monitoring service provider or that |
| | are capable of supporting interactive|
| | media |
| POTS | Wireline: Plain Old Telephone Service |
| OTT | An over-the-top service that provides |
| | communication over arbitrary Internet|
| | access (fixed, nomadic, mobile) |
| digital | Wireline non-OTT digital phone service |
| OPX | Off-premise extension |
| relay | A service where a human third-party |
| | agent provides additional assistance.|
| | This includes sign language relay/ |
| | interpretation, telematics services |
| | that provide a human on the call, |
| | and similar services |
+--------------+----------------------------------------+
</artwork>
</figure>
<t>The initial set of values has been collected from sources of currently-used systems, including <xref target="NENA-02-010"/>, <xref target="nc911"/>, <xref target="NANP"/>, and <xref target="LERG"/>.</t>
</section>
<section title="Service Mobility Environment">
<t>
<list style="hanging">
<t hangText="Data Element:">Service Mobility Environment
</t>
<t hangText="Use:">Required
</t>
<t hangText="XML Element:"><ServiceMobility>
</t>
<t hangText="Description:">This provides the service provider's view of the mobility of the caller's device. As the service provider might not know the characteristics of the actual device or access network used, the value should be treated as advisory and not be relied upon.
A registry is created in <xref target="ServiceMobility-Registry"/> with the initial valid entries shown in <xref target="ServiceMobility-Registry-values"/>.
</t>
<t hangText="Reason for Need:">Knowing the service provider's belief of mobility can assist the PSAP with the
handling of the call.
</t>
<t hangText="How Used by Call Taker:">To determine whether to assume the location of the caller might change.</t>
</list>
</t>
<figure anchor="ServiceMobility-Registry-values" title="Service Mobility Registry">
<artwork>
+-----------+----------------------------+
| Token | Description |
+-----------+----------------------------+
| Mobile | The device is able to move |
| | at any time |
| Fixed | The device is not expected |
| | to move unless the |
| | service is relocated |
| Nomadic | The device is not expected |
| | to change its point of |
| | attachment while on a |
| | call |
| Unknown | No information is known |
| | about the service |
| | mobility environment for |
| | the device |
+-----------+----------------------------+
</artwork>
</figure>
</section>
<section title="EmergencyCallData.ServiceInfo Example">
<figure anchor="EmergencyCallData.ServiceInfo-example-fig" title="EmergencyCallData.ServiceInfo Example.">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<svc:EmergencyCallData.ServiceInfo
xmlns:svc="urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo">
<svc:DataProviderReference>2468.IBOC.MLTS.1359@example.org
</svc:DataProviderReference>
<svc:ServiceEnvironment>Business</svc:ServiceEnvironment>
<svc:ServiceType>MLTS-hosted</svc:ServiceType>
<svc:ServiceMobility>Fixed</svc:ServiceMobility>
</svc:EmergencyCallData.ServiceInfo>
]]></artwork>
</figure>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="device-information" title="Device Information">
<t> This block provides information about the device used to place the
call. It SHOULD be provided by any service provider that knows what
device is being used, and by the device itself. The MIME media type is
"application/EmergencyCallData.DeviceInfo+xml".
</t>
<section title="Device Classification">
<t>
<list style="hanging">
<t hangText="Data Element:">Device Classification
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><DeviceClassification>
</t>
<t hangText="Description:">This data element defines the kind of device making
the emergency call. If the device provides the data structure, the device
information SHOULD be provided. If the service provider provides the
structure and it knows what the device is, the service provider SHOULD
provide the device information. Often the carrier does not know what the
device is. It is possible to receive two Device Information blocks, one provided by the device and one from the
service provider. This information describes the device, not
how it is being used. This data element defines the kind of device making
the emergency call. A registry is created in <xref target="DeviceClassification-Registry"/> with the initial set of values as shown in <xref target="DeviceClassification-Registry-values"/>.
</t>
<t hangText="Reason for Need:">The device classification implies the capability of the calling device and assists in identifying the meaning of the emergency call location information that is being presented. For example, does the device require human intervention to initiate a call or is this call the result of programmed instructions? Does the calling device have the ability to update location or condition changes? Is this device interactive or a one-way reporting device?
</t>
<t hangText="How Used by Call Taker:"> Can provide the call taker context regarding the caller, the capabilities of the calling device or the environment in which the device is being used, and can assist in understanding the location information and capabilities of the calling device. For example, a cordless handset might be outside or next door.</t>
</list>
</t>
<figure anchor="DeviceClassification-Registry-values" title="Device Classification Registry Initial Values">
<artwork>
+---------------+----------------------------------------+
| Token | Description |
+---------------+----------------------------------------+
|cordless | Cordless handset |
|fixed | Fixed phone |
|satellite | Satellite phone |
|sensor-fixed | Fixed (non mobile) sensor/alarm device |
|desktop | Soft client on desktop PC |
|laptop | Soft client on laptop type device |
|tablet | Soft client on tablet type device |
|alarm-monitored| Alarm system |
|sensor-mobile | Mobile sensor device |
|aircraft | Aircraft telematics device |
|automobile | Automobile/cycle/off-road telematics |
|truck | Truck/construction telematics |
|farm | Farm equipment telematics |
|marine | Marine telematics |
|personal | Personal telematics device |
|feature-phone | Feature- (not smart-) cellular phone |
|smart-phone | Smart-phone cellular phone (native) |
|smart-phone-app| Soft client app on smart-phone |
|unknown-device | Soft client on unknown device type |
|game | Gaming console |
|text-only | Other text device |
|NA | Not Available |
+---------------+----------------------------------------+
</artwork>
</figure>
</section>
<section title="Device Manufacturer">
<t>
<list style="hanging">
<t hangText="Data Element:">Device Manufacturer
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><DeviceMfgr>
</t>
<t hangText="Description:">The plain language name of the manufacturer of the device.
</t>
<t hangText="Reason for Need:">Used by PSAP management for post-mortem
investigation/resolution.
</t>
<t hangText="How Used by Call Taker:">Probably not used by the calltaker, but by PSAP
management.</t>
</list>
</t>
</section>
<section title="Device Model Number">
<t>
<list style="hanging">
<t hangText="Data Element:">Device Model Number
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><DeviceModelNr>
</t>
<t hangText="Description:">Model number of the device.
</t>
<t hangText="Reason for Need:">Used by PSAP management for after-action investigation/resolution.
</t>
<t hangText="How Used by Call Taker:">Probably not used by the calltaker, but by PSAP management.</t>
</list>
</t>
</section>
<section title="Unique Device Identifier">
<t>
<list style="hanging">
<t hangText="Data Element:">Unique Device Identifier
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><UniqueDeviceID>
</t>
<t hangText="XML Attribute:"><TypeOfDeviceID>
</t>
<t hangText="Description:">A string that identifies the specific device (or the device's current SIM) making the call or creating an event. Note that more than one <UniqueDeviceID> can be present, to supply more than one of the identifying values.
</t>
<t hangText="">The <TypeOfDeviceID> attribute identifies the type of device identifier. A registry is created in <xref target="TypeOfDeviceID-Registry"/> with an initial set of values shown in <xref target="TypeOfDeviceID-Registry-values"/>.
</t>
<t hangText="Reason for Need:">Uniquely identifies the device (or, in the case of IMSI, a SIM), independent of any signaling
identifiers present in the call signaling stream.
</t>
<t hangText="How Used by Call Taker:">Probably not used by the call taker; might be used by PSAP management during an investigation.
(For example, if a PSAP experiences repeated false/accidental calls and there is no callback number or it isn't usable, the PSAP might need to try and track down the device using various means (e.g., contacting service providers in the area). In the case of handsets without current service, it might be possible to determine who last had service. Another example might be a disconnected call where the call taker believes there is a need for assistance but was not able to obtain a location or other information).</t>
<t hangText="Example:"><UniqueDeviceID TypeOfDeviceID="SN">12345</UniqueDeviceID>
</t>
</list>
</t>
<figure anchor="TypeOfDeviceID-Registry-values" title="Registry of Device Identifier Types">
<artwork>
+--------+------------------------------------------+
| Token | Description |
+--------+------------------------------------------+
| MEID | Mobile Equipment Identifier (CDMA) |
| ESN | Electronic Serial Number (GSM) |
| MAC | Media Access Control Address (IEEE) |
| WiMAX | Device Certificate Unique ID |
| IMEI | International Mobile Equipment ID (GSM) |
| IMSI | International Mobile Subscriber ID (GSM) |
| UDI | Unique Device Identifier |
| RFID | Radio Frequency Identification |
| SN | Manufacturer Serial Number |
+--------+------------------------------------------+
</artwork>
</figure>
</section>
<section title="Device/Service-Specific Additional Data Structure" anchor="device-service-specific-additional-data-structure">
<t>
<list style="hanging">
<t hangText="Data Element:">Device/service-specific additional data structure
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><DeviceSpecificData>
</t>
<t hangText="Description:">A URI representing additional data whose schema is specific to the device or service which created it. (For example, a medical device or medical device monitoring service might have a defined set of medical data). The URI, when dereferenced, MUST yield a data structure defined by the Device/service-specific additional data type value.
Different data can be created by each classification; e.g., a medical device created data set.
</t>
<t hangText="Reason for Need:">Provides device/service-specific data that can be used by the call taker and/or responders.
</t>
<t hangText="How Used by Call Taker:">Provide information to guide call takers to select appropriate responders, give appropriate pre-arrival instructions to callers, and advise responders of what to be prepared for. May be used by responders to guide assistance provided.</t>
</list>
</t>
</section>
<section title="Device/Service-Specific Additional Data Structure Type">
<t>
<list style="hanging">
<t hangText="Data Element:">Type of device/service-specific additional data structure
</t>
<t hangText="Use:">Conditional: MUST be provided when a device/service-specific-additional URI is provided
</t>
<t hangText="XML Element:"><DeviceSpecificType>
</t>
<t hangText="Description:">A value from the registry defined in <xref target="device-service-type-registry"/> to describe the type of data located at the device/service-specific additional data structure. The initial values shown in <xref target="device-service-type-registry-values"/> currently only include IEEE 1512, which is the USDoT model for traffic incidents.
</t>
<t hangText="Reason for Need:">This data element allows identification of externally defined schemas, which might have additional data that can assist in emergency response.
</t>
<t hangText="How Used by Call Taker:">This data element allows the end user (call taker or first responder) to know what type of additional data is available to aid in providing the needed emergency services.
</t>
<t hangText="Note:">This mechanism is not appropriate for information specific to a location or a caller (person).</t>
</list>
</t>
<t>
<figure anchor="device-service-type-registry-values" title="Device/Service Data Type Registry">
<artwork>
+----------+----------------------------+--------------------------+
| Token | Description | Specification |
+----------+----------------------------+--------------------------+
| IEEE1512 | Common Incident Management | IEEE 1512-2006 |
| | Message Set (USDoT model | |
| | for traffic incidents) | |
+----------+----------------------------+--------------------------+
</artwork>
</figure>
The IEEE 1512-2006 specifications can be found at <xref target="IEEE-1512-2006"/>.
</t>
</section>
<section title="EmergencyCallData.DeviceInfo Example">
<figure anchor="EmergencyCallData.DeviceInfo-example-fig" title="EmergencyCallData.DeviceInfo Example.">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<dev:EmergencyCallData.DeviceInfo
xmlns:dev="urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo">
<dev:DataProviderReference>d4b3072df.201409182208075@example.org
</dev:DataProviderReference>
<dev:DeviceClassification>fixed</dev:DeviceClassification>
<dev:DeviceMfgr>Nokia</dev:DeviceMfgr>
<dev:DeviceModelNr>Lumia 800</dev:DeviceModelNr>
<dev:UniqueDeviceID TypeOfDeviceID="IMEI">35788104
</dev:UniqueDeviceID>
</dev:EmergencyCallData.DeviceInfo>
]]></artwork>
</figure>
</section>
</section>
<!-- ******************************************************************************* -->
<!--
<section title="Telephone Number Privacy Indicator">
<t>In regions where authorities allow callers to elect to suppress certain personally identifying information, the network or PSAP functionality can inspect privacy flags within the identity header field to alter which information is passed, stored, or displayed to comply with local policy or law.</t>
<t>
<list style="hanging">
<t hangText="Data Element:">Telephone Number Privacy Indicator</t>
<t hangText="Use:">Required</t>
<t hangText="XML Element:"><TNPrivacyIndicator></t>
<t hangText="Description:">Some regional regulations require that the caller's name remains anonymous to all, including emergency service authorities. Where this regulation is in place, the callers name must be hidden using extensions defined for SIP.</t>
<t hangText="Reason for Need:">Some local regulations require that a Non-Published subscriber name remains private to all, including on emergency calls. Where this regulation is in place, the end user's is replaced by blanks or verbiage such as "Non-Published Number".</t>
<t hangText="How Used by Call Taker:">PSAPs are required to follow local regulations; this indicator informs PSAPs or other entities to apply local regulations governing privacy, e.g., by displaying the string "Non-Published Number" instead of the non-published subscriber name.</t>
</list>
</t>
</section>
-->
<!-- ******************************************************************************* -->
<section anchor="owner-subscriber" title="Owner/Subscriber Information">
<t>This block describes the owner of the device (if provided by the
device) or the subscriber information (if provided by a service
provider). The contact location is not necessarily the location of
the caller or incident, but is rather the nominal contact address.
The MIME media type is "application/EmergencyCallData.SubscriberInfo+xml".</t>
<t>In some jurisdictions some or all parts of the subscriber-specific information are subject to privacy constraints. These constraints vary but dictate which information can be displayed and logged. A general privacy indicator expressing a desire for privacy by the subscriber is provided. The interpretation of how this is applied is left to the receiving jurisdiction as the custodians of the local regulatory requirements. This matches an equivalent privacy flag provided in some legacy emergency call systems.
</t>
<section title="Subscriber Data Privacy Indicator">
<t>
<list style="hanging">
<t hangText="Attribute:">'privacyRequested', Boolean.
</t>
<t hangText="Use:">Conditional. This attribute MUST be provided if the owner/subscriber information block is not empty.
</t>
<t hangText="Description:">The subscriber data privacy indicator specifically expresses the subscriber's desire for privacy. In some jurisdictions subscriber services can have a specific "Type of Service" which prohibits information, such as the name of the subscriber, from being displayed. This attribute is provided to explicitly indicate whether the subscriber service includes such constraints. The interpretation of this indicator is left to each jurisdiction (in keeping with the semantics of the privacy indicator provided in some legacy emergency call systems). Because the interpretation of this indicator varies based on local regulations, this document cannot describe the exact semantics nor indicate which fields are affected (the application of this indicator might affect the display of data contained in any of the blocks).
</t>
<t hangText="Reason for Need:">Some jurisdictions require subscriber privacy to be observed when processing emergency calls.
</t>
<t hangText="How Used by Call Taker:">Where privacy is indicated the call taker might not have access to some aspects of the subscriber information.
</t>
</list>
</t>
</section>
<section title="xCard for Subscriber's Data">
<t>
<list style="hanging">
<t hangText="Data Element:">xCARD for Subscriber's Data
</t>
<t hangText="Use:">Conditional. Subscriber data MUST be provided unless it is not available. Some services, such as prepaid phones, non-initialized phones, etc., do not have information about the subscriber.
</t>
<t hangText="XML Element:"><SubscriberData>
</t>
<t hangText="Description:">Information known by the service provider or device about the subscriber; e.g., Name, Address, Individual Telephone Number, Main Telephone Number and any other data. <n>, <org> (if appropriate), <adr>, <tel>, <email> are suggested at a minimum. If more than one <tel> property is provided, a parameter from the vCard Property Value registry MUST be specified on each <tel>. While some data (such as <anniversary>) might not seem obviously relevant for emergency services, any data is potentially useful in some emergency circumstances.
</t>
<t hangText="Reason for Need:">When the caller is unable to provide information, this data can be used to obtain it
</t>
<t hangText="How Used by Call Taker:">Obtaining critical information about the caller and possibly the location when it is not able to be obtained otherwise. While the location here is not necessarily that of caller, in some circumstances it can be helpful in locating the caller when other means have failed.</t>
</list>
</t>
</section>
<section anchor="EmergencyCallData.SubscriberInfo-example" title="EmergencyCallData.SubscriberInfo Example">
<figure anchor="EmergencyCallData.SubscriberInfo-example-fig" title="EmergencyCallData.SubscriberInfo Example.">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<sub:EmergencyCallData.SubscriberInfo
xmlns:sub=
"urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo"
privacyRequested="false">
<sub:DataProviderReference>FEABFECD901@example.org
</sub:DataProviderReference>
<sub:SubscriberData xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Simon Perreault</text></fn>
<n>
<surname>Perreault</surname>
<given>Simon</given>
<additional/>
<prefix/>
<suffix>ing. jr</suffix>
<suffix>M.Sc.</suffix>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>20090808T1430-0500</date-time>
</anniversary>
<gender><sex>M</sex></gender>
<lang>
<parameters><pref><integer>1</integer></pref>
</parameters>
<language-tag>fr</language-tag>
</lang>
<lang>
<parameters><pref><integer>2</integer></pref>
</parameters>
<language-tag>en</language-tag>
</lang>
<org>
<parameters><type><text>work</text></type>
</parameters>
<text>Viagenie</text>
</org>
<adr>
<parameters>
<type><text>work</text></type>
<label><text>Simon Perreault
2875 boul. Laurier, suite D2-630
Quebec, QC, Canada
G1V 2M2</text></label>
</parameters>
<pobox/>
<ext/>
<street>2875 boul. Laurier,
suite D2-630</street>
<locality>Quebec</locality>
<region>QC</region>
<code>G1V 2M2</code>
<country>Canada</country>
</adr>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+1-418-656-9254;ext=102</uri>
</tel>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
<text>main-number</text>
</type>
</parameters>
<uri>tel:+1-418-555-0000</uri>
</tel>
<tel>
<parameters>
<type>
<text>work</text>
<text>text</text>
<text>voice</text>
<text>cell</text>
<text>video</text>
</type>
</parameters>
<uri>tel:+1-418-262-6501</uri>
</tel>
<email>
<parameters><type><text>work</text></type>
</parameters>
<text>simon.perreault@viagenie.ca</text>
</email>
<geo>
<parameters><type><text>work</text></type>
</parameters>
<uri>geo:46.766336,-71.28955</uri>
</geo>
<key>
<parameters><type><text>work</text></type>
</parameters>
<uri>
http://
www.viagenie.ca/simon.perreault/simon.asc
</uri>
</key>
<tz><text>America/Montreal</text></tz>
<url>
<parameters><type><text>home</text></type>
</parameters>
<uri>http://nomis80.org</uri>
</url>
</vcard>
</sub:SubscriberData>
</sub:EmergencyCallData.SubscriberInfo>
]]></artwork>
</figure>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="comment" title="Comment">
<t>This block provides a mechanism for the data provider to supply extra, human readable information to the PSAP. It is not intended for a general purpose extension mechanism nor does it aim to provide machine-readable content. The MIME media type is "application/EmergencyCallData.Comment+xml"</t>
<section title="Comment">
<t>
<list style="hanging">
<t hangText="Data Element:">EmergencyCallData.Comment
</t>
<t hangText="Use:">Optional
</t>
<t hangText="XML Element:"><Comment>
</t>
<t hangText="Description:">Human readable text providing additional information to the PSAP staff.
</t>
<t hangText="Reason for Need:">Explanatory information for values in the data structure.
</t>
<t hangText="How Used by Call Taker:">To interpret the data provided.</t>
</list>
</t>
</section>
<section anchor="EmergencyCallData.Comment-example" title="EmergencyCallData.Comment Example">
<figure anchor="EmergencyCallData.Comment-example-fig" title="EmergencyCallData.Comment Example.">
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<com:EmergencyCallData.Comment
xmlns:com="urn:ietf:params:xml:ns:EmergencyCallData:Comment">
<com:DataProviderReference>string0987654321@example.org
</com:DataProviderReference>
<com:Comment xml:lang="en">This is an example text.</com:Comment>
</com:EmergencyCallData.Comment>
]]></artwork>
</figure>
</section>
</section>
</section>
<!-- ******************************************************************************* -->
<section title="Issues with getting new types of data into use" anchor="new-types-of-data">
<t>This document describes two mechanisms that allow extension of the kind of data provided with an emergency call: define a new block or define a new service specific additional data URL for the DeviceInfo block (<xref target="device-service-specific-additional-data-structure"/>). While defining new data types and getting a new device or application to send the new data might be easy, getting PSAPs and responders to actually retrieve the data and use it will be difficult. New mechanism providers should understand that acquiring and using new forms of data usually require software upgrades at the PSAP and/or responders, as well as training of call takers and responders in how to interpret and use the information. Legal and operational review might also be needed. Overwhelming a call taker or responder with too much information is highly discouraged. Thus, the barrier to supporting new data is quite high.</t>
<t>The mechanisms this document describes are meant to encourage development of widely supported, common data formats for classes of devices. If all manufacturers of a class of device use the same format, and the data can be shown to improve outcomes, then PSAPs and responders can be encouraged to upgrade their systems and train their staff to use the data. Variations, however well intentioned, are unlikely to be supported.</t>
<t>Implementers should consider that data from sensor-based devices in some cases might not be useful to call takers or PSAPs (and privacy, liability, or other considerations might preclude the PSAP from accessing or handling the data), but might be of use to responders. Each data item provided with the call in conformance with this document can be accessed by responders or other entities in the emergency services, whether or not the data is accessed by the PSAP.</t>
<section title="Choosing between defining a new type of block or new type of device/service-specific additional data" anchor="new-block-vs-type">
<t>
For devices that have device or service specific data, there are two choices to carry it. A new block can be defined, or the device/service-specific additional data URL in the DeviceInfo block can be used and a new type for it defined. The data passed would likely be the same in either case. Considerations for choosing the mechanism under which to register include:
<list style="hanging">
<t hangText="Applicability:">Information which will be supported by many kinds of devices or services are more appropriately defined as separate blocks.</t>
<t hangText="Privacy:">Information sent as a device/service-specific additional data URL in the DeviceInfo block is by reference (not by value), which inherently provides some additional privacy protection (since the requester needs to supply a certificate which is verified by the supplier).</t>
<t hangText="Size:">Information which can be very large might be better sent in the DeviceInfo block, rather than a new block, so that implementations are unable to send the data by value. Conversely, data which is small might best be sent in a separate block so that it can be sent by value.</t>
<t hangText="Availability of a server:">Providing the data via the device block requires a server be available from which to retrieve the data. Providing the data via new block allows it to be sent by value.</t>
</list>
</t>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="transport" title="Data Transport Mechanisms">
<t>This section defines how to convey additional data to an
emergency service provider. Two different means are
specified: the first uses the call signaling; the second uses
the <provided-by> element of a PIDF-LO <xref target="RFC4119"/>.
<list style="numbers">
<t>
First, the ability to embed a Uniform Resource Identifier
(URI) in an existing SIP header field, the Call-Info
header field, is defined. The URI points to the additional data
structure. The Call-Info header field is specified in Section
20.9 of <xref target="RFC3261"/>.
<vspace/><vspace/>This document adds a new compound token starting with the value 'EmergencyCallData' for the Call-Info "purpose" parameter. If the "purpose" parameter is set to a value starting with 'EmergencyCallData', then the Call-Info header field contains either an HTTPS URL pointing to an external resource or a CID (content indirection) URI that allows the data structure to be placed in the body of the SIP message. The "purpose" parameter also indicates the kind of data (by its MIME media subtype) that is available at the URI.
<vspace/><vspace/>As the data is conveyed using a URI in the SIP signaling, the data itself can reside on an external resource, or can be
contained within the body of the SIP message. When the URI refers to data at an external resource, the data is said to be passed by reference.
When the URI refers to data contained within the body of the SIP message, the data is said to be passed by value. A PSAP or emergency responder is able to examine the type of data provided and selectively access the data it is interested in, while forwarding all of it (the values or references) to downstream entities.
<vspace/><vspace/>To be conveyed in a SIP body, additional data about a call is defined as a series of MIME objects (also referred to as a "block" of data). Each block defined in this document is an XML data structure identified by its MIME media type. (Blocks defined by others can be encoded in XML or not, as identified by their MIME registration.) As usual, whenever more than one MIME part is included in the body of a message, MIME multipart (i.e., 'multipart/mixed') encloses them all.
<vspace/><vspace/>This document defines a set of XML schemas and MIME media types used for each block defined here. When additional data is passed by value in the SIP signaling, each CID URL points to one block in the body. Multiple URIs are used within a Call-Info header field (or multiple Call-Info header fields) to point to multiple blocks. When additional data is provided by reference (in SIP signaling or the <provided-by> element of a PIDF-LO), each HTTPS URL references one block; the data is retrieved with an HTTPS GET operation, which returns the block as an object (the blocks defined here are returned as XML objects).
</t>
<t>Second, the ability to embed additional data structures in the <provided-by> element of a PIDF-LO <xref target="RFC4119"/> is defined.
<vspace/><vspace/>In addition to service providers in the call path, the access network provider generally has similar information that can be valuable to the PSAP. When the access network provider and service provider are separate entities, the access network does not participate in the application layer signaling (and hence cannot add a Call-Info header field to the SIP message), but can provide location information in a PIDF-LO. When the access network provider supplies location information in the form of a PIDF-LO from a location server via a location configuration protocol, it has the ability to add the data structures defined in this document (or references to them) within the PIDF-LO.
<vspace/><vspace/>The data in these data structures is not specific to the location itself, but rather provides descriptive information having to do with the immediate circumstances about the provider's provision of the location (e.g., the identity of the access network provider, how to contact that entity, what kind of service the access network provides, subscriber information, etc.). This data is similar in nearly every respect to the data known by service providers in the path of the call. The <provided-by> element of the PIDF-LO is a mechanism for the access network provider to supply the information. This document describes a namespace per <xref target="RFC4119"/> for inclusion in the <provided-by> element of a PIDF-LO for adding information known to the access network provider. The access network provider SHOULD provide additional data within a <provided-by> element of a PDIF-LO it returns for emergency use (e.g., if requested with a HELD "responseTime" attribute of "emergencyRouting" or "emergencyDispatch" <xref target="RFC5985"/>).</t>
</list>
</t>
<!--
<t>The subsequent sections specify how to transmit blocks of additional data.</t>
<t>Blocks can be sent by value (the data in the SIP body or PIDF-LO) or by reference (the data is retrieved via HTTPS from an external server). Data may be provided by the device and/or one or more service providers. For example, the device may provide device specific information by value, a telematics service provider may provide its contact data and data derived from the sensor data (e.g., injury prediction) by reference, and an access network provider may provide contact information by value, all in the same SIP INVITE.</t>
<t>The access network provider may supply additional data as well, by including the data within a provided-by element of a PDIF-LO it returns for emergency use (e.g., if requested with a HELD "responseTime" attribute of "emergencyRouting" or "emergencyDispatch" <xref target="RFC5985"/>). Access network providers are expected to normally supply such information by reference (by including an HTTPS URI within the provided-by element). This document defines a namespace and adds the namespace to the "provided-by" registry defined by PIDF-LO <xref target="RFC4119"/>.</t>
<section title="Transmitting Blocks of Additional Data" anchor="transmitting_blocks">
-->
<t>One or more blocks of data registered in the Emergency Call Additional Data registry, as defined in <xref target="additional-data-blocks-registy"/>, can be included or referenced in the SIP signaling (using the Call-Info header field) or in the <provided-by> element of a PIDF-LO. For interoperability, only blocks in the registry are permitted to be sent using the mechanisms specified in this document. Since multiple entities are expected to provide sets of data, the data itself needs information describing the source. Consequently, each entity adding additional data MUST supply a "Data Provider" block. All other blocks are optional, but each entity SHOULD supply all blocks where it has at least some of the information in the block.</t>
<t>Note that, as with any mechanism, failures are possible. For example, a block (provided by value or by reference) might not be the type indicated by the "purpose" parameter, or might be badly formed, etc. The general principle that applies to emergency calls is that it is more important for the call to go through than for everything to be correct. Thus, most PSAPs will process a call if at all possible, even if data is missing or other failures occur.</t>
<section title="Transmitting Blocks using Call-Info" anchor="using-call-info">
<t>A URI to a block MAY be inserted in any SIP request or response method (most often INVITE or MESSAGE), using a Call-Info header field containing a purpose value starting with 'EmergencyCallData', a dot ("."), and the type of data available at the URI. The type of data is denoted by including the root of the MIME media subtype (the 'EmergencyCallData' prefix is not repeated), omitting any suffix such as '+xml'). For example, when referencing a block with MIME media type 'application/EmergencyCallData.ProviderInfo+xml', the 'purpose' parameter is set to 'EmergencyCallData.ProviderInfo'. An example "Call-Info"
header field for this would be:
</t>
<t>
<list style="hanging" hangIndent="4">
<t hangText="Call-Info:">https://www.example.com/23sedde3; purpose="EmergencyCallData.ProviderInfo"
</t>
</list>
</t>
<t>
A Call-info header field with a purpose value starting with 'EmergencyCallData' only has meaning in the context of an emergency call (as ascertained by the presence of an emergency service URN in a Request-URI header field of a SIP message), test emergency calls (using an appropriate service URN), and some private-use calls where the endpoints have a preexisting relationship and privacy concerns do not apply because of the relationship; use in other contexts is undefined and is likely to unnecessarily expose confidential data.
</t>
<t>
If the data is provided by reference, an
HTTPS URI MUST be included and consequently
Transport Layer Security (TLS) protection is used during the retrieval of the information.</t>
<t>The data can also be supplied by value in any SIP request or response method that is permitted to contain a body (i.e., not a BYE request) <xref target="RFC3261"/>.
In this case, Content Indirection (CID) <xref target="RFC2392"/> is used, with the CID URL referencing the MIME body part containing the data. Note that <xref target="RFC3261"/> forbids proxies from altering message bodies, so entities in the call path that add blocks by value need to do so using an appropriate SIP entity (e.g., a back-to-back user agent).
</t>
<t>Transmitting data by value is especially useful in certain cases, such as when the data exists in or is generated by the originating device, but is not intended for very large data blocks. Additional security and privacy considerations apply to data transmitted by value, as discussed in <xref target="security"/> and <xref target="privacy"/>.
</t>
<t> More than one Call-Info header field with a purpose value starting with 'EmergencyCallData' can be expected, but at least one MUST be provided.
The device MUST provide one unless it knows that a service provider is in the path of the call. The device MAY insert one if it uses a service provider. Each service provider in the path of an emergency call MUST insert its own. For example, a device, a telematics service provider in the call path, as well as the mobile carrier handling
the call will each provide one. There might be circumstances where there is a service provider who is unaware that the call is an emergency call and cannot reasonably be expected to determine that it is an emergency call. In that case, that service provider is not expected to provide EmergencyCallData.
</t>
<t>
When blocks are transmitted by value, the 'purpose' parameter in a
Call-Info header field identifies the data, and the CID URL points to
the data block in the body (which has a matching Content-ID body part
header field). When a data block is carried in a signed or encrypted
body part, the enclosing multipart (e.g., multipart/signed or
multipart/encrypted) has the same Content-ID as the data part. This
allows an entity to identify and access the data blocks it is
interested in without having to dive deeply into the message
structure or decrypt parts it is not interested in.
</t>
</section>
<section title="Transmitting Blocks by Reference using the <provided-by> Element">
<t>
The <EmergencyCallDataReference> element is used to transmit an additional data block by reference within a <provided-by> element of a PIDF-LO. The <EmergencyCallDataReference> element has two attributes: 'ref' to specify the URL, and 'purpose' to indicate the type of data block referenced. The value of 'ref' is an HTTPS URL that resolves to a data structure with information about the call. The value of 'purpose' is the same as used in a 'Call-Info' header field (as specified in <xref target="using-call-info"/>).
</t>
<t>
For example, to reference a block with MIME media type
'application/EmergencyCallData.ProviderInfo+xml', the 'purpose' parameter
is set to 'EmergencyCallData.ProviderInfo'. An example <EmergencyCallDataReference> element for this would be:
</t>
<t>
<list>
<t>
<EmergencyCallDataReference ref="https://www.example.com/23sedde3" purpose="EmergencyCallData.ProviderInfo"/>
</t>
</list>
</t>
<t>The <EmergencyCallDataReference> element transmits one data block; multiple data blocks are transmitted by using multiple <EmergencyCallDataReference> elements. Multiple <EmergencyCallDataReference> elements MAY be included as child elements inside the <provided-by> element.</t>
<t>
The following is a simplified example:
<figure title="Example <provided-by> by Reference">
<artwork>
<![CDATA[
<provided-by>
<EmergencyCallDataReference
purpose="EmergencyCallData.ServiceInfo"
ref="https://example.com/ref2" />
<EmergencyCallDataReference
purpose="EmergencyCallData.ProviderInfo"
ref="https://example.com/ref3" />
<EmergencyCallDataReference
purpose="EmergencyCallData.Comment"
ref="https://example.com/ref4" />
</provided-by>
]]>
</artwork>
</figure>
</t>
<t>For an example in context, <xref target="example3"/> shows a PIDF-LO example with an <EmergencyCallDataReference> element pointing to an EmergencyCallData.ServiceInfo data block with the URL in the 'ref' attribute and the purpose attribute set to "EmergencyCallData.ServiceInfo". </t>
</section>
<section title="Transmitting Blocks by Value using the <provided-by> Element">
<t>
It is RECOMMENDED that access networks supply the data specified in this document by reference, because PIDF-LOs can be fetched by a client or other entity and stored locally, so providing the data by value risks exposing private information to a larger audience.
</t>
<t>
The <EmergencyCallDataValue> element is used to transmit one or more additional data blocks by value within a <provided-by> element of a PIDF-LO. Each block being transmitted is placed (as a child element) inside the <EmergencyCallDataValue> element. (The same XML structure as would be contained in the corresponding MIME media type body part is placed inside the <EmergencyCallDataValue> element.) Multiple <EmergencyCallDataValue> elements MAY be included as child elements in the <provided-by> element.
</t>
<t>
The following is a simplified example:
<figure title="Example <provided-by> by Value">
<artwork>
<![CDATA[
<provided-by>
<EmergencyCallDataValue>
<EmergencyCallData.ProviderInfo
xmlns=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<DataProviderReference>flurbit735@es.example.com
</DataProviderReference>
<DataProviderString>Access Network Examples, Inc
</DataProviderString>
<ProviderID>urn:nena:companyid:Test</ProviderID>
<ProviderIDSeries>NENA</ProviderIDSeries>
<TypeOfProvider>Access Network Provider
</TypeOfProvider>
<ContactURI>tel:+1-555-555-0897</ContactURI>
<Language>en</Language>
</EmergencyCallData.ProviderInfo>
<EmergencyCallData.Comment
xmlns=
"urn:ietf:params:xml:ns:EmergencyCallData:Comment">
<DataProviderReference>flurbit735@es.example.com
</DataProviderReference>
<Comment xml:lang="en">This is an example text.
</Comment>
</EmergencyCallData.Comment>
</EmergencyCallDataValue>
</provided-by>
]]>
</artwork>
</figure>
</t>
<t>
For an example in context, <xref target="example3"/> shows a PIDF-LO example that contains a <provided-by> element with the <EmergencyCallData.ProviderInfo> and the <EmergencyCallData.Comment> elements as child elements of an <EmergencyCallDataValue> element.</t>
</section>
<section title="The Content-Disposition Parameter">
<t>RFC 5621 <xref target="RFC5621"/> discusses the handling of message bodies in SIP.
It updates and clarifies handling originally defined in RFC 3261 <xref target="RFC3261"/> based on implementation experience.
While RFC 3261 did not mandate support for 'multipart' message bodies, 'multipart/mixed' MIME bodies are used by many extensions (including this document) today. For example, adding a PIDF-LO, SDP, and additional data in body of a SIP message requires a 'multipart' message body.</t>
<t>RFC 3204 <xref target="RFC3204"/> and RFC 3459 <xref target="RFC3459"/> define the 'handling' parameter for the Content-Disposition header field.
These RFCs describe how a UAS reacts if it receives a message body whose content type or disposition type it does not understand.
If the 'handling' parameter has the value "optional", the UAS ignores the message body. If the 'handling' parameter has the value "required", the UAS returns a 415 (Unsupported Media Type) response. The 'by-reference' disposition type of <xref target="RFC5621"/> allows a SIP message to contain a reference to the body part, and the SIP UA processes the body part according to the reference. This is the case for a Call-info header field containing a Content Indirection (CID) URL.
</t>
<t>As an example, a SIP message indicates the Content-Disposition parameter in the body of the SIP message as shown in <xref target="content-disposition-example"/>.
<figure anchor="content-disposition-example" title="Example for use of the Content-Disposition Parameter in SIP">
<artwork>
<![CDATA[
Content-Type: application/sdp
...Omit Content-Disposition here; defaults are ok
...SDP goes in here
--boundary1
Content-Type: application/pidf+xml
Content-ID: <target123@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
...PIDF-LO goes in here
--boundary1
Content-Type: application/EmergencyCallData.ProviderInfo+xml
Content-ID: <1234567890@atlanta.example.com>
Content-Disposition: by-reference; handling=optional
...Data provider information data goes in here
--boundary1--
]]>
</artwork>
</figure>
</t>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="example" title="Examples">
<t>This section illustrates a longer and more complex example, as shown in <xref target="long-example"/>. In this example additional data is added by the end device, included by the VoIP provider, and provided by the access network provider (via the PIDF-LO). </t>
<t>
<figure anchor="long-example" title="Additional Data Example Flow">
<artwork>
<![CDATA[
O +----+ [============] [=============]
/|\ | UA | [ Access ] [ VoIP ]
| +----+ [ Network ] [ Provider ]
/ \ [ Provider ] [ example.org ]
[ ] [ ]
(1) [ ] (2) [ ]
Emergency Call [ ] Emergency Call [ ]
------------------------------------------------------> ]
+Device Info [ ] +Device Info [ ]
+Data Prov. Info [ ^ ] +Data Provider Info [ | ]
+Location URI [=======.====] +Location URI [====|========]
. |
. |
+Location . [==============] |
+Owner/Subscriber Info . [ ] (3) |
+Device Info . (4) [ <------------+
+Data Provider Info #3 ..........> ] Emergency Call
[ ] +Device Info
[ PSAP ] +Data Prov. Info #2
[ ] +Location URI
[==============]
Legend:
--- Emergency Call Setup Procedure
... Location Retrieval/Response
]]></artwork>
</figure>
</t>
<t>The example scenario starts with the end device itself adding device information, owner/subscriber information, a location URI, and data provider information to the outgoing emergency call setup message (see step #1 in <xref target="long-example"/>). The SIP INVITE example is shown in <xref target="example1"/>.</t>
<t>
<figure anchor="example1" title="End Device sending SIP INVITE with Additional Data">
<artwork>
<![CDATA[
INVITE urn:service:sos SIP/2.0
Via: SIPS/2.0/TLS server.example.com;branch=z9hG4bK74bf9
Max-Forwards: 70
To: <urn:service:sos>
From: Hannes Tschofenig <sips:hannes@example.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@example.com
Call-Info: <http://wwww.example.com/hannes/photo.jpg>
;purpose=icon,
<http://www.example.com/hannes/> ;purpose=info,
<cid:1234567890@atlanta.example.com>
;purpose=EmergencyCallData.ProviderInfo,
<cid:0123456789@atlanta.example.com>
;purpose=EmergencyCallData.DeviceInfo
Geolocation: <https://ls.example.net:9768/357yc6s64ceyoiuy5ax3o>
Geolocation-Routing: yes
Accept: application/sdp, application/pidf+xml,
application/EmergencyCallData.ProviderInfo+xml
CSeq: 31862 INVITE
Contact: <sips:hannes@example.com>
Content-Type: multipart/mixed; boundary=boundary1
Content-Length: ...
--boundary1
Content-Type: application/sdp
...SDP goes here
--boundary1
Content-Type: application/EmergencyCallData.DeviceInfo+xml
Content-ID: <0123456789@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<dev:EmergencyCallData.DeviceInfo
xmlns:dev=
"urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo">
<dev:DataProviderReference>
d4b3072df09876543@[93.184.216.119]
</dev:DataProviderReference>
<dev:DeviceClassification>laptop</dev:DeviceClassification>
<dev:UniqueDeviceID
TypeOfDeviceID="MAC">00-0d-4b-30-72-df
</dev:UniqueDeviceID>
</dev:EmergencyCallData.DeviceInfo>
--boundary1
Content-Type: application/EmergencyCallData.ProviderInfo+xml
Content-ID: <1234567890@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<pi:EmergencyCallData.ProviderInfo
xmlns:pi=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<pi:DataProviderReference>d4b3072df09876543@[93.184.216.119]
</pi:DataProviderReference>
<pi:DataProviderString>Hannes Tschofenig</pi:DataProviderString>
<pi:TypeOfProvider>Client</pi:TypeOfProvider>
<pi:ContactURI>tel:+1-555-555-0123</pi:ContactURI>
<pi:Language>en</pi:Language>
<pi:DataProviderContact
xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Hannes Tschofenig</text></fn>
<n>
<surname>Hannes</surname>
<given>Tschofenig</given>
<additional/>
<prefix/>
<suffix>Dipl. Ing.</suffix>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>20090808T1430-0500</date-time>
</anniversary>
<gender><sex>M</sex></gender>
<lang>
<parameters><pref><integer>1</integer></pref>
</parameters>
<language-tag>de</language-tag>
</lang>
<lang>
<parameters><pref><integer>2</integer></pref>
</parameters>
<language-tag>en</language-tag>
</lang>
<adr>
<parameters>
<type><text>work</text></type>
<label><text>Hannes Tschofenig
Linnoitustie 6
Espoo, Finland
02600</text></label>
</parameters>
<pobox/>
<ext/>
<street>Linnoitustie 6</street>
<locality>Espoo</locality>
<region>Uusimaa</region>
<code>02600</code>
<country>Finland</country>
</adr>
<adr>
<parameters>
<type><text>home</text></type>
<label><text>Hannes Tschofenig
c/o Hotel DuPont
42 W 11th St
Wilmington, DE 19801
USA</text></label>
</parameters>
<pobox/>
<ext/>
<street>42 W 11th St</street>
<locality>Wilmington</locality>
<region>DE</region>
<code>19801</code>
<country>USA</country>
</adr>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+358 50 4871445</uri>
</tel>
<tel>
<parameters>
<type>
<text>home</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+1 555 555 0123</uri>
</tel>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
<text>main-number</text>
</type>
</parameters>
<uri>tel:+1 302 594-3100</uri>
</tel>
<email>
<parameters><type><text>work</text></type>
</parameters>
<text>hannes.tschofenig@nsn.com</text>
</email>
<geo>
<parameters><type><text>work</text></type>
</parameters>
<uri>geo:60.210796,24.812924</uri>
</geo>
<geo>
<parameters><type><text>home</text></type>
</parameters>
<uri>geo:39.746537,-75.548027</uri>
</geo>
<key>
<parameters>
<type><text>home</text></type>
</parameters>
<uri>https://www.example.com/key.asc</uri>
</key>
<tz><text>Finland/Helsinki</text></tz>
<url>
<parameters><type><text>home</text></type>
</parameters>
<uri>http://example.com/hannes.tschofenig
</uri>
</url>
</vcard>
</pi:DataProviderContact>
</pi:EmergencyCallData.ProviderInfo>
--boundary1--
]]></artwork>
</figure>
</t>
<t>In this example, information available to the access network provider is included in the call setup message only indirectly via the use of the location reference. The PSAP has to retrieve it via a separate look-up step. Since the access network provider and the VoIP service provider are two independent entities in this scenario, the access network provider is not involved in application layer exchanges; the SIP INVITE transits the access network transparently, as illustrated in steps #1 and #2 (the access network does not alter the SIP INVITE).</t>
<t>The VoIP service provider receives the message and determines, based on the Service URN, that the incoming request is an emergency call. It performs typical emergency services related tasks (such as location-based routing), and adds additional data, namely service and subscriber information as well as data provider information #2, to the outgoing message. For the example we assume a VoIP service provider that deploys a back-to-back user agent allowing additional data to be included in the body of the SIP message (rather than by reference), which allows us to illustrate the use of multiple data provider info blocks. The resulting message is shown in <xref target="example2"/>. The SIP INVITE is sent to the PSAP in step #3.</t>
<t>
<figure anchor="example2" title="VoIP Provider sending SIP INVITE with Additional Data">
<artwork>
<![CDATA[
INVITE sips:psap@example.org SIP/2.0
Via: SIPS/2.0/TLS server.example.com;branch=z9hG4bK74bf9
Max-Forwards: 70
To: <urn:service:sos>
From: Hannes Tschofenig <sips:hannes@example.com>;tag=9fxced76sl
Call-ID: 3848276298220188511@example.com
Call-Info: <http://wwww.example.com/hannes/photo.jpg>;
purpose=icon,
<http://www.example.com/hannes/>; purpose=info,
<cid:1234567890@atlanta.example.com>;
purpose=EmergencyCallData.ProviderInfo
<cid:0123456789@atlanta.example.com>;
purpose=EmergencyCallData.DeviceInfo
Call-Info: <cid:bloorpyhex@atlanta.example.com>;
purpose=EmergencyCallData.ServiceInfo
Call-Info: <cid:aaabbb@atlanta.example.com>;
purpose=EmergencyCallData.ProviderInfo
Geolocation: <https://ls.example.net:9768/357yc6s64ceyoiuy5ax3o>
Geolocation-Routing: yes
Accept: application/sdp, application/pidf+xml,
application/EmergencyCallData.ProviderInfo+xml
CSeq: 31862 INVITE
Contact: <sips:hannes@example.com>
Content-Type: multipart/mixed; boundary=boundary1
Content-Length: ...
--boundary1
Content-Type: application/sdp
...SDP goes here
--boundary1
Content-Type: application/EmergencyCallData.DeviceInfo+xml
Content-ID: <0123456789@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<dev:EmergencyCallData.DeviceInfo
xmlns:dev=
"urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo">
<dev:DataProviderReference>d4b3072df09876543@[93.184.216.119]
</dev:DataProviderReference>
<dev:DeviceClassification>laptop</dev:DeviceClassification>
<dev:UniqueDeviceID
TypeOfDeviceID="MAC">00-0d-4b-30-72-df</dev:UniqueDeviceID>
</dev:EmergencyCallData.DeviceInfo>
--boundary1
Content-Type: application/EmergencyCallData.ProviderInfo+xml
Content-ID: <1234567890@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<pi:EmergencyCallData.ProviderInfo
xmlns:pi=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<pi:DataProviderReference>d4b3072df09876543@[93.184.216.119]
</pi:DataProviderReference>
<pi:DataProviderString>Hannes Tschofenig
</pi:DataProviderString>
<pi:TypeOfProvider>Client</pi:TypeOfProvider>
<pi:ContactURI>tel:+1-555-555-0123</pi:ContactURI>
<pi:Language>en</pi:Language>
<pi:DataProviderContact
xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>Hannes Tschofenig</text></fn>
<n>
<surname>Hannes</surname>
<given>Tschofenig</given>
<additional/>
<prefix/>
<suffix>Dipl. Ing.</suffix>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>20090808T1430-0500</date-time>
</anniversary>
<gender><sex>M</sex></gender>
<lang>
<parameters><pref><integer>1</integer></pref>
</parameters>
<language-tag>de</language-tag>
</lang>
<lang>
<parameters><pref><integer>2</integer></pref>
</parameters>
<language-tag>en</language-tag>
</lang>
<adr>
<parameters>
<type><text>work</text></type>
<label><text>Hannes Tschofenig
Linnoitustie 6
Espoo, Finland
02600</text></label>
</parameters>
<pobox/>
<ext/>
<street>Linnoitustie 6</street>
<locality>Espoo</locality>
<region>Uusimaa</region>
<code>02600</code>
<country>Finland</country>
</adr>
<adr>
<parameters>
<type><text>home</text></type>
<label><text>Hannes Tschofenig
c/o Hotel DuPont
42 W 11th St
Wilmington, DE 19801
USA</text></label>
</parameters>
<pobox/>
<ext/>
<street>42 W 11th St</street>
<locality>Wilmington</locality>
<region>DE</region>
<code>19801</code>
<country>USA</country>
</adr>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+358 50 4871445</uri>
</tel>
<tel>
<parameters>
<type>
<text>home</text>
<text>voice</text>
</type>
</parameters>
<uri>tel:+1 555 555 0123</uri>
</tel>
<email>
<parameters><type><text>work</text></type>
</parameters>
<text>hannes.tschofenig@nsn.com</text>
</email>
<geo>
<parameters><type><text>work</text></type>
</parameters>
<uri>geo:60.210796,24.812924</uri>
</geo>
<geo>
<parameters><type><text>home</text></type>
</parameters>
<uri>geo:39.746537,-75.548027</uri>
</geo>
<key>
<parameters>
<type><text>home</text></type>
</parameters>
<uri>https://www.example.com/key.asc</uri>
</key>
<tz><text>Finland/Helsinki</text></tz>
<url>
<parameters><type><text>home</text></type>
</parameters>
<uri>http://example.com/hannes.tschofenig</uri>
</url>
</vcard>
</pi:DataProviderContact>
</pi:EmergencyCallData.ProviderInfo>
--boundary1
Content-Type: application/EmergencyCallData.ServiceInfo+xml
Content-ID: <bloorpyhex@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<svc:EmergencyCallData.ServiceInfo
xmlns:svc=
"urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo">
<svc:DataProviderReference>string0987654321@example.org
</svc:DataProviderReference>
<svc:ServiceEnvironment>Residence</svc:ServiceEnvironment>
<svc:ServiceType>VOIP</svc:ServiceType>
<svc:ServiceMobility>Unknown</svc:ServiceMobility>
</svc:EmergencyCallData.ServiceInfo>
--boundary1
Content-Type: application/EmergencyCallData.ProviderInfo+xml
Content-ID: <aaabbb@atlanta.example.com>
Content-Disposition: by-reference;handling=optional
<?xml version="1.0" encoding="UTF-8"?>
<pi:EmergencyCallData.ProviderInfo
xmlns:pi=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<pi:DataProviderReference>string0987654321@example.org
</pi:DataProviderReference>
<pi:DataProviderString>Exemplar VoIP Provider
</pi:DataProviderString>
<pi:ProviderID>urn:nena:companyid:ID123</pi:ProviderID>
<pi:ProviderIDSeries>NENA</pi:ProviderIDSeries>
<pi:TypeOfProvider>Service Provider</pi:TypeOfProvider>
<pi:ContactURI>sip:voip-provider@example.com</pi:ContactURI>
<pi:Language>en</pi:Language>
<pi:DataProviderContact
xmlns="urn:ietf:params:xml:ns:vcard-4.0">
<vcard>
<fn><text>John Doe</text></fn>
<n>
<surname>John</surname>
<given>Doe</given>
<additional/>
<prefix/>
<suffix/>
</n>
<bday><date>--0203</date></bday>
<anniversary>
<date-time>20090808T1430-0500</date-time>
</anniversary>
<gender><sex>M</sex></gender>
<lang>
<parameters><pref><integer>1</integer></pref>
</parameters>
<language-tag>en</language-tag>
</lang>
<org>
<parameters><type><text>work</text></type>
</parameters>
<text>Exemplar VoIP Provider</text>
</org>
<adr>
<parameters>
<type><text>work</text></type>
<label><text>John Doe
123 Middle Street
The Sticks, IA 50055</text></label>
</parameters>
<pobox/>
<ext/>
<street>123 Middle Street</street>
<locality>the Sticks</locality>
<region>IA</region>
<code>50055</code>
<country>USA</country>
</adr>
<tel>
<parameters>
<type>
<text>work</text>
<text>voice</text>
<text>main-number</text>
</type>
</parameters>
<uri>sips:john.doe@example.com</uri>
</tel>
<email>
<parameters><type><text>work</text></type>
</parameters>
<text>john.doe@example.com</text>
</email>
<geo>
<parameters><type><text>work</text></type>
</parameters>
<uri>geo:41.761838,-92.963268</uri>
</geo>
<tz><text>America/Chicago</text></tz>
<url>
<parameters><type><text>home</text></type>
</parameters>
<uri>http://www.example.com/john.doe</uri>
</url>
</vcard>
</pi:DataProviderContact>
</pi:EmergencyCallData.ProviderInfo>
--boundary1--
]]></artwork>
</figure>
</t>
<t>Finally, the PSAP requests location information from the access network provider. The response is shown in <xref target="example3"/>. Along with the location information, additional data is provided in the <provided-by> element of the PIDF-LO. This request and response is step #4.</t>
<t>
<figure anchor="example3" title="Access Network Provider returning PIDF-LO with Additional Data">
<artwork>
<![CDATA[
<?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:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
entity="pres:alice@atlanta.example.com">
<dm:device id="target123-1">
<gp:geopriv>
<gp:location-info>
<civicAddress
xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
<country>US</country>
<A1>DE</A1>
<A3>Wilmington</A3>
<PRD>W</PRD>
<RD>11th</RD>
<STS>Street</STS>
<HNO>42</HNO>
<NAM>The Hotel DuPont</NAM>
<PC>19801</PC>
</civicAddress>
</gp:location-info>
<gp:usage-rules>
<gbp:retransmission-allowed>true
</gbp:retransmission-allowed>
<gbp:retention-expiry>2013-12-10T20:00:00Z
</gbp:retention-expiry>
</gp:usage-rules>
<gp:method>802.11</gp:method>
<gp:provided-by
xmlns="urn:ietf:params:xml:ns:EmergencyCallData">
<EmergencyCallDataReference
purpose="EmergencyCallData.ServiceInfo"
ref="https://example.com/ref2" />
<EmergencyCallDataValue>
<EmergencyCallData.ProviderInfo
xmlns=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<DataProviderReference>88QV4FpfZ976T@example.com
</DataProviderReference>
<DataProviderString>Diamond State Exemplar
</DataProviderString>
<ProviderID>urn:nena:companyid:diamond</ProviderID>
<ProviderIDSeries>NENA</ProviderIDSeries>
<TypeOfProvider>Access Network Provider</TypeOfProvider>
<ContactURI>tel:+1-302-555-0000</ContactURI>
<Language>en</Language>
</EmergencyCallData.ProviderInfo>
<EmergencyCallData.Comment
xmlns="urn:ietf:params:xml:ns:EmergencyCallData:Comment">
<DataProviderReference>88QV4FpfZ976T@example.com
</DataProviderReference>
<Comment xml:lang="en">This is an example text.</Comment>
</EmergencyCallData.Comment>
</EmergencyCallDataValue>
</gp:provided-by>
</gp:geopriv>
<dm:deviceID>mac:00-0d-4b-30-72-df</dm:deviceID>
<dm:timestamp>2013-07-09T20:57:29Z</dm:timestamp>
</dm:device>
</presence>
]]>
</artwork>
</figure>
</t>
</section>
<!-- ******************************************************************************* -->
<section title="XML Schemas">
<t>This section defines the XML schemas of the five data blocks. Additionally, the provided-by schema is specified.</t>
<section title="EmergencyCallData.ProviderInfo XML Schema">
<t>
<figure anchor="EmergencyCallDataProviderInfo" title="EmergencyCallData.ProviderInfo XML Schema.">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xc="urn:ietf:params:xml:ns:vcard-4.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:vcard-4.0"
schemaLocation="vcard.xsd"/>
<xs:element
name="EmergencyCallData.ProviderInfo"
type="pi:ProviderInfoType"/>
<xs:simpleType name="SubcontractorPriorityType">
<xs:restriction base="xs:string">
<xs:enumeration value="sub"/>
<xs:enumeration value="main"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ProviderInfoType">
<xs:sequence>
<xs:element name="DataProviderReference"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="DataProviderString"
type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="ProviderID"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ProviderIDSeries"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="TypeOfProvider"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="ContactURI" type="xs:anyURI"
minOccurs="1" maxOccurs="1"/>
<xs:element name="Language" minOccurs="1" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern
value="([a-z]{2,3}((-[a-z]{3}){0,3})?|[a-z]{4,8})
(-[a-z]{4})?(-([a-z]{2}|\d{3}))?(-([0-9a-z]{5,8}|
\d[0-9a-z]{3}))*(-[0-9a-wyz](-[0-9a-z]{2,8})+)*
(-x(-[0-9a-z]{1,8})+)?|x(-[0-9a-z]{1,8})+|[a-z]{1,3}
(-[0-9a-z]{2,8}){1,2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DataProviderContact"
minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0"
maxOccurs="unbounded" ref="xc:vcard"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SubcontractorPrincipal"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SubcontractorPriority"
type="pi:SubcontractorPriorityType"
minOccurs="0" maxOccurs="1"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
<section title="EmergencyCallData.ServiceInfo XML Schema">
<t> <figure anchor="addCallServiceInfo" title="EmergencyCallData.ServiceInfo XML Schema.">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:svc="urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="EmergencyCallData.ServiceInfo"
type="svc:ServiceInfoType"/>
<xs:complexType name="ServiceInfoType">
<xs:sequence>
<xs:element name="DataProviderReference"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="ServiceEnvironment"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ServiceType"
type="xs:string" minOccurs="1"
maxOccurs="unbounded"/>
<xs:element name="ServiceMobility"
type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
<section title="EmergencyCallData.DeviceInfo XML Schema">
<t>
<figure anchor="EmergencyCallDeviceInfo" title="EmergencyCallData.DeviceInfo XML Schema.">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dev="urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="EmergencyCallData.DeviceInfo"
type="dev:DeviceInfoType"/>
<xs:complexType name="DeviceInfoType">
<xs:sequence>
<xs:element name="DataProviderReference"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="DeviceClassification"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="DeviceMfgr"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="DeviceModelNr"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="UniqueDeviceID" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="TypeOfDeviceID"
type="xs:string"
use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DeviceSpecificData"
type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
<xs:element name="DeviceSpecificType"
type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
<section anchor="SubscriberXML" title="EmergencyCallData.SubscriberInfo XML Schema">
<t>
<figure anchor="addCallSub" title="EmergencyCallData.SubscriberInfo XML Schema.">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sub=
"urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo"
xmlns:xc="urn:ietf:params:xml:ns:vcard-4.0"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:vcard-4.0"
schemaLocation="vcard.xsd"/>
<xs:element name="EmergencyCallData.SubscriberInfo"
type="sub:SubscriberInfoType"/>
<xs:complexType name="SubscriberInfoType">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:sequence>
<xs:element name="DataProviderReference"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="SubscriberData">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded"
ref="xc:vcard"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="privacyRequested" type="xs:boolean"
use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
<section anchor="CommentXML" title="EmergencyCallData.Comment XML Schema">
<t>
<figure anchor="EmergencyCallData.EmergencyCallData.Comment" title="EmergencyCallData.Comment XML Schema.">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData:Comment"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:com="urn:ietf:params:xml:ns:EmergencyCallData:Comment"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="EmergencyCallData.Comment"
type="com:CommentType"/>
<xs:complexType name="CommentType">
<xs:sequence>
<xs:element name="DataProviderReference"
type="xs:token" minOccurs="1" maxOccurs="1"/>
<xs:element name="Comment"
type="com:CommentSubType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CommentSubType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
<section anchor="provided-by-schema" title="provided-by XML Schema">
<t>This section defines the provided-by schema.
<figure anchor="provided-by-XML" title="provided-by XML Schema">
<artwork>
<![CDATA[
<?xml version="1.0"?>
<xs:schema
targetNamespace=
"urn:ietf:params:xml:ns:EmergencyCallData"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ad="urn:ietf:params:xml:ns:EmergencyCallData"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo"
xmlns:svc="urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo"
xmlns:dev="urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo"
xmlns:sub=
"urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo"
xmlns:com="urn:ietf:params:xml:ns:EmergencyCallData:Comment"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import
namespace="urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo"
schemaLocation="ProviderInfo.xsd"/>
<xs:import
namespace="urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo"
schemaLocation="ServiceInfo.xsd"/>
<xs:import
namespace="urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo"
schemaLocation="DeviceInfo.xsd"/>
<xs:import
namespace=
"urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo"
schemaLocation="SubscriberInfo.xsd"/>
<xs:import
namespace="urn:ietf:params:xml:ns:EmergencyCallData:Comment"
schemaLocation="Comment.xsd"/>
<xs:element name="EmergencyCallDataReference"
type="ad:ByRefType"/>
<xs:element name="EmergencyCallDataValue"
type="ad:EmergencyCallDataValueType"/>
<!-- Additional Data By Reference -->
<xs:complexType name="ByRefType">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:sequence>
<xs:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
<xs:attribute name="purpose" type="xs:token"
use="required"/>
<xs:attribute name="ref" type="xs:anyURI"
use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- Additional Data By Value -->
<xs:complexType name="EmergencyCallDataValueType">
<xs:sequence>
<xs:element name="EmergencyCallData.ProviderInfo"
type="pi:ProviderInfoType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="EmergencyCallData.ServiceInfo"
type="svc:ServiceInfoType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="EmergencyCallData.DeviceInfo"
type="dev:DeviceInfoType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="EmergencyCallData.SubscriberInfo"
type="sub:SubscriberInfoType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="EmergencyCallData.Comment"
type="com:CommentType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
]]></artwork>
</figure>
</t>
</section>
</section>
<!-- ******************************************************************************* -->
<section anchor="security" title="Security Considerations">
<t>The data structures described in this document contain information usually considered private. When information is provided by value, entities that are a party to the SIP signaling (such as proxy servers and back-to-back user agents) will have access to it and need to protect it against inappropriate disclosure. An entity that is able to eavesdrop on the SIP signaling will also have access. Some Internet access types (such as in-the-clear Wi-Fi) are more vulnerable than others (such as 3G or 4G cellular data traffic) to eavesdropping. Mechanisms that protect against eavesdropping (such as Transport Layer Security (TLS) version 1.2 or later) SHOULD be preferentially used whenever feasible. (This requirement is not a "MUST" because there is an existing deployed base of clear-text SIP, and also because, as an emergency call, it is more important for the call to go through than for it to be protected; e.g., the call MUST proceed even if the TLS negotiation or certificate verification fails for whatever reason.) When information is provided by reference, TLS mutual authentication is REQUIRED. That is, HTTPS is
REQUIRED for dereferencing, the requestor MUST use a client certificate to authenticate the HTTP request, and the provider of the information is REQUIRED to validate the credentials provided by the
requester. While the creation of a public key infrastructure (PKI) that has global scope might be difficult, the
alternatives to creating devices and services that can provide critical information securely
are more daunting. The provider of the information MAY enforce any policy it wishes to use, but PSAPs and responder agencies are strongly advised to deploy a PKI so that providers of additional data can check the certificate of the client (the requester) and decide the appropriate policy to enforce based on that certificate.</t>
<t>TLS MUST be version 1.2 or later. TLS MUST be version 1.2 or later. It is RECOMMENDED to use only cipher suites that offer Perfect Forward Secrecy (PFS) and avoid Cipher Block Chaining (CBC), and to follow the recommendations in BCP 195 <xref target="RFC7525"/>.</t>
<t>Ideally, the PSAP and emergency responders will be given credentials signed by an authority trusted by the data provider. In most circumstances, nationally recognized credentials are sufficient; the emergency services community within a country can arrange a PKI, data providers can be provisioned with the root CA public key for the country. Some nations are developing a PKI for this, and related, purposes. Since calls could be made from devices where the device and/or the service provider(s) are not local to the emergency services authorities, globally recognized credentials are useful. This might be accomplished by extending the notion of the "forest guide" described in <xref target="RFC5582"/> to allow the forest guide to provide the credential of the PKI root for areas for which it has coverage information, but standards for such a mechanism are not yet available. In its absence, the data provider needs to obtain by out of band means the root CA credentials for any areas to which it is willing to provide additional data. With the credential of the root CA for a national emergency services PKI, the data provider server can validate the credentials of an entity requesting additional data by reference.</t>
<t>The data provider also needs a credential that can be verified by the emergency services to know that it is receiving data from an authorized server. The emergency services authorities could provide credentials, distinguishable from credentials provided to emergency responders and PSAPs, which could be used to validate data providers. Such credentials would have to be acceptable to any PSAP or responder that could receive a call with additional data supplied by that provider. This would be extensible to global credential validation using the forest guide as mentioned above. In the absence of such credentials, the emergency services authorities could maintain a list of local data providers' credentials as provided to them out of band. At a minimum, the emergency services authorities could obtain a credential from the DNS entry of the domain in the Additional Data URI (e.g., using DANE <xref target="RFC6698"/>) to at least validate that the server is known to the domain providing the URI.</t>
<t>Data provided by devices by reference have similar credential validation issues as for service providers, and while the solutions are the same, the challenges of doing so for every device are obviously more difficult, especially when considering root certificate updates, revocation lists, etc. However, in general, devices are not expected to provide data directly by reference, but rather, to either provide data by value, or upload the data to a server which can more reliably make it available and more easily enforce security policy. Devices which do provide data directly by reference, which might include fixed-location sensors, will need to be capable of handling this.</t>
<!-- <t>Much of the information supplied by service providers and devices is private and confidential; service providers and devices generally go to lengths to protect this information; disclosing it in the context of an emergency call is a trade-off to protect the greater interest of the customer in an emergency.</t> -->
<t>Neither service providers nor devices will supply private information unless the call is recognized as an emergency call. In cellular telephony systems (such as those using 3GPP IMS), there are different procedures for an originating device to place an emergency versus a normal call. If a call that is really an emergency call is initiated as a normal call and the cellular service provider recognizes this, 3GPP IMS permits the service provider to either accept the call anyway or reject it with a specific code that instructs the device to retry the call as an emergency call. Service providers ought to choose the latter, because otherwise the device will not have included the information specified in this document (since the device didn't recognize the call as being an emergency call). </t>
</section>
<!-- ******************************************************************************* -->
<section anchor="privacy" title="Privacy Considerations">
<t>This document enables functionality for conveying additional information
about the caller and the caller's device and service to the callee.
Some of this information is personal data and therefore privacy concerns arise.
An explicit privacy indicator for information directly relating to the caller's
identity is defined and use is mandatory. However, observance of this request
for privacy and which information it relates to is determined by the destination
jurisdiction (which replicates functionality provided in some legacy emergency services systems).</t>
<t>There are a number of privacy concerns with non-emergency real-time communication
services that are also applicable to emergency calling. Data protection
regulation world-wide has, however, decided to create exceptions for
emergency services since the drawbacks of disclosing personal data
are outweighed by the benefit for the emergency caller.
Hence, the data protection rights of individuals are commonly waived for
emergency situations. There are, however, still various countries that offer
some degree of anonymity for the caller towards PSAP call takers.</t>
<t>The functionality defined in this document far exceeds the amount
of information sharing available in the legacy POTS system. For
this reason there are additional privacy threats to consider, which are
described in more detail in <xref target="RFC6973"/>.
<list style="hanging">
<t hangText="Stored Data Compromise:">
There is an increased risk of stored data compromise since additional data is collected and stored in databases. Without adequate measures to secure stored data
from unauthorized or inappropriate access at access network providers, service providers, end devices, as well as PSAPs, individuals are exposed to potential financial, reputational, or physical harm.</t>
<t hangText="Misattribution:"> If the personal data
collected and conveyed is incorrect or inaccurate then this can lead to misattribution. Misattribution occurs when data or communications related to one
individual are attributed to another.</t>
<t hangText="Identification:"> By the nature of the additional data and its capability to provide much richer information about the caller, the call, and the location, the calling party is identified in a much better way. Some users could feel uncomfortable with this degree of information sharing even in emergency services situations.</t>
<t hangText="Secondary Use:"> There is a risk of secondary use, which is the use of collected information about an individual
without the individual's consent for a purpose different from that
for which the information was collected. The stated purpose of the additional data is for emergency services purposes, but theoretically the same information could be used for any other call as well. Additionally, parties involved in the emergency call could retain the obtained information and re-use it for other, non-emergency services purposes. While technical measures are not in place to prevent such secondary re-use, policy, legal, regulatory, and other non-technical approaches can be effective.</t>
<t hangText="Disclosure:"> When the data defined in this document is not properly protected (while in transit with traditional communication security techniques, and while stored using access control mechanisms) there is the risk of disclosure, which is the revelation of private information about an individual. </t>
</list>
</t>
<t>To mitigate these privacy risks the following countermeasures can be taken:</t>
<t>In regions where callers can elect to suppress certain personally identifying information, network or PSAP functionality can inspect privacy flags within the SIP headers to determine what information can be passed, stored, or displayed to comply with local policy or law. RFC 3325 <xref target="RFC3325"/> defines the "id" priv-value token. The presence of this privacy type in
a Privacy header field indicates that the user would like the network
asserted identity to be kept private with respect to SIP entities
outside the trust domain with which the user authenticated, including the PSAP. </t>
<t>This document defines various data structures that contain privacy-sensitive data. For example, identifiers for the device (e.g., serial number, MAC address) or account/SIM (e.g., IMSI), contact information for the user, location of the caller. Local regulations
may govern which data is provided in emergency calls, but in
general, the emergency call system is aided by the
information described in this document. There is a tradeoff between
the privacy considerations and the utility of the data. For protection, this
specification requires all retrieval of data passed by reference to be protected against eavesdropping and alteration via communication security techniques (namely TLS). Furthermore, security safeguards are required to prevent unauthorized access to stored data. Various security incidents over at least the past few decades have shown that data breaches are not uncommon and are often caused by lack of proper access control frameworks, software bugs (such as buffer overflows), or missing input parsing (such as SQL injection attacks). The risks of data breaches is increased with the obligation for emergency services to retain emergency call related data for extended periods (e.g., several years are the norm).
</t>
<t>Finally, it is also worth highlighting the nature of the SIP communication architecture, which introduces additional complications for privacy. Some forms of data can be sent by value in the SIP signaling or by reference (a URL in the SIP signaling). When data is sent by value, all intermediaries have access to the data. As such, these intermediaries could also introduce additional privacy risk.
Therefore, in situations where the conveyed information is privacy-sensitive and intermediaries are involved, transmitting by reference might be appropriate, assuming the source of the data can operate a sufficient dereferencing infrastructure and that proper access control policies are available for distinguishing the different entities dereferencing the reference. Without access control policies any party in possession of the reference is able to resolve the reference and to obtain the data, including intermediaries.</t>
</section>
<!-- ******************************************************************************* -->
<section title="IANA Considerations">
<section anchor="RegCreate" title="Emergency Call Additional Data Registry">
<t>This document creates a new registry called 'Emergency Call Additional Data' with a number of sub-registries.</t>
<t>For several of the sub-registries, "Expert Review" is the criteria for adding new entries. As discussed in <xref target="new-types-of-data"/>, it can be counterproductive to register new types of data, and as discussed in <xref target="privacy"/>, data sent as part of an emergency call can be very privacy-sensitive. In some cases, it is anticipated that various standards bodies dealing with emergency services might need to register new values, and in those cases text below advises the designed expert to verify that the entity requesting the registration is relevant (e.g., a recognized emergency services related SDO). In other cases, especially those where the trade-off between the potential benefit versus danger of new registrations is more conservative (such as <xref target="additional-data-blocks-registy"/>), "Specification Required" is the criteria, which is a higher hurdle and also implicitly includes an expert review.</t>
<t>The following sub-registries are created for this registry. </t>
<section title="Provider ID Series Registry" anchor="ProviderIDSeries-Registry">
<t>This document creates a new sub-registry called "Provider ID Series". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should determine that the entity requesting a new value is a legitimate issuer of service provider IDs suitable for use in Additional Call Data.</t>
<t>Private entities issuing or using internally-generated IDs are encouraged to register here and to ensure that all IDs they issue or use are unique. This guarantees that IDs issued or used by the entity are globally unique and distinguishable from other IDs issued or used by the same or a different entity. (Some organizations, such as NENA, issue IDs that are unique among all IDs they issue, so an entity using a combination of its NENA ID and the fact that it is from NENA is globally unique. Other entities might not have an ID issued by an organization such as NENA, so they are permitted to use their domain name, but if so, it needs to be unique.)</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Name:"> An identifier to be used in the 'ProviderIDSeries' element.</t>
<t hangText="Source:">The full name of the organization issuing the identifiers.</t>
<t hangText="URL:"> A URL to the organization for further information.</t>
</list>
</t>
<t>The initial set of values is listed in <xref target="ProviderIDSeries-Registry-values"/>.</t>
</section>
<section title="Service Environment Registry" anchor="ServiceEnvironment-Registry">
<t>This document creates a new sub-registry called "Service Environment". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should determine that the entity requesting a new value is relevant for this service element (e.g., a recognized emergency services related SDO), and that the new value is distinct from existing values, and its use is unambiguous.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:"> The value to be used in the <ServiceEnvironment> element.</t>
<t hangText="Description:">A short description of the value.</t>
</list>
</t>
<t>The initial set of values is listed in <xref target="ServiceEnvironment-Registry-values"/>.</t>
</section>
<section title="Service Type Registry" anchor="ServiceType-Registry">
<t>This document creates a new sub-registry called "Service Type". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should determine that the entity requesting a new value is relevant for this service element (e.g., a recognized emergency services related SDO) and that the requested value is clearly distinct from other values so that there is no ambiguity as to when the value is to be used or which value is to be used.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Name:"> The value to be used in the <ServiceType> element.</t>
<t hangText="Description:">A short description of the value.</t>
</list>
</t>
<t>The initial set of values is listed in <xref target="ServiceType-Registry-values"/>.</t>
</section>
<section title="Service Mobility Registry" anchor="ServiceMobility-Registry">
<t>This document creates a new sub-registry called "Service Mobility". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should determine that the entity requesting a new value is relevant for this service element (e.g., a recognized emergency services related SDO) and that the requested value is clearly distinct from other values so that there is no ambiguity as to when the value is to be used or which value is to be used.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:"> The value used in the <ServiceMobility> element.</t>
<t hangText="Description:">A short description of the value.</t>
</list>
</t>
<t>The initial set of values is listed in <xref target="ServiceMobility-Registry-values"/>.</t>
</section>
<section title="Type of Provider Registry" anchor="TypeOfProvider-Registry">
<t>This document creates a new sub-registry called "Type of Provider". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review". The expert should determine that the proposed new value is distinct from existing values and appropriate for use in the <TypeOfServicerProvider> element</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:">The value used in the <TypeOfProvider> element.</t>
<t hangText="Description:">A short description of the type of service provider.</t>
</list>
</t>
<t>The initial set of values is defined in <xref target="TypeOfProvider-Registry-values"/>.</t>
</section>
<section title="Device Classification Registry" anchor="DeviceClassification-Registry">
<t>This document creates a new sub-registry called 'Device Classification'. As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should consider whether the proposed class is unique from existing classes and the definition of the class will be clear to implementors and PSAPs/responders.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:"> Value used in the <DeviceClassification> element.</t>
<t hangText="Description:">
Short description identifying the device type.</t>
</list>
</t>
<t>The initial set of values are defined in <xref target="DeviceClassification-Registry-values"/>.</t>
</section>
<section title="Device ID Type Registry" anchor="TypeOfDeviceID-Registry">
<t>This document creates a new sub-registry called "Device ID Type". As defined in <xref target="RFC5226"/>, this registry
operates under "Expert Review" rules. The expert should ascertain that the proposed type is well understood, and provides information which PSAPs and responders are able to use to uniquely identify a device. (For example, a biometric fingerprint used to authenticate a device would not normally be useful by a PSAP or responder to identify a device.)</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:">The value to be placed in the <TypeOfDeviceID> element.</t>
<t hangText="Description:">Short description identifying the type of the device ID.</t>
</list>
</t>
<t>The initial set of values are defined in <xref target="TypeOfDeviceID-Registry-values"/>.</t>
</section>
<section title="Device/Service Data Type Registry" anchor="device-service-type-registry">
<t>This document creates a new sub-registry called "Device/Service Data Type". As defined in <xref target="RFC5226"/>, this registry operates under "Specification Required" rules, which include an explicit expert review. The designated expert should ascertain that the proposed type is well understood, and provides information useful to PSAPs and responders. The specification must contain a complete description of the data, and a precise format specification suitable to allow interoperable implementations.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:">The value to be placed in the <DeviceSpecificType> element.</t>
<t hangText="Description:">Short description identifying the data.</t>
<t hangText="Specification:"> Citation for the specification of the data.</t>
</list>
</t>
<t>The initial set of values are listed in <xref target="device-service-type-registry-values"/>.</t>
</section>
<section anchor="additional-data-blocks-registy" title="Emergency Call Data Types Registry">
<t>This document creates a new sub-registry called 'Emergency Call Data Types'. As defined in <xref target="RFC5226"/>, this registry operates under "Specification Required" rules, which include an explicit expert review. The expert is responsible for verifying that the document contains a complete and clear specification and the proposed functionality does not obviously duplicate existing functionality. The expert is also responsible for verifying that the block is correctly categorized per the description of the categories in <xref target="introduction"/>.</t>
<t>The registry contains an entry for every data block that can be sent with an emergency call using the mechanisms as specified in this document. Each data block is identified by the "root" of its MIME media subtype (which is the part after 'EmergencyCallData.'). If the MIME media subtype does not start with 'EmergencyCallData.', then it cannot be registered here nor used in a Call-Info header field as specified in this document. The subtype MAY exist under any MIME media type (although most commonly these are under 'Application/' this is NOT REQUIRED), however, to be added to the registry the "root" needs to be unique regardless of the MIME media type.</t>
<t>The content of this registry includes:
<list style="hanging">
<t hangText="Token:">The root of the data's MIME media subtype (not including the 'EmergencyCallData' prefix and any suffix such as '+xml')</t>
<t hangText="Data About:">A hint as to if the block is considered descriptive of the call, the caller, or the location (or is applicable to more than one), which can help PSAPs and other entities determine if they wish to process the block. Note that this is only a hint; entities need to consider the block's contents, not just this field, when determining if they wish to process the block (which is why the field only exists in the registry, and is not contained within the block). The value MUST be either "The Call", "The Caller", "The Location", or "Multiple". New values are created by extending this registry in a subsequent RFC.</t>
<t hangText="Reference:">The document that describes the data object</t>
</list>
</t>
<t>Note that the tokens in this registry are part of the 'EmergencyCallData' compound value; when used as a value of the 'purpose' parameter of a Call-Info header field, the values listed in this registry are prefixed by 'EmergencyCallData.' per the 'EmergencyCallData' registration <xref target="EmergencyCallData-registry"/>.
</t>
<t>The initial set of values are listed in <xref target="additional-data-blocks-registy-values"/>.</t>
<figure anchor="additional-data-blocks-registy-values" title="Additional Data Blocks Registry">
<artwork>
+----------------+--------------+------------+
| Token | Data About | Reference |
+----------------+--------------+------------+
| ProviderInfo | The Call | [This RFC] |
| ServiceInfo | The Call | [This RFC] |
| DeviceInfo | The Call | [This RFC] |
| SubscriberInfo | The Call | [This RFC] |
| Comment | The Call | [This RFC] |
+----------------+--------------+------------+
</artwork>
</figure>
</section>
</section>
<!--
<section title="Registry for Type Parameter of the VCard-based Telephone Number">
<t>This document creates a new registry called "VCard Telephone Type Parameter Registry". As defined in <xref target="RFC5226"/>, this registry operates under "Expert Review" rules. The expert should determine that the entity requesting a new value is not already registered and a legitimate value for a telephone number type for use in Additional Call Data.</t>
<t>This document populates the registry with the values shown in <xref target="vcard-type-registy-values"/>.</t>
<t>
<figure anchor="vcard-type-registy-values" title="VCard Telephone Type Parameter Registry Values.">
<artwork>
+~~~~~~~~~~-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-+
| Value | Description |
+~~~~~~~~~~-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-+
| text | Indicates that the telephone number supports text |
| | messages (SMS). |
| voice | Indicates a voice telephone number. |
| fax | Indicates a facsimile telephone number. |
| cell | Indicates a cellular or mobile telephone number. |
| video | Indicates a video conferencing telephone number. |
| pager | Indicates a paging device telephone number. |
| textphone | Indicates a telecommunication device for people with |
| | hearing or speech difficulties. |
| main- | Indicates a primary or main contact number, typically |
| number | of an enterprise, as opposed to a direct dial number |
| | of an individual. |
+~~~~~~~~~~-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-+
</artwork>
</figure>
</t>
</section>
-->
<section anchor="EmergencyCallData-registry" title="'EmergencyCallData' Purpose Parameter Value">
<t>This document defines the 'EmergencyCallData' value for the 'purpose' parameter of the Call-Info header field <xref target="RFC3261"/>. IANA has added this document to the list of references for the 'purpose' value of Call-Info in the Header Field Parameters and Parameter Values sub-registry of the Session Initiation Protocol (SIP) Parameters registry. Note that 'EmergencyCallData' is a compound value; when used as a value of the 'purpose' parameter of a Call-Info header field, 'EmergencyCallData' is immediately followed by a dot ('.') and a value from the 'Emergency Call Data Types' registry <xref target="additional-data-blocks-registy"/>.</t>
</section>
<section title="URN Sub-Namespace Registration for <provided-by> Registry Entry">
<t>This section registers the namespace specified in
<xref target="ecallAddDataNS"/> in the
provided-by registry established by RFC 4119, for usage within the <provided-by> element of a PIDF-LO.</t>
<t>The schema for the <provided-by> element used by this document is specified in <xref target="provided-by-schema"/>.</t>
</section>
<section title="MIME Registrations">
<section title="MIME Content-type Registration for 'application/EmergencyCallData.ProviderInfo+xml'">
<t>This specification requests the registration of a new MIME media type
according to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
7303 <xref target="RFC7303"/>.</t>
<t>
<list style="empty">
<t>MIME media type name: application</t>
<t>MIME media subtype name: EmergencyCallData.ProviderInfo+xml</t>
<t>Mandatory parameters: none</t>
<t>Optional parameters: charset (indicates the character encoding of the contents)
</t>
<t>Encoding considerations:
Uses XML, which can contain 8-bit characters, depending on the
character encoding.
See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
</t>
<t>Security considerations:
This content type is designed to carry the data provider
information, which is a sub-category of additional
data about an emergency call.
Since this data can contain personal information, appropriate precautions
are needed to limit unauthorized access, inappropriate disclosure, and eavesdropping of personal information. Please refer
to <xref target="security"/> and <xref target="privacy"/> for more
information.</t>
<t>Interoperability considerations: None</t>
<t>Published specification: [TBD: This specification]</t>
<t>Applications which use this media type:
Emergency Services
</t>
<?rfc compact="yes" subcompact="yes" ?>
<t>Additional information:
<list style="empty" >
<t>Magic Number: None</t>
<t>File Extension: .xml</t>
<t>Macintosh file type code: 'TEXT'</t>
</list>
</t>
<?rfc compact="no" subcompact="no" ?>
<t>Person and email address for further information:
Hannes Tschofenig, Hannes.Tschofenig@gmx.net
</t>
<t>Intended usage: LIMITED USE</t>
<t>Author:
This specification is a work item of the IETF ECRIT working
group, with mailing list address <ecrit@ietf.org>.
</t>
<t>Change controller:
The IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
<section title="MIME Content-type Registration for 'application/EmergencyCallData.ServiceInfo+xml'">
<t>This specification requests the registration of a new MIME media type
according to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
7303 <xref target="RFC7303"/>.</t>
<t>
<list style="empty">
<t>MIME media type name: application</t>
<t>MIME media subtype name: EmergencyCallData.ServiceInfo+xml</t>
<t>Mandatory parameters: none</t>
<t>Optional parameters: charset (indicates the character encoding of the contents)
</t>
<t>Encoding considerations:
Uses XML, which can contain 8-bit characters, depending on the
character encoding.
See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
</t>
<t>Security considerations:
This content type is designed to carry the service information, which is a sub-category of additional
data about an emergency call.
Since this data can contain personal information, appropriate precautions
are needed to limit unauthorized access, inappropriate disclosure, and eavesdropping of personal information. Please refer
to <xref target="security"/> and <xref target="privacy"/> for more
information.</t>
<t>Interoperability considerations: None</t>
<t>Published specification: [TBD: This specification]</t>
<t>Applications which use this media type:
Emergency Services
</t>
<?rfc compact="yes" subcompact="yes" ?>
<t>Additional information:
<list style="empty" >
<t>Magic Number: None</t>
<t>File Extension: .xml</t>
<t>Macintosh file type code: 'TEXT'</t>
</list>
</t>
<?rfc compact="no" subcompact="no" ?>
<t>Person and email address for further information:
Hannes Tschofenig, Hannes.Tschofenig@gmx.net
</t>
<t>Intended usage: LIMITED USE</t>
<t>Author:
This specification is a work item of the IETF ECRIT working
group, with mailing list address <ecrit@ietf.org>.
</t>
<t>Change controller:
The IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
<section title="MIME Content-type Registration for 'application/EmergencyCallData.DeviceInfo+xml'">
<t>This specification requests the registration of a new MIME media type
according to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
7303 <xref target="RFC7303"/>.</t>
<t>
<list style="empty">
<t>MIME media type name: application</t>
<t>MIME media subtype name: EmergencyCallData.DeviceInfo+xml</t>
<t>Mandatory parameters: none</t>
<t>Optional parameters: charset (indicates the character encoding of the contents)
</t>
<t>Encoding considerations:
Uses XML, which can contain 8-bit characters, depending on the
character encoding.
See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
</t>
<t>Security considerations:
This content type is designed to carry device information, which is a sub-category of additional
data about an emergency call.
Since this data contains personal information, appropriate precautions
need to be taken to limit unauthorized access, inappropriate disclosure
to third parties, and eavesdropping of this information. Please refer
to <xref target="security"/> and <xref target="privacy"/> for more
information.</t>
<t>Interoperability considerations: None</t>
<t>Published specification: [TBD: This specification]</t>
<t>Applications which use this media type:
Emergency Services
</t>
<?rfc compact="yes" subcompact="yes" ?>
<t>Additional information:
<list style="empty" >
<t>Magic Number: None</t>
<t>File Extension: .xml</t>
<t>Macintosh file type code: 'TEXT'</t>
</list>
</t>
<?rfc compact="no" subcompact="no" ?>
<t>Person and email address for further information:
Hannes Tschofenig, Hannes.Tschofenig@gmx.net
</t>
<t>Intended usage: LIMITED USE</t>
<t>Author:
This specification is a work item of the IETF ECRIT working
group, with mailing list address <ecrit@ietf.org>.
</t>
<t>Change controller:
The IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
<section title="MIME Content-type Registration for 'application/EmergencyCallData.SubscriberInfo+xml'">
<t>This specification requests the registration of a new MIME media type
according to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
7303 <xref target="RFC7303"/>.</t>
<t>
<list style="empty">
<t>MIME media type name: application</t>
<t>MIME media subtype name: EmergencyCallData.SubscriberInfo+xml</t>
<t>Mandatory parameters: none</t>
<t>Optional parameters: charset (indicates the character encoding of the contents)
</t>
<t>Encoding considerations:
Uses XML, which can contain 8-bit characters, depending on the
character encoding.
See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
</t>
<t>Security considerations:
This content type is designed to carry owner/subscriber information,
which is a sub-category of additional
data about an emergency call.
Since this data contains personal information, appropriate precautions
need to be taken to limit unauthorized access, inappropriate disclosure
to third parties, and eavesdropping of this information. Please refer
to <xref target="security"/> and <xref target="privacy"/> for more
information.</t>
<t>Interoperability considerations: None</t>
<t>Published specification: [TBD: This specification]</t>
<t>Applications which use this media type:
Emergency Services
</t>
<?rfc compact="yes" subcompact="yes" ?>
<t>Additional information:
<list style="empty" >
<t>Magic Number: None</t>
<t>File Extension: .xml</t>
<t>Macintosh file type code: 'TEXT'</t>
</list>
</t>
<?rfc compact="no" subcompact="no" ?>
<t>Person and email address for further information:
Hannes Tschofenig, Hannes.Tschofenig@gmx.net
</t>
<t>Intended usage: LIMITED USE</t>
<t>Author:
This specification is a work item of the IETF ECRIT working
group, with mailing list address <ecrit@ietf.org>.
</t>
<t>Change controller:
The IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
<section title="MIME Content-type Registration for 'application/EmergencyCallData.Comment+xml'">
<t>This specification requests the registration of a new MIME media type
according to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
7303 <xref target="RFC7303"/>.</t>
<t>
<list style="empty">
<t>MIME media type name: application</t>
<t>MIME media subtype name: EmergencyCallData.Comment+xml</t>
<t>Mandatory parameters: none</t>
<t>Optional parameters: charset (indicates the character encoding of the contents)
</t>
<t>Encoding considerations:
Uses XML, which can contain 8-bit characters, depending on the
character encoding.
See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
</t>
<t>Security considerations:
This content type is designed to carry a comment,
which is a sub-category of additional
data about an emergency call.
This data can contain personal information. Appropriate precautions
are needed to limit unauthorized access, inappropriate disclosure
to third parties, and eavesdropping of this information. Please refer
to <xref target="security"/> and <xref target="privacy"/> for more
information.</t>
<t>Interoperability considerations: None</t>
<t>Published specification: [TBD: This specification]</t>
<t>Applications which use this media type:
Emergency Services
</t>
<?rfc compact="yes" subcompact="yes" ?>
<t>Additional information:
<list style="empty" >
<t>Magic Number: None</t>
<t>File Extension: .xml</t>
<t>Macintosh file type code: 'TEXT'</t>
</list>
</t>
<?rfc compact="no" subcompact="no" ?>
<t>Person and email address for further information:
Hannes Tschofenig, Hannes.Tschofenig@gmx.net
</t>
<t>Intended usage: LIMITED USE</t>
<t>Author:
This specification is a work item of the IETF ECRIT working
group, with mailing list address <ecrit@ietf.org>.
</t>
<t>Change controller:
The IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
</section>
<section title="URN Sub-Namespace Registration">
<section anchor="ecallAddDataNS" title="Registration for urn:ietf:params:xml:ns:EmergencyCallData">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="Registration for urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData:ProviderInfo</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data:
Data Provider Information</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<h2>Data Provider Information</h2>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="Registration for urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData:ServiceInfo</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data:
Service Information</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<h2>Service Information</h2>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="Registration for urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData:DeviceInfo</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data:
Device Information</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<h2>Device Information</h2>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="Registration for urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData:SubscriberInfo</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data:
Owner/Subscriber Information</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<h2> Owner/Subscriber Information</h2>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
<section title="Registration for urn:ietf:params:xml:ns:EmergencyCallData:Comment">
<t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
<t>
<list style="hanging">
<t hangText="URI:">urn:ietf:params:xml:ns:EmergencyCallData:Comment</t>
<t hangText="Registrant Contact:"> IETF, ECRIT working group,
<ecrit@ietf.org>, as delegated by the IESG
<iesg@ietf.org>. </t>
<t hangText="XML:">
<figure>
<artwork>
<![CDATA[
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Namespace for Additional Emergency Call Data:Comment
</title>
</head>
<body>
<h1>Namespace for Additional Data related to an Emergency Call
</h1>
<h2> Comment</h2>
<p>See [TBD: This document].</p>
</body>
</html>
END
]]>
</artwork>
</figure>
</t>
</list>
</t>
</section>
</section>
<section title="Schema Registrations">
<t>This specification registers the following schemas, as per the guidelines in RFC 3688 <xref target="RFC3688"/>.</t>
<t>
<list style="hanging">
<t>Name: Provided-by Schema</t>
<t>URI: urn:ietf:params:xml:schema:EmergencyCallData</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="provided-by-schema"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: ProviderInfo Schema</t>
<t>URI: urn:ietf:params:xml:schema:emergencycalldata:ProviderInfo</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="EmergencyCallDataProviderInfo"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: ServiceInfo Schema</t>
<t>URI: urn:ietf:params:xml:schema:emergencycalldata:ServiceInfo</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="addCallServiceInfo"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: DeviceInfo Schema</t>
<t>URI: urn:ietf:params:xml:schema:emergencycalldata:DeviceInfo</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="EmergencyCallDeviceInfo"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: SubscriberInfo Schema</t>
<t>URI: urn:ietf:params:xml:schema:emergencycalldata:SubscriberInfo</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="SubscriberXML"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: Comment Schema</t>
<t>URI: urn:ietf:params:xml:schema:emergencycalldata:comment</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="CommentXML"/>.</t>
</list>
</t>
<t>
<list style="hanging">
<t>Name: Additional Data VCard Schema</t>
<t>URI: urn:ietf:params:xml:ns:vcard-4.0</t>
<t>Registrant Contact: IETF, ECRIT Working Group (ecrit@ietf.org), as delegated by the
IESG (iesg@ietf.org).</t>
<t>XML: The XML schema can be found in <xref target="vcard"/>.</t>
</list>
</t>
</section>
<section title="VCard Parameter Value Registration">
<t>This document registers a new value in the vCARD Parameter Values registry as defined by <xref target="RFC6350"/> with the following template:</t>
<t>
<list style="hanging">
<t hangText="Value:">main</t>
<t hangText="Purpose:">The main telephone number, typically of an enterprise, as opposed to a direct dial number of an individual employee</t>
<t hangText="Conformance:">This value can be used with the "TYPE" parameter
applied on the "TEL" property.</t>
<t hangText="Example(s):">TEL;VALUE=uri;TYPE="main,voice";PREF=1:tel:+1-418-656-9000</t>
</list>
</t>
</section>
</section>
<!-- ******************************************************************************* -->
<section title="Acknowledgments">
<t>This work was originally started in NENA and has benefited from a large number of participants in NENA standardization efforts, originally in the Long Term Definition Working Group, the Data Technical Committee and most recently the Additional Data working group. The authors are grateful for the initial work and extended comments provided by many NENA participants, including Delaine Arnold, Marc Berryman, Guy Caron, Mark Fletcher, Brian Dupras, James Leyerle, Kathy McMahon, Christian Militeau, Ira Pyles, Matt Serra, and Robert (Bob) Sherry. Amursana Khiyod, Robert Sherry, Frank Rahoi, Scott Ross, and Tom Klepetka provided valuable feedback regarding the vCard/xCard use in this specification. </t>
<t>We would also like to thank Paul Kyzivat, Gunnar Hellstrom, Martin Thomson, Keith Drage, Laura Liess, Chris Santer, Barbara Stark, Chris Santer, Archie Cobbs, Magnus Nystrom, Stephen Farrell, Amanda Baber, Dan Banks, Andrew Newton, Philip Reichl, and Francis Dupont for their review comments. Alissa Cooper, Guy Caron, Ben Campbell, and Barry Leiba deserves special mention for their detailed and extensive review comments, which were very helpful and appreciated.</t>
</section>
<!-- ******************************************************************************* -->
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.3688"?>
<?rfc include="reference.RFC.2392"?>
<?rfc include="reference.RFC.4119"?>
<?rfc include="reference.RFC.3261"?>
<?rfc include="reference.RFC.7303"?>
<?rfc include="reference.RFC.6838"?>
<?rfc include="reference.RFC.5226"?>
<?rfc include="reference.RFC.6350"?>
<?rfc include="reference.RFC.6351"?>
<?rfc include="reference.RFC.5621"?>
<?rfc include="reference.RFC.3459"?>
<?rfc include="reference.RFC.3204"?>
<?rfc include="reference.RFC.5322"?>
<?rfc include="reference.RFC.5646"?>
<?rfc include="reference.RFC.3966"?>
</references>
<references title="Informational References">
<?rfc include="reference.RFC.5012"?>
<?rfc include="reference.RFC.5582"?>
<?rfc include="reference.RFC.6443"?>
<?rfc include="reference.RFC.5985"?>
<?rfc include="reference.RFC.6881"?>
<?rfc include="reference.RFC.5139"?>
<?rfc include="reference.RFC.6848"?>
<?rfc include="reference.RFC.5491"?>
<?rfc include="reference.RFC.3840"?>
<?rfc include="reference.RFC.5962"?>
<?rfc include="reference.RFC.7090"?>
<?rfc include="reference.RFC.3325"?>
<?rfc include="reference.I-D.ietf-slim-negotiating-human-language"?>
<reference anchor="LanguageTagRegistry" target= "http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry">
<front>
<title>Language Subtag Registry</title>
<author>
<organization>IANA</organization>
</author>
<date month="Feb" year="2015"/>
</front>
<format type="HTML" target="http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry"/>
</reference>
<reference anchor="IANA-XML-Schemas" target=
"http://www.iana.org/assignments/xml-registry/xml-registry.xhtml#schema">
<front>
<title>IANA XML Schemas"</title>
<author><organization>IANA</organization></author>
<date month="July" year="2015"/>
</front>
<format type="HTML"
target=
"http://www.iana.org/assignments/xml-registry/xml-registry.xhtml#schema"
/>
</reference>
<reference anchor="ECRIT-WG-wiki" target= "http://tools.ietf.org/wg/ecrit/trac/attachment/wiki/WikiStart/additional-data-examples.zip">
<front>
<title>ECRIT WG Wiki"</title>
<author><organization>IETF</organization></author>
<date month="July" year="2015"/>
</front>
<format type="HTML" target= "http://tools.ietf.org/wg/ecrit/trac/attachment/wiki/WikiStart/additional-data-examples.zip"
/>
</reference>
<?rfc include="reference.RFC.6973"?>
<?rfc include="reference.RFC.7035"?>
<?rfc include="reference.RFC.6698"?>
<reference anchor="NENA-02-010" target="http://www.nena.org">
<front>
<title>NENA Standard Data Formats for 9-1-1 Data Exchange & GIS Mapping</title>
<author>
<organization>National Emergency Number Association (NENA)</organization>
</author>
<date month="December" day="16" year="2010" />
</front>
<seriesInfo name="NENA Standard" value="02-010" />
<format type="HTML" target="http://www.nena.org" />
</reference>
<reference anchor="nc911" target="https://www.nc911.nc.gov/pdf/A_TelecommunicatorReference.pdf">
<front>
<title>North Carolina Telecommunicator Reference</title>
<author>
<organization>North Carolina 911 Board</organization>
</author>
<date month="January" day="8" year="2009" />
</front>
<format type="HTML" target="https://www.nc911.nc.gov/pdf/A_TelecommunicatorReference.pdf" />
</reference>
<reference anchor="LERG" target="">
<front>
<title>Local Exchange Routing Guide (LERG)</title>
<author>
<organization>Telcordia Technologies, Inc.</organization>
</author>
<date month="June" day="1" year="2015" />
</front>
<seriesInfo name="ANI II Digits Definitions" value="" />
</reference>
<reference anchor="NANP" target="http://nanpa.com/number_resource_info/ani_ii_assignments.html">
<front>
<title>ANI II Digits Assignments</title>
<author>
<organization>North American Numbering Plan Administration</organization>
</author>
<date month="September" year="2015" />
</front>
</reference>
<reference anchor="IEEE-1512-2006" target= "https://standards.ieee.org/findstds/standard/1512-2006.html">
<front>
<title>1512-2006 - IEEE Standard for Common Incident Management Message Sets for Use by Emergency Management Centers</title>
<author>
<organization>IEEE</organization>
</author>
<date month="Jun" year="2006"/>
</front>
<format type="HTML" target="https://standards.ieee.org/findstds/standard/1512-2006.html"/>
</reference>
<?rfc include="reference.RFC.7525"?>
</references>
<section anchor="vcard" title="XML Schema for vCard/xCard">
<t>This section contains the vCard/xCard XML schema version of the Relax NG schema defined in RFC 6351 <xref target="RFC6351"/> for use with the XML schemas defined in this document. In addition to mapping the Relax NG schema to an XML schema this specification furthermore applies an errata raised for RFC 6351 regarding the type definition (see RFC Errata ID: 3047).</t>
<t>
<figure>
<artwork>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="urn:ietf:params:xml:ns:vcard-4.0"
xmlns:ns1="urn:ietf:params:xml:ns:vcard-4.0">
<!--
3.3
iana-token = xsd:string { pattern = "[a-zA-Z0-9-]+" }
x-name = xsd:string { pattern = "x-[a-zA-Z0-9-]+" }
-->
<xs:simpleType name="iana-token">
<xs:annotation>
<xs:documentation>vCard Format Specification
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="x-name">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!--
4.1
-->
<xs:element name="text" type="xs:string"/>
<xs:group name="value-text-list">
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ns1:text"/>
</xs:sequence>
</xs:group>
<!-- 4.2 -->
<xs:element name="uri" type="xs:anyURI"/>
<!-- 4.3.1 -->
<xs:element name="date"
substitutionGroup="ns1:value-date-and-or-time">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value=
"\d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- 4.3.2 -->
<xs:element name="time"
substitutionGroup="ns1:value-date-and-or-time">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value=
"(\d\d(\d\d(\d\d)?)?|-\d\d(\d\d?)|--\d\d)(Z|[+\-]\d\d(\d\d)?)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- 4.3.3 -->
<xs:element name="date-time"
substitutionGroup="ns1:value-date-and-or-time">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value=
"(\d{8}|--\d{4}|---\d\d)T\d\d(\d\d(\d\d)?)?(Z|[+\-]\d\d(\d\d)?)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- 4.3.4 -->
<xs:element name="value-date-and-or-time" abstract="true"/>
<!-- 4.3.5 -->
<xs:complexType name="value-timestamp">
<xs:sequence>
<xs:element ref="ns1:timestamp"/>
</xs:sequence>
</xs:complexType>
<xs:element name="timestamp">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d{8}T\d{6}(Z|[+\-]\d\d(\d\d)?)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- 4.4 -->
<xs:element name="boolean" type="xs:boolean"/>
<!-- 4.5 -->
<xs:element name="integer" type="xs:integer"/>
<!-- 4.6 -->
<xs:element name="float" type="xs:float"/>
<!-- 4.7 -->
<xs:element name="utc-offset">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[+\-]\d\d(\d\d)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!-- 4.8 -->
<xs:element name="language-tag">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern
value="([a-z]{2,3}((-[a-z]{3}){0,3})?|[a-z]{4,8})
(-[a-z]{4})?(-([a-z]{2}|\d{3}))?(-([0-9a-z]{5,8}|
\d[0-9a-z]{3}))*(-[0-9a-wyz](-[0-9a-z]{2,8})+)*
(-x(-[0-9a-z]{1,8})+)?|x(-[0-9a-z]{1,8})+|[a-z]{1,3}
(-[0-9a-z]{2,8}){1,2}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!--
5.1
-->
<xs:group name="param-language">
<xs:annotation>
<xs:documentation>Section 5: Parameters</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:language"/>
</xs:sequence>
</xs:group>
<xs:element name="language">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:language-tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.2 -->
<xs:group name="param-pref">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:pref"/>
</xs:sequence>
</xs:group>
<xs:element name="pref">
<xs:complexType>
<xs:sequence>
<xs:element name="integer">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.4 -->
<xs:group name="param-altid">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:altid"/>
</xs:sequence>
</xs:group>
<xs:element name="altid">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.5 -->
<xs:group name="param-pid">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:pid"/>
</xs:sequence>
</xs:group>
<xs:element name="pid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="text">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d+(\.\d+)?"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.6 -->
<xs:group name="param-type">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:type"/>
</xs:sequence>
</xs:group>
<xs:element name="type">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="work"/>
<xs:enumeration value="home"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.7 -->
<xs:group name="param-mediatype">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:mediatype"/>
</xs:sequence>
</xs:group>
<xs:element name="mediatype">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.8 -->
<xs:group name="param-calscale">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:calscale"/>
</xs:sequence>
</xs:group>
<xs:element name="calscale">
<xs:complexType>
<xs:sequence>
<xs:element name="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="gregorian"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.9 -->
<xs:group name="param-sort-as">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:sort-as"/>
</xs:sequence>
</xs:group>
<xs:element name="sort-as">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 5.10 -->
<xs:group name="param-geo">
<xs:sequence>
<xs:element minOccurs="0" name="geo">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<!-- 5.11 -->
<xs:group name="param-tz">
<xs:sequence>
<xs:element minOccurs="0" name="tz">
<xs:complexType>
<xs:choice>
<xs:element ref="ns1:text"/>
<xs:element ref="ns1:uri"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<!--
6.1.3
-->
<xs:element name="source">
<xs:complexType>
<xs:sequence>
<xs:element name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.1.4 -->
<xs:element name="kind">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="text">
<xs:simpleType>
<xs:union memberTypes="ns1:x-name ns1:iana-token">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="individual"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="group"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="org"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="location"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.1 -->
<xs:element name="fn">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.2 -->
<xs:element name="n">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-sort-as"/>
<xs:group ref="ns1:param-altid"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" ref="ns1:surname"/>
<xs:element maxOccurs="unbounded" ref="ns1:given"/>
<xs:element maxOccurs="unbounded" ref="ns1:additional"/>
<xs:element maxOccurs="unbounded" ref="ns1:prefix"/>
<xs:element maxOccurs="unbounded" ref="ns1:suffix"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="surname" type="xs:string"/>
<xs:element name="given" type="xs:string"/>
<xs:element name="additional" type="xs:string"/>
<xs:element name="prefix" type="xs:string"/>
<xs:element name="suffix" type="xs:string"/>
<!-- 6.2.3 -->
<xs:element name="nickname">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group ref="ns1:value-text-list"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.4 -->
<xs:element name="photo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.5 -->
<xs:element name="bday">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-calscale"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:value-date-and-or-time"/>
<xs:element ref="ns1:text"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.6 -->
<xs:element name="anniversary">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-calscale"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:value-date-and-or-time"/>
<xs:element ref="ns1:text"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.2.7 -->
<xs:element name="gender">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:sex"/>
<xs:element minOccurs="0" ref="ns1:identity"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sex">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value=""/>
<xs:enumeration value="M"/>
<xs:enumeration value="F"/>
<xs:enumeration value="O"/>
<xs:enumeration value="N"/>
<xs:enumeration value="U"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="identity" type="xs:string"/>
<!-- 6.3.1 -->
<xs:group name="param-label">
<xs:sequence>
<xs:element minOccurs="0" ref="ns1:label"/>
</xs:sequence>
</xs:group>
<xs:element name="label">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="adr">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-geo"/>
<xs:group ref="ns1:param-tz"/>
<xs:group ref="ns1:param-label"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" ref="ns1:pobox"/>
<xs:element maxOccurs="unbounded" ref="ns1:ext"/>
<xs:element maxOccurs="unbounded" ref="ns1:street"/>
<xs:element maxOccurs="unbounded" ref="ns1:locality"/>
<xs:element maxOccurs="unbounded" ref="ns1:region"/>
<xs:element maxOccurs="unbounded" ref="ns1:code"/>
<xs:element maxOccurs="unbounded" ref="ns1:country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pobox" type="xs:string"/>
<xs:element name="ext" type="xs:string"/>
<xs:element name="street" type="xs:string"/>
<xs:element name="locality" type="xs:string"/>
<xs:element name="region" type="xs:string"/>
<xs:element name="code" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<!-- 6.4.1 -->
<xs:element name="tel">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="text"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:text"/>
<xs:element ref="ns1:uri"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.4.2 -->
<xs:element name="email">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.4.3 -->
<xs:element name="impp">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.4.4 -->
<xs:element name="lang">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:language-tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.5.1 -->
<xs:group name="property-tz">
<xs:sequence>
<xs:element name="tz">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:text"/>
<xs:element ref="ns1:uri"/>
<xs:element ref="ns1:utc-offset"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<!-- 6.5.2 -->
<xs:group name="property-geo">
<xs:sequence>
<xs:element name="geo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<!-- 6.6.1 -->
<xs:element name="title">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.6.2 -->
<xs:element name="role">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.6.3 -->
<xs:element name="logo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.6.4 -->
<xs:element name="org">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-sort-as"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group ref="ns1:value-text-list"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.6.5 -->
<xs:element name="member">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.6.6 -->
<xs:element name="related">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:element minOccurs="0" name="type">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="text">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="work"/>
<xs:enumeration value="home"/>
<xs:enumeration value="contact"/>
<xs:enumeration value="acquaintance"/>
<xs:enumeration value="friend"/>
<xs:enumeration value="met"/>
<xs:enumeration value="co-worker"/>
<xs:enumeration value="colleague"/>
<xs:enumeration value="co-resident"/>
<xs:enumeration value="neighbor"/>
<xs:enumeration value="child"/>
<xs:enumeration value="parent"/>
<xs:enumeration value="sibling"/>
<xs:enumeration value="spouse"/>
<xs:enumeration value="kin"/>
<xs:enumeration value="muse"/>
<xs:enumeration value="crush"/>
<xs:enumeration value="date"/>
<xs:enumeration value="sweetheart"/>
<xs:enumeration value="me"/>
<xs:enumeration value="agent"/>
<xs:enumeration value="emergency"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:uri"/>
<xs:element ref="ns1:text"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.1 -->
<xs:element name="categories">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group ref="ns1:value-text-list"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.2 -->
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.3 -->
<xs:element name="prodid">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:text"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.4 -->
<xs:element name="rev" type="ns1:value-timestamp"/>
<!-- 6.7.5 -->
<xs:element name="sound">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-language"/>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.6 -->
<xs:element name="uid">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.7.7 -->
<xs:element name="clientpidmap">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:sourceid"/>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="sourceid" type="xs:positiveInteger"/>
<!-- 6.7.8 -->
<xs:element name="url">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.8.1 -->
<xs:element name="key">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="ns1:uri"/>
<xs:element ref="ns1:text"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.9.1 -->
<xs:element name="fburl">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.9.2 -->
<xs:element name="caladruri">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- 6.9.3 -->
<xs:element name="caluri">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="parameters">
<xs:complexType>
<xs:sequence>
<xs:group ref="ns1:param-altid"/>
<xs:group ref="ns1:param-pid"/>
<xs:group ref="ns1:param-pref"/>
<xs:group ref="ns1:param-type"/>
<xs:group ref="ns1:param-mediatype"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="ns1:uri"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Top-level grammar -->
<xs:group name="property">
<xs:choice>
<xs:element ref="ns1:adr"/>
<xs:element ref="ns1:anniversary"/>
<xs:element ref="ns1:bday"/>
<xs:element ref="ns1:caladruri"/>
<xs:element ref="ns1:caluri"/>
<xs:element ref="ns1:categories"/>
<xs:element ref="ns1:clientpidmap"/>
<xs:element ref="ns1:email"/>
<xs:element ref="ns1:fburl"/>
<xs:element ref="ns1:fn"/>
<xs:group ref="ns1:property-geo"/>
<xs:element ref="ns1:impp"/>
<xs:element ref="ns1:key"/>
<xs:element ref="ns1:kind"/>
<xs:element ref="ns1:lang"/>
<xs:element ref="ns1:logo"/>
<xs:element ref="ns1:member"/>
<xs:element ref="ns1:n"/>
<xs:element ref="ns1:nickname"/>
<xs:element ref="ns1:note"/>
<xs:element ref="ns1:org"/>
<xs:element ref="ns1:photo"/>
<xs:element ref="ns1:prodid"/>
<xs:element ref="ns1:related"/>
<xs:element ref="ns1:rev"/>
<xs:element ref="ns1:role"/>
<xs:element ref="ns1:gender"/>
<xs:element ref="ns1:sound"/>
<xs:element ref="ns1:source"/>
<xs:element ref="ns1:tel"/>
<xs:element ref="ns1:title"/>
<xs:group ref="ns1:property-tz"/>
<xs:element ref="ns1:uid"/>
<xs:element ref="ns1:url"/>
</xs:choice>
</xs:group>
<xs:element name="vcards">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="ns1:vcard"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="vcardType">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:choice maxOccurs="unbounded">
<xs:group ref="ns1:property"/>
<xs:element ref="ns1:group"/>
</xs:choice>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="vcard" type="ns1:vcardType"/>
<xs:element name="group">
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded"
ref="ns1:property"/>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
]]>
</artwork>
</figure>
</t>
</section>
<section title="XML Validation">
<t>This document defines a number of XML schemas and contains various examples. Extracting the XML and validating the examples against the schemas can be challenging, especially due to the formatting limitations introduced by IETF RFCs. For those readers who copy the XML schemas and examples directly from this document, please consider that errors might be introduced due to line breaks and extra whitespaces in the regular expressions contained in the vcard schema in <xref target="vcard" />. To validate the PIDF-LO from <xref target="example3"/> it is also necessary to consult the referenced RFCs and copy the schemas necessary for successful validation.</t>
<t>The XML schemas found in this document include a 'SchemaLocation' attribute. Depending on the location of the downloaded schema files you may need to adjust this schema location or configure your XML editor to point to the location.</t>
<t>For convenience of readers, the schemas are available at http://ip-emergency.net/additional-data.zip and the XML examples are available at the IETF ECRIT Working Group wiki page <xref target="ECRIT-WG-wiki"/>.</t>
<t>Note to RFC Editor: After IANA has published the schemas, the above link to the schemas should be replaced with <xref target="IANA-XML-Schemas"/>.</t>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 04:06:30 |