[sipcore] Re: regarding draft-ietf-sipcore-callinfo-rcd-15
Richard Shockey <richard@shockey.us> Mon, 10 March 2025 22:39 UTC
Return-Path: <richard@shockey.us>
X-Original-To: sipcore@mail2.ietf.org
Delivered-To: sipcore@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id B37AE9C2FDB for <sipcore@mail2.ietf.org>; Mon, 10 Mar 2025 15:39:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (768-bit key) header.d=shockey.us
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sHzkNZrGzZWO for <sipcore@mail2.ietf.org>; Mon, 10 Mar 2025 15:39:16 -0700 (PDT)
Received: from omta40.uswest2.a.cloudfilter.net (omta40.uswest2.a.cloudfilter.net [35.89.44.39]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 56DBA9C2FA2 for <sipcore@ietf.org>; Mon, 10 Mar 2025 15:39:15 -0700 (PDT)
Received: from eig-obgw-5010a.ext.cloudfilter.net ([10.0.29.199]) by cmsmtp with ESMTPS id rX7LtYodXf1UXrlmEt5xXy; Mon, 10 Mar 2025 22:39:14 +0000
Received: from box5527.bluehost.com ([162.241.218.19]) by cmsmtp with ESMTPS id rlmDtLeTRGKu7rlmDt8ODD; Mon, 10 Mar 2025 22:39:13 +0000
X-Authority-Analysis: v=2.4 cv=dIGgmvZb c=1 sm=1 tr=0 ts=67cf6a11 a=KXpOjjFwo8kCkgxs2x2AJQ==:117 a=KXpOjjFwo8kCkgxs2x2AJQ==:17 a=IkcTkHD0fZMA:10 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=Vs1iUdzkB0EA:10 a=06TXGDuqNb8A:10 a=ll-iCDY8AAAA:8 a=48vgC7mUAAAA:8 a=A1X0JdhQAAAA:8 a=M0OflfRGAAAA:8 a=w1VtefKfAAAA:8 a=djY1jZLlqs-OJ3s_ufQA:9 a=QEXdDO2ut3YA:10 a=-FEs8UIgK8oA:10 a=VpyrLIdO_Ztbr3SWPBuH:22 a=6yl0mh0s51TKORVA8GqK:22 a=xm8PXHvXF9WL09pmvKgj:22 a=jqBRFv0mrdWfL_K7jfQc:22 a=u3EvPKb8hHI-gLYDMzkH:22
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=shockey.us; s=default; h=Content-transfer-encoding:Content-type:Mime-version:In-Reply-To: References:Message-ID:CC:To:From:Subject:Date:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=bj+hHsYRes6h2xoOqxIxw3Ki/Car1lJJsHauj3A7miY=; b=TTCOvwANHEpXdrGQ9itkCtubTo l5pm6FndGZ1MWwB8DmyZZtgDZXQXPW0tgrCKbYj/Qp5nHZxzHeH2rIMMPF+GpTKT51HIUAa0RhM+m 4afgIPFWczraDqpKW8OKbHaty;
Received: from pool-100-36-26-18.washdc.fios.verizon.net ([100.36.26.18]:53405 helo=[192.168.1.71]) by box5527.bluehost.com with esmtpa (Exim 4.98.1) (envelope-from <richard@shockey.us>) id 1trlmC-00000001EXU-2vRo; Mon, 10 Mar 2025 16:39:12 -0600
User-Agent: Microsoft-MacOutlook/16.94.25022327
Date: Mon, 10 Mar 2025 18:39:10 -0400
From: Richard Shockey <richard@shockey.us>
To: Chris Wendt <chris-ietf@chriswendt.net>, Andrew Newton <andy@hxr.us>
Message-ID: <CA02ABF5-75BA-49DC-BF2D-4D62BA9FF7EE@shockey.us>
Thread-Topic: [sipcore] Re: regarding draft-ietf-sipcore-callinfo-rcd-15
References: <D78C5766-C183-45F9-AA04-0143E8BF62A5@chriswendt.net>
In-Reply-To: <D78C5766-C183-45F9-AA04-0143E8BF62A5@chriswendt.net>
Mime-version: 1.0
Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: quoted-printable
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - box5527.bluehost.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - shockey.us
X-BWhitelist: no
X-Source-IP: 100.36.26.18
X-Source-L: No
X-Exim-ID: 1trlmC-00000001EXU-2vRo
X-Source:
X-Source-Args:
X-Source-Dir:
X-Source-Sender: pool-100-36-26-18.washdc.fios.verizon.net ([192.168.1.71]) [100.36.26.18]:53405
X-Source-Auth: richard@shockey.us
X-Email-Count: 1
X-Org: HG=bhshared;ORG=bluehost;
X-Source-Cap: c2hvY2tleXU7c2hvY2tleXU7Ym94NTUyNy5ibHVlaG9zdC5jb20=
X-Local-Domain: yes
X-CMAE-Envelope: MS4xfGip24IzBxjtg4zC6GhPRVLSwjBGFz2gsGF5MtTDa1WGKZ9DK/eSiSzGufBhucqwTOJSf8xp1Aj95EkKjw02RBZXB9IY0pWXjsDk5jtVyy/liakLHuV/ B9ZG9uKsX/3+bhyQq1I5i9OL/9SR1AtjvV7Zd+LkFJWWwmD+h8oTcqV0lWhZ6QYjfAmqmBr1wKaQaw==
Message-ID-Hash: JOBJ4WXOIPISUM3LFMAMALSIEKCVGCG4
X-Message-ID-Hash: JOBJ4WXOIPISUM3LFMAMALSIEKCVGCG4
X-MailFrom: richard@shockey.us
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-sipcore.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: sipcore@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [sipcore] Re: regarding draft-ietf-sipcore-callinfo-rcd-15
List-Id: SIP Core Working Group <sipcore.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/k3k6M-STPf83HQ8bkvE_YNkp5_4>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Owner: <mailto:sipcore-owner@ietf.org>
List-Post: <mailto:sipcore@ietf.org>
List-Subscribe: <mailto:sipcore-join@ietf.org>
List-Unsubscribe: <mailto:sipcore-leave@ietf.org>
Andy can we just get this done. This has dragged on for over 3 years. We want to deploy. This process has been simply insane. Its why none of us in the real time communications business want to take any new standardizations into the IETF. Richard Shockey Shockey Consulting LLC Chairman of the Board SIP Forum www.shockey.us <http://www.shockey.us> www.sipforum.org richard<at>shockey.us Skype-Linkedin-Facebook –Twitter rshockey101 PSTN +1 703-593-2683 On 3/10/25, 6:19 PM, "Chris Wendt" <chris-ietf@chriswendt.net <mailto:chris-ietf@chriswendt.net>> wrote: Thanks Andy. Will submit a -16 that incorporate those changes as well as the ask from Brian around the IANA request. > On Mar 10, 2025, at 12:45 PM, Andrew Newton (andy) <andy@hxr.us <mailto:andy@hxr.us>> wrote: > > Top posting here... > > This all looks good. Thanks for taking a look and your patience. Also, > thanks for a very well-written and high-quality document. > > -andy > >> On Mon, Mar 10, 2025 at 8:49 AM Chris Wendt <chris-ietf@chriswendt.net <mailto:chris-ietf@chriswendt.net>> wrote: >> >> Hi Andy, >> >> On Mar 4, 2025, at 8:36 PM, Andrew Newton (andy) <andy@hxr.us <mailto:andy@hxr.us>> wrote: >> >> Hi all, >> >> Murray has submitted draft-ietf-sipcore-callinfo-rcd-15 for balloting by the IESG, however this document will not make it on to the next telechat meaning it will likely fall to me as incoming ART AD. After reviewing the draft, I have a couple of minor comments/questions. I also ask for your patience regarding my knowledge of this topic as it is new to me. >> >> >> Of course, discussion inline: >> >> >> Line numbers are from https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-sipcore-callinfo-rcd-15.txt <https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-sipcore-callinfo-rcd-15.txt> >> >> >> >> 328 The jCard is intended to contain multiple information elements about >> 329 the calling party. A call and its corresponding single RCD-related >> 330 Call-Info header field MUST only contain a single "jcard" token. >> >> 332 The fields like "fn", "photo", or "logo" if used with the use of >> 333 "icon" calling name in From or P-Asserted-ID header field or purpose >> 334 token, as described in the previous section, MUST either match or be >> 335 avoided to allow the called party to clearly determine the intended >> 336 calling name or icon. >> >> 338 An example of a Call-Info header field is: >> >> 340 Call-Info: <https://example.com/qbranch.json>;purpose=jcard <https://example.com/qbranch.json>;purpose=jcard> >> >> 342 An example of the contents of a URL-linked jCard JSON file is shown >> 343 as follows: >> >> 345 ["vcard", >> 346 [ >> 347 ["version",{},"text","4.0"], >> 348 ["fn",{},"text","Q Branch"], >> 349 ["org",{},"text","MI6;Q Branch Spy Gadgets"], >> 350 ["photo",{},"uri","https://example.com/photos/q-256x256.png" <https://example.com/photos/q-256x256.png">], >> 351 ["logo",{},"uri","https://example.com/logos/mi6-256x256.jpg" <https://example.com/logos/mi6-256x256.jpg">], >> 352 ["logo",{},"uri","https://example.com/logos/mi6-64x64.jpg" <https://example.com/logos/mi6-64x64.jpg">] >> 353 ] >> 354 ] >> >> What happens if there are multiple cards in the "vcard" array? Are they all required to match (see paragraph starting line 332)? >> >> >> The text on line 330 does say “MUST” for only containing a single “jcard” token. >> I took a look at RFC7095 Section 3.2 that talks about the top level jCard Object syntax and while it looks like you can have multiple jcard objects within the same JSON array, that isn’t the intent of this document to have more than one entity. So I will clarify that statement further with the following: >> >> "A call and its corresponding single RCD-related Call-Info header field MUST only contain a single jCard object represented by an array with two elements. The array MUST only include a single first element with the string "vcard", and the second element is an array of jCard properties corresponding to the single entity jCard object." >> >> >> 356 An example SIP INVITE using the "data" URI scheme is as follows: >> >> 358 INVITE sip:alice@example.com <mailto:alice@example.com> SIP/2.0 >> 359 Via: SIP/2.0/TLS pc33.atlanta.example.com;branch=z9hG4bKnashds8 >> 360 To: Alice <sip:alice@example.com <mailto:alice@example.com>> >> 361 From: Bob <sip:12155551000@example.com <mailto:12155551000@example.com>;user=phone>;tag=1928301774> >> 362 Call-ID: a84b4c76e66710 >> 363 Call-Info: <data:application/json,["vcard",[["version",{},"text", >> 364 "4.0"],["fn",{},"text","Q Branch"],["org",{},"text","MI6;Q Branch >> 365 Spy Gadgets"],["photo",{},"uri","https://example.com/photos/quart <https://example.com/photos/quart> >> 366 ermaster-256x256.png"],["logo",{},"uri","https://example.com/log <https://example.com/log> >> 367 os/mi6-256x256.jpg"],["logo",{},"uri","https://example.com/logos/ <https://example.com/logos/> >> 368 mi6-64x64.jpg"]]]\>;purpose=jcard;call-reason="Rendezvous for >> 369 Little Nellie" >> 370 CSeq: 314159 INVITE >> 371 Max-Forwards: 70 >> 372 Date: Fri, 25 Sep 2015 19:12:25 GMT >> 373 Contact: <sip:12155551000@gateway.example.com <mailto:12155551000@gateway.example.com>> >> 374 Content-Type: application/sdp >> >> 376 v=0 >> 377 o=UserA 2890844526 2890844526 IN IP4 pc33.atlanta.example.com >> 378 s=Session SDP >> 379 c=IN IP4 pc33.atlanta.example.com >> 380 t=0 0 >> 381 m=audio 49172 RTP/AVP 0 >> 382 a=rtpmap:0 PCMU/8000 >> >> 384 An example SIP INVITE using the "cid" URI scheme is as follows: >> >> 386 INVITE sip:alice@example.com <mailto:alice@example.com> SIP/2.0 >> 387 Via: SIP/2.0/TLS pc33.atlanta.example.com;branch=z9hG4bKnashds8 >> 388 To: Alice <sip:alice@example.com <mailto:alice@example.com>> >> 389 From: Bob <sip:12155551000@example.com <mailto:12155551000@example.com>;user=phone>;tag=1928301774> >> 390 Call-ID: a84b4c76e66710 >> 391 Call-Info: <cid:12155551000@example.com <mailto:12155551000@example.com>>;purpose=jcard; >> 392 call-reason="Rendezvous for Little Nellie" >> 393 CSeq: 314159 INVITE >> 394 Max-Forwards: 70 >> 395 Date: Fri, 25 Sep 2015 19:12:25 GMT >> 396 Contact: <sip:12155551000@gateway.example.com <mailto:12155551000@gateway.example.com>> >> 397 Content-Type: multipart/mixed; boundary=boundary1 >> 398 Content-Length: ... >> >> 400 --boundary1 >> >> 402 Content-Type: application/sdp >> >> 404 v=0 >> 405 o=UserA 2890844526 2890844526 IN IP4 pc33.atlanta.example.com >> 406 s=Session SDP >> 407 c=IN IP4 pc33.atlanta.example.com >> 408 t=0 0 >> 409 m=audio 49172 RTP/AVP 0 >> 410 a=rtpmap:0 PCMU/8000 >> >> 412 --boundary1 >> >> 414 Content-Type: application/json >> 415 Content-ID: <12155551000@example.com <mailto:12155551000@example.com>> >> >> 417 ["vcard",[["version",{},"text","4.0"],["fn",{},"text","Q Branch"], >> 418 ["org",{},"text","MI6;Q Branch Spy Gadgets"],["photo",{},"uri"," >> 419 https://example.com/photos/quartermaster-256x256.png" <https://example.com/photos/quartermaster-256x256.png">],["logo", >> 420 {},"uri","https://example.com/logos/mi6-256x256.jpg" <https://example.com/logos/mi6-256x256.jpg">],["logo",{}, >> 421 "uri","https://example.com/logos/mi6-64x64.jpg" <https://example.com/logos/mi6-64x64.jpg">]]] >> >> These examples are great, btw! >> >> Can user-agents and intermediaries cache jCards? Or is this information only for the context of this SIP session? Or is the usage of this information outside of SIP out-of-scope for this document? >> >> >> In general SIP does not use a caching mechanism as a real-time protocol that is generally call specific. But as you are likely imagining if there is a URI or URL with a jcard that describes a caller, certainly the referenced HTTP resource could be used in multiple calls and caching of the same URL for multiple calls could apply, however i think this document does not want to have any opinions on that. >> >> >> >> >> 875 10.5.1. "adr" Property >> >> 877 The "adr" property provides the delivery address of the object the >> 878 jCard represents. Reference: [RFC6350], Section 6.3.1. >> >> 880 Value type: A single structured text value separated by the SEMICOLON >> 881 character (U+003B). >> >> 883 Cardinality: * >> 884 Example: >> 885 ["adr", {"type":"work"}, "text", >> 886 ["", "", "3100 Massachusetts Avenue NW", "Washington", "DC", >> 887 "20008", "USA"] >> >> The 7th item in the 'adr' property is country name, not country code. In this example "USA" should be "United States of America". RFC 8605 does define a country code parameter for jCard, but it is the two-letter variety. >> >> Also, the 3rd item which is the street address may also be an array of strings. An example of such is useful as that is often not easy to distill from the vCard/jCard specs and can cause interoperability issues. >> >> >> Ok, here is my proposal to replace and add to lines 884-887, i’ll use “U.S.A.” to save a little room. >> >> Example: >> >> ["adr", {“type”:”work"}, "text", >> ["", "", "3100 Massachusetts Avenue NW", "Washington", “DC”, "20008", “U.S.A."] >> ] >> >> "adr" also allows a structured value element that itself has multiple values. In this case, the >> element of the array describing the structured value is itself an array with one element for each of the component's multiple values. The following example shows alternate values for the address string. >> >> Example: >> >> ["adr", {“type”:”work"}, "text", >> ["", "", ["3100 Massachusetts Avenue NW”,"Embassy of the United Kingdom"], "Washington", “DC”, "20008", “U.S.A."] >> ] >> >> >> >> >> 1229 The security framework of signing and providing integrity to this >> 1230 data [I-D.ietf-stir-passport-rcd] should be followed, and the use of >> 1231 constraints and other certificate-based associations should be >> 1232 considered. This includes considerations for information about the >> 1233 calling party, which is generally constant, versus per-call data, >> 1234 which is more transient. This also includes the relationship that >> 1235 certificates with constraints presents to how they relate to each >> 1236 other and how that information is managed, protected, and associated >> 1237 with the correct call corresponding to a calling party. >> >> Am I correct to assume passport-rcd is the mechanism to prevent spoofing and tampering of callinfo data? Is it possible to elaborate on the issues relevant to the calling-party versus per-call data (line 1233)? It is not clear to me what the differences might be. >> >> >> Agreed, this does need more context and clarity. How about this: >> >> The use of the Call-Info header for transporting Rich Call Data ('rcd') is intended primarily for providing verified information at the termination of a call, where a verification service has a trusted UNI relationship with the user agent. To ensure the integrity and authenticity of this data, the security framework established by STIR, including the use of the 'rcd'PASSporT as defined in [I-D.ietf-stir-passport-rcd], should be followed. This framework enables digital signatures to verify the issuer of assertions related to the calling party’s identity, distinguishing persistent identity attributes from transient, per-call details. Implementers should also consider certificate-based constraints to ensure proper binding between caller identity assertions and call-specific metadata while maintaining the integrity of the information throughout transmission. Since Call-Info serves as a means to convey verified caller information to the end user, mechanisms should be in place to validate the authenticity of the assertion, enforce appropriate certificate associations, and preserve the trustworthiness of Rich Call Data from origination to termination. >> >> >> >> 1291 [I-D.ietf-stir-passport-rcd] >> 1292 Wendt, C. and J. Peterson, "PASSporT Extension for Rich >> 1293 Call Data", Work in Progress, Internet-Draft, draft-ietf- >> 1294 stir-passport-rcd-26, 5 June 2023, >> 1295 <https://datatracker.ietf.org/doc/html/draft-ietf-stir- <https://datatracker.ietf.org/doc/html/draft-ietf-stir-> >> 1296 passport-rcd-26>. >> >> Ahem!... this normative dependency has been sitting in the RFC editors queue for almost 2 years. >> >> >> Robert’s previous email addressed this. >> >> >> Overall, this is a very well-written draft. Thanks for your patience. >> >> >> Thank you. >> >> >> >> -andy >> >> _______________________________________________ >> sipcore mailing list -- sipcore@ietf.org <mailto:sipcore@ietf.org> >> To unsubscribe send an email to sipcore-leave@ietf.org <mailto:sipcore-leave@ietf.org> >> >> > _______________________________________________ sipcore mailing list -- sipcore@ietf.org <mailto:sipcore@ietf.org> To unsubscribe send an email to sipcore-leave@ietf.org <mailto:sipcore-leave@ietf.org>
- [sipcore] regarding draft-ietf-sipcore-callinfo-r… Andrew Newton (andy)
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Robert Sparks
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Andrew Newton (andy)
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Chris Wendt
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Andrew Newton (andy)
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Chris Wendt
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Richard Shockey
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Andrew Newton (andy)
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Richard Shockey
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Chris Wendt
- [sipcore] Re: regarding draft-ietf-sipcore-callin… Chris Wendt