| < draft-ietf-ecrit-data-only-ea-18.txt | draft-ietf-ecrit-data-only-ea-19.txt > | |||
|---|---|---|---|---|
| ECRIT B. Rosen | ECRIT B. Rosen | |||
| Internet-Draft | Internet-Draft | |||
| Intended status: Standards Track H. Schulzrinne | Intended status: Standards Track H. Schulzrinne | |||
| Expires: October 19, 2019 Columbia U. | Expires: July 31, 2020 Columbia U. | |||
| H. Tschofenig | H. Tschofenig | |||
| ARM Limited | ARM Limited | |||
| R. Gellens | R. Gellens | |||
| Core Technology Consulting | Core Technology Consulting | |||
| April 17, 2019 | January 28, 2020 | |||
| Data-Only Emergency Calls | Non-Interactive Emergency Calls | |||
| draft-ietf-ecrit-data-only-ea-18 | draft-ietf-ecrit-data-only-ea-19 | |||
| Abstract | Abstract | |||
| RFC 6443 'Framework for Emergency Calling Using Internet Multimedia' | RFC 6443 'Framework for Emergency Calling Using Internet Multimedia' | |||
| describes how devices use the Internet to place emergency calls and | describes how devices use the Internet to place emergency calls and | |||
| how Public Safety Answering Points (PSAPs) handle Internet multimedia | how Public Safety Answering Points (PSAPs) handle Internet multimedia | |||
| emergency calls natively. The exchange of multimedia traffic for | emergency calls natively. The exchange of multimedia traffic for | |||
| emergency services involves a Session Initiation Protocol (SIP) | emergency services involves a Session Initiation Protocol (SIP) | |||
| session establishment starting with a SIP INVITE that negotiates | session establishment starting with a SIP INVITE that negotiates | |||
| various parameters for that session. | various parameters for that session. These calls involve a person, | |||
| who uses the interactive media to communicate with the PSAP. | ||||
| In some cases, however, the transmission of application data is all | In some cases, however, the transmission of application data is all | |||
| that is needed. Examples of such environments include alerts issued | that is needed, and no interactive media channel is established. | |||
| by a temperature sensor, burglar alarm, or chemical spill sensor. | Examples of such environments include alerts issued by a temperature | |||
| Often these alerts are conveyed as one-shot data transmissions. | sensor, burglar alarm, or chemical spill sensor. Often these alerts | |||
| These type of interactions are called 'data-only emergency calls'. | are conveyed as one-shot data transmissions. These type of | |||
| This document describes a container for the data based on the Common | interactions are called 'non-interactive emergency calls'. This | |||
| Alerting Protocol (CAP) and its transmission using the SIP MESSAGE | document describes use of a SIP MESSAGE transaction containing a | |||
| transaction. | container for the data based on the Common Alerting Protocol (CAP). | |||
| MESSAGE does not establish a session, which differentiates this type | ||||
| of emergency request from a SIP INVITE, which would. Any device that | ||||
| needs to initiate a request for emergency services where no | ||||
| interactive media channel will be established would use the | ||||
| mechanisms in this document. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 19, 2019. | ||||
| This Internet-Draft will expire on July 31, 2020. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Architectural Overview . . . . . . . . . . . . . . . . . . . 4 | 3. Architectural Overview . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Protocol Specification . . . . . . . . . . . . . . . . . . . 6 | 4. Protocol Specification . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. CAP Transport . . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. CAP Transport . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2. Profiling of the CAP Document Content . . . . . . . . . . 7 | 4.2. Profiling of the CAP Document Content . . . . . . . . . . 7 | |||
| 4.3. Sending a Data-Only Emergency Call . . . . . . . . . . . 8 | 4.3. Sending a non-interactive Emergency Call . . . . . . . . 8 | |||
| 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.1. 425 (Bad Alert Message) Response Code . . . . . . . . . . 9 | 5.1. 425 (Bad Alert Message) Response Code . . . . . . . . . . 9 | |||
| 5.2. The AlertMsg-Error Header Field . . . . . . . . . . . . . 9 | 5.2. The AlertMsg-Error Header Field . . . . . . . . . . . . . 9 | |||
| 6. Call Backs . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6. Call Backs . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. Handling Large Amounts of Data . . . . . . . . . . . . . . . 11 | 7. Handling Large Amounts of Data . . . . . . . . . . . . . . . 11 | |||
| 8. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 8. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 10.1. Registration of the | 10.1. Registration of the | |||
| 'application/EmergencyCallData.cap+xml' MIME type . . . 17 | 'application/EmergencyCallData.cap+xml' MIME type . . . 17 | |||
| skipping to change at page 3, line 19 ¶ | skipping to change at page 3, line 21 ¶ | |||
| multimedia emergency calls natively. The exchange of multimedia | multimedia emergency calls natively. The exchange of multimedia | |||
| traffic for emergency services involves a SIP session establishment | traffic for emergency services involves a SIP session establishment | |||
| starting with a SIP INVITE that negotiates various parameters for | starting with a SIP INVITE that negotiates various parameters for | |||
| that session. | that session. | |||
| In some cases, however, there is only application data to be conveyed | In some cases, however, there is only application data to be conveyed | |||
| from the end devices to a PSAP or an intermediary. Examples of such | from the end devices to a PSAP or an intermediary. Examples of such | |||
| environments includes sensors issuing alerts, or certain types of | environments includes sensors issuing alerts, or certain types of | |||
| medical monitors. These messages may be one-shot alerts to emergency | medical monitors. These messages may be one-shot alerts to emergency | |||
| authorities and do not require establishment of a session. These | authorities and do not require establishment of a session. These | |||
| type of interactions are called 'data-only emergency calls'. In this | type of interactions are called 'non-interactive emergency calls'. | |||
| document, we use the term "call" so that similarities between data- | In this document, we use the term "call" so that similarities between | |||
| only (non-interactive) alerts and sessions with interactive media are | non-interactive alerts and sessions with interactive media are more | |||
| more obvious. | obvious. | |||
| Data-only emergency calls are similar to regular emergency calls in | Non-Interactive emergency calls are similar to regular emergency | |||
| the sense that they require the emergency indications, emergency call | calls in the sense that they require the emergency indications, | |||
| routing functionality and may even have the same location | emergency call routing functionality and may even have the same | |||
| requirements. However, the communication interaction will not lead | location requirements. However, the communication interaction will | |||
| to the exchange of interactive media, that is, Real-Time Protocol | not lead to the exchange of interactive media, that is, Real-Time | |||
| packets, such as voice, video data or real-time text. | Protocol packets, such as voice, video data or real-time text. | |||
| The Common Alerting Protocol (CAP) [cap] is a format for exchanging | The Common Alerting Protocol (CAP) [cap] is a format for exchanging | |||
| emergency alerts and public warnings. CAP is mainly used for | emergency alerts and public warnings. CAP is mainly used for | |||
| conveying alerts and warnings between authorities and from | conveying alerts and warnings between authorities and from | |||
| authorities to citizen/individuals. This document is concerned with | authorities to citizens/individuals. This document is concerned with | |||
| citizen to authority "alerts", where the alert is a call without any | citizen to authority "alerts", where the alert is a call without any | |||
| interactive media. | interactive media. | |||
| This document describes a method of including a CAP message in a SIP | This document describes a method of including a CAP message in a SIP | |||
| transaction by defining it as a block of "additional data" as defined | transaction by defining it as a block of "additional data" as defined | |||
| in [RFC7852]. The CAP message is included either by value (the CAP | in [RFC7852]. The CAP message is included either by value (the CAP | |||
| message is in the body of the message, using a CID) or by reference | message is in the body of the message, using a CID) or by reference | |||
| (a URI is included in the message, which when dereferenced returns | (a URI is included in the message, which when dereferenced returns | |||
| the CAP message). The additional data mechanism is also used to send | the CAP message). The additional data mechanism is also used to send | |||
| alert specific data beyond that available in the CAP message. This | alert specific data beyond that available in the CAP message. This | |||
| document also describes how a SIP MESSAGE [RFC3428] transaction can | document also describes how a SIP MESSAGE [RFC3428] transaction can | |||
| be used to send a data-only call. | be used to send a non-interactive call. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| SIP is the Session Initiation Protocol [RFC3261] | ||||
| PIDF-LO is Presence Information Data Format - Location Object, a data | ||||
| structure for carrying location [RFC4119] | ||||
| LoST is the Location To Service Translation protocol [RFC5222] | ||||
| CID is Content InDirection [RFC2392] | ||||
| CAP is the Common Alerting Protocol [cap] | ||||
| PSAP is a Public Safety Answering Point, the call center for | ||||
| emergency calls. | ||||
| ESRP is an Emergency Services Routing Proxy, a type of SIP Proxy | ||||
| Server used in some emergency services networks | ||||
| 3. Architectural Overview | 3. Architectural Overview | |||
| This section illustrates two envisioned usage modes: targeted and | This section illustrates two envisioned usage modes: targeted and | |||
| location-based emergency alert routing. | location-based emergency alert routing. | |||
| 1. Emergency alerts containing only data are targeted to an | 1. Emergency alerts containing only data are targeted to an | |||
| intermediary recipient responsible for evaluating the next steps. | intermediary recipient responsible for evaluating the next steps. | |||
| These steps could include: | These steps could include: | |||
| 1. Sending a non-interactive call containing only data toward a | 1. Sending a non-interactive call containing only data towards a | |||
| Public Safety Answering Point (PSAP); | Public Safety Answering Point (PSAP); | |||
| 2. Establishing a third-party initiated emergency call towards a | 2. Establishing a third-party initiated emergency call towards a | |||
| PSAP that could include audio, video, and data. | PSAP that could include audio, video, and data. | |||
| 2. Emergency alerts may be targeted to a Service URN used for IP- | 2. Emergency alerts may be targeted to a Service URN used for IP- | |||
| based emergency calls where the recipient is not known to the | based emergency calls where the recipient is not known to the | |||
| originator. In this scenario, the alert may contain only data | originator. In this scenario, the alert may contain only data | |||
| (e.g., a CAP, Geolocation header field and one or more Call-Info | (e.g., a CAP, Geolocation header field and one or more Call-Info | |||
| header fields containing Additional Data [RFC7852] in a SIP | header fields containing Additional Data [RFC7852] in a SIP | |||
| skipping to change at page 5, line 14 ¶ | skipping to change at page 5, line 18 ¶ | |||
| +------------+ +------------+ | +------------+ +------------+ | |||
| | Sensor | | Aggregator | | | Sensor | | Aggregator | | |||
| | | | | | | | | | | |||
| +---+--------+ +------+-----+ | +---+--------+ +------+-----+ | |||
| | | | | | | |||
| Sensors | | Sensors | | |||
| trigger | | trigger | | |||
| emergency | | emergency | | |||
| alert | | alert | | |||
| | MESSAGE with CAP | | | SIP MESSAGE with CAP | | |||
| |----------------------------->| | |----------------------------->| | |||
| | | | | | | |||
| | Aggregator | | Aggregator | |||
| | processes | | processes | |||
| | emergency | | emergency | |||
| | alert | | alert | |||
| | 200 (OK) | | | SIP 200 (OK) | | |||
| |<-----------------------------| | |<-----------------------------| | |||
| | | | | | | |||
| | | | | | | |||
| Figure 1: Targeted Emergency Alert Routing | Figure 1: Targeted Emergency Alert Routing | |||
| In Figure 2 a scenario is shown whereby the alert is routed using | In Figure 2 a scenario is shown whereby the alert is routed using | |||
| location information and a Service URN. An emergency services | location information and a Service URN. An emergency services | |||
| routing proxy (ESRP) may use LoST to determine the next hop proxy to | routing proxy (ESRP) may use LoST (a protocol defined by [RFC5222] | |||
| route the alert message to. A possible receiver is a PSAP and the | which translates a location to a URI used to route an emergency call) | |||
| recipient of the alert may be a call taker. In the generic case, | to determine the next hop proxy to route the alert message to. A | |||
| there is very likely no prior relationship between the originator and | possible receiver is a PSAP and the recipient of the alert may be a | |||
| the receiver, e.g., a PSAP. A PSAP, for example, is likely to | call taker. In the generic case, there is very likely no prior | |||
| receive and accept alerts from entities it cannot authorize. This | relationship between the originator and the receiver, e.g., a PSAP. | |||
| scenario corresponds to the classic emergency services use case and | A PSAP, for example, is likely to receive and accept alerts from | |||
| the description in [RFC6881] is applicable. In this use case, the | entities it has no previous relationship with. This scenario | |||
| only difference between an emergency call and an emergency data-only | corresponds to the classic emergency services use case and the | |||
| description in [RFC6881] is applicable. In this use case, the only | ||||
| difference between an emergency call and an emergency non-interactive | ||||
| call is that the former uses INVITE, creates a session, and | call is that the former uses INVITE, creates a session, and | |||
| negotiates one or more media streams, while the latter uses MESSAGE, | negotiates one or more media streams, while the latter uses MESSAGE, | |||
| does not create a session, and does not have interactive media. | does not create a session, and does not have interactive media. | |||
| +----------+ +----------+ +-----------+ | +----------+ +----------+ +-----------+ | |||
| |Sensor or | | ESRP | | PSAP | | |Sensor or | | ESRP | | PSAP | | |||
| |Aggregator| | | | | | |Aggregator| | | | | | |||
| +----+-----+ +---+------+ +----+------+ | +----+-----+ +---+------+ +----+------+ | |||
| | | | | | | | | |||
| Sensors | | | Sensors | | | |||
| trigger | | | trigger | | | |||
| emergency | | | emergency | | | |||
| alert | | | alert | | | |||
| | | | | | | | | |||
| | | | | | | | | |||
| | MESSAGE with CAP | | | | SIP MESSAGE w/CAP | | | |||
| | (including Service URN, | | | (including Service URN, | | |||
| | such as urn:service:sos) | | | such as urn:service:sos) | | |||
| |-------------------| | | |-------------------| | | |||
| | | | | | | | | |||
| | ESRP performs | | | ESRP performs | | |||
| | emergency alert | | | emergency alert | | |||
| | routing | | | routing | | |||
| | | MESSAGE with CAP | | | | MESSAGE with CAP | | |||
| | | (including identity info) | | | | (including identity info) | | |||
| | |----------------------------->| | | |----------------------------->| | |||
| | | | | | | | | |||
| | | PSAP | | | PSAP | |||
| | | processes | | | processes | |||
| | | emergency | | | emergency | |||
| | | alert | | | alert | |||
| | | 200 (OK) | | | | SIP 200 (OK) | | |||
| | |<-----------------------------| | | |<-----------------------------| | |||
| | | | | | | | | |||
| | 200 (OK) | | | | SIP 200 (OK) | | | |||
| |<------------------| | | |<------------------| | | |||
| | | | | | | | | |||
| | | | | | | | | |||
| Figure 2: Location-Based Emergency Alert Routing | Figure 2: Location-Based Emergency Alert Routing | |||
| 4. Protocol Specification | 4. Protocol Specification | |||
| 4.1. CAP Transport | 4.1. CAP Transport | |||
| A CAP message may be sent in the initial message of any SIP | A CAP message may be sent in the initial message of any SIP | |||
| transaction. However, this document only addresses sending a CAP | transaction. However, this document only addresses sending a CAP | |||
| message in a SIP INVITE that initiates an emergency call, or in a SIP | message in a SIP MESSAGE transaction for a one-shot, non-interactive | |||
| MESSAGE transaction for a one-shot, data-only emergency call. | emergency call. Behavior with other transactions is not defined. | |||
| Behavior with other transactions is not defined. | ||||
| The CAP message is included in a SIP message as an additional-data | The CAP message is included in a SIP message as an additional-data | |||
| block [RFC7852]. Accordingly, it is introduced to the SIP message | block [RFC7852]. Accordingly, it is introduced to the SIP message | |||
| with a Call-Info header field with a purpose of | with a Call-Info header field with a purpose of | |||
| "EmergencyCallData.cap". The header field may contain a URI that is | "EmergencyCallData.cap". The header field may contain a URI that is | |||
| used by the recipient (or in some cases, an intermediary) to obtain | used by the recipient (or in some cases, an intermediary) to obtain | |||
| the CAP message. Alternative, the Call-Info header field may contain | the CAP message. Alternative, the Call-Info header field may contain | |||
| a Content Indirect url [RFC2392] and the CAP message included in the | a Content Indirect url [RFC2392] and the CAP message included in the | |||
| body of the message. In the latter case, the CAP message is located | body of the message. In the latter case, the CAP message is located | |||
| in a MIME block of the type 'application/emergencyCallData.cap+xml'. | in a MIME block of the type 'application/emergencyCallData.cap+xml'. | |||
| skipping to change at page 7, line 38 ¶ | skipping to change at page 7, line 35 ¶ | |||
| 4.2. Profiling of the CAP Document Content | 4.2. Profiling of the CAP Document Content | |||
| The usage of CAP MUST conform to the specification provided with | The usage of CAP MUST conform to the specification provided with | |||
| [cap]. For usage with SIP the following additional requirements are | [cap]. For usage with SIP the following additional requirements are | |||
| imposed: | imposed: | |||
| sender: The following restrictions and conditions apply to setting | sender: The following restrictions and conditions apply to setting | |||
| the value of the <sender> element: | the value of the <sender> element: | |||
| Originator is a SIP entity, Author indication irrelevant: When | * Originator is a SIP entity, Author indication irrelevant: When | |||
| the alert was created by a SIP-based originator and it is not | the alert was created by a SIP-based originator and it is not | |||
| useful to be explicit about the author of the alert, then the | useful to be explicit about the author of the alert, then the | |||
| <sender> element MUST be populated with the SIP URI of the user | <sender> element MUST be populated with the SIP URI of the user | |||
| agent. | agent. | |||
| Originator is a non-SIP entity, Author indication irrelevant: | * Originator is a non-SIP entity, Author indication irrelevant: | |||
| When the alert was created by a non-SIP based entity and the | When the alert was created by a non-SIP based entity and the | |||
| identity of this original sender is to be preserved, then this | identity of this original sender is to be preserved, then this | |||
| identity MUST be placed into the <sender> element. In this | identity MUST be placed into the <sender> element. In this | |||
| situation it is not useful to be explicit about the author of the | situation it is not useful to be explicit about the author of | |||
| alert. The specific type of identity being used will depend on | the alert. The specific type of identity being used will | |||
| the technology used by the original originator. | depend on the technology used by the original originator. | |||
| Author indication relevant: When the author is different from the | * Author indication relevant: When the author is different from | |||
| actual originator of the message and this distinction should be | the actual originator of the message and this distinction | |||
| preserved, then the <sender> element MUST NOT contain the SIP URI | should be preserved, then the <sender> element MUST NOT contain | |||
| of the user agent. | the SIP URI of the user agent. | |||
| incidents: The <incidents> element MUST be present. This incident | incidents: The <incidents> element MUST be present. This incident | |||
| identifier MUST be chosen in such a way that it is unique for a | identifier MUST be chosen in such a way that it is unique for a | |||
| given <sender, expires, incidents> combination. Note that the | given <sender, expires, incidents> combination. Note that the | |||
| <expires> element is optional and may not be present. | <expires> element is optional and may not be present. | |||
| scope: The value of the <scope> element MAY be set to "Private" if | scope: The value of the <scope> element MAY be set to "Private" if | |||
| the alert is not meant for public consumption. The <addresses> | the alert is not meant for public consumption. The <addresses> | |||
| element is, however, not used by this specification since the | element is, however, not used by this specification since the | |||
| message routing is performed by SIP and the respective address | message routing is performed by SIP and the respective address | |||
| information is already available in other SIP header fields. | information is already available in other SIP header fields. | |||
| Populating information twice into different parts of the message | Populating information twice into different parts of the message | |||
| may lead to inconsistency. | may lead to inconsistency. | |||
| parameter: The <parameter> element MAY contain additional | parameter: The <parameter> element MAY contain additional | |||
| information specific to the sender. | information specific to the sender, conforming to the CAP message | |||
| syntax. | ||||
| area: It is RECOMMENDED to omit this element when constructing a | area: It is RECOMMENDED to omit this element when constructing a | |||
| message. If the CAP message already contains an <area> element, | message. If the CAP message already contains an <area> element, | |||
| then the specified location information SHOULD be copied into a | then the specified location information SHOULD be copied into a | |||
| PIDF-LO structure referenced by the 'geolocation' header field. | PIDF-LO structure (the data format for location used by emergency | |||
| If there is a need to copy the PIDF-LO structure referenced by | calls on the Internet) referenced by the SIP 'Geolocation' header | |||
| 'geolocation' to <area>, implementers must be aware that <area> is | field. If there is a need to copy the PIDF-LO structure | |||
| limited to a circle or polygon, and conversion of other shapes | referenced by 'geolocation' to <area>, implementers must be aware | |||
| will be required. Points SHOULD be converted to a circle with a | that <area> is limited to a circle or polygon, and conversion of | |||
| radius equal to the uncertainty of the point. Arc-bands and | other shapes will be required. Points SHOULD be converted to a | |||
| ellipses SHOULD be converted to an equivalent polygon. 3D | circle with a radius equal to the uncertainty of the point. Arc- | |||
| locations SHOULD be converted to their equivalent 2D forms. | bands and ellipses SHOULD be converted to an equivalent polygon. | |||
| 3D locations SHOULD be converted to their equivalent 2D forms. | ||||
| 4.3. Sending a Data-Only Emergency Call | 4.3. Sending a non-interactive Emergency Call | |||
| A data-only emergency call is sent using a SIP MESSAGE transaction | A non-interactive emergency call is sent using a SIP MESSAGE | |||
| with a CAP URI or body part as described above in a manner similar to | transaction with a CAP URI or body part as described above in a | |||
| how an emergency call with interactive media is sent, as described in | manner similar to how an emergency call with interactive media is | |||
| [RFC6881]. The MESSAGE transaction does not create a session nor | sent, as described in [RFC6881]. The MESSAGE transaction does not | |||
| establish interactive media streams, but otherwise, the header | create a session nor establish interactive media streams, but | |||
| content of the transaction, routing, and processing of data-only | otherwise, the header content of the transaction, routing, and | |||
| calls are the same as those of other emergency calls. | processing of non-interactive calls are the same as those of other | |||
| emergency calls. | ||||
| 5. Error Handling | 5. Error Handling | |||
| This section defines a new error response code and a header field for | This section defines a new error response code and a header field for | |||
| additional information. | additional information. | |||
| 5.1. 425 (Bad Alert Message) Response Code | 5.1. 425 (Bad Alert Message) Response Code | |||
| This SIP extension creates a new location-specific response code, | This SIP extension creates a new location-specific response code, | |||
| defined as follows: | defined as follows: | |||
| 425 (Bad Alert Message) | 425 (Bad Alert Message) | |||
| The 425 response code is a rejection of the request due to its | The 425 response code is a rejection of the request due to its | |||
| included alert content, indicating that it was malformed or not | included alert content, indicating that it was malformed or not | |||
| satisfactory for the recipient's purpose. | satisfactory for the recipient's purpose. | |||
| A SIP intermediary can also reject an alert it receives from a User | A SIP intermediary can also reject an alert it receives from a User | |||
| Agent (UA) when it understands that the provided alert is malformed. | Agent (UA) when it detects that the provided alert is malformed. | |||
| Section 5.2 describes an AlertMsg-Error header field with more | Section 5.2 describes an AlertMsg-Error header field with more | |||
| details about what was wrong with the alert message in the request. | details about what was wrong with the alert message in the request. | |||
| This header field MUST be included in the 425 response. | This header field MUST be included in the 425 response. | |||
| It is only appropriate to generate a 425 response when the responding | It is only appropriate to generate a 425 response when the responding | |||
| entity has no other information in the request that is usable by the | entity has no other information in the request that is usable by the | |||
| responder. | responder. | |||
| A 425 response code MUST NOT be sent in response to a request that | A 425 response code MUST NOT be sent in response to a request that | |||
| skipping to change at page 10, line 25 ¶ | skipping to change at page 10, line 25 ¶ | |||
| HCOLON, SEMI, and EQUAL are defined in [RFC3261]. DIGIT is defined | HCOLON, SEMI, and EQUAL are defined in [RFC3261]. DIGIT is defined | |||
| in [RFC5234]. | in [RFC5234]. | |||
| The AlertMsg-Error header field MUST contain only one ErrorValue to | The AlertMsg-Error header field MUST contain only one ErrorValue to | |||
| indicate what was wrong with the alert payload the recipient | indicate what was wrong with the alert payload the recipient | |||
| determined was bad. | determined was bad. | |||
| The ErrorValue contains a 3-digit error code indicating what was | The ErrorValue contains a 3-digit error code indicating what was | |||
| wrong with the alert in the request. This error code has a | wrong with the alert in the request. This error code has a | |||
| corresponding quoted error text string that is human understandable. | corresponding quoted error text string that is human readable. The | |||
| The text string is OPTIONAL, but RECOMMENDED for human readability, | text string is OPTIONAL, but RECOMMENDED for human readability, | |||
| similar to the string phrase used for SIP response codes. That said, | similar to the string phrase used for SIP response codes. That said, | |||
| the strings are complete enough for rendering to the user, if so | the strings are complete enough for rendering to the user, if so | |||
| desired. The strings in this document are recommendations, and are | desired. The strings in this document are recommendations, and are | |||
| not standardized -- meaning an operator can change the strings -- but | not standardized -- meaning an operator can change the strings -- but | |||
| MUST NOT change the meaning of the error code. Similar to how RFC | MUST NOT change the meaning of the error code. Similar to how RFC | |||
| 3261 specifies, there MUST NOT be more than one string per error | 3261 specifies, there MUST NOT be more than one string per error | |||
| code. | code. | |||
| The AlertMsg-Error header field MAY be included in any response if an | The AlertMsg-Error header field MAY be included in any response if an | |||
| alert message was in the request part of the same transaction. For | alert message was in the request part of the same transaction. For | |||
| skipping to change at page 11, line 24 ¶ | skipping to change at page 11, line 24 ¶ | |||
| AlertMsg-Error: 103 ; code="Alert Payload was corrupted" | AlertMsg-Error: 103 ; code="Alert Payload was corrupted" | |||
| Additionally, if an entity cannot or chooses not to process the alert | Additionally, if an entity cannot or chooses not to process the alert | |||
| message from a SIP request, a 500 (Server Internal Error) SHOULD be | message from a SIP request, a 500 (Server Internal Error) SHOULD be | |||
| used with or without a configurable Retry-After header field. | used with or without a configurable Retry-After header field. | |||
| 6. Call Backs | 6. Call Backs | |||
| This document does not describe any method for the recipient to call | This document does not describe any method for the recipient to call | |||
| back the sender of a data-only call. Usually, these alerts are sent | back the sender of a non-interactive call. Usually, these alerts are | |||
| by automata, which do not have a mechanism to receive calls of any | sent by automata, which do not have a mechanism to receive calls of | |||
| kind. The identifier in the 'From' header field may be useful to | any kind. The identifier in the 'From' header field may be useful to | |||
| obtain more information, but any such mechanism is not defined in | obtain more information, but any such mechanism is not defined in | |||
| this document. The CAP message may contain related contact | this document. The CAP message may contain related contact | |||
| information for the sender. | information for the sender. | |||
| 7. Handling Large Amounts of Data | 7. Handling Large Amounts of Data | |||
| It is not atypical for sensors to have large quantities of data that | It is not atypical for sensors to have large quantities of data that | |||
| they may wish to send. Including large amounts of data in a MESSAGE | they may wish to send. Including large amounts of data (tens of | |||
| is not advisable, because SIP entities are usually not equipped to | kilobytes) in a MESSAGE is not advisable, because SIP entities are | |||
| handle very large messages. In such cases, the sender SHOULD make | usually not equipped to handle very large messages. In such cases, | |||
| use of the by-reference mechanisms defined in [RFC7852], which | the sender SHOULD make use of the by-reference mechanisms defined in | |||
| involves making the data available via HTTPS (either at the | [RFC7852], which involves making the data available via HTTPS (either | |||
| originator or at another entity), placing a URI to the data in the | at the originator or at another entity), placing a URI to the data in | |||
| 'Call-Info' header field, and the recipient using HTTPS to retrieve | the 'Call-Info' header field, and the recipient uses HTTPS to | |||
| the data. The CAP message itself can be sent by-reference using this | retrieve the data. The CAP message itself can be sent by-reference | |||
| mechanism, as well as any or all of the Additional Data blocks that | using this mechanism, as well as any or all of the Additional Data | |||
| may contain sensor-specific data. | blocks that may contain sensor-specific data. | |||
| 8. Example | 8. Example | |||
| The following example shows a CAP document indicating a BURGLARY | The following example shows a CAP document indicating a BURGLARY | |||
| alert issued by a sensor called 'sensor1@example.com'. The location | alert issued by a sensor called 'sensor1@example.com'. The location | |||
| of the sensor can be obtained from the attached location information | of the sensor can be obtained from the attached location information | |||
| provided via the 'geolocation' header field contained in the SIP | provided via the 'geolocation' header field contained in the SIP | |||
| MESSAGE structure. Additionally, the sensor provided some data along | MESSAGE structure. Additionally, the sensor provided some data along | |||
| with the alert message, using proprietary information elements | with the alert message, using proprietary information elements | |||
| intended only to be processed by the receiver, a SIP entity acting as | intended only to be processed by the receiver, a SIP entity acting as | |||
| skipping to change at page 13, line 48 ¶ | skipping to change at page 13, line 48 ¶ | |||
| </gp:usage-rules> | </gp:usage-rules> | |||
| <gp:method>802.11</gp:method> | <gp:method>802.11</gp:method> | |||
| </gp:geopriv> | </gp:geopriv> | |||
| <dm:timestamp>2010-11-04T20:57:29Z</dm:timestamp> | <dm:timestamp>2010-11-04T20:57:29Z</dm:timestamp> | |||
| </dm:device> | </dm:device> | |||
| </presence> | </presence> | |||
| --boundary1-- | --boundary1-- | |||
| Figure 3: Example Message conveying an Alert to an aggregator | Figure 3: Example Message conveying an Alert to an aggregator | |||
| The following shows the same CAP document sent as a data-only | The following shows the same CAP document sent as a non-interactive | |||
| emergency call towards a PSAP. | emergency call towards a PSAP. | |||
| MESSAGE urn:service:sos SIP/2.0 | MESSAGE urn:service:sos SIP/2.0 | |||
| Via: SIP/2.0/TCP sip:aggreg.1.example.com;branch=z9hG4bK776abssa | Via: SIP/2.0/TCP sip:aggreg.1.example.com;branch=z9hG4bK776abssa | |||
| Max-Forwards: 70 | Max-Forwards: 70 | |||
| From: sip:aggregator@example.com;tag=32336 | From: sip:aggregator@example.com;tag=32336 | |||
| To: 112 | To: 112 | |||
| Call-ID: asdf33443a@example.com | Call-ID: asdf33443a@example.com | |||
| Route: sip:psap1.example.gov | Route: sip:psap1.example.gov | |||
| Geolocation: <cid:abcdef@example.com> | Geolocation: <cid:abcdef@example.com> | |||
| skipping to change at page 17, line 7 ¶ | skipping to change at page 17, line 7 ¶ | |||
| indicated timeframe is able to detect a replayed message and, if the | indicated timeframe is able to detect a replayed message and, if the | |||
| content of that message is unchanged, then no additional security | content of that message is unchanged, then no additional security | |||
| vulnerability is created. Additionally, it is RECOMMENDED to make | vulnerability is created. Additionally, it is RECOMMENDED to make | |||
| use of SIP security mechanisms, such as SIP Identity [RFC8224], to | use of SIP security mechanisms, such as SIP Identity [RFC8224], to | |||
| tie the CAP message to the SIP message. To provide protection of the | tie the CAP message to the SIP message. To provide protection of the | |||
| entire SIP message exchange between neighboring SIP entities, the | entire SIP message exchange between neighboring SIP entities, the | |||
| usage of TLS is REQUIRED. | usage of TLS is REQUIRED. | |||
| Note that none of the security mechanism in this document protect | Note that none of the security mechanism in this document protect | |||
| against a compromised sensor sending crafted alerts. Privacy | against a compromised sensor sending crafted alerts. Privacy | |||
| provided for any emergency calls, including data-only messages, is | provided for any emergency calls, including non-interactive messages, | |||
| subject to local regulations. | is subject to local regulations. | |||
| 10. IANA Considerations | 10. IANA Considerations | |||
| 10.1. Registration of the 'application/EmergencyCallData.cap+xml' MIME | 10.1. Registration of the 'application/EmergencyCallData.cap+xml' MIME | |||
| type | type | |||
| To: ietf-types@iana.org | To: ietf-types@iana.org | |||
| Subject: Registration of MIME media type application/ | Subject: Registration of MIME media type application/ | |||
| EmergencyCallData.cap+xml | EmergencyCallData.cap+xml | |||
| skipping to change at page 21, line 11 ¶ | skipping to change at page 21, line 11 ¶ | |||
| Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
| DOI 10.17487/RFC3261, June 2002, | DOI 10.17487/RFC3261, June 2002, | |||
| <https://www.rfc-editor.org/info/rfc3261>. | <https://www.rfc-editor.org/info/rfc3261>. | |||
| [RFC3428] Campbell, B., Ed., Rosenberg, J., Schulzrinne, H., | [RFC3428] Campbell, B., Ed., Rosenberg, J., Schulzrinne, H., | |||
| Huitema, C., and D. Gurle, "Session Initiation Protocol | Huitema, C., and D. Gurle, "Session Initiation Protocol | |||
| (SIP) Extension for Instant Messaging", RFC 3428, | (SIP) Extension for Instant Messaging", RFC 3428, | |||
| DOI 10.17487/RFC3428, December 2002, | DOI 10.17487/RFC3428, December 2002, | |||
| <https://www.rfc-editor.org/info/rfc3428>. | <https://www.rfc-editor.org/info/rfc3428>. | |||
| [RFC4119] Peterson, J., "A Presence-based GEOPRIV Location Object | ||||
| Format", RFC 4119, DOI 10.17487/RFC4119, December 2005, | ||||
| <https://www.rfc-editor.org/info/rfc4119>. | ||||
| [RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. | ||||
| Tschofenig, "LoST: A Location-to-Service Translation | ||||
| Protocol", RFC 5222, DOI 10.17487/RFC5222, August 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5222>. | ||||
| [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, | Specifications: ABNF", STD 68, RFC 5234, | |||
| DOI 10.17487/RFC5234, January 2008, | DOI 10.17487/RFC5234, January 2008, | |||
| <https://www.rfc-editor.org/info/rfc5234>. | <https://www.rfc-editor.org/info/rfc5234>. | |||
| [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, | [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, | |||
| DOI 10.17487/RFC7303, July 2014, | DOI 10.17487/RFC7303, July 2014, | |||
| <https://www.rfc-editor.org/info/rfc7303>. | <https://www.rfc-editor.org/info/rfc7303>. | |||
| [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| skipping to change at page 22, line 20 ¶ | skipping to change at page 22, line 26 ¶ | |||
| [RFC6443] Rosen, B., Schulzrinne, H., Polk, J., and A. Newton, | [RFC6443] Rosen, B., Schulzrinne, H., Polk, J., and A. Newton, | |||
| "Framework for Emergency Calling Using Internet | "Framework for Emergency Calling Using Internet | |||
| Multimedia", RFC 6443, DOI 10.17487/RFC6443, December | Multimedia", RFC 6443, DOI 10.17487/RFC6443, December | |||
| 2011, <https://www.rfc-editor.org/info/rfc6443>. | 2011, <https://www.rfc-editor.org/info/rfc6443>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Brian Rosen | Brian Rosen | |||
| 470 Conrad Dr | 470 Conrad Dr | |||
| Mars, PA 16046 | Mars, PA 16046 | |||
| US | US | |||
| Phone: | ||||
| Email: br@brianrosen.net | Email: br@brianrosen.net | |||
| Henning Schulzrinne | Henning Schulzrinne | |||
| Columbia University | Columbia University | |||
| Department of Computer Science | Department of Computer Science | |||
| 450 Computer Science Building | 450 Computer Science Building | |||
| New York, NY 10027 | New York, NY 10027 | |||
| US | US | |||
| Phone: +1 212 939 7004 | Phone: +1 212 939 7004 | |||
| End of changes. 38 change blocks. | ||||
| 95 lines changed or deleted | 133 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||