Re: [media-types] Proposed registration of the Application/LegacyESN media type

Alexey Melnikov <alexey.melnikov@isode.com> Mon, 05 July 2021 14:28 UTC

Return-Path: <alexey.melnikov@isode.com>
X-Original-To: media-types@ietfa.amsl.com
Delivered-To: media-types@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 64D763A19D8 for <media-types@ietfa.amsl.com>; Mon, 5 Jul 2021 07:28:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.771
X-Spam-Level:
X-Spam-Status: No, score=-6.771 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.338, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06suw0hHKHkg for <media-types@ietfa.amsl.com>; Mon, 5 Jul 2021 07:28:47 -0700 (PDT)
Received: from pechora5.dc.icann.org (pechora5.icann.org [192.0.46.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B0AC3A19CC for <media-types@ietf.org>; Mon, 5 Jul 2021 07:28:46 -0700 (PDT)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by pechora5.dc.icann.org (Postfix) with ESMTP id 0E043700036D for <media-types@iana.org>; Mon, 5 Jul 2021 14:28:46 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1625495325; d=isode.com; s=june2016; i=@isode.com; bh=R57SEApcLVaGZiL2fCYxBuBt1nWDaGRLF9vGYrf+aQE=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=COApF01yS0WnlmCBqGZfjphG5PuYXdb00F/fyT/qu5aNlUbHGSXCUOttqyBcbC6cm4lCn7 sSGu1IUWlSde3u4DbH8swmYdMkIEh7SRwX/qalvs5Ex65mFN0m2knEDyXeMDH+MBDTIzd2 S7sq00c/Iv8Y+Bh9p4tBQcUnI7e3x/8=;
Received: from [192.168.1.222] (host5-81-100-22.range5-81.btcentralplus.com [5.81.100.22]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id <YOMXGwAX7ksZ@waldorf.isode.com>; Mon, 5 Jul 2021 15:28:44 +0100
To: Brian Rosen <br@brianrosen.net>
Cc: Randall Gellens <rg+ietf@randy.pensive.org>, media-types@iana.org, Terry Reese <theresa.reese@ericsson.com>
References: <802C4C29-7894-4115-8DD6-81D61B9B0DF2@randy.pensive.org> <8d0b7a49-51b9-f279-5c66-24cf625f215a@isode.com> <F3E201DB-16D7-4585-B3FF-10BF2D23B709@brianrosen.net>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <267da612-ecda-926c-175d-d0a2e00c61d2@isode.com>
Date: Mon, 05 Jul 2021 15:28:22 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0
In-Reply-To: <F3E201DB-16D7-4585-B3FF-10BF2D23B709@brianrosen.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------155D4C74B76D22C650135320"
Content-Language: en-GB
X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.2 (pechora5.dc.icann.org [0.0.0.0]); Mon, 05 Jul 2021 14:28:46 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/media-types/Xhz28sTTEEO94VD9uN9P-RHo_-U>
Subject: Re: [media-types] Proposed registration of the Application/LegacyESN media type
X-BeenThere: media-types@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IANA mailing list for reviewing Media Type \(MIME Type, Content Type\) registration requests." <media-types.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/media-types>, <mailto:media-types-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/media-types/>
List-Post: <mailto:media-types@ietf.org>
List-Help: <mailto:media-types-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/media-types>, <mailto:media-types-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Jul 2021 14:28:51 -0000

Hi Brian,

On 05/07/2021 15:07, Brian Rosen wrote:
> RFC7852 created the EmergencyCallData tree.

Thank you for pointing me to RFC 7852, I was not aware of it.

To be completely pedantic, RFC 7852 doesn't do such thing. It doesn't 
say that it registers any new "tree" (neither the word "tree" nor 
"facet" can be found in RFC 7852). However it does register several 
media types with the same "EmergencyCallData." prefix, so this can be 
considered such a registration.

Best Regards,

Alexey

> Brian
>
>> On Jul 5, 2021, at 9:58 AM, Alexey Melnikov 
>> <alexey.melnikov@isode.com <mailto:alexey.melnikov@isode.com>> wrote:
>>
>> Hi Randy,
>>
>> On 22/06/2021 00:26, Randall Gellens wrote:
>>>
>>> Hi All,
>>>
>>> A document currently in development by the National Emergency Number 
>>> Association (NENA) i3 Architecture WG of the 911 Core Services 
>>> Committee seeks to register a media type to carry legacy emergency 
>>> service number (ESN) information as an Emergency Call Data block. 
>>> This will be used by gateway systems for interoperability between 
>>> next-generation (NG) and legacy emergency call systems in North 
>>> America. The document is the /NENA Legacy Selective Router Gateway 
>>> (LSRG) Standard/, NENA-STA-034.1 (work in progress).
>>>
>>> The media registration template follows:
>>>
>>> ------------------------------------------------------------------------
>>>
>>> *MIME media type name:* application
>>> *MIME subtype name:* EmergencyCallData.LegacyESN+json
>>>
>> This wouldn't work, as this effectively requires creation of a new 
>> registration tree "EmergencyCallData", which requires publication of 
>> an IETF Standard Track document (see Section 3.5 of RFC 6838). I 
>> don't think this is what you want.
>>
>> Two possible work arounds: either make it 
>> "vnd.EmergencyCallData.LegacyESN+json" or 
>> "EmergencyCallData-LegacyESN+json"
>>
>>> *Mandatory parameters:* none
>>> *Optional parameters:* charset
>>> Indicates the character encoding of enclosed JSON.
>>> *Encoding considerations:* Uses JSON, which can employ 8-bit 
>>> characters, depending on the character encoding used.
>>>
>> I think this means "binary", as this can be serialized into 1 long 
>> line longer than 1000 octets.
>>
>> I skimmed the rest of your message and it looked fine to me.
>>
>> Best Regards,
>>
>> Alexey
>>
>>> *Security considerations:* This media type carries a legacy ESN 
>>> during an emergency call.
>>>
>>> This data contains location information. Appropriate precautions 
>>> should be taken to limit unauthorized access, inappropriate 
>>> disclosure to third parties, and eavesdropping of this information. 
>>> Please refer to Section 9 and Section 10 of RFC7852 [13] for more 
>>> information.
>>>
>>> This media format contains only static information (no active content).
>>>
>>> When this media type is contained in an encrypted body part, the 
>>> enclosing multipart (e.g., 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 to decrypt parts it is not 
>>> interested in. (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).
>>>
>>> The published specification (see below) contains a fuller 
>>> description of the security and privacy considerations.
>>>
>>> *Interoperability considerations:* None
>>> *Published specification:* [THIS DOCUMENT -- NENA-STA-034.1]
>>> *Applications which use this media type:* Emergency Services
>>> *Additional information:* None
>>> *Magic Number:* None
>>> *File Extension:* .json
>>> *Macintosh file type code:* 'TEXT'
>>> *Persons and email addresses for further information:* Randall 
>>> Gellens rg+nena.mime@randy.pensive.org 
>>> <mailto:rg+nena.mime@randy.pensive.org>
>>> *Intended usage:* LIMITED USE
>>> *Author:* This specification is a work item of the National 
>>> Emergency Number Association (NENA) 911 Core Services Committee, i3 
>>> Architecture Working Group.
>>> *Change controller:* NENA.
>>>
>>> ------------------------------------------------------------------------
>>>
>>> The document under development currently includes the following 
>>> sections related to this MIME subtype:
>>>
>>> *8 The Legacy ESN Additional Data Block*
>>>
>>> This section defines the Legacy ESN additional data block per RFC 
>>> 7852 [13]. A Legacy ESN additional data block contains an ESN and a 
>>> ‘locality’ string indicating the source, locality, or area of 
>>> significance of the ESN. The ESN is a 3-5 digit integer number 
>>> encoded as a string. The ‘locality’ string helps in identifying the 
>>> ESN’s context (since ESNs are local rather than national in scope).
>>>
>>> A Legacy ESN Additional Data block is encoded as a JavaScript Object 
>>> Notation (JSON) [47] object. An ESN additional data block is 
>>> transported as a MIME object (e.g., in SIP) using the 
>>> 'application/EmergencyCallData.LegacyESN+json' media type.
>>>
>>> *8.1 JSON Scheme Description for the Legacy ESN Additional Data Block*
>>>
>>> The following JSON schema defines the Legacy ESN object:
>>>
>>> |{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": 
>>> "urn:nena:schema:json:EmergencyCallData:LegacyESN:1.0", "title": 
>>> "EmergencyCallData.LegacyESN", "type": "object", "properties": { 
>>> "esn": { "description": "A legacy Emergency Service Number as a 3-5 
>>> digit string.", "examples": [ "555" ], "minLength": 3, "maxLength": 
>>> 5, "type": "string", "pattern": "^[0-9]{3,5}$" }, "locality": { 
>>> "description": "The source, locality, or area of significance of the 
>>> ESN.", "type": "string" } }, "required": [ "esn" ] } |
>>>
>>> *8.2 Example Legacy ESN Additional Data Block*
>>>
>>> The following is an example of a valid Legacy ESN object:
>>>
>>> |{ "esn": "555", "locality": "Belcher's Corners, Arachnid County, 
>>> Maryland" } |
>>>
>>> *8.3 Security and Privacy Considerations for the Legacy ESN 
>>> Additional Data Block*
>>>
>>> ESNs have been used within legacy emergency services in North 
>>> America for decades. ESNs are not directly used within 
>>> next-generation emergency services, but may be conveyed by 
>>> next-generation systems interconnected with legacy systems. The 
>>> information carried in an ESN data block does not introduce new 
>>> security issues, although it may be advisable for systems to perform 
>>> a basic sanity check on the values, to avoid sending an invalid ESN 
>>> to a legacy selective router.
>>>
>>> A Legacy ESN data block contains only static information; no active 
>>> content is conveyed.
>>>
>>> ESNs are intrinsically associated with a location. As with emergency 
>>> service systems where location data is supplied or determined with 
>>> the assistance of an end host, there is the possibility that an ESN 
>>> is incorrect, either intentially (e.g., in a denial of service 
>>> attack against the emergency services infrastructure) or due to a 
>>> malfunctioning device. The reader is referred to RFC 7378 [13] for a 
>>> discussion of some of these vulnerabilities.
>>>
>>> An ESN is associated with a location, and so should be protected 
>>> against unauthorized disclosure, as discussed in RFC 7852 [13]. 
>>> Local regulations may impose additional privacy protection requirements.
>>>
>>> *8.4 Example Call with a Legacy ESN Additional Data Block*
>>>
>>> The following is an example INVITE containing a Legacy ESN 
>>> Additional Data Block:
>>>
>>> |INVITE urn:service:sos SIP/2.0 To: urn:service:sos From: 
>>> <sip:+13145551111@example.com>;tag=9fxced76sl Call-ID: 
>>> 3848276298220188511@atlanta.example.com Geolocation: 
>>> <cid:target123@example.com> Geolocation-Routing: no Call-Info: 
>>> <cid:1234567890@atlanta.example.com>; 
>>> purpose=EmergencyCallData.LegacyESN Accept: application/sdp, 
>>> application/pidf+xml, application/EmergencyCallData.LegacyESN+json 
>>> Allow: INVITE, ACK, PRACK, INFO, OPTIONS, CANCEL, REFER, BYE, 
>>> SUBSCRIBE, NOTIFY, UPDATE CSeq: 31862 INVITE Content-Type: 
>>> multipart/mixed; boundary=boundary1 Content-Length: ... --boundary1 
>>> Content-Type: application/sdp ...Session Description Protocol (SDP) 
>>> goes here --boundary1 Content-Type: application/pidf+xml Content-ID: 
>>> <target123@atlanta.example.com> Content-Disposition: 
>>> by-reference;handling=optional <?xml version="1.0" 
>>> encoding="UTF-8"?> <presence xmlns="urn:ietf:params:xml:ns:pidf" 
>>> xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" 
>>> xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" 
>>> xmlns:dyn="urn:ietf:params:xml:ns:pidf:geopriv10:dynamic" 
>>> xmlns:gml="http://www.opengis.net/gml" 
>>> xmlns:gs="http://www.opengis.net/pidflo/1.0" 
>>> entity="sip:+13145551111@example.com"> <dm:device id="123"> 
>>> <gp:geopriv> <gp:location-info> <gml:Point 
>>> srsName="urn:ogc:def:crs:EPSG::4326"> <gml:pos>-34.407 
>>> 150.883</gml:pos> </gml:Point> <dyn:Dynamic> 
>>> <dyn:heading>278</dyn:heading> <dyn:direction><dyn:direction> 
>>> </dyn:Dynamic> </gp:location-info> <gp:usage-rules/> 
>>> <method>gps</method> </gp:geopriv> 
>>> <timestamp>2012-04-5T10:18:29Z</timestamp> 
>>> <dm:deviceID>1M8GDM9A_KP042788</dm:deviceID> </dm:device> 
>>> </presence> --boundary1 Content-Type: 
>>> application/EmergencyCallData.LegacyESN+json Content-ID: 
>>> <1234567890@atlanta.example.com> Content-Disposition: 
>>> by-reference;handling=optional { "esn": "555", "locality": 
>>> "Belcher's Corners, Arachnid County, Maryland" } --boundary1-- |
>>> ------------------------------------------------------------------------
>>>
>>> Thank you.
>>>
>>> --Randall
>>>
>>>
>>> _______________________________________________
>>> media-types mailing list
>>> media-types@ietf.org
>>> https://www.ietf.org/mailman/listinfo/media-types
>