Virtualized Conversations D. G Petrie Internet-Draft SIPez LLC Intended status: Standards Track 7 September 2026 Expires: 11 March 2027 The JSON format for vCon - Conversation Data Container draft-ietf-vcon-vcon-core-04 Abstract vCon is a standardized framework for the exchange of conversational data. Conversations, which may involve one or more participants, occur across a wide variety of modes and application platforms. This document defines a JSON format for representing conversational data, encompassing metadata, conversation media, related documents, and analysis. The goal of this standard is to provide an abstracted, platform-independent data format for conversations, regardless of the mode or application platform. By doing so, it facilitates the integration and seamless exchange of conversational data across application platforms, enterprises, and trust boundaries. About This Document This note is to be removed before publishing as an RFC. The latest revision of this draft can be found at https://ietf-wg- vcon.github.io/draft-ietf-vcon-vcon-core/draft-ietf-vcon-vcon- core.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-vcon-vcon-core/. Discussion of this document takes place on the Virtualized Conversations Working Group mailing list (mailto:vcon@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/vcon/. Subscribe at https://www.ietf.org/mailman/listinfo/vcon/. Source for this draft and an issue tracker can be found at https://github.com/ietf-wg-vcon/draft-ietf-vcon-vcon-core. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Petrie Expires 11 March 2027 [Page 1] Internet-Draft JSON vCon September 2026 Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 11 March 2027. Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Purpose of vCon . . . . . . . . . . . . . . . . . . . . . 5 1.2. Extending the vCon Schema . . . . . . . . . . . . . . . . 5 1.3. Benefits of vCon . . . . . . . . . . . . . . . . . . . . 6 1.4. *Scope of the Document* . . . . . . . . . . . . . . . . . 6 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 6 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 2.2. JSON Notation . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Inline Files . . . . . . . . . . . . . . . . . . . . . . 9 2.3.1. body . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2. encoding . . . . . . . . . . . . . . . . . . . . . . 10 2.4. Externally Referenced Files . . . . . . . . . . . . . . . 10 2.4.1. url . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.2. content_hash . . . . . . . . . . . . . . . . . . . . 11 2.5. Extending vCon . . . . . . . . . . . . . . . . . . . . . 11 3. vCon JSON Object . . . . . . . . . . . . . . . . . . . . . . 13 4. Unsigned Form of vCon Object . . . . . . . . . . . . . . . . 14 4.1. vCon JSON Object Keys and Values . . . . . . . . . . . . 14 4.1.1. vcon . . . . . . . . . . . . . . . . . . . . . . . . 14 4.1.2. uuid . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.3. extensions . . . . . . . . . . . . . . . . . . . . . 15 4.1.4. critical . . . . . . . . . . . . . . . . . . . . . . 15 4.1.5. created_at . . . . . . . . . . . . . . . . . . . . . 16 4.1.6. updated_at . . . . . . . . . . . . . . . . . . . . . 16 4.1.7. subject . . . . . . . . . . . . . . . . . . . . . . . 16 Petrie Expires 11 March 2027 [Page 2] Internet-Draft JSON vCon September 2026 4.1.8. redacted . . . . . . . . . . . . . . . . . . . . . . 16 4.1.9. amended . . . . . . . . . . . . . . . . . . . . . . . 19 4.1.10. parties Objects Array . . . . . . . . . . . . . . . . 20 4.1.11. dialog Objects Array . . . . . . . . . . . . . . . . 21 4.1.12. analysis Objects Array . . . . . . . . . . . . . . . 21 4.1.13. attachments Objects Array . . . . . . . . . . . . . . 21 4.2. Party Object . . . . . . . . . . . . . . . . . . . . . . 21 4.2.1. tel . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.2. sip . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.3. stir . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.4. mailto . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.5. name . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.6. did . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2.7. validation . . . . . . . . . . . . . . . . . . . . . 23 4.2.8. gmlpos . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.9. civicaddress . . . . . . . . . . . . . . . . . . . . 24 4.2.10. uuid . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.11. type . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.12. org . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.13. dept . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3. Dialog Object . . . . . . . . . . . . . . . . . . . . . . 26 4.3.1. type . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3.2. start . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.3. duration . . . . . . . . . . . . . . . . . . . . . . 31 4.3.4. parties . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.5. originator . . . . . . . . . . . . . . . . . . . . . 33 4.3.6. recordings . . . . . . . . . . . . . . . . . . . . . 33 4.3.7. recording_set . . . . . . . . . . . . . . . . . . . . 34 4.3.8. mediatype . . . . . . . . . . . . . . . . . . . . . . 34 4.3.9. filename . . . . . . . . . . . . . . . . . . . . . . 35 4.3.10. Dialog Content . . . . . . . . . . . . . . . . . . . 35 4.3.11. disposition . . . . . . . . . . . . . . . . . . . . . 35 4.3.12. session_id . . . . . . . . . . . . . . . . . . . . . 36 4.3.13. party_history Objects Array . . . . . . . . . . . . . 37 4.3.14. Dialog Transfer . . . . . . . . . . . . . . . . . . . 38 4.3.15. application . . . . . . . . . . . . . . . . . . . . . 40 4.3.16. message_id . . . . . . . . . . . . . . . . . . . . . 40 4.4. Attachment Object . . . . . . . . . . . . . . . . . . . . 41 4.4.1. purpose . . . . . . . . . . . . . . . . . . . . . . . 41 4.4.2. start . . . . . . . . . . . . . . . . . . . . . . . . 41 4.4.3. party . . . . . . . . . . . . . . . . . . . . . . . . 41 4.4.4. dialog . . . . . . . . . . . . . . . . . . . . . . . 42 4.4.5. mediatype . . . . . . . . . . . . . . . . . . . . . . 42 4.4.6. filename . . . . . . . . . . . . . . . . . . . . . . 42 4.4.7. Attachment Content . . . . . . . . . . . . . . . . . 42 4.5. Analysis Object . . . . . . . . . . . . . . . . . . . . . 43 4.5.1. type . . . . . . . . . . . . . . . . . . . . . . . . 43 4.5.2. dialog . . . . . . . . . . . . . . . . . . . . . . . 43 Petrie Expires 11 March 2027 [Page 3] Internet-Draft JSON vCon September 2026 4.5.3. attachment . . . . . . . . . . . . . . . . . . . . . 44 4.5.4. mediatype . . . . . . . . . . . . . . . . . . . . . . 44 4.5.5. filename . . . . . . . . . . . . . . . . . . . . . . 44 4.5.6. vendor . . . . . . . . . . . . . . . . . . . . . . . 45 4.5.7. product . . . . . . . . . . . . . . . . . . . . . . . 45 4.5.8. schema . . . . . . . . . . . . . . . . . . . . . . . 45 4.5.9. Analysis Content . . . . . . . . . . . . . . . . . . 45 5. Security Considerations . . . . . . . . . . . . . . . . . . . 46 5.1. Signing Externally Referenced Files . . . . . . . . . . . 48 5.2. Signed Form of vCon Object . . . . . . . . . . . . . . . 48 5.2.1. Signature Object . . . . . . . . . . . . . . . . . . 49 5.2.2. Header Object . . . . . . . . . . . . . . . . . . . . 49 5.2.3. Long Term Archiving of Signed vCons . . . . . . . . . 50 5.3. Encrypted Form of vCon Object . . . . . . . . . . . . . . 51 5.3.1. Unprotected Object . . . . . . . . . . . . . . . . . 51 5.3.2. Recipient Object . . . . . . . . . . . . . . . . . . 52 5.3.3. Header Object . . . . . . . . . . . . . . . . . . . . 52 5.4. Differentiation of vCon forms . . . . . . . . . . . . . . 52 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 6.1. JSON Format vCon Mediatype . . . . . . . . . . . . . . . 53 6.2. gzip Format vCon Mediatype . . . . . . . . . . . . . . . 54 6.3. vCon JSON Registry . . . . . . . . . . . . . . . . . . . 55 6.3.1. Object Registry Template . . . . . . . . . . . . . . 55 6.3.2. vCon Object Parameter Names Registry . . . . . . . . 56 6.3.3. Party Object Parameter Names Registry . . . . . . . . 57 6.3.4. Dialog Object Parameter Names Registry . . . . . . . 59 6.3.5. party_history Object Parameter Names Registry . . . . 62 6.3.6. Attachment Object Parameter Names Registry . . . . . 64 6.3.7. Analysis Object Parameter Names Registry . . . . . . 65 6.3.8. Redacted Object Parameter Names Registry . . . . . . 67 6.3.9. Amended Object Parameter Names Registry . . . . . . . 67 6.4. vCon Extensions Names Registry . . . . . . . . . . . . . 68 6.4.1. Extensions Registration Template . . . . . . . . . . 68 6.5. JSON Web Signature and Encryption Header Parameters . . . 68 7. Non-Upward Compatible Changes to the vCon Container . . . . . 69 7.1. Version 0.3.0 to 0.4.0 . . . . . . . . . . . . . . . . . 69 7.2. Version 0.0.2 to 0.3.0 . . . . . . . . . . . . . . . . . 69 7.3. Version 0.0.1 to 0.0.2 . . . . . . . . . . . . . . . . . 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 69 8.1. Normative References . . . . . . . . . . . . . . . . . . 69 8.2. Informative References . . . . . . . . . . . . . . . . . 71 Appendix A. Example vCons . . . . . . . . . . . . . . . . . . . 73 A.1. Two Party Call vCon With Inline Recording . . . . . . . . 73 A.2. Email Thread Multipart vCon . . . . . . . . . . . . . . . 78 A.3. Email Thread Text vCon . . . . . . . . . . . . . . . . . 80 A.4. Two Party Call vCon With Externally Referenced Recording . . . . . . . . . . . . . . . . . . . . . . . . 82 A.5. Two Party Call vCon with Analysis . . . . . . . . . . . . 83 Petrie Expires 11 March 2027 [Page 4] Internet-Draft JSON vCon September 2026 A.6. Signed vCon . . . . . . . . . . . . . . . . . . . . . . . 103 A.7. Encrypted vCon . . . . . . . . . . . . . . . . . . . . . 108 A.8. Redacted vCon . . . . . . . . . . . . . . . . . . . . . . 115 A.9. Amended Signed vCon . . . . . . . . . . . . . . . . . . . 118 Appendix B. vCon JSON Schema . . . . . . . . . . . . . . . . . . 121 Appendix C. vCon CDDL . . . . . . . . . . . . . . . . . . . . . 150 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 159 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 159 1. Introduction This document specifies the *vCon* (Conversational Data Exchange) standard, which defines a unified format for representing and exchanging conversational data across different communication platforms and modalities. The goal of *vCon* is to provide a standardized, platform-agnostic structure for capturing and sharing conversational information, allowing for seamless integration between systems, enterprises, and trust boundaries. 1.1. Purpose of vCon The *vCon* standard enables the abstraction of conversation data, making it easier to integrate communication platforms with external services, including post-conversation analysis tools, customer support systems, and business intelligence platforms. By defining a consistent data format, *vCon* ensures interoperability across various platforms, regardless of the communication mode - whether text, audio, video, or other formats. The *vCon* format captures the essential components of a conversation, including metadata, media content, related documents, and post-conversation analysis. This abstraction simplifies data exchange, enables AI-driven analysis, and supports model training and testing. 1.2. Extending the vCon Schema In addition to the core *vCon* schema, this document provides a framework for extending the *vCon* format to support specialized use cases. The *vCon* schema can be customized to address the needs of specific industries or applications, such as: * *Contact Centers*: Adding specific metadata related to customer service interactions, case management, and priority tracking. * *Messaging Platforms*: Supporting the integration of different message formats, including SMS, email, and chat, group concepts, along with platform-specific information. Petrie Expires 11 March 2027 [Page 5] Internet-Draft JSON vCon September 2026 * *ECRIT (Emergency Communication) Centers*: Extending the schema to capture critical data such as location, urgency, and incident details for emergency communications. The ability to add extensions ensure that *vCon* remains flexible and adaptable, enabling its use in a wide range of domains while maintaining a consistent format for data exchange. 1.3. Benefits of vCon The *vCon* standard offers several key benefits: * *Interoperability*: A consistent data format for conversational data facilitates integration across diverse platforms and systems. * *AI-Driven Analysis*: By capturing data in a structured format, *vCon* enables the application of AI analysis such as sentiment analysis, categorization, transcription, and decision-making. * *Data Automation*: The *vCon* format simplifies the automation of processes involving conversational data, improving efficiency and reducing the risk of errors. * *Enterprise Integration*: The ability to integrate conversation data with third-party tools and services enhances the value of conversations by providing deeper insights and driving business decisions. 1.4. *Scope of the Document* This document defines the core structure and schema for *vCon* as a JSON format. Detailed specifications for the various parameters and the extension framework will be provided in subsequent sections. The primary focus is on creating a flexible, extensible standard for the exchange of conversational data that can be easily adopted across industries, use cases, and communication technologies. 2. Conventions and Definitions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. Petrie Expires 11 March 2027 [Page 6] Internet-Draft JSON vCon September 2026 2.1. Terminology * analysis - analysis, transformations, summary, sentiment, or translation typically of the dialog data * conversation - an exchange of communication using text, audio or video medium between at least one human and one or more bots or humans * de-identification - removal of all information that could identify a party in a conversation. This includes PII as well as audio and video recordings. Voice recordings might be re-vocalized with a different speaker. * dialog - the captured conversation in its original form (e.g. text, audio or video) * encrypted form - encrypted JWE document with the JWS signed vCon form contained in the ciphertext * file - a data block either included or referenced in a vCon * object - JSON object containing key and value pairs * parameter - JSON key and value pair * party - an observer or participant to the conversation, either passive or active * payload - the contents or bytes that make up a file * PII - Personal Identifiable Information * PII masked - may include voice recordings, but PII is removed from transcripts and recordings (audio and video). * vCon - container for conversational information * vCon instance - a vCon populated with data for a specific conversation * vCon instance version - a single version of an instance of a conversation, which may be modified to redact or amend additional information forming a subsequent vCon instance version * vCon syntax version - the version for the data syntax used for form a vCon Petrie Expires 11 March 2027 [Page 7] Internet-Draft JSON vCon September 2026 * signed form - JWS signed document with the unsigned vCon form contained in the payload 2.2. JSON Notation For the ease of documentation, the convention for [JSON] notation used in this document is copied from sections 1.1-1.5 of [JMAP]. * Date - A string that MUST have the form of an [RFC3339] date string as defined for the Date type in section 1.4 of [JMAP]. * "*" - The type is undefined; the value can be any JSON type, although permitted values may be constrained by the context of the value, as defined in section 1.1 of [JMAP]. * "String" - a JSON string type. * "UnsignedInt" - a positive JSON integer as defined in section 1.3 of [JMAP]. * "UnsignedFloat" - a positive JSON floating point number containing a decimal point as defined in section 6 of [JSON]. * "Mediatype" - A "String" value that MUST be of the following form as defined in section 5.1 of [MIME]: type "/" subtype Petrie Expires 11 March 2027 [Page 8] Internet-Draft JSON vCon September 2026 * "ContentHash" - The string token value is generated using the same approach used in section 6 of [STIR-PASS]. The relevant text is copied here for convenience and to remove the normative dependency. The hash string token values are formed from combining a string that defines the crypto algorithm used to generate the digest along with the Base64Url Encoded value of the SHA-512 hash, as defined in section 6.3 and 6.4 [SHA-512], of the body of the content at the given url. The hash algorithm is identified by "sha512". SHA-512 is part of the SHA-2 set of cryptographic hash functions [SHA-512] defined by the US National Institute of Standards and Technology (NIST). Implementations MAY support additional recommended hash algorithms in [IANA-COSE-ALG]; that is, the hash algorithm has "Yes" in the "Recommended" column of the IANA registry. Hash algorithm identifiers MUST use only lowercase letters, and they MUST NOT contain hyphen characters. The character following the algorithm string MUST be a hyphen character, "-", or ASCII 45. The subsequent characters are the Base64Url encoded (see Section 2 [JWS]) digest of a canonicalized and concatenated string or binary data based on the JSON pointer referenced elements of "rcd" claim or the URI referenced content contained in the claim. * "SessionId" - An object with the String parameters: "local" and "remote". The String values of these parameters are UUIDs as defined in section 5 of [SESSION-ID] as "local-uuid" and "remote- uuid". This is designed to also work with the H.323 correlated [H-460-27] which refers to them as "Sender-UUID" and "Recipient- UUID". { "local": String, "remote": String } * "A[]" and array of values of type A. All parameters are assumed to be mandatory unless otherwise noted. Objects or arrays with no or null values MAY be excluded from the vCon. 2.3. Inline Files Objects that contain a file or data inline (i.e. within the vCon) MUST have the parameters: body and encoding. JSON does not support binary data values. For this reason inline files MUST be Base64url (see Section 2 [JWS]) encoded to be included as a valid JSON string value if they are not already valid JSON strings. Petrie Expires 11 March 2027 [Page 9] Internet-Draft JSON vCon September 2026 2.3.1. body The body parameter contains the payload of the file to be included inline. Depending upon the data in the file, it may require encoding to be represented as a valid JSON value. * body: "*" 2.3.2. encoding The encoding parameter describes the type of encoding, if any, that was performed to represent the file payload as the value of the body parameter. If the body parameter is provided and is not an empty string, the encoding parameter MUST be provided. In the interest of being tolerant for interoperability, if the encoding value is not provided, applications can attempt to derive the encoding token value based upon the mediatype parameter or filename extension if either is provided. * encoding: "String" This MUST be one of the following strings: * "base64url": The payload of the file has been Base64Url encoded and provided as the string value of the body parameter. * "json": The value of the body parameter is a JSON value (object, array, number, string, or one of the literals true, false, or null) as defined in [JSON]. * "none": The payload of the file is a valid JSON string and can be included without modification as the string value to the body parameter. 2.4. Externally Referenced Files Files and data stored externally from the vCon MUST be "signed" to ensure that they have not been modified. Objects that refer to a file which is externally stored from the vCon MUST have the parameters: url, content_hash. These parameters are defined in the following subsections. The values and format of the hashes are defined in Section 2.2 type: ContentHash. The use of [SHA-512] hash for ensuring that the externally referenced data or file has not been modified, is defined in this document. Other methods of ensuring integrity may be added in the future. Petrie Expires 11 March 2027 [Page 10] Internet-Draft JSON vCon September 2026 2.4.1. url The url value contains the [HTTPS] URL where the externally referenced file is stored. HTTPS MUST be used for retrieval to protect the privacy of the contents of the file. * url: "String" 2.4.2. content_hash The integrity of externally referenced files are protected using a hash of the external content. The algorithm and hash value are contained in the content_hash parameter. The value of the content_hash can be a single token or an array of tokens if multiple hash algorithms are desired to be provided. The SHA-512 [SHA-512] algorithm MUST be supported. Other algorithms MAY be included. The algorithm used for signing the externally referenced file is defined in section 6.3 and 6.4 of [SHA-512]. * content_hash: "ContentHash" | "ContentHash[]" 2.5. Extending vCon vCon provides a means to extend the schema defined in this document. A vCon extension can define new parameters at any level of the schema. It can also redefine the semantics of or deprecate existing parameters. A vCon extension is defined in its own document. In addition to the standard sections of an Internet-Draft, a vCon extension document MUST also contain the following sections. * *Extension Name*: State the registered extensions token name for the extension. State whether and under what conditions the name appears in the extensions (Section 4.1.3) parameter, the critical (Section 4.1.4) parameter, or both. This is the name registered in the vCon Extensions Names Registry (Section 6.4) and the name against which implementations determine whether they support the extension. * *Parameter Definitions*: Define each new parameter, the level of the schema at which it appears, its value type, and its semantics. For any existing parameter whose meaning or permitted values are redefined, state the new semantics and values. For any deprecated parameter, state what is to be used in its stead and the migration approach. Use the snake case naming convention for all parameter names, as opposed to camel case. Register each new parameter in the appropriate Object registry with IANA. Petrie Expires 11 March 2027 [Page 11] Internet-Draft JSON vCon September 2026 * *Compatibility Considerations*: Describe how the extension behaves in the presence of implementations that do not support it. Identify the parameters and semantics the extension introduces or changes, and explain for each why an implementation that does not recognize the extension can continue to process the vCon correctly by ignoring the additions, or state the conditions under which that holds. An extension that is *Compatible* under all conditions states so explicitly and justifies that claim. * *Incompatibility Considerations*: Demonstrate either that the extension introduces no incompatibilities, or enumerate each incompatibility that it does introduce. For each incompatibility, state the processing that is affected, for example redaction versus transcription, whether the extension name is therefore required in the critical (Section 4.1.4) parameter, and the behavior required of implementations that do not support the extension. An extension that claims to be *Compatible* uses this section to show why no incompatibility exists. * *Privacy and Integrity Considerations*: Describe how the extension's parameters interact with redaction and de- identification, including whether any of them can carry party- identifying data or PII and how a redactor is expected to handle them. State whether the extension introduces any new external content references, and if so, the integrity mechanism that protects them, such as Section 2.4.2. Extensions to the vCon schema can be classified into two categories: * *Compatible*: These extensions introduce additional data or fields without altering the meaning or structure of existing elements. Implementations that do not recognize these extensions can safely ignore them while maintaining valid processing of the vCon. * *Incompatible*: These extensions modify existing semantics or schema definitions in ways that render a vCon incompatible with implementations that do not support the extension. Interpreting such a vCon correctly requires explicit awareness of the extension. Petrie Expires 11 March 2027 [Page 12] Internet-Draft JSON vCon September 2026 Wherever feasible, extensions *SHOULD* be designed as *Compatible* to preserve compatibility with existing implementations. The question of Compatible vs Incompatible is a little subjective. A transcriber for vCon can be fairly tolerant of changes adding new parameters or objects to a vCon. On the other hand, a redactor must be aware of the implications of all parameters in the vCon to be sure to redact all of the objective information. In these cases a transcriber will likely only need to look at the critical extensions. However the redactor perhaps should reject vCons with any extension that it does not support. However, when disruptive extensions are necessary, the names of all such extensions *MUST* be listed in the critical (Section 4.1.4) parameter of the vCon. This allows implementations to determine whether they are capable of processing the vCon safely and accurately. Implementations that encounter a vCon containing a disruptive extension listed in the critical parameter, but do not support that extension, *MUST NOT* process the vCon except to reject it or notify the user. 3. vCon JSON Object The JSON form of a vCon is contained in a JSON object in one of three forms: * unsigned * signed * encrypted The unsigned form of the vCon has a single top level object. This top level vCon object is also contained as described in the signed (Section 5.2) and encrypted (Section 5.3) forms of the vCon. The selection of the JSON format enables interchange between application and lower layers of the network stack, critical for enablement of analysis of conversations. The signed form of vCon is defined in Section 5.2 using [JWS] to provide integrity and proof of the conversation data. The encrypted form of vCon is defined in Section 5.3 using [JWE] to provide complete privacy of the conversational data. Partial privacy or data minimization can be provide for a vCon using the Section 4.1.8 construct. Petrie Expires 11 March 2027 [Page 13] Internet-Draft JSON vCon September 2026 4. Unsigned Form of vCon Object The unsigned form of the top level vCon object is necessary as in many cases, a vCon will be partially constructed and in process as conversation data is collected. This may change while the conversation is in progress or on-going. The vCon may start with only meta data and party information, then progress to contain dialog information. It may then get analysis added or it could be passed to another security domain for analysis. A vCon in the unsigned form SHOULD contain at least one of the parties, dialog, analysis or attachments parameters. A vCon may be constructed across several security domains. When a vCon is to be exported from one security domain to another, it SHOULD be signed or encrypted by the domain that constructed it. The subsequent domain may have need to redact or amend data to the vCon. Alternatively the originating domain may want to redact the vCon before providing it to an other domain. The second or subsequent domain, MAY modify the prior vCon instance version and when complete or exporting to another security domain, it SHOULD sign or encrypt the new vCon instance version. The new vCon instance version SHOULD refer to the prior vCon instance version via the redacted (Section 4.1.8) or amended (Section 4.1.9) parameters. 4.1. vCon JSON Object Keys and Values The keys and values for the top level vCon JSON object are defined in the following subsections. 4.1.1. vcon The "vcon" parameter is DEPRECATED as of the publication of this document as an RFC. The "vcon" parameter was used to differentiate schema changes to the vCon core container when incompatibilities were created in Internet-Draft versions. The extension mechanism replaces the need for schema versioning. The vcon parameter was used to contain the syntactic version of the JSON format used in the vCon. (see Non-Upward Compatible Changes to the vCon Container (Section 7)) * vcon: "String" For syntax defined in this document, the string MUST have the value: "0.4.0" Petrie Expires 11 March 2027 [Page 14] Internet-Draft JSON vCon September 2026 4.1.2. uuid The [UUID] for the vCon is used to refer to it when privacy or security may not allow for inclusion or URL reference to a vCon. The UUID value MUST be globally unique. All vCon documents MUST have the uuid parameter and value set. * uuid: "String" The value of the string SHOULD be generated using the version 8 UUID defined in [UUID] which is generated identically to a version 7 UUID with the exception that: * rand_b/custom_c is generated from the high 62 bits of the SHA-1 hash of the FQHN string * the variant and version fields are set as described for version 8 UUID The DNS name string used in generating the uuid value SHOULD be the same FQHN, or a subdomain to allow for more distributed generation of UUIDs, as would used in the signing certificate as they are the same domains of uniqueness. 4.1.3. extensions The vCon schema can be extended through the definition of new extensions. The extensions parameter SHOULD contain the list of names of all vCon extensions for any parameters used that are not defined in this core vCon schema document. * extensions: "String[]" 4.1.4. critical Implementations that include extensions which are incompatible with the core vCon schema MUST list the names of those extensions in the critical parameter. A vCon that includes a critical parameter indicates that correct interpretation of the vCon requires explicit support for the listed extensions. An implementation that does not recognize or support the extensions listed in the critical parameter MUST NOT attempt to process or operate on the vCon, except to reject it or report unsupported content. * critical: "String[]" Petrie Expires 11 March 2027 [Page 15] Internet-Draft JSON vCon September 2026 4.1.5. created_at The created_at parameter provides the creation time of this vcon, which MUST be present, and should not change once the vcon object is created. * created_at: "Date" 4.1.6. updated_at The updated_at parameter provides the last modified time of this vcon, which MAY be present. For unsigned forms, the updated_at of the vcon object SHOULD be updated as it is modified. For signed forms of the vCon object, the updated_at contains the time when this vcon was last signed. Future updates MUST first set the updated_at to the new signing time as the vcon object is signed again. * updated_at: "Date" 4.1.7. subject The subject or the topic of the conversation is provided in the subject parameter. This parameter is optional as not all conversations have a defined subject. Email threads and prescheduled calls and video conferences typically have a subject which can be captured here. The subject may also be derived from analysis of the dialog. * subject: "String" (optional) The string value of the subject parameter is a free formed JSON string with no constrained syntax. 4.1.8. redacted A redacted vCon SHOULD provide a reference to the unredacted or prior, less redacted, vCon instance version of itself. The purpose of the Redacted Object (Section 4.1.8.1) is to provide the reference to the unredacted or less redacted version of the vCon from which this vCon was derived. For privacy reasons, it may be necessary to redact a vCon to construct another vCon without the PII. This allows the non-PII portion of the vCon to still be analyzed or used in a broader scope. The Redacted Object (Section 4.1.8.1) SHOULD contain the uuid parameter and MAY include the url, content_hash parameters (see Externally Referenced Files (Section 2.4)). If a reference to the unredacted vCon is provided in the url parameter, the access to that URL MUST be restricted to only those who should be allowed to see the identity or PII for the redacted vCon. Petrie Expires 11 March 2027 [Page 16] Internet-Draft JSON vCon September 2026 The method(s) for redaction of text, audio and video can be done with existing post processing of media. The method of redaction is out of scope of this document. The assurance of the accuracy of the redaction is made by the entity that creates the redaction which SHOULD sign the redacted version of the vCon. All data and parameters in the prior, less redacted, vCon instance version are either: * Removed entirely in the redacted version * Copied and partially redacted * Copied as is Data which is to be completely removed from the redacted version, that is contained in a JSON array in the unredacted vCon, SHOULD create an empty placeholder such that object array indices do not change for the rest of the elements of the array. * redacted: "Redacted" (optional, mutually exclusive with amended parameter) 4.1.8.1. Redacted Object A Redacted Object contains the following parameters: * uuid: "String" The value contains the uuid string value (Section 4.1.2) of the unredacted/prior vCon instance version. The absence of a value for uuid indicates that the less redacted version of this vCon is not available or does not exist. * type: "String" The value of the redacted type parameter is used to indicate the type of redaction that was performed on this vCon relative to the less redacted version referenced by the redacted uuid parameter. This should indicate the type of information that was redacted. The the location of the referenced vCon MAY be provided as defined in Externally Referenced Files (Section 2.4) by including url and content_hash. content_hash MUST be included if url is provided. * url: "String" * content_hash: "ContentHash" | "ContentHash[]" Petrie Expires 11 March 2027 [Page 17] Internet-Draft JSON vCon September 2026 The following diagram illustrates an example partial JSON object tree for a redacted vCon. The top level object is a JWS signed vCon which contains a vCon in the unsigned form in the payload parameter. The second level object is the redacted vcon which refers to the encrypted unredacted vCon in it's redacted parameter. Note that the redacted vCon references the JWE encrypted vCon by UUID and may reference it by URL. The JWE encrypted unredacted vCon contains the signed version of the unredacted vCon in the ciphertext parameter. The signed unredacted vCon contains the unredacted vCon in the unsigned form in it's payload parameter. -------------- Signed | JWS uuid-|-- redacted vCon uuid in header redacted vCon: | | | payload-|-- unsigned redacted vCon in -------------- / payload parameter / ------------- / vCon which |vCon |<--- has been | | redacted: | redacted-|-- Redacted Object ------------- / refers to JWE / encrypted unredacted vCon / / / / / --------------- signed unredacted vCon ->| JWE uuid-|-- uuid in unprotected Encrypted signed | | unredacted vCon: | cyphertext-|--- JWS signed --------------- / unredacted vCon / in cyphertext /-------------------/ parameter / / ------------- Signed -> |JWS uuid-|-- unredacted vCon uuid in header unredacted vcon: | | | payload-|-- unsigned unredacted vCon ------------- \ in payload \ ---------- -->| vCon | Unsigned unredacted vCon: | | ---------- Figure 1: redacted vCon object tree Petrie Expires 11 March 2027 [Page 18] Internet-Draft JSON vCon September 2026 4.1.9. amended A signed or encrypted vCon cannot be modified without invalidating it. In these cases, to allow for adding of additional information a new vCon instance version MUST be created. The prior vCon instance version is referenced by the Amended Object (Section 4.1.9.1). The vCon with amended data contains all of the data that is in the referenced vCon with the exception of data that is amended. That is to say that the newer version of the vCon is a deep copy of the prior version with the amended and additional data added to it. The prior vCon instance version SHOULD be referenced via the uuid of the prior vCon instance version, and MAY include the url and content_hash parameters (see Externally Referenced Files (Section 2.4)). * amended: "Amended" (optional, mutually exclusive with redacted parameter) 4.1.9.1. Amended Object The Amended Object contains the following parameters: * uuid: "String" (optional if external reference provided) The value contains the uuid string value (Section 4.1.2) of the unredacted/original vCon instance version. The location of the referenced vCon MAY be provided, as defined in Externally Referenced Files (Section 2.4) by including url and content_hash. content_hash MUST be provided if url is provided. * url: "String" * content_hash: "ContentHash" | "ContentHash[]" The following figure illustrates an example partial JSON object tree for an amended vCon. The top level object is the JWS signed amended vCon which contains the unsigned form of the vCon in it's payload parameter. The second level object is the amended vCon with additional conversational data (e.g. analysis data). It refers to its original parent (or prior vCon instance version) of the vCon in its amended parameter. Note: the amended parameter may refer to the prior version of the vCon via URL. The amended vCon in this figure refers to the JWS signed version of the vCon, which in turn contains the original vCon in unsigned form in its payload parameter. Petrie Expires 11 March 2027 [Page 19] Internet-Draft JSON vCon September 2026 -------------- Signed | JWS uuid-|-- amended vCon uuid in header amended vCon: | | | payload-|-- payload parameter -------------- / contains unsigned / amended vCon ------------- / vCon with |vCon |<--- amended | | data: | amended-|--- amended parameter | analysis-| / refers to JWS ------------- / signed original vCon / along with additional / conversational data / (e.g. analysis) / / / ------------ ->| JWS uuid-|-- original vCon uuid in header signed | | original vCon: | payload-|--- payload parameter ------------ / contains unsigned / original vCon ------------- / Original vCon: |vCon |<-- | | | parties | | dialog | ------------- Figure 2: amended vCon object tree 4.1.10. parties Objects Array The name, identity or contact information of all of the parties involved with the conversation are included in the parties object array. Whether the parties were observers, passive or active participants in the conversation, they each are included as a Party Object in the parties array. * parties: "Party[]" (optional) The value of the parties parameter is an array of Party Objects (Section 4.2). Petrie Expires 11 March 2027 [Page 20] Internet-Draft JSON vCon September 2026 4.1.11. dialog Objects Array The actual conversation which occurred over text, audio or video that was captured, is contained in the dialog Objects Array. * dialog: "Dialog[]" (optional) The value of the dialog parameter is an array of Dialog Objects (Section 4.3). It should be noted that the Dialog Objects may not be sorted in chronological order. They are in the order that they were added. It is the applications responsibility to sort dialog and transcriptions if they are needed in chronological order. 4.1.12. analysis Objects Array Analysis, which is performed on the conversational data, is stored in the analysis Objects array. * analysis: "Analysis[]" (optional) The value of the analysis parameter is an array of Analysis Objects (Section 4.5). 4.1.13. attachments Objects Array Ancillary documents, discussed, presented, referenced or related to the conversation may be stored in the attachments array. It should be noted that the Attachment Objects may not be sorted in chronological order. They are in the order that they were added. * attachments: "Attachment[]" (optional) The value of the attachments parameter is an array of Attachment Objects (Section 4.4). 4.2. Party Object A Party Object contains information about a specific party or participant in the conversation. The information that is available about the party varies with the context, the communication mode and platform. There are times when no information is available for a party either initially or over the entire life of the vCon. In such situations, it is possible to have a Party Object with no parameters in it. A Party Object SHOULD be created for each participant. This may result in more than one empty Party Object. They are distinct by the order or index in the Party Object array. Petrie Expires 11 March 2027 [Page 21] Internet-Draft JSON vCon September 2026 4.2.1. tel If the tel URL for the party is known, it can be included in the tel parameter. * tel: "String" (optional) The value of the tel parameter SHOULD be a valid [TEL] URL. The URL scheme prefix (i.e. "tel:") is optional. 4.2.2. sip The [SIP] URL for the party can be provided in the sip parameter. * sip: "String" (optional) The value of the sip parameter is the addr-spec as defined in section 25.1 of [SIP]. 4.2.3. stir If the STIR [PASSporT] was provided to identify the party, the PASSporT can be included in the stir parameter for the party. * stir: "String" (optional) The string value of the stir parameter contains the [PASSporT] in the JWS Compact Serialization form. 4.2.4. mailto If the mailto URL is known for the party, it can be included in the mailto parameter. * mailto: "String" (optional) The value of the mailto parameter is a string containing an email address for the party. It MAY be provided in any common form, such as a bare address or a [MAILTO] URL; when a [MAILTO] URL is used, the "mailto:" scheme prefix is optional. 4.2.5. name If the party's name is known, it can be included in the name parameter. * name: "String" (optional) Petrie Expires 11 March 2027 [Page 22] Internet-Draft JSON vCon September 2026 The string value of the name parameter is a free form JSON string in which part or all of the party's name can be included. It may be necessary, for privacy reasons, to not identify any information about the party. This MAY be indicated by creating a Party Object with only the name parameter and setting its value to "anonymous". A Party Object SHOULD be create for each anonymous party in the conversation. This is necessary to capture the number of parties and distinction between which party contributed what data or dialog in the conversation. Hence it is possible to have multiple anonymous Party Objects in the vCon. They are distinct by the order or index in the Party Object array. 4.2.6. did If a Decentralized Identifier [DID] is known for the party, it can be included in the did parameter. * did: "String" (optional) The value of the did parameter MUST be a valid DID URI that enables verifiable, decentralized digital identity for the party. DIDs are designed to be decoupled from centralized registries and identity providers, allowing the controller of the DID to prove control without requiring permission from other parties. The DID can refer to any subject (person, organization, thing, etc.) as determined by the controller of the DID. 4.2.7. validation Proof of authorization of the communication channel through STIR, login or possession of a device, is often not sufficient proof of the identity of the person at the other end of the communications channel. It is common in call centers to validate the identity of the person on the communication channel through verification of some sort of personal identification information. The methods used, often varies with the situation and is business practices specific. The purpose of the validation parameter, is to allow the validator to save a label or token which identifies the method of identity validation used to identify the person at the other end of the communication channel. For confidentially reasons, it SHOULD NOT contain the data used to validate the name. However it MAY name the data used to validate the name (e.g. "SSN", "DOB", "user ID and password"). It is up to the domain creating the vCon to define the set of tokens or values to be used for the validation parameter. * validation: "String" (SHOULD be provided if name parameter is provided) Petrie Expires 11 March 2027 [Page 23] Internet-Draft JSON vCon September 2026 The value of the validation string MAY be "none" or enterprise or domain defined token or string values. 4.2.8. gmlpos If the geolocation of the party is known, it can be added in the gmlpos parameter. The gmlpos parameter contains the latitude and longitude of the location of the party at the time of the conversation start. * gmlpos: "String" (optional) The gmlpos parameter value contains a string of the same format as the gml:pos element defined in section 3.2 of the [PIDF-LO] PIDF. 4.2.9. civicaddress The the civicaddress parameter value contains a Civicaddress Object which is optional and contains civic address information about the location for the party. * civicaddress: "Civicaddress" (optional) The Civicaddress Object MAY contain any or all of the following parameters: country, a1, a2, a3, a4, a5, a6, prd, pod, sts, hno, hns, lmk, loc, flr, nam, pc as defined in section 2.2.1 of [GEOPRIV]. The values of all of these parameters are of type String. Note that the parameter names MUST be in lower case when contained in the Civicaddress Object even though they are in upper case in [GEOPRIV]. * country: "String" (optional) * a1: "String" (optional) * a2: "String" (optional) * a3: "String" (optional) * a4: "String" (optional) * a5: "String" (optional) * a6: "String" (optional) * prd: "String" (optional) * pod: "String" (optional) Petrie Expires 11 March 2027 [Page 24] Internet-Draft JSON vCon September 2026 * sts: "String" (optional) * hno: "String" (optional) * hns: "String" (optional) * lmk: "String" (optional) * loc: "String" (optional) * flr: "String" (optional) * nam: "String" (optional) * pc: "String" (optional) 4.2.10. uuid The uuid is a unique identifier for the participant. In a contact center, this is particularly important for the call agent participant, and must be static across interactions to allow correlation with the actual agent configuration provisioned into the systems. The value of the uuid parameter is a free form unique identifier string for the participant. The value is not constrained to the syntax defined in [UUID]. Operators often have existing methods of generating unique participant identifiers and MAY use any unique string value. * uuid: "String" (optional) 4.2.11. type There are different types of parties that participate in or contribute information to a conversation. The type parameter may be used to indicate the type of participant represented by the Party Object. * type: "String" (optional) The value of the type parameter SHOULD be one of the following: "person", "bot", "organization" 4.2.12. org The party may belong to or be an organization. The org parameter is a free form text string for containing the organization identifier. * org: "String" (optional) Petrie Expires 11 March 2027 [Page 25] Internet-Draft JSON vCon September 2026 4.2.13. dept The party may belong to a department with in an organization. The dept parameter is a free form text string for containing the party's department identifier. * dept: "String" (optional) 4.3. Dialog Object The Dialog object references or contains text, audio or video captured from the conversation. Currently five types of dialog objects are defined in this document: * Text based media communications * Audio or Video recorded media communications * Metadata for failed or incompleted communications * Metadata for providing relationships between other Dialog Objects in transfer scenarios * Metadata for providing relationships between recording Dialog Objects in recording-set scenarios Media captured in a media-based Dialog Object (type text and recording) SHOULD satisfy two constraints: the media is part of the conversation itself, and the media is transcribable. Media is part of the conversation when it is the communication exchanged between the parties, as opposed to a document or item that is referenced, discussed or presented within the conversation. Media that is transcribable can be converted into a textual representation of sequential communication between parties. Text media is already in textual form and is therefore always transcribable. While images such as sunsets, cows, photographs of documents, or application forms may be describable, they are not transcribable in a concise manner and SHOULD NOT be included as Dialog Objects. They SHOULD be included as Attachment Objects. Text and audio may be subject to interpretation, but they are transcribable to a precise dialog representation. Although transcriptions may not always be accurate, there exists a single correct transcription for any given content. Media that is not transcribable SHOULD be included in the vCon as Attachment Objects rather than Dialog Objects. Petrie Expires 11 March 2027 [Page 26] Internet-Draft JSON vCon September 2026 Whether a fax or photograph of a text-based letter belongs in a Dialog Object depends upon its role in the conversation. A letter faxed to the other party as the communication itself, such as a letter faxed to a doctor, is both transcribable and part of the conversation and MAY be included as a Dialog Object. The same letter shared or discussed within some other conversation is referenced material rather than the conversation itself and SHOULD be included as an Attachment Object, even though it is transcribable. Most other faxes and photographs SHOULD be included as Attachment Objects and SHOULD NOT be included as Dialog Objects. Similarly, a musical recording, even if it is in MP3 audio format, SHOULD be included as an Attachment and SHOULD NOT be included as a Dialog Object. It may not always be known at the time of vCon construction whether an image or recording is transcribable. This distinction is important for interoperability. If it is ambiguous as to what belongs in a Dialog Object versus an Attachment Object, interoperability cannot be achieved, as vCon constructors will not be able to consistently determine where content should be placed and users of vCons will not know where content can be found within the vCon. There are situations when little or no information is available for a dialog either initially or over the entire life of the vCon and yet it is known that the dialog occurred. For example this may occur in some call transfer cases where there is nothing known about the consultative call. In such situations, it is possible to have a placeholder Dialog Object which contains only the type parameter and, for the "incomplete" type, the required disposition parameter. As the consultative call is a call, a placeholder Dialog Object for it MUST be of type "recording" if the call was set up, or of type "incomplete" if it was not. There may be more than one placeholder Dialog Object in the vCon. They are distinct by the order or index in the Dialog Object array. 4.3.1. type * type: "String" The string MUST have the value of either "recording", "recording- set", "text", "transfer" or "incomplete". The semantics of each Dialog Object type are described in the following subsections. The applicability of each of the Dialog Object parameters to each of the types is summarized in Section 4.3.1.6. Petrie Expires 11 March 2027 [Page 27] Internet-Draft JSON vCon September 2026 4.3.1.1. recording A dialog of type "recording" has Dialog Content that either contains a body or refers to via url, which is a recording of the video and/or audio of a segment of the conversation. A recording Dialog Object that is part of a set of recordings which collectively represent a call or session, may reference the associated recording-set Dialog Object via the recording_set parameter (see Section 4.3.7). 4.3.1.2. recording-set A dialog of type "recording-set" contains metadata describing a set of "recording" Dialog Objects that collectively represent a call or session. The conversation itself is captured in the referenced "recording" Dialog Objects; a recording-set Dialog Object does not have Dialog Content (see Section 4.3.10). The recordings parameter identifies the "recording" Dialog Objects in the set (see Section 4.3.6). The start, duration, parties and session_id parameters of a recording-set Dialog Object describe the call or session as a whole (see Section 4.3.2, Section 4.3.3, Section 4.3.4 and Section 4.3.12). 4.3.1.3. text A dialog of type "text" has Dialog Content that either contains a body or refers to via url, which contains the text from one of the parties for a segment of the conversation. 4.3.1.4. transfer A dialog of type "transfer" does not capture actual conversation exchange, but rather captures operations, parties and relations between dialog segments. The conversation is captured in other Dialog Objects; a transfer Dialog Object does not have Dialog Content (see Section 4.3.10). The Dialog Transfer parameters are used to show the roles and relationships between the parties and other Dialog Objects as the transfer process occurred (see Section 4.3.14). 4.3.1.5. incomplete A dialog of type "incomplete" captures a call or conversation that failed to be setup to the point of exchanging any conversation. As no conversation was exchanged, an incomplete Dialog Object does not have Dialog Content (see Section 4.3.10). An incomplete Dialog Object has a required disposition parameter which indicates why the call or conversation failed (see Section 4.3.11). Petrie Expires 11 March 2027 [Page 28] Internet-Draft JSON vCon September 2026 4.3.1.6. Dialog Object Parameter Applicability by Type The following table summarizes which Dialog Object parameters apply to each Dialog Object type. The parameter definitions in the subsections of this document are definitive; this table is provided as a summary. The symbols used in the table are defined as follows. M The parameter MUST be present. S The parameter SHOULD be present. O The parameter is optional. SN The parameter SHOULD NOT be present. X The parameter MUST NOT be present. - The parameter has no defined meaning for this type; it MAY be present but its semantics are undefined. +=================+=========+=============+=====+========+==========+ | Parameter |recording|recording-set|text |transfer|incomplete| +=================+=========+=============+=====+========+==========+ | type |M |M |M |M |M | +-----------------+---------+-------------+-----+--------+----------+ | start |S |S |S |O |S | +-----------------+---------+-------------+-----+--------+----------+ | duration |O |O |O |- |O | +-----------------+---------+-------------+-----+--------+----------+ | parties |S |S |S |X |O | +-----------------+---------+-------------+-----+--------+----------+ | originator |O |O |O |X |O | +-----------------+---------+-------------+-----+--------+----------+ | recordings |X |M |X |X |X | +-----------------+---------+-------------+-----+--------+----------+ | recording_set |O |X |X |X |X | +-----------------+---------+-------------+-----+--------+----------+ | mediatype |M (1) |X |M |X |X | | | | |(1) | | | +-----------------+---------+-------------+-----+--------+----------+ | filename |O |X |O |X |X | +-----------------+---------+-------------+-----+--------+----------+ | body |S (2) |X |S |X |X | | | | |(2) | | | +-----------------+---------+-------------+-----+--------+----------+ | encoding |S (3) |X |S |X |X | Petrie Expires 11 March 2027 [Page 29] Internet-Draft JSON vCon September 2026 | | | |(3) | | | +-----------------+---------+-------------+-----+--------+----------+ | url |S (2) |X |S |X |X | | | | |(2) | | | +-----------------+---------+-------------+-----+--------+----------+ | content_hash |S (4) |X |S |X |X | | | | |(4) | | | +-----------------+---------+-------------+-----+--------+----------+ | disposition |SN |SN |SN |SN |M | +-----------------+---------+-------------+-----+--------+----------+ | session_id |O |O |O |X |O | +-----------------+---------+-------------+-----+--------+----------+ | party_history |O |O |O |X |O | +-----------------+---------+-------------+-----+--------+----------+ | transferee |X |X |X |S |X | +-----------------+---------+-------------+-----+--------+----------+ | transferor |X |X |X |S |X | +-----------------+---------+-------------+-----+--------+----------+ | transfer_target |X |X |X |O |X | +-----------------+---------+-------------+-----+--------+----------+ | original |X |X |X |S |X | +-----------------+---------+-------------+-----+--------+----------+ | consultation |X |X |X |O |X | +-----------------+---------+-------------+-----+--------+----------+ | target_dialog |X |X |X |S |X | +-----------------+---------+-------------+-----+--------+----------+ | application |O |O |O |O |O | +-----------------+---------+-------------+-----+--------+----------+ | message_id |O |X |O |X |X | +-----------------+---------+-------------+-----+--------+----------+ Table 1 (1) MUST be present for inline Dialog Content; optional for externally referenced Dialog Content when the media type is provided in the [HTTPS] Content-Type header; not required when Dialog Content is absent, such as in a placeholder Dialog Object or a redacted vCon. (2) body or url MAY be absent in a redacted vCon. (3) MUST be present when the body parameter is present and is not an empty string (see Inline Files (Section 2.3)). (4) MUST be present when the url parameter is present (see Section 2.4.2). Petrie Expires 11 March 2027 [Page 30] Internet-Draft JSON vCon September 2026 4.3.2. start The start parameter contains the date and time for the beginning of the captured piece of dialog. The start parameter SHOULD be present unless it is not known. For text it is the time that the party started typing or if not available, then it is the time the text was sent. For audio and video recordings, it is the time which corresponds to the beginning of the recording. For a recording-set Dialog Object, it is the time corresponding to the beginning of the call or session. It should be noted that Dialog Objects may not be ordered by the value of the start parameter. Dialog Objects in the dialog array are in order that they were added to the vCon and cannot be reordered with out correcting the dialog indices which occur in other Objects in the vCon. The start parameter is optional for the "transfer" type Dialog Object as it may not always be known. * start: "Date" 4.3.3. duration The duration parameter contains the duration in seconds of the referenced or included piece of dialog. For text, if known, it is the time duration from when the party started typing to when they completed typing and the text was sent. For recordings, it is the duration of the recording. For a recording-set Dialog Object, it is the duration of the call or session. The start and duration parameters of a recording-set Dialog Object identify the complete time interval represented by the associated recording Dialog Objects. The duration parameter is not applicable to the "transfer" type Dialog Object. For an "incomplete" type Dialog Object, the duration parameter may capture the time from the attempt to setup the call or conversation until it failed. * duration: "UnsignedInt" | "UnsignedFloat" (optional) The value MUST be the dialog duration in seconds. 4.3.4. parties The party(s) which generated the text or recording for this piece of dialog are indicated in the parties parameter. The parties parameter SHOULD be present in "recording", "recording-set" and "text" type Dialog Objects. The parties parameter MUST NOT be present in "transfer" type Dialog Objects (see Section 4.3.14). The parties parameter is optional for "incomplete" type Dialog Objects, where it indicates the parties between which the call or conversation setup was attempted. Petrie Expires 11 March 2027 [Page 31] Internet-Draft JSON vCon September 2026 * parties: "UnsignedInt" | "UnsignedInt[]" | ("UnsignedInt" | "UnsignedInt[]")[] Single channel recordings should have a parties value of the form: "UnsignedInt" or "UnsignedInt[]" where the integer value or array of integer values are the indices to the Party Object(s) in the parties array that contributed to the mix for the single channel recording. The index for the Party Object SHOULD be included even if the indicated party was silent the entire piece of dialog. Multi-channel recordings MUST have a parties value that is an array of the same size as the number of channels in the recording. The values in that array are either an integer or an array of integers which are the indices to the parties that contributed to the mix for the associated channel of the recording. The index for Party Objects SHOULD be included even if the party was silent the entire conversation. If not all channels are used in a recording, such that no parties are recorded on one or more channels, a null placeholder MUST be inserted into the parties array for the corresponding channel. Some recording systems represent a single call or session using multiple recording Dialog Objects. This may occur when recordings are periodically segmented or when separate recordings are created for each party and talk spurt. In these cases, a single recording Dialog Object identifies only the parties captured, or potentially captured, in that recording. Other participants are identified only in the recording Dialog Objects in which they are captured or potentially captured. As a result, no single recording Dialog Object necessarily identifies all parties participating in the conversation. Similarly, party_events need to be associated with a Dialog Object, but a recording Dialog Object may not exist for the point in time at which the event occurs. A recording-set Dialog Object MAY be used to represent the complete call or session. The start parameter of a recording-set Dialog Object identifies the beginning of the call or session. The duration parameter of a recording-set Dialog Object identifies the duration of the call or session. The parties parameter of a recording-set Dialog Object SHOULD contain all parties known to participate in the call or session, regardless of whether they contribute recorded media. It is implied that the first party in the dialog Object parties list, is the originator of the dialog. However, in some situations, it is difficult to impose the constraint that the first channel of a recording is the originator. If ensuring that the first channel and party listed is the originator is not possible, the optional originator parameter indicates the originator party. In other cases, there may be a separate recording file for each party in a Petrie Expires 11 March 2027 [Page 32] Internet-Draft JSON vCon September 2026 conversation, where only one party is recorded per file. In this situation, it is necessary to indicate the originator as the dialog Object parties parameter may contain only one party and may not be the originator. It should be noted that the recordings may be shorter than the collective conference when there is a separate recording per speaker/party. For example the recording(s) of the individual speaker may be trimmed to only the parts where they are actually speaking. In the email context, [SMTP] messages have the headers From, To, Cc and Bcc that all correspond to parties to the text Dialog Object. The From header should be the first party index in the parties parameter for the text Dialog Object. They are the implied originator. The parties listed in the To, Cc and Bcc [SMTP] headers (if present) should all be added in that order to the parties parameter in the text Dialog Object. The sender SHOULD be allowed to set a policy, through out of band means, as to whether they would like their application or server to include the Bcc parties in the vCon. A text Dialog Object should only contain a single [SMTP] message. Each may have a different set of parties. 4.3.5. originator The originator party for this dialog. For email and text, this is the sender of the text. For audio and video calls, this is the calling party. For a scheduled meeting or conference, this is the organizer, the party that scheduled or created the meeting. The organizer may be a party that never joins the conference; such a party may still be included in the parties array. The organizer is distinct from the party acting as host or controller of the conference at any point during the meeting; identifying the host or controller is out of scope for this document. If the originator is not known, an empty Party Object (see Party Object (Section 4.2)) may be used as the first party or as the party referenced by the originator parameter. The originator parameter is only provided if the first party of the dialog Object parties list is NOT the originator. The originator parameter MUST NOT be present in "transfer" type Dialog Objects (see Section 4.3.14). * originator: "UnsignedInt" (optional) The originator value is the index into the parties Objects Array, to the party that originated the dialog. 4.3.6. recordings The recordings parameter identifies the recording Dialog Objects that are part of the recording-set Dialog Object. Petrie Expires 11 March 2027 [Page 33] Internet-Draft JSON vCon September 2026 * recordings: "UnsignedInt[]" The recordings parameter contains the indices of all recording Dialog Objects that are part of the recording-set. The recordings parameter MUST be present in recording-set Dialog Objects. The recordings parameter MUST NOT be present in other Dialog Object types. 4.3.7. recording_set The recording_set parameter identifies the recording-set Dialog Object to which the recording Dialog Object belongs. * recording_set: "UnsignedInt" (optional; SHOULD be present when the recording is part of a recording-set) The recording_set parameter SHOULD be present when a recording Dialog Object is part of a recording-set Dialog Object. The recording_set parameter MUST NOT be present in other Dialog Object types. 4.3.8. mediatype The media type for the piece of dialog included or referenced is provided in the mediatype parameter. The mediatype parameter MUST be provided for inline dialog files and MUST be provided if the Content- Type header in the [HTTPS] response for the externally referenced URL is not provided. The mediatype parameter is not required when the Dialog Content is absent, such as in a placeholder Dialog Object or when the body and url have been redacted. The mediatype parameter MUST NOT be present in "recording-set", "transfer" or "incomplete" type Dialog Objects as they do not have Dialog Content. * mediatype: "Mediatype" (optional for externally referenced files, if absent, this is provided in the [HTTPS] Content-Type header) The media types SHOULD be one of the following strings: * "text/plain" * "audio/x-wav" * "audio/x-mp3" * "audio/x-mp4" * "audio/ogg" * "video/x-mp4" Petrie Expires 11 March 2027 [Page 34] Internet-Draft JSON vCon September 2026 * "video/ogg" * "multipart/mixed" Note: multi-part will also likely include the boundary parameter 4.3.9. filename It is sometimes useful to preserve the name of the file which originally contained this piece of dialog. This can be done in the filename parameter. The filename parameter MUST NOT be present in "recording-set", "transfer" or "incomplete" type Dialog Objects as they do not have Dialog Content. * filename: "String" (optional) 4.3.10. Dialog Content The Dialog Object SHOULD contain the body and encoding parameters or the url and content_hash parameters for all dialog types other than "incomplete", "transfer" and "recording-set", these parameters MUST NOT be present for "incomplete", "transfer" or "recording-set" dialog types (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)). The exception to this is that the body or url MAY be absent if it is redacted. For inline included dialog: * body: "*" (optional in a redacted vCon) * encoding: "String" Alternatively, for externally referenced dialog: * url: "String" (optional in a redacted vCon) * content_hash: "ContentHash" | "ContentHash[]" 4.3.11. disposition If the dialog type is "incomplete", it MUST have a disposition parameter. If the reason that the call or conversation failed is not known, such as in a placeholder Dialog Object, the disposition value "failed" SHOULD be used. The value of the disposition parameter provides the reason that the "call control" failed. The term: "call control" is used in a loose sense, as there in not always a call involved, to differentiate from a call disposition that an agent may assign to a call to indicate the reason, issue addressed or outcome Petrie Expires 11 March 2027 [Page 35] Internet-Draft JSON vCon September 2026 of a conversation. This latter definition of call disposition is not dialog, but analysis of the conversation and is not included in the dialog portion. * disposition: "String" (required for incomplete type Dialog Objects, SHOULD NOT be present for other dialog types) The value of the disposition parameter MUST be one of the following string: * "no-answer" - a call or connection was attempted, but no one answered or accepted the connection * "congestion" - a call or connection was attempted, but was unable to be completed due to system load * "failed" - a call or connection was attempted, but failed * "busy" - a call or connection was attempted, but the party was busy with another conversation * "hung-up" - a call or connection was made, but the party hung-up before any conversation occurred * "voicemail-no-message" - a call or connection was made, the voicemail system answered, but no message was left Note: if a message was left with the voicemail system this is no longer an "incomplete" type dialog, it is a "recording" type and the conversation SHOULD be included in the Dialog Content. 4.3.12. session_id The [SESSION-ID] MAY be included for the dialog. If the same [SESSION-ID] applies to all the parties in a dialog, than a single instance of the SessionId Object is provided as the value of session_id. If some parties have a different or no associated [SESSION-ID] for this Dialog Object, then the array structure of the session_id objects MUST correlate to the array structure of the Dialog Object's parties index array. Parties which do not have a [SESSION-ID] associated with this dialog, MUST have an empty object ({}) for the SessionId Object. That an empty Object and not an Object with two "nil UUIDs" as defined in section 7 of [SESSION-ID]. It is also possible that the SessionId Object will not have values for both the local and remote parameters in some conferencing situations (See [SESSION-ID]). In the case that one end of the [SESSION-ID] does not have a UUID, the "nil UUID" String value SHOULD be used as defined in section 7 of [SESSION-ID]. For a recording-set Petrie Expires 11 March 2027 [Page 36] Internet-Draft JSON vCon September 2026 Dialog Object, a single SessionId Object value applies to the whole call or session represented by the set. The individual recording Dialog Objects in the set may each capture only a leg or subset of the parties of the call or session; the session_id values on those recording Dialog Objects follow the party correlation rules above. The recording-set Dialog Object is the appropriate place to capture a session identifier that applies to the call or session as a whole. The session_id parameter MUST NOT be present in "transfer" type Dialog Objects. * session_id: "SessionId" | "SessionId[]" | ("SessionId" | "SessionId[]")[] (optional) 4.3.13. party_history Objects Array Participants in a dialog may not all join and leave at the same time. To support the capturing of the information when parties join, drop, go on hold or mute and unmute, the party_history array may be added to the Dialog Object. The party_history parameter MUST NOT be present in "transfer" type Dialog Objects. * party_history: "Party_History[]" (optional) 4.3.13.1. Party_History Object The Party_History Object contains the following parameters: * party: "UnsignedInt" The index of the party for this event. * time: "Date" The time at which this event occurred. * event: "String" The string token for the event which MUST be one of the following: - "join" - when the party joins the dialog - "drop" - when the party drops out of the dialog - "hold" - when the party is put on hold - "unhold" - when the part is taken off hold - "mute" - when the party is muted Petrie Expires 11 March 2027 [Page 37] Internet-Draft JSON vCon September 2026 - "unmute" - when the part is taken off mute - "keydown" - when a DTMF or application key/button was pressed - "keyup" - when a DTMF or application key/button was released * button: "String" - (optional, required for keydown and keyup events) The button parameter value is the String value of the DTMF digit, character or string label for the button that was pressed or released. 4.3.14. Dialog Transfer A dialog of type "transfer" documents the roles of three parties and the relationship between 2 or three dialog segments. In a transfer operation, the roles of the three parties to a transfer are defined in [SIP-XFER] as: * Transferee * Transferor * Transfer Target There are two or three calls in which the parties are connected: * original call * consultative call (optional as this call may not get created) * target call To capture the above roles and dialog segments, the following parameters are defined for the "transfer" type dialog and MUST NOT be present in other dialog types. Each of these parameters SHOULD be present in the "transfer" type Dialog Object unless noted as optional. * transferee: "UnsignedInt" The value of the transferee parameter is the index into the parties Object array to the party that played the role of the Transferee. * transferor: "UnsignedInt" Petrie Expires 11 March 2027 [Page 38] Internet-Draft JSON vCon September 2026 The value of the transferor parameter is the index into the parties Object array to the party that played the role of the Transferor. * transfer_target: "UnsignedInt" (optional) The value of the transfer_target parameter is the index into the parties Object array to the party that played the role of the Transfer Target. The transfer_target is optional in the case where the transfer is abandoned before the target was identified. The consultation, target_dialog and original parameters all refer to the Dialog Objects that correspond to the 2 to 3 calls that are part of a transfer. These calls may end up spread across multiple Dialog Objects due to the nature of how the calls are recorded. For example each party may be recorded in a separate file which will result in a dialog for each. Alternatively a call may go on hold where recording is stopped and back off again resulting where recording is started again in a separate recording file, resulting in multiple Dialog Objects. The values for the consultation, target_dialog and original parameters each reference a single Dialog Object. When a call is represented by multiple recording Dialog Objects, a recording-set type Dialog Object which represents that call MAY be referenced (see Section 4.3.1.2). There are scenarios where we know that a transfer has occurred, but we have no Dialog Object information for one or two of the consultation, target or transfer calls. In this case a placeholder Dialog Object is created and its index is used for the consultation, target_dialog or original parameter. A unique Dialog Object SHOULD be referenced for each role in the transfer. However a Dialog Object may be referenced in more than one transfer dialogs when multiple transfers occur. * original: "UnsignedInt" The value of the original parameter is the index into the dialog Object array to the "recording", "recording-set" or "text" type Dialog Object for the original dialog between the Transferee and the Transferor. * consultation: "UnsignedInt" (optional) Petrie Expires 11 March 2027 [Page 39] Internet-Draft JSON vCon September 2026 The value of the consultation parameter is the index into the Dialog Object array to the "recording", "recording-set", "text" or "incomplete" type Dialog Object for the consultative dialog between the Transferor and the Transfer Target. It is also possible for there to be more than one consultation. This may occur for a number of reasons. Call attempts may fail. The caller may decide the consultation with a party is not the desired transfer target. * target_dialog: "UnsignedInt" The value of the target_dialog parameter is the index into the Dialog Object array to the "recording", "recording-set", "text" or "incomplete" type Dialog Object for the target dialog between the Transferee and the Transfer Target. A number of Dialog Object parameters are prohibited in "transfer" type Dialog Objects; see Section 4.3.1.6 for a summary and the individual parameter definitions for the normative statements. The "transfer" type dialog only captures the roles, operations and events of the parties and the dialog setup. It does not capture the purpose or reason for the transfer as that is analysis to be captures in the analysis section of the Vcon after the conversation has occurred. 4.3.15. application The application parameter is used to capture the application, communication channel or context over which the conversation was held. The conversation mode can be identified by looking at the dialog type. However that does not different between different communication platform service providers or hosting service. For example, the application parameter can be used to identify the web conference hosting service. * application "String" (optional) 4.3.16. message_id Some messaging systems assign a unique message identifier to each message. The message_id parameter is applicable to "recording" and "text" type Dialog Objects and MUST NOT be present in "recording- set", "transfer" or "incomplete" type Dialog Objects. The message_id parameter may be used to label the message for either cross referencing back to the messaging system or to prevent the addition of duplicate messages to the vCon. For example SMTP [SMTP] messages have a message-id in the SMTP header. In the SMTP case a message may exist in multiple mailboxes or tags. When exporting these SMTP Petrie Expires 11 March 2027 [Page 40] Internet-Draft JSON vCon September 2026 messages, the message_id parameter may be used to avoid adding the same message, to the vCon containing the email thread, more than once. * message_id: "String" (optional) 4.4. Attachment Object Ancillary documents to the conversation are included or referenced in the Attachment Object. There is no constraint on the types files which can be included or referenced. As most modes of communication, that allow the exchange of files, do not constrain the file type, any file type may be included here. 4.4.1. purpose The purpose parameter may be used to provide a text base description of the purpose or point of the attachment. There is no restricted set of values for this description. * purpose: "String" (optional) 4.4.2. start The start parameter contains the date and time that the Attachment Object was sent/exchanged. It should be noted that Attachment Objects may not be ordered by the value of the start parameter. Attachment Objects in the attachments array are in order that they were added to the vCon and cannot be reordered with out correcting the attachment indices which may occur in other Objects in the vCon. * start: "Date" 4.4.3. party In most conversations, ancillary documents originate from one of the parties involved in the conversation. This party is not necessarily the document's author, but rather the party that distributed the document. The distributing party is identified by the party parameter in the Attachment Object. To provide provenance for the attachment, the party index MUST be specified. The identified party need not be a participant in the conversation itself. For example, an organization that processes or constructs the vCon may add attachments containing information about the conversation. The organization or entity that adds the attachment SHOULD be represented as a Party Object. * party: "UnsignedInt" Petrie Expires 11 March 2027 [Page 41] Internet-Draft JSON vCon September 2026 The value of the party parameter is the index into the Party Object array to the party that contributed the attachment. 4.4.4. dialog Attachments are added as data related to the dialog. The dialog parameter is used to identify the dialog that the attachment is part of. The dialog is identified by the index to the dialog Object in the dialog objects array. * dialog: "UnsignedInt" 4.4.5. mediatype The media type for the included or referenced attachment file is provided in the mediatype parameter. The mediatype parameter MUST be provided for inline attachment files and MUST be provided if the Content-Type header in the [HTTPS] response for the externally referenced URL is not provided. The mediatype parameter is not required when the Attachment Content is absent, such as when the body and url have been redacted. * mediatype: "Mediatype" (optional for externally referenced files, if absent, this is provided in the [HTTPS] Content-Type header) The mediatype string contains the media type or [MIME] type of the attached file. 4.4.6. filename It is sometimes useful to preserve the name of the file which originally contained this attachment file. This can be done in the filename parameter. * filename: "String" (optional) The file name string contains an optional name for the attachment file referenced in this Attachment Object. 4.4.7. Attachment Content The Attachment Object SHOULD contain the body and encoding parameters or the url and content_hash parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)). The exception to this is that the body or url MAY be absent if it is redacted. For inline included attachments: Petrie Expires 11 March 2027 [Page 42] Internet-Draft JSON vCon September 2026 * body: "*" * encoding: "String" Alternatively, for externally referenced attachments: * url: "String" * content_hash: "ContentHash" | "ContentHash[]" 4.5. Analysis Object Analysis is a broad and in some cases developing field. This document does not attempt to suggest a SHOULD support list of types. Nor are formats for analysis data defined in this document. That is for research and specification outside the scope of this document. For this reason the Analysis Object provides multiple ways to define the media type of the analysis file. If a well known media type is defined, it SHOULD be used. For analysis data or files types for which a media type is not defined, the vendor and schema parameters SHOULD be used. 4.5.1. type The type parameter is used to label the semantic type of analysis data. * type: "String" The string value SHOULD be one of the following: * "report" * "sentiment" * "summary" * "transcript" * "translation" * "tts" 4.5.2. dialog Analysis typically pertains to one or more of the Dialog Objects in the dialog array. The dialog parameter is used to indicate which Dialog Objects this analysis was based upon. Petrie Expires 11 March 2027 [Page 43] Internet-Draft JSON vCon September 2026 * dialog: "UnsignedInt" | "UnsignedInt[]" (optional only if the analysis was not derived from any of the dialog) The value of the dialog parameter is the index to the dialog or array of indices to the Dialog Object array to which this analysis object corresponds. 4.5.3. attachment The analysis may pertain to one or more of the Attachment Objects in the attachment array. The attachment parameter is used to indicate which Attachment Objects this analysis was based upon. * attachment: "UnsignedInt" | "UnsignedInt[]" (optional only if the analysis was not derived from any of the attachments) The value of the attachment parameter is the index to the attachment or array of indices to the Attachment Object array to which this analysis object corresponds. 4.5.4. mediatype The media type for the included or referenced analysis file is provided in the mediatype parameter. The mediatype parameter SHOULD be provided for inline analysis files and for externally referenced analysis files when the Content-Type header in the [HTTPS] response is not provided. A media type may not be defined for the format of the analysis data; in this case the vendor, product and schema parameters SHOULD be used to identify the data format instead. * mediatype: "Mediatype" (optional) The mediatype string contains the media type or [MIME] type of the analysis file. 4.5.5. filename It is sometimes useful to preserve the name of the file which originally contained this analysis data. This can be done in the filename parameter. * filename: "String" (optional) The file name string contains an optional name for the analysis data file referenced in this Analysis Object. Petrie Expires 11 March 2027 [Page 44] Internet-Draft JSON vCon September 2026 4.5.6. vendor There may not be a IANA registered media type for the file format containing the analysis data. Even if a media type is defined, it is often useful to keep a record of the vendor that produced the software that produced the analysis. Different implementations perform differently and knowing the implementation can be useful in interpreting the analysis. For this reason, the vendor or product name is provided in the vendor parameter. * vendor: "String" The vendor string value contains the vendor or product name of the software which generated this analysis. 4.5.7. product As the vendor may have more than one product, the product parameter may be used to differentiate it from other products which may have different schemas of analysis data. * product: "string" (optional) 4.5.8. schema The same vendor or software product may produce different formats or data for the same analysis. The schema parameter allows the data format, schema or configuration used to generate the analysis to be saved with the included or referenced analysis data. * schema: "String" (optional) The schema string contains a token or label for the data format or schema for the analysis data. As the vendor name may not be specific enough to identify the format of the analysis, the schema value is provide to differentiate from potentially multiple data formats for analysis provided by the same vendor or software. 4.5.9. Analysis Content The Analysis Object SHOULD contain the body and encoding parameters or the url and content_hash parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)). The exception to this is that the body or url MAY be absent if it is redacted. For inline included analysis: Petrie Expires 11 March 2027 [Page 45] Internet-Draft JSON vCon September 2026 * body: "*" * encoding: "String" Alternatively, for externally referenced analysis: * url: "String" * content_hash: "ContentHash" | "ContentHash[]" 5. Security Considerations The security concerns for vCons can put into two categories: making the conversation immutable through integrity verification and protecting the confidentiality of privacy of the parties to the conversation and/or their PII. These requirements along with need to evolve a vCon (e.g. adding analysis, translations and transcriptions) conflict in some ways. To enable this, multiple versions of a vCon may be created. Versions of a vCon may add information (e.g. analysis added to a prior vCon referenced by the amended (Section 4.1.9)) and versions that remove information (e.g. redactions of privacy information removed from the vCon referenced in the redacted (Section 4.1.8)). Redactions may be at different levels for example: * PII masked to remove PII data in the text, audio, video or transcripts * De-identified to remove segments or whole recordings that might be used for voice printing or facial recognition Different parts and versions of a vCon may be created in different security domains over a period of time. In addition, some conversation data may be referenced externally through an HTTPS URL as opposed to completely contained within the vCon. Typically a conversation of one mode, will be hosted or observed in a single domain. This will likely fall into one of the following hosting situations: * Enterprise Hosted Communications * Software as a Service (SaaS) Hosted Communications * Service Provider Hosted Communications The distinction among these has gotten clouded over recent years. The import consideration is that each is a different security domain. Information about a conversation captured in an enterprise Petrie Expires 11 March 2027 [Page 46] Internet-Draft JSON vCon September 2026 communications system (e.g. meta data and Dialog Object(s) recorded in an IP PBX) is a different security domain from a SaaS transcription service (i.e. an Analysis Object). Before a vCon leaves a security domain, it SHOULD be signed to prevent it from being altered. If the new security domain needs to alter it, a new vCon is created with the removed or added data and the prior version is referenced (i.e. via the redacted (Section 4.1.8) or amended (Section 4.1.9)). See the redacted vCon object tree figure-1 and amended vCon object tree figure-2. If information is redacted for privacy reasons, the vCon referenced in the redacted (Section 4.1.8), if inline, SHOULD be encrypted to protect the privacy information in the unredacted version of the vCon. The secure storage and access of externally referenced conversation data is considered out of scope from this document. Secure mechanisms for HTTPS access and storage of files are well defined. Identity and credentials for accessing externally stored data will be exchanged out of band from the vCon. The one requirement for externally referenced data from the perspective of this document, is proof of integrity of that data. Using the above described approach for redaction and amending of data, we can reduce the security operations on a vCon to signing and encryption. Two approaches to signing are needed as we have data, in JSON format, that is contained within the vCon and may have data (typically media and file formats, often binary) not contained, inline in the vCon, that is externally referenced. Externally referenced data will be "signed" using [SHA-512] hash which along with the URL of the externally referenced data is included in the vCon. [SHA-512] was chosen due to the relatively low cost to generate and verify the signature for what could be very large externally referenced media files. As the hash for each externally referenced file is contained in the vCon which will be signed, the chain of authentication is provided via the signature on the vCon itself. This document specifies the JSON format for vCons. So it seemed the logical solution for signing vCons, is JOSE [JWS] JSON Serialization and likewise for encrypting vCons is JOSE [JWE] JSON Serialization. The solutions are well documents, implementations are readily available and tested. Petrie Expires 11 March 2027 [Page 47] Internet-Draft JSON vCon September 2026 Methods of redaction exist for text, audio and video using post processing of the media. The method of redaction used is out of the scope of this document. A redacted vCon SHOULD reference it's non- redacted version. The non-redacted version of the vCon referenced from the redacted vCon MUST be encrypted such that only those with permission to view the non-redacted content can decrypt it. Any time a vCon is shared outside its original security domain, it SHOULD be signed and optionally encrypted. Files externally referenced by a vCon SHOULD always be signed with the verification information included in the vCon that references the external file as defined in Externally Referenced Files (Section 2.4) and Signing Externally Referenced Files (Section 5.1). Externally referenced files SHOULD only be transported over [HTTPS] and SHOULD be access controlled to those who are permitted to read the contents of that non-redacted vCon. vCons transported over non-secure channels such as email MUST be in the encrypted form. 5.1. Signing Externally Referenced Files In some deployments, it is not practical to include all of the file contents of a vCon inline. In support of that, a file may be externally referenced. When external files are referenced, the signature on the vCon does not secure the file contents from modification. For this reason any externally referenced files SHOULD also have a signature. vCons use the [SHA-512] hash method for integrity checking of externally referenced file content and include its url and content_hash in the vCon which are included in the integrity signature for the whole vCon. After retrieving externally referenced files, before using its content, the payload of the HTTPS request should be verified using the signature parameter value for the hash for the url body using the procedure defined in section 6.3 and 6.4 of [SHA-512]. 5.2. Signed Form of vCon Object A signed vCon uses [JWS] and takes the General JWS JSON Serialization Syntax form as defined in section 7.2.1 of [JWS]. The vCon General JWS JSON Serialization MUST include x5c or x5u in the unprotected header. * payload: "String" The value of the payload is the Base64Url Encoded string containing either: the unsigned form of the JSON vCon; or the gzipped [GZIP] unsigned form of the JSON vCon. The general construction of the payload string value is described in section 7.2.1 of [JWS] Petrie Expires 11 March 2027 [Page 48] Internet-Draft JSON vCon September 2026 * signatures: "Signature[]" The value of signatures is an array of Signature Objects (Section 5.2.1) 5.2.1. Signature Object The Signature Object MUST contain a header, protected and signature parameter as defined in section 7.2.1 of [JWS]. * header: "Header" The value of header is defined in Header Object (Section 5.2.2) * protected: "String" * signature: "String" 5.2.2. Header Object The Header Object and its contents are defined in section 4 of [JWS]. The Header Object for a signed vCon MUST include the alg and either the x5c or x5u arrays. The x5c or x5u requirement makes the management and use of vCons easier, allowing the certificate chain to be found as the vCon is moved. * alg: "String" The string value of alg is defined in section 4.1.1 of [JWS]. For a signed vCon this value SHOULD be "RS256" to maximize interoperability. * x5c: "String[]" (MUST provide x5c or x5u) The array of string values for x5c are defined in section 4.1.6 of [JWS]. * x5u: "String" (MUST provide x5c or x5u) The string value of x5u MUST contain an [HTTPS] URL as defined in section 4.1.5 of [JWS]. * uuid: "String" (SHOULD be provided) Petrie Expires 11 March 2027 [Page 49] Internet-Draft JSON vCon September 2026 The string value of the UUID for the vCon contained in the payload parameter. This is added for convenience to not require verification of the signed vCon to get it's UUID. When the vCon is verified, the value of this uuid parameter SHOULD be verified against the UUID in the signed vCon. 5.2.3. Long Term Archiving of Signed vCons In some use cases, it may be necessary to store or archive signed vCons for compliances or records purposes for as long as 10 years or more. In most cases the keys and certificates used to sign the vCon and construct the [JWS] or signed form of the vCon, will have an expiration on the order of a few years at best. Below is an approach on how integrity may be maintained on the archived vCon. There may be other approaches to this as well. For our example illustrated below, we have a vCon which was signed (labeled as JWS1). The certificate used to sign JWS1 has an expiration date. Before the expiration of the JWS1 signing certificate, the content of JWS1 (the vCon) is verified and then JWS1 is signed as the payload to construct JWS2. Before the expiration of the JWS2 certificate, the contents of JWS2 (JWS1) is verified and then JWS2 is signed as the payload to construct JWS3. The process is continued for the life of the vCon archiving. When it is desired to access the data in the archived vCon, first the outer JWS (JWS3 in diagram) is verified (payload of JWS2), then the vCon (payload in JWS1) is assumed to have valid integrity. ____________ | JWS3 | | __________ | || JWS2 || || ________ || ||| JWS1 ||| ||| ______ ||| |||| vCon |||| ||||______|||| |||________||| ||__________|| |____________| Petrie Expires 11 March 2027 [Page 50] Internet-Draft JSON vCon September 2026 5.3. Encrypted Form of vCon Object A vCon MUST be signed first using JWS as defined in Signed Form of vCon Object (Section 5.2), then encrypted using JWE as opposed to just encrypted with integrity protection. The rationale is that meta data and dialog will typically be collected in one security domain, then may be stored or exported to another. The signing is likely for the lifetime of the vCon, where the encryption may be shorter term or domain specific. vCons may be stored in unencrypted form, but the signed form MUST be maintained to ensure its integrity. A encrypted vCon uses [JWE] and takes the General JWE JSON Serialization Syntax form as defined in section 7.2.1 of [JWE]. * unprotected: "Unprotected" * recipients: "Recipient[]" * iv: "String" The string value of iv is the Initialization Vector as constructed as defined in section 7.2.1 of [JWE]. * ciphertext: "String" The string value of ciphertext is constructed as defined in section 7.2.1 of [JWE] using the signed form of the vCon as the plaintext input for encryption. * tag: "String" The string value of tag is the the Authentication Tag as defined in section 7.2.1 of [JWE]. 5.3.1. Unprotected Object * cty: "String" The string value of cty SHOULD be either "application/vcon" or "application/vcon+gzip" * enc: "String" The string value of enc SHOULD be "A256CBC-HS512" * uuid: "String" (SHOULD be provided) Petrie Expires 11 March 2027 [Page 51] Internet-Draft JSON vCon September 2026 The string value of the UUID for the vCon contained in the ciphertext parameter. This is provided for identification of the encrypted vCon without the need of the key to decrypt the vCon. The value of this uuid parameter SHOULD be verified when the vCon is decrypted. 5.3.2. Recipient Object * header: "Header" * encrypted_key: "String" The string value of encrypted_key is defined in section 7.2.1 of [JWE]. 5.3.3. Header Object * alg: "String" The string value of alg SHOULD be "RSA-OAEP". 5.4. Differentiation of vCon forms vCons in the unsigned, signed and encrypted form are all valid JSON. A vCon in any of these forms may additionally be compressed using [GZIP] as described in Section 6.2. It is necessary to distinguish which form a vCon is in, and whether it is compressed, in order to properly handle it. For example a signed vCon needs to be verified. The following is the recommended approaches to identifying which form a particular vCon is in: * unsigned The presence of one or more of the following parameters indicates that the vCon is in the unsigned form: - parties - dialog - analysis - attachments * signed (JWS) The presence of both of the following parameters indicates that the vCon is in the signed (JWS) form: Petrie Expires 11 March 2027 [Page 52] Internet-Draft JSON vCon September 2026 - payload - signatures * encrypted (JWE) The presence of both of the following parameters indicates that the vCon is in the encrypted (JWE) form: - ciphertext - recipients A gzip compressed vCon is not JSON and is differentiated from the JSON forms before the above parameter based rules can be applied. The gzip compressed vCon SHOULD be identified by the media type "application/vcon+gzip" when a media type is available, such as in the [HTTPS] Content-Type header. When no media type is available, a gzip compressed vCon can be identified by the gzip member header magic numbers defined in section 2.3.1 of [GZIP]. Once decompressed, the contained vCon is in one of the JSON forms and is differentiated using the parameter based rules above. 6. IANA Considerations This section includes the information required for IANA to register the application/vcon media type per [MEDIATYPE]. 6.1. JSON Format vCon Mediatype The JSON format for vCon is mandatory to implement. * Type name: application * Subtype name: vcon * Required parameters: N/A * Optional parameters: N/A; unrecognized parameters should be ignored. * Encoding considerations: 8bit * Additional information: [JSON] format * Security considerations: See Security Considerations section of this document. Petrie Expires 11 March 2027 [Page 53] Internet-Draft JSON vCon September 2026 * Interoperability considerations: The vCon schema is defined in RFC XXXX. The schema may be extended through extensions as defined there. * Published specification: [VCON], this document: RFC XXXX * Applications that use this media type: * Fragment identifier considerations: N/A * Additional Information: - Deprecated alias names for this type: N/A - Magic number(s): N/A - File extension(s): "vcon" - Macintosh file type code(s): N/A - Windows Clipboard Name: VCON * Author: See the Author's Addresses section of this document. * Change controller: IETF 6.2. gzip Format vCon Mediatype A gzip format vCon is a JSON format vCon that has been compressed using the gzip [GZIP] compression algorithm. The gzip format is used to reduce the size of potentially very large vCons containing audio or video media in dialog objects. Applications SHOULD support the receiving of gzip format vCons, but do not need to use the gzip format when sending. * Type name: application * Subtype name: vcon+gzip * Required parameters: N/A * Optional parameters: N/A; unrecognized parameters should be ignored. * Encoding considerations: binary * Additional information: [GZIP] compression of [JSON] format Petrie Expires 11 March 2027 [Page 54] Internet-Draft JSON vCon September 2026 * Security considerations: See Security Considerations section of this document. * Interoperability considerations: The vCon schema is defined in RFC XXXX. The schema may be extended through extensions as defined there. * Published specification: [VCON], this document: RFC XXXX * Applications that use this media type: * Fragment identifier considerations: N/A * Additional Information: - Deprecated alias names for this type: N/A - Magic number(s): N/A - File extension(s): "vcon" - Macintosh file type code(s): N/A - Windows Clipboard Name: VCON * Author: See the Author's Addresses section of this document. * Change controller: IETF 6.3. vCon JSON Registry This document defines a number of new IANA registries for the JSON vCon schema. Each Object (i.e. dict, map, dictionary) has its own registry of parameter names. All of those registries have the same registry template which is defined in the following subsection. When registering new entries, the following template should be used. 6.3.1. Object Registry Template Parameter Name: The string name of a parameter to be used within the Object. The name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts state that there is a compelling reason to allow an exception. Parameter Description: Petrie Expires 11 March 2027 [Page 55] Internet-Draft JSON vCon September 2026 Brief description of the parameter Change Controller: For Standards Track RFCs, list the "IESG". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included. Specification Document(s): Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required. 6.3.2. vCon Object Parameter Names Registry The following defines the initial values for the vCon Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. +=============+======================+============+================+ | Parameter | Parameter | Change | Specification | | Name | Description | Controller | Document(s) | +=============+======================+============+================+ | vcon | Schema version | IESG | Section 4.1.1 | | | number | | RFC XXXX | +-------------+----------------------+------------+----------------+ | uuid | vCon instance UUID | IESG | Section 4.1.2 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | extensions | list of extensions | IESG | Section 4.1.3 | | | used | | RFC XXXX | +-------------+----------------------+------------+----------------+ | critical | list of incompatible | IESG | Section 4.1.4 | | | extensions used | | RFC XXXX | +-------------+----------------------+------------+----------------+ | created_at | creation date | IESG | Section 4.1.5 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | updated_at | modification date | IESG | Section 4.1.6 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | subject | conversation subject | IESG | Section 4.1.7 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | redacted | Redacted Object | IESG | Section 4.1.8 | Petrie Expires 11 March 2027 [Page 56] Internet-Draft JSON vCon September 2026 | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | amended | Amended Object | IESG | Section 4.1.8 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | group | reserved for future | IESG | RFC XXXX | | | extension | | | +-------------+----------------------+------------+----------------+ | parties | Party Objects array | IESG | Section 4.1.10 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | dialog | Dialog Objects array | IESG | Section 4.1.11 | | | | | RFC XXXX | +-------------+----------------------+------------+----------------+ | analysis | Analysis Objects | IESG | Section 4.1.12 | | | array | | RFC XXXX | +-------------+----------------------+------------+----------------+ | attachments | Attachment Objects | IESG | Section 4.1.13 | | | array | | RFC XXXX | +-------------+----------------------+------------+----------------+ Table 2 6.3.3. Party Object Parameter Names Registry The following defines the initial values for the Party Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. Petrie Expires 11 March 2027 [Page 57] Internet-Draft JSON vCon September 2026 +================+===================+============+================+ | Parameter Name | Parameter | Change | Specification | | | Description | Controller | Document(s) | +================+===================+============+================+ | tel | tel URL | IESG | Section 4.2.1 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | sip | SIP URL | IESG | Section 4.2.1 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | stir | STIR token | IESG | Section 4.2.3 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | mailto | mailto URL | IESG | Section 4.2.4 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | name | participant name | IESG | Section 4.2.5 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | validation | validation method | IESG | Section 4.2.7 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | gmlpos | participant | IESG | Section 4.2.8 | | | geolocation | | RFC XXXX | +----------------+-------------------+------------+----------------+ | civicaddress | civic address | IESG | Section 4.2.9 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | uuid | participant | IESG | Section 4.2.10 | | | unique identifier | | RFC XXXX | +----------------+-------------------+------------+----------------+ | type | participant type | IESG | Section 4.2.11 | | | | | RFC XXXX | +----------------+-------------------+------------+----------------+ | org | participant | IESG | Section 4.2.12 | | | organization | | RFC XXXX | +----------------+-------------------+------------+----------------+ | dept | participant | IESG | Section 4.2.13 | | | department | | RFC XXXX | +----------------+-------------------+------------+----------------+ | did | decentralized | IESG | Section 4.2.6 | | | identifier | | RFC XXXX | +----------------+-------------------+------------+----------------+ Table 3 Petrie Expires 11 March 2027 [Page 58] Internet-Draft JSON vCon September 2026 6.3.4. Dialog Object Parameter Names Registry The following defines the initial values for the Dialog Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. +=================+=======================+==========+==============+ | Parameter Name | Parameter Description |Change |Specification | | | |Controller|Document(s) | +=================+=======================+==========+==============+ | type | dialog type name |IESG |Section 4.3.1 | | | | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | start | dialog start time |IESG |Section 4.3.2 | | | | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | duration | dialog duration |IESG |Section 4.3.3 | | | period | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | parties | dialog parties list |IESG |Section 4.3.4 | | | | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | originator | dialog originator |IESG |Section 4.3.5 | | | party | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | mediatype | dialog content media |IESG |Section 4.3.8 | | | type | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | filename | dialog content |IESG |Section 4.3.9 | | | filename | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | body | dialog inline content |IESG |Section | | | | |4.3.10 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | encoding | dialog inline content |IESG |Section | | | encoding | |4.3.10 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | url | dialog referenced |IESG |Section | | | content URL | |4.3.10 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | content_hash | dialog content hash |IESG |Section | | | | |4.3.10 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ Petrie Expires 11 March 2027 [Page 59] Internet-Draft JSON vCon September 2026 | disposition | dialog disposition |IESG |Section | | | | |4.3.11 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | session_id | RFC7989 session ID |IESG |Section | | | | |4.3.12 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | party_history | dialog party events |IESG |Section | | | history | |4.3.13 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | transferee | transferee party |IESG |Section | | | index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | transferor | transferor party |IESG |Section | | | index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | transfer_target | transfer target party |IESG |Section | | | index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | original | original transfer |IESG |Section | | | dialog index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | consultation | consultation`transfer |IESG |Section | | | dialog index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | target_dialog | target_dialog |IESG |Section | | | transfer dialog index | |4.3.14 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | application | dialog source |IESG |Section | | | application | |4.3.15 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | message_id | dialog message id |IESG |Section | | | | |4.3.16 RFC | | | | |XXXX | +-----------------+-----------------------+----------+--------------+ | recordings | multi recording |IESG |Section 4.3.6 | | | dialog reference | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ | recording_set | recording_set dialog |IESG |Section 4.3.7 | Petrie Expires 11 March 2027 [Page 60] Internet-Draft JSON vCon September 2026 | | reference | |RFC XXXX | +-----------------+-----------------------+----------+--------------+ Table 4 6.3.4.1. Dialog Type Name Registry This document defines a new registry for the token name values that are permitted as values to the dialog type (Section 4.3.1) parameter. 6.3.4.1.1. Dialog Type Name Registration Template Dialog Type Name: The string token name of a Dialog Object Type The name is case sensitive. Names may not match other registered names in a case- insensitive manner unless the Designated Experts state that there is a compelling reason to allow an exception. Dialog Type Description: Brief description of the Dialog Object type Change Controller: For Standards Track RFCs, list the "IESG". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included. Specification Document(s): Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required. 6.3.4.1.2. Dialog Type Name Registration Initial Values The following table defines the initial values for the Dialog Object Types Registry. Petrie Expires 11 March 2027 [Page 61] Internet-Draft JSON vCon September 2026 +==================+=================+============+===============+ | Dialog Type Name | Dialog Type | Change | Specification | | | Description | Controller | Document(s) | +==================+=================+============+===============+ | text | text dialog | IESG | Section 4.3.1 | | | | | RFC XXXX | +------------------+-----------------+------------+---------------+ | recording | recording | IESG | Section 4.3.1 | | | dialog | | RFC XXXX | +------------------+-----------------+------------+---------------+ | transfer | transfer dialog | IESG | Section 4.3.1 | | | | | RFC XXXX | +------------------+-----------------+------------+---------------+ | incomplete | incomplete | IESG | Section 4.3.1 | | | dialog | | RFC XXXX | +------------------+-----------------+------------+---------------+ | recording-set | multi-recording | IESG | Section 4.3.1 | | | dialog | | RFC XXXX | +------------------+-----------------+------------+---------------+ Table 5 6.3.5. party_history Object Parameter Names Registry This initial values for the party_history Object Parameter Names Registry are listed in the following table. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. +===========+=====================+============+==================+ | Parameter | Parameter | Change | Specification | | Name | Description | Controller | Document(s) | +===========+=====================+============+==================+ | party | event party index | IESG | Section 4.3.13.1 | | | | | RFC XXXX | +-----------+---------------------+------------+------------------+ | time | time event occurred | IESG | Section 4.3.13.1 | | | | | RFC XXXX | +-----------+---------------------+------------+------------------+ | event | event type | IESG | Section 4.3.13.1 | | | | | RFC XXXX | +-----------+---------------------+------------+------------------+ | button | button label | IESG | Section 4.3.13.1 | | | character or string | | RFC XXXX | +-----------+---------------------+------------+------------------+ Table 6 Petrie Expires 11 March 2027 [Page 62] Internet-Draft JSON vCon September 2026 6.3.5.1. party_event Event Name Registry This document defines a new registry for the token name values that are permitted as values to the party_event Object event (Section 4.3.13.1) parameter. 6.3.5.1.1. party_event Event Name Registration Template party_event Event Name: The string token name of a party_event Object event type. The name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts state that there is a compelling reason to allow an exception. party_event Event Description: Brief description of the party_event Object Event Change Controller: For Standards Track RFCs, list the "IESG". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included. Specification Document(s): Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required. 6.3.5.1.2. party_event Type Name Registration Initial Values The following table defines the initial values for the Dialog Object Types Registry. Petrie Expires 11 March 2027 [Page 63] Internet-Draft JSON vCon September 2026 +=============+=====================+============+==================+ | party_event | party_event Event | Change | Specification | | Event Name | Description | Controller | Document(s) | +=============+=====================+============+==================+ | join | party join event | IESG | Section 4.3.13.1 | | | | | RFC XXXX | +-------------+---------------------+------------+------------------+ | drop | party drop event | IESG | Section 4.3.13.1 | | | | | RFC XXXX | +-------------+---------------------+------------+------------------+ | hold | party on hold | IESG | Section 4.3.13.1 | | | event | | RFC XXXX | +-------------+---------------------+------------+------------------+ | unhold | party off hold | IESG | Section 4.3.13.1 | | | event | | RFC XXXX | +-------------+---------------------+------------+------------------+ | mute | party on mute | IESG | Section 4.3.13.1 | | | event | | RFC XXXX | +-------------+---------------------+------------+------------------+ | unmute | party off mute | IESG | Section 4.3.13.1 | | | event | | RFC XXXX | +-------------+---------------------+------------+------------------+ | keydown | DTMF/app key/ | IESG | Section 4.3.13.1 | | | button press event | | RFC XXXX | +-------------+---------------------+------------+------------------+ | keyup | DTMF/app key/ | IESG | Section 4.3.13.1 | | | button release | | RFC XXXX | | | event | | | +-------------+---------------------+------------+------------------+ Table 7 6.3.6. Attachment Object Parameter Names Registry The following defines the initial values for the Attachment Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. Petrie Expires 11 March 2027 [Page 64] Internet-Draft JSON vCon September 2026 +==============+=======================+============+===============+ | Parameter | Parameter | Change | Specification | | Name | Description | Controller | Document(s) | +==============+=======================+============+===============+ | purpose | attachment object | IESG | Section 4.4.1 | | | purpose description | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | start | attachment start | IESG | Section 4.4.2 | | | time | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | party | sending party index | IESG | Section 4.4.3 | | | | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | dialog | associated dialog | IESG | Section 4.4.4 | | | index | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | mediatype | attachment body | IESG | Section 4.4.5 | | | media type | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | filename | attachment content | IESG | Section 4.4.6 | | | filename | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | body | attachment inline | IESG | Section 4.4.7 | | | content | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | encoding | attachment inline | IESG | Section 4.4.7 | | | content encoding | | RFC XXXX | +--------------+-----------------------+------------+---------------+ | url | attachment | IESG | Section 4.4.7 | | | referenced content | | RFC XXXX | | | URL | | | +--------------+-----------------------+------------+---------------+ | content_hash | attachment content | IESG | Section 4.4.7 | | | hash | | RFC XXXX | +--------------+-----------------------+------------+---------------+ Table 8 6.3.7. Analysis Object Parameter Names Registry The following defines the initial values for the Analysis Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. Petrie Expires 11 March 2027 [Page 65] Internet-Draft JSON vCon September 2026 +================+=====================+============+===============+ | Parameter | Parameter | Change | Specification | | Name | Description | Controller | Document(s) | +================+=====================+============+===============+ | type | analysis type | IESG | Section 4.5.1 | | | | | RFC XXXX | +----------------+---------------------+------------+---------------+ | dialog | associated dialog | IESG | Section 4.5.2 | | | index | | RFC XXXX | +----------------+---------------------+------------+---------------+ | attachment | associated | IESG | Section 4.5.3 | | | attachment index | | RFC XXXX | +----------------+---------------------+------------+---------------+ | mediatype | analysis body media | IESG | Section 4.5.4 | | | type | | RFC XXXX | +----------------+---------------------+------------+---------------+ | filename | analysis content | IESG | Section 4.5.5 | | | filename | | RFC XXXX | +----------------+---------------------+------------+---------------+ | vendor | vendor producing | IESG | Section 4.5.6 | | | content | | RFC XXXX | +----------------+---------------------+------------+---------------+ | product | vendor product | IESG | Section 4.5.7 | | | producing content | | RFC XXXX | +----------------+---------------------+------------+---------------+ | schema | product schema of | IESG | Section 4.5.8 | | | content | | RFC XXXX | +----------------+---------------------+------------+---------------+ | body | analysis inline | IESG | Section 4.5.9 | | | content | | RFC XXXX | +----------------+---------------------+------------+---------------+ | encoding | analysis inline | IESG | Section 4.5.9 | | | content encoding | | RFC XXXX | +----------------+---------------------+------------+---------------+ | url | analysis referenced | IESG | Section 4.5.9 | | | content URL | | RFC XXXX | +----------------+---------------------+------------+---------------+ | content_hash | analysis content | IESG | Section 4.5.9 | | | hash | | RFC XXXX | +----------------+---------------------+------------+---------------+ Table 9 Petrie Expires 11 March 2027 [Page 66] Internet-Draft JSON vCon September 2026 6.3.8. Redacted Object Parameter Names Registry The following defines the initial values for the Redacted Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. +================+===================+============+=================+ | Parameter | Parameter | Change | Specification | | Name | Description | Controller | Document(s) | +================+===================+============+=================+ | uuid | less redacted | IESG | Section 4.1.8.1 | | | vCon UUID | | RFC XXXX | +----------------+-------------------+------------+-----------------+ | type | redaction type or | IESG | Section 4.1.8.1 | | | reason | | RFC XXXX | +----------------+-------------------+------------+-----------------+ | url | referenced less | IESG | Section 4.1.8.1 | | | redacted vCon URL | | RFC XXXX | +----------------+-------------------+------------+-----------------+ | content_hash | less redacted | IESG | Section 4.1.8.1 | | | vCon hash | | RFC XXXX | +----------------+-------------------+------------+-----------------+ Table 10 6.3.9. Amended Object Parameter Names Registry The following defines the initial values for the Amended Object Parameter Names Registry. Use the template in Object Registry Template (Section 6.3.1) when registering additional entries to this table. +================+==================+============+=================+ | Parameter Name | Parameter | Change | Specification | | | Description | Controller | Document(s) | +================+==================+============+=================+ | uuid | prior vCon | IESG | Section 4.1.9.1 | | | version UUID | | RFC XXXX | +----------------+------------------+------------+-----------------+ | url | referenced prior | IESG | Section 4.1.9.1 | | | version vCon URL | | RFC XXXX | +----------------+------------------+------------+-----------------+ | content_hash | prior version | IESG | Section 4.1.9.1 | | | vCon hash | | RFC XXXX | +----------------+------------------+------------+-----------------+ Table 11 Petrie Expires 11 March 2027 [Page 67] Internet-Draft JSON vCon September 2026 6.4. vCon Extensions Names Registry This document defines and new registry for the token name values that are permitted as values to the [extensions]s(#extensions) parameter. However it does not define any values for this registry. Values for this registry are to be defined in subsequent documents which define extensions to the vCon schema. 6.4.1. Extensions Registration Template Extension Name: The string token name of an extension to the vCon JSON schema. The name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts state that there is a compelling reason to allow an exception. Extension Description: Brief description of the the vCon extension Change Controller: For Standards Track RFCs, list the "IESG". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included. Specification Document(s): Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required. 6.5. JSON Web Signature and Encryption Header Parameters This document registers the following new parameter in the [JWS] JSON Web Signature and Encryption Header Parameters registry. * Header Parameter Name: "uuid" * Header Parameter Description: UUID of the signed object * Header Parameter Usage Location(s): JWS, JWE * Change Controller: IESG Petrie Expires 11 March 2027 [Page 68] Internet-Draft JSON vCon September 2026 * Specification Document(s): Header Object (Section 5.2.2), Header Object (Section 5.3.1) of RFC XXXX 7. Non-Upward Compatible Changes to the vCon Container 7.1. Version 0.3.0 to 0.4.0 * The "appended" Object was renamed to "amended" * The "must_support" parameter was renamed to "critical" to be consistent with other IETF JSON schema extension mechanisms. * The "session_id" Dialog Object parameter was changes from a String to a SessionId Object. 7.2. Version 0.0.2 to 0.3.0 * "transfer-target" parameter was renamed to "transfer_target" to be consistent with other compound names that use the underscore ("_"). * "target-dialog" parameter was renamed to "target_dialog" to be consistent with other compound names that use the underscore ("_"). 7.3. Version 0.0.1 to 0.0.2 * "mimetype" parameters were renamed to "mediatype" * "alg" and "signature" were combined into "content_hash" 8. References 8.1. Normative References [DID] W3C, "Decentralized Identifiers (DIDs) v1.0", July 2022, . [GEOPRIV] Peterson, J., "A Presence-based GEOPRIV Location Object Format", RFC 4119, DOI 10.17487/RFC4119, December 2005, . [GZIP] Deutsch, P., "GZIP file format specification version 4.3", RFC 1952, DOI 10.17487/RFC1952, May 1996, . Petrie Expires 11 March 2027 [Page 69] Internet-Draft JSON vCon September 2026 [H-460-27] "End-to-End Session Identifier for H.323 Systems", H.460.27, November 2015, . [HTTPS] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, DOI 10.17487/RFC9110, June 2022, . [IANA-COSE-ALG] "COSE Algorithms", n.d., <>. [JMAP] Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July 2019, . [JSON] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, . [JWE] Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI 10.17487/RFC7516, May 2015, . [JWS] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May 2015, . [MAILTO] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto' URI Scheme", RFC 6068, DOI 10.17487/RFC6068, October 2010, . [MEDIATYPE] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013, . [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, . [PASSporT] Wendt, C. and J. Peterson, "PASSporT: Personal Assertion Token", RFC 8225, DOI 10.17487/RFC8225, February 2018, . Petrie Expires 11 March 2027 [Page 70] Internet-Draft JSON vCon September 2026 [PIDF-LO] Winterbottom, J., Thomson, M., and H. Tschofenig, "GEOPRIV Presence Information Data Format Location Object (PIDF-LO) Usage Clarification, Considerations, and Recommendations", RFC 5491, DOI 10.17487/RFC5491, March 2009, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [SESSION-ID] Jones, P., Salgueiro, G., Pearce, C., and P. Giralt, "End- to-End Session Identification in IP-Based Multimedia Communication Networks", RFC 7989, DOI 10.17487/RFC7989, October 2016, . [SMTP] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, DOI 10.17487/RFC5321, October 2008, . [TEL] Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, DOI 10.17487/RFC3966, December 2004, . [UUID] Peabody, B. and K. R. Davis, "New UUID Formats", Work in Progress, Internet-Draft, draft-peabody-dispatch-new-uuid- format-04, 23 June 2022, . 8.2. Informative References [CBOR] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, December 2020, . Petrie Expires 11 March 2027 [Page 71] Internet-Draft JSON vCon September 2026 [CDDL] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, June 2019, . [CDR] ITU, "Recommendation Q.825: Specification of TMN applications at the Q3 interface: Call detail recording", n.d., . [ISOBMFF] "Information technology -- Coding of audio-visual objects -- Part 12: ISO base media file format", ISO/IEC 14496-12:2022, January 2022, . [JWT] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015, . [PY-VCON] "Python open source vCon command line interface, library and workflow server", n.d., . [SHA-512] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10.17487/RFC6234, May 2011, . [SIP] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, DOI 10.17487/RFC3261, July 2002, . [SIP-XFER] Sparks, R., Johnston, A., Ed., and D. Petrie, "Session Initiation Protocol (SIP) Call Control - Transfer", BCP 149, RFC 5589, DOI 10.17487/RFC5589, June 2009, . [STIR-PASS] Wendt, C. and J. Peterson, "PASSporT Extension for Rich Call Data", Work in Progress, Internet-Draft, draft-ietf- stir-passport-rcd-26, 5 June 2023, . Petrie Expires 11 March 2027 [Page 72] Internet-Draft JSON vCon September 2026 [vCard] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, DOI 10.17487/RFC7095, January 2014, . [vCon-white-paper] Howe, T., Petrie, D., Lieberman, M., and A. Quayle, "vCon: an Open Standard for Conversation Data", n.d., . Appendix A. Example vCons This appendix contains example vCons in the unsigned, signed and encrypted form. The JSON has been indented for readability. The vCons have been formatted such that long text lines have been wrapped with a left hand white space indent for readability purposes. Links for unformatted versions of the vCons are provided for each of the examples. The example vCons in this document were generated using the [PY-VCON] command line interface. A.1. Two Party Call vCon With Inline Recording This example vCon is for a simple 2 party PSTN call. It has a single Dialog Object which contains a single channel wav format recording with the two parties audio mixed into the single channel. The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_int_rec.vcon { "created_at": "2022-06-21T13:53:00-04:00", "parties": [ { "tel": "+12345678901", "name": "Alice" }, { "tel": "+19876543210", "name": "Bob" } ], "dialog": [ { "type": "recording", "start": "2022-06-21T17:53:26.000+00:00", "duration": 4.72, "parties": [ Petrie Expires 11 March 2027 [Page 73] Internet-Draft JSON vCon September 2026 0, 1 ], "mediatype": "audio/x-wav", "filename": "ab_call.wav", "encoding": "base64url", "body": "UklGRioeAABXQVZFZm10IBQAAAAxAAEAQB8AAFkGAABBAAAAAg BAAWZhY3QEAAAAgJMAAGRhdGH2HQAAoxjXHYXCRekuye4gK4Tsiv4wZeN htuvu3RMkgyPXme4NeahQLG0yeLayx5HCIiRWK7psbQrQTFm57NwQJvIb q1aNxk6VpMYAXSm5Bb1rgStIStvEzmCaOIabxs2gjReJ02Rk0BQtOxHkh UTIZd4VGKoq1KuoCGhrZTx1vRZICuZEcgkGjdH2jiCU1a0NMW6BE8lVHN -OYFPHcZspr0CSl1aeo2hOWUx3CbovpGqKsApWteunk8gMPMOdynRVFWR 5o0l2BvaQDcWugGRHrQa9NcEbG1LWQq_AWLpsXKdMQefGrZu4ZE2ZSDIR GJLTKpIzDybqSyZishQmjuVGztMKNlcyt2vW546JsutgllyppQWroAtHb kyrrGAx3bIiX81g1sR-oVaBbtkobA08fpJYscQSlHHcGm7hDriuWTRm8A 6GKQ1Fbcn10M30DcHctnEchwaAI7dxI2knYCQ5biNHB2Djxm3bFmyU5TA 3ALZt3DaSeABIkiRJcm0AxpEkSZI7AEiSJEmSwUYZ1mQLYNu2bdumPWDb tm3b9gOAJEmSJFkFgCRJkiQZbHRhTccDtm3btm0qAEaOJEmSPABIkiRJk jAASJIkSZLBRhfW9CKAJEmS49gCgCRJkiQ5P2Dbtm3bZgSAJEmSJClkcm VNLgBIkiRJkm8ASJIkSZIvAkiSJEmOswM2btu2bcMVmd3kIoDkyJEkySO AJEmS3AgGgCRJkhypC2DjuG3j9mxOWQiyEUQ1DAtyvQJS9aTWWc4KuFqL O9F4CCJX4yeFkMaSUWSLYMkYinzGa4HzyrEi6-pgHVdXe6mugKzW7VqHY OzcDDsXWnJkeVXHFKpuLDZSrAroZOQohtASpE4dyZSRxozJQC6hJE2OLG iNYLM1ruIWzsCcRhEW6c3AJhq6bmp9cZ0IvAy2a5xJVcUMNE8Qq3G0CEJ y30SNxwrUqUy5NczWkI3S7UCk4iyrBM3AzCvJqkisQPQkcekWjYDoJk4D pWiPmUzXCtKFMkuy1g7MtWnrqLwMSqpjR8vXDipSKzk1D-bOjdLzgNQol lapqqCUmjChmctA6jRmYPOLYJtHbatocTAZCfAQ3LHs6O2zDuCC_LyStA gkklFHZesUspXsSr0S5lCRYg-hXc2tKqMsgeqYkNzSVmLc9mk08zbhzUK O3fhkzJQsvBTCcNk2s-oUxO5zpatkETyFn-xtrxRaTR0hZk3WDo5ELiFW Oq7hmMxgKjdcY0SO4Fk7cijHC6EYNXEZI6oDUQz2EeJMMh1orxSOup04u UUjOtyjwVQ3HdhpuSRyJv0WzpRTo-so7pMpdgKWUk0jlEwjiqBJAwcuw5 lca39VznGdMLAg6o-EEenbKEQxgkeS0xxEteISQcQUNPm8KxaV1xKKIq- BFEpsm_bjIFPLiJwpRoEoSZEuqWuBJLuu1oxZC8ksQB0Wkt_IqrwaSMq8 p4mzEPrFksdx9i9KZVv36AvGkMmyKsHI864U2eThk-iNKRsvgRsqL1vMT UHbPK2ZqVwNHW3oEIay3EaN7xJGgV4mmK8Q1k0O4jHPCFpRzHYxBtbOEZ FMQeMoOVQ2F8GTOXvh9-qARmvOaH9MYaOpdTIFaS-ZJO4OGmZOvo3fEig 5M8lQvwxinfXKhc4QrPGM0pIJthKKkixBYjvlZJlNwXTljSW8VWFex6ts hg7BUiVuU8VoDtlMwRBEkqXknPYWWNFMRtW_FMhsVIpV4RDESZlqtFXHV I3GSmHZyNFMV24h48qsHAdLYeumkSKhTYG1Qp0LpWhr1UitEmaJ1DxuXw gGEe62VbkIUKKbdkv2CFhIZMdnkebSjRKzoCG7Uc32ywDkqkauEsuAzOq K1vnNoKFOtloMaa5YBWwbZI_aPtKzFMpyqx7WNBXEqt43TasSiiaAKW8U 2NSFxMuA6htzZ8ougZAbtgLVamHcwpHZgq6B40DSETuvriVpKyFIUpxog TQvwrBFaY5MScRRE6GFMFGqYp5L26r4Eo2kooM941UsSSRC6NVuXVFmol 1pueTN7sLdPY-uiHbuECmzJFAvywh-KivWrRRtmK4u4p1Va666LNhrFMt F3tZKlTDvgdOFlqN-zUGbWLWajishIrY5DTNLYovSDJJ2co6MCCwrxmmd 6u0wU-CtiptRtUQohlesWT1X0I4kR-NrCEmIIFRGelq51TpDpN2jnuxFr UWfaop44QqkpsixOkeSsFwpyiIoHV4IN-NAtFJboRbtIqoILbeS0SJe1i 2_tl8Xi4xizaGMTbVg3w4C6biZ8LrTot8bmqK5TWIKQWqUWloIyQhHJaA Petrie Expires 11 March 2027 [Page 74] Internet-Draft JSON vCon September 2026 MTQaq4SQWNzTeTaoc5MHEkWrWHEY8moxcmLeQkQStoV9lsiM7S6HlKE6n LKfAJK3GVq0WQeK8fmKNcascCXElWJJd9iwvNSi9mNvGsRwsvvxyHsw0O qqptnxsWafZojyKIykTLXobrtrgcAoryw9tNE7TVstKaCBBmEJ2LMUsXJ KCCBk1kWpsul1ZnZRgWoSnleyJ9njK9VrZXCrYFojg6ofqqAam-jOFbEv QIIcLJF9f-quNDsQiS9ac_ljMEE30OjQXKrmVeCxG7iE3UmIcLO4g0zVP FXAN5biakMaMydRuQRlJ2NuaTOEqKabgJg8hc8KNG6PLgDxn1fDGZAzRL OsMhnEGF6--CEZJU6ly4hJmqiXpha4Wumlis26U5hAVtMxgmpVUIzPOoF gpsVVLLOHiSOrKysoBq0Zx4xZZTVFJOwqozvXM7WEQtpmkq7GqF-ZKnqo 2YBGysVvsSJPm0I1kDMHOdHEkN09hm8NtJWnmgA1HDhVoL2ENW6odeXkN 2SjJCmjxotduUws-l3OyDu8KtGUMMc7ICrJu6XpMSsdQkSTuwEC3ddtk1 sBUQyktmMqA8Ti6G-crYSsVVlmFXE5VLeQOtC5kuFCrCEaqTeuJWQu662 W5sr4KQGcrRVjLFlHVdK1AV8Wt23ivgJmLsuU8TcEjG_ZdREvB1iiaHKh cz1xJMxPOah1FhvcK8lOaK1nSFjSPk8iRxghUySuliw230olEzwCfOKfz Wq1gbFMH82iPYAk3rlNhzICdTIYblWwvYSnWDliN3TRvLwcmQhMcPlYJ2 G0NuYpJD0KtVEqpSuaU1fJLgdp0aRyn1kAzM6_jW-6Ab1vxovqtwJTZzm Z3YM0gTVgRVm-zNm61DvaQaqVr1A4IUsQ8LLkMJpXarHRIxlLSNK3Akqh uGv2uQA6pcuSkrmCpllETvY4g4sgt3IZgbhUtSQ3orOouknUJ1taUPXRI Dbq5EVeuvgzEsQQ5jgvmTk10zaCg2G2Tm9ZAzCJO3ZSLwN3M9XWerUD9y motaWDvHEm_DMyQrMou9w7OsB05t1MLNLZrvBlRCyiKjkSNicYUzuazIJ WzclQ3ziAtZVVs5a6Azhg6GYPKYGHFPaTKYO5ULdIIuIVksabFDJrRRdw 9tAxEiUvZpcIOmrAj69TTtpaJsMpgneyUu9ZtweRYk6l2zKDS5JJsq0xh JBfulMtcL5kscBlAcSNHUsIK9qirs87yELpvrLnOzBCklpo5lYvGlJFUj IBTKTkkcU2BGheP1KqrgF1TrSljrYDcpm5KK2RSYU1nAERu3LaNXQDIce RIjmMASHIjSZI0AkiS5EiSgUcX1gQDgCRJkiR5B2Akx5EkqQOAJEmSJJk FgOQ4kiQZcJQhMbwENm7bxnHnBLZx3MaRbwBIkiTJcTcAOHIkSZLBNhvW xiSAJEmS5DgFYBxJkiRpB4AkSZIkeTxg27Zt28ZoLB1FqA84qpop2DMPx B3yyHWxCEq-fmsS1w4YUjo9rZTHlFH0q2AdUZIptdIgy0RuGddqgdyotU Kb6kDbE4ukV4FunQyxDEpOHKgiUSHekezIka8Kys0TR3PlCFqPHrR10te OkYSnQKOlepQdzQALJTqbhIqAomiNxIiNQFTXZWWneXHhSPESVm4lyc1O EahpnMKFsBQojionS9MISIq9u9dX59iNgu2gpbd5mlatoGmpjpyqjmBt5 mp0Za5gpVZzpUR17lgp0gqgLVIIdvMIpMbktErBDJqS65hy7ApUjiOjsZ jXVtnitEDxJq5aG66ApGvxHWmugByp0ds4LmGdNmmEymntVCmzCtSY5M1 qUBO8kizbWc8NqLsw9nW0Gs7tY1vtFaiWTVDsoGVNdfvy7EFD0zJMJMuh I8etAzstQSK9TqvpdEzdBMUeNm5USi3YDuxszZiSWgyyWeoovtoMyHWWq 2ZV91RVoMpgpZpQ1zgMgaS7rZxLzEDtpK2trKygm6OGJjhtTtkkxQyorh vXclcNUm6s1VLtDlhq1joy3Qo2RpWU-ZK3zs1CNSH1RJqjWGsho6Zx2oS sgGJIcZs6ziDMOLLqmo20XU34CDxWFAlOzAwIclQXst8MptWj3tLfCOz1 7dx5VMYMkhLXgCU1Tg1GjMAbNW7bZkNg47Zt2-bugBtDMS63bTCdKbESG k7cNHK5EMBNJbmW4hLKcq0pfkQL4lCtJpZcZ5lRYExhk0XS7spt4ROnLe TaHEJbJykFmkoBhLVwfG1lDRkpRBIW0aM6dXgKONwlc6IpD-5YTcW9ySC 6cTwpkhfWUFbUi2AfdLNotAyhFTuqiuqzQF43RreH1EHc2G2famXv3GQz EbaFWyWKvA54ay1HF-0WaJMjq906C-JtlpSGDtaOkSItYVtKktMmrGCT1 qEbaSxh1DZOJObUoCBLiW2dhTBZSboKOn4bOVnLCsim9Vyu6wioklaqLM wMRpELrXJT15RJUHWB4zRiZbPWgFzGEW1m7GCjCpoi6w7ArGdeWR1xUdV E4AhQkiPNbtYLqG2e6JS1CkRf_tqZwgo4U6xWhpT3lokwzIBRsy3tVIsg WTSNDUusYBTn6eN4rWCcrBCVxGDNVEXBCm6R5sZ2KBO2buNHk98WyK7DX HWwCsQ1pNVVy-YUSnKsYVypCiTXrkDsqC4TR61A2aJ02vjOIJ2ujquiZO -cSL4MSpGOSs3HCiZxVDdx8hbGiZS5qekUStXiHI5P1o5N0sqA6vpMc_u Petrie Expires 11 March 2027 [Page 75] Internet-Draft JSON vCon September 2026 tIDWYcuJI7GB2uf5jpa2A1k7O2hJ1S50MvwjebFu4sckMmFXwNDJdC2gP GbeqYB24bSA5bg7XWI0ky2DTiDPkIu6A4WapZRrtoJu8rhnJy4CktZkdm 2QuWUj0CnjWs1anShG4kiTXnKkQFnggS42-DhS-8spVTOYSjjIvgZtOSi QV7IC9NHYYg8yAy-Sq4mduYeU4rsSaXE-dSdsI1MmiVVS8ErZp3kBO5wj EUZ4litUKhlYLm5QIFtPFgkxBVCWnInXNoIVYldbH66DrRk768I6gWceU HbhsbZ1MuBLKqaPWZtUSumrm0pKsEkSW8bZx9gzKVdvYjBkIn41UzoBFK 3LyJsuA6kZz3MUuQeU0DhvnbYEcW5bdqWANoUQrDbibYg2RxwykcQtFxu oKIuEcw871DDhunD4tzhWRiZKuwORIrt6cHWGatkIUN7RA5GRSnbytgA2 mUh5lce5QSPAOVI1y5IjtErKQGbd1vwxM0p1FrtcMZJIdtTLS1s6NgKxA tkKwi3lMgWQ3umtJ7EAdaSMlRayAXbdarDp5LxEpxAgMd4zJkKwMhp4iu TKzDKaQSkOh3w7Gkde4udP2zowSzGDUzMPuSMvAJUlVLASPgOSocix9s4 DzYFbqOmlN2Si5CDBPTUeN3AyiSASTj_gKQrGctqdxE0QupVatDbeMTdK KQCOVhgu562BiGc8kqZSgbmtJFpWswNs2N6N8cTEdLcAIqLKKN2nHDKay FL-VSAtmrgY5caoKppCbxnRPxkzJ4IxAzLamG0dPweK2jp0WzCAUF4lmu GuB5PqpZGWxi-Tdu83IkRu58bvpIpTjyo49xVau11BOPq_Mb1I30pTKhu LbE-qCppVr1bMoG5MWofRNaO9FTtUULKkcxK1se60u4PnCSpYeriVaxor WtSTbT3ZK-p8kPe3OUiL2Y0mSV6vGnamuo-xkacV8jGIsCdadKA_ipsBK XQamggPJeduCoXCctcQSaILpxDhsIvSya1mXrwzUEtw0g9UKyjCDNMmYF xWa1G6BBUWGlK_WoJooLVmiBGHikq3TOO9AEUt8yriBEt1F5gjCrW17ll gN6E7bRoi2FDau7PaxcRMsVt5Wr9go19VEzaBf2C4UUY5gmjI1SF2MQJU 7ZWVKrUDpFujiln1R4UivHsaQmzSNxgpGtiM9t9kSpn4bzbHvCnaKZmWq 2AfTjebrYBCpdao7zaCoRVZr8-pgwzgwjVDtAJ0mjdKkiRBhRbsKSrXlN KtbD-aKFDROcw1Ehiq5jtAIKHooV3bV9lCVdKsge8N14oiuIJm0ccukra AjR32iF89grKzNdamJcSEltQ7aTZpjxc0KIillx5XHCHysPSmv5gx4W2O 7Nxf4EFLybMEchVUcy81g-kryZoEsoRzLTe5Iz2DuuJGTo4TWsS7EEqZq ZPWVzwm8cSfnTlMNZnTdRBWqLFRO0FhyCwrNsgWL4WWmlaQNfAKyp7a_o iJiLDOWg3KsAU5ZdmQWsYhsm3Ua6JUbian3EvyU9yIn9BBIfVv4gU81SF F9pZFK-RRuGcuho3tJyUIEIdS4jUsJZ2ElNbAWKI9ApOJ10yWFL91xwha ia6MmSbQUVIm9V4avEEx1c5up0g7a8M1AJlYnF9pUb4H7NrZay2vBJrc2 k2XXIB0rbxGVbEHSTPLkdHVP3SiyFkrSfMuqxxSoUywTl7IK1nkqWR3qF NigHFmJWfeOTZKu4OsYU5RWNWLaxG3QKsxAH0Xr5MYsgRRlrRxdeTFZKP QOWKXeYsHHFFSVOiuy4xLmktxOiccSTLEdt06UeF2KVM1gajRx2oivgNS oT9Uo1WEamTIm9CohXLeNQMbUdBiaxp2WflvGlTgayFeymZpJEhaXJbvJ bhY-6rEiNo1q35r2NWEeGLEiFZUh7qBmzS6rAtsoEfP2qgIqN07jV62KJ L5mJ8xvQMXyuSqOmKTZmr0gILnRjZnWLNy3E6apVcqEmXur4e1Ezc0Mhk FCmGVjYezBbFiQqsRKoZqj4hX5pCtSP8sQhnUaqW1RJSqSNgF3q6VIkts 6gbI6OvI3h4nQmlz1ozQkau0juIS0Qiw7auE3tEEvYXRsZuaB2jJr6uOY LyWaxR4Y1iR7T2sS6u4Z3ULmGNjN21tO7hS4nJs8rxUoT9HUi6Ds6-5mx y1BJLdNZmZPgc7IbpV61UCqx7FkV4FwUSi1CpI5kpRt8Agwbx1liMIIYg vVuNbBCKTsXsSQmQeVyYQ0IV2XedKKrSAvabkyS-5gMV0WNe3twGuVgdy kiZNZTb8MQkvFX_GvDiqZ7Jqx6Qy4kc0YieoUxlCMptKYB1WRQO_AZunS 7XqsYBZOkdyUruCy6A2gRc6A21apH0mB9Slu2wbkbbohLvQWuEnhBE2qF qZQlXpJsBRaRZ4qzkyZ5SIjVEHMJknKsq1BI7RtG_eKABbHbKrC7kCkWI dGQ4GyoUnzCjItYBipvAq8yFbt7WcMKI5j6s3iDkRSmwxGV-cOlub0oNv Y0poFzYBrV5kx60thYpm17IgtARLGrKsJfdFYkcIUJrr1mHrzCMLzKzV9 xgy6Vh1Hpe0SuDYd125Nm9hzUw-hHjlS3JiNQJ1Ijdu2fWbj2CcZ14pk8 msp48awbTU3Vhr-TrTvKFIcJPojF333KkjyGUaSZTV6aQ3L1U5roOuwHE eaE3BkySIiTaBS7LYsgZnfdoSZBqHdpK1LJ6nQXJpwFchNZ-vv8xp4cqv Petrie Expires 11 March 2027 [Page 76] Internet-Draft JSON vCon September 2026 Lqa0cGpWl9XayEpCRW4nNE_pKXYuXQZRLUfXLKmFox06kAmxhaUUlY2rP QBndZc5KgVBZVccIYtqqta31CDpUHcdw6hTWRcLIlSsKUoKsXoqS1xKRs q3AEDV1YXdNQVsLcavky2BUuV3TLK2A5BI-god9seFE9A6yU9tW2-oKUq Z0RZLgCjw5p0l25BC4kZnYadDW1I1grKALt9LbprSAbMalGvUuQSahbhP JagGlRHEktWixXCXhDOQRDBlSVh0mU7LYCU0RTgM_Q7Y6EtCuUUuyS_aO ldRNYTI30c12jsDe9orzdy2Bs1qyYl1X4TtVsuuqWM4YTasUyMbarHYtE byJ3Bo12BWYivAUrq0sGlIcSajNGBOaV83iXSaO2orMgR1LTvvmbqIkV1 bqhycBO6edpup4cqVNsBKorPfKk-kQVj4uOb2vFDR71CiSzRK2yQu9bRk 2U5GA74Bmmc-a3Duh2wt71OqKId1YaORWTKF70pIrx4lS3SjKDFAtoq5N RBOoUKRmaXYWRJGeyNbGFNphZDhQSOeQyWBtYUOViaKmq4Ds5tTbOi1hV D-ObJWqoF3EMeuQZM0kSbIUxka8to7uDEI22iqLLA1GVqU1kdkKUm7juL HMxtBJwoygoxXHHceqgNI0coPGksAkukX7kCphGrtuXkWBENVIzxI-MSU nUrAIukf69lHJDDYvE0teUQ1Y1V9IUo3mzkVUz6AUtQccy8pgLSQ5BXnL IBYzmirr7WBhyUVr9WjuHE0rCwhyWueNtw5IbfpWqrgUNnoiaXLDCiy50 lvsjtdQkWKLAKNekZZirKCnaDVvVu3gHNlVYX3MQLIoSq6KgTCdRPIO0I 2jusa2CmbG5uautQ5Ipl3WT64IOLVbW9PQKNcZZ8-A7Dp3pswbQdQ6PYG NK6HaxUDiVs2AZRnOzRaRUJ1Z6RRI0iTHyfYKRI4cOjrxEqgqospuKyO4 VZK_1lMokw2JQ2EolrXkqIzAI9wynWjn4FHvUqacrIC0RnZac4WPmUzNE CZOpSgqWw2qbCREedIMNFu0NS7rDCQRm5iOledUzULLgCLLkIOJzyDaI6 6hO--g3DQi01zLYCJHtJ2biVHhKPYMtKkxqW7hDEp1K9Uh1g6aTE04qTY AYJ3fXApcCBWS5MWA3OSpIoePwJXFTVo2rGAVRlHst8tgbmeSpDZxUJUk sA6kcd4lkuUIso2UtZG9ClrW79RZ6QpmbuLiclb31E2k7CAqw45ki60A4 6rW27Yq4D2fkhOizUDkok4SxYkyWSmyCFauWgc2xgT6dKJu7dAIqpENKQ bnCDROpEfX1vfUiXK1YHY3fvRXzGD8yJUhCY0A3TJtU4XvgNpMip1KbQ- VLPQMwoxUJ1rIDDQuKyN5qg5Ek_28smIPSHotx9XY9lJF5MxAqi4uJffq QLS4qSZr12BVG3lb7q1gmRdtnJiNcF0kyAqGNkw5KuoOyG3XXJbpCMxxZ zuZ9A7IjBzXzRQHk4Xi66Ciak0sa9ZAk7uQJJmtIBrDQhIZDCCisukrYW 2QWUj1CrhUGrmp9grYb-oYUuwMOGlkzJLUCMht7lzQHpubADSzYJ1ftv4 KrIGVNW4YtUphGyv65IpeYkaXigzfwRxbJK4eULOsuofVTeKhI0V7rVx6 syVN58RFipMWLcXb7HWa0ool1tVSbRerw1U13_R970Yst2rTUDSHiqJEk dDB3u8tLXXEZRi3iLuKOJJsq89gTZ4TTUs9wXJSZIUvXR-7sZUYe8uDt1 KkJhPJMc6uUfVsadMGMupEzmqFtXHdstEeH4X3qL6u60iO3kZOOfwyo_K eppGj8RXzk2zV00dWW80n0QTMxLbTfSB8jmdFp02aKlNlK1l97XheSYTX kOLGwR4faduDnqHCOE2_ZLbx6rq35oJe0p26lepuXOWTt7Ie_DmLNi4ID SZom4YzSEtD47tmVUra4GERBpUJACE0Uua5njuKvpK2ddy599W22r4k_U 2rbBguUz2dY6tWrvTZuZr9sdZE7-olvZu1lUrIGj9QIfauaCtaeXRZr4k fW5Hlxb0fr3U2lWqt6sOSaYEyZJEIdkWdSu89fZvqdnrVNRmum_xp2jTn h2ISAYJiKwN0oNFtnSyD5Eiyw3dPBAY5diql0b9ecXVDBo2Rs63nWNr6t fuyXTmu8nIabShdNojSNGobq52IxMKBgybmG60GIeX0pUNWh0AA9KxbRY yBJnluZH2Jc4hI2iigbuXGkTgINqqeKLVUDKTR2dQt6gpWMhzXTRd4B2B ULCDiSHXDgy8AnTuMqiROgCsJsYs4tGAjt1WcVdE2SATnCLSKbNhtyAJQ ciPHaL0Eyo0bWcX0DiZu29hwFntXxIIy4KuVckrtDCD4tGYSHctAFDmNz VbPQCvDauJGqTgafrcINDGcNGnZR7Zt3PoALxSCUqY0wbyrSHmTIZc" } ], "analysis": [], "attachments": [], "uuid": "01a07da3-661d-89b0-b9a2-279e0d16bc46" Petrie Expires 11 March 2027 [Page 77] Internet-Draft JSON vCon September 2026 } A.2. Email Thread Multipart vCon The following is an unsigned form of an vCon for a 2 message email thread between 2 parties. The email messages are multipart MIME message bodies. The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_email_acct_prob_thread.vcon { "parties": [ { "mailto": "b@example.com", "name": "Bob" }, { "mailto": "a@example.com", "name": "Alice" } ], "dialog": [ { "type": "text", "start": "2022-09-23T21:44:25.000+00:00", "duration": 0, "parties": [ 0, 1 ], "mediatype": "multipart/mixed; \n\tboundary=\"----=_Part_38 8314_1108189513.1663969465698\"", "encoding": "none", "body": "------=_Part_388314_1108189513.1663969465698\r\nCo ntent-Type: multipart/alternative;\r\n\tboundary=\"----=_ Part_388313_805631480.1663969465697\"\r\n\r\n------=_Part _388313_805631480.1663969465697\r\nContent-Type: text/pla in; charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n\ r\nAlice:Please find the image attached.\r\n\r\nRegards,B ob\r\n\r\n------=_Part_388313_805631480.1663969465697\r\n Content-Type: text/html; charset=UTF-8\r\nContent-Transfe r-Encoding: 7bit\r\n\r\n
Alice:
Please find the image attached.

Regards,
Bob

\r\n--- ---=_Part_388313_805631480.1663969465697--\r\n\r\n------= _Part_388314_1108189513.1663969465698\r\nContent-Type: im age/png\r\nContent-Transfer-Encoding: base64\r\nContent-D isposition: attachment; filename=\"=?UTF-8?b?c2NyZWVuc2hv dC5wbmc=?=\"\r\nContent-ID: \r\n\r\niVBORw0KGgoAAAANSUhEUgAAACYAAA AeCAIAAADPdvs5AAAAA3NCSVQICAjb4U/gAAAAGXRFWHRT\r\nb2Z0d2F yZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAALpJREFUSInl1t0NgzAMBOC7 qPvP1gW6Qjdo\r\nj4f0J4qAJI6NROvniE8+mwCvtzv6imTnyf1K/UclH UFWjIvaIL3CHCABSPKKtJckWfY6zw+sj5dq\r\nISdVIzmj2klzTZG2Rm e7NKgOwY6qPrMcUs+2PqchL14P+oyz+fHx77K5Sv8xyxAyZ0uBaxn/Spc U\r\n8NxcosAut1Y3NtjVX7UjZlmpgWTSFyvVQPKB16tSqW53bFnKtyyZ vYT3rSsAWADWAlOjseYFfwAA\r\nAABJRU5ErkJggg==\r\n\r\n----- -=_Part_388314_1108189513.1663969465698--\r\n", "message_id": "<1126698042.388315.1663969465698@mail.yahoo. com>" }, { "type": "text", "start": "2022-09-23T21:44:59.000+00:00", "duration": 0, "parties": [ 1, 0 ], "mediatype": "multipart/alternative; \n\tboundary=\"----=_P art_390234_811845464.1663969499935\"", "encoding": "none", "body": "------=_Part_390234_811845464.1663969499935\r\nCon tent-Type: text/plain; charset=UTF-8\r\nContent-Transfer- Encoding: 7bit\r\n\r\n Hi Bob:Got it. Thanks.\r\n\r\n On Friday, September 23, 2022, 9:44:40 PM UTC, Bob wrote: \r\n \r\n Alice:Please find the image a ttached.\r\n\r\nRegards,Bob\r\n \r\n------=_Part_390234_ 811845464.1663969499935\r\nContent-Type: text/html; chars et=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\n
\r\n
Hi B ob:
Go t it. Thanks.


\r\n \r\n
\r\n
\r\n \r\n
\r\n On Friday, September 23, 2022, 9:44:40 PM UTC, Bo b <b@example.com> wrote:\r\n
\ r\n

\r\n
\r\n
Alice:
Please find the image attached.
< /div>

Regards,
Bob< /div>

\r\n
\r\n
\r\n------=_Par t_390234_811845464.1663969499935--\r\n", "message_id": "<2031327240.390235.1663969499936@mail.yahoo. com>" } ], "analysis": [], "attachments": [], "created_at": "2026-09-07T22:27:41.697+00:00", "subject": "Account problem", "uuid": "01a07dfb-fe0b-89ee-b9a2-279e0d16bc46" } A.3. Email Thread Text vCon The following is an unsigned form of an vCon for a 3 message email thread between 2 parties. The email messages are plain text message bodies. Petrie Expires 11 March 2027 [Page 80] Internet-Draft JSON vCon September 2026 The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ ab_email_prob_followup_text_thread.vcon { "parties": [ { "mailto": "a@example.com", "name": "Alice" }, { "mailto": "b@example.com", "name": "Bob" } ], "dialog": [ { "type": "text", "start": "2022-09-23T23:24:59.000+00:00", "duration": 0, "parties": [ 0, 1 ], "mediatype": "text/plain", "encoding": "none", "body": "Hi Bob:\nI just wanted to follow up to see that yo ur account is ok now.\n\nRegards,\nAlice\n\n", "message_id": "<2031327240.390235.1663969499936@mail.yahoo. com>" }, { "type": "text", "start": "2022-09-23T23:34:32.000+00:00", "duration": 0, "parties": [ 1, 0 ], "mediatype": "text/plain; charset=UTF-8", "encoding": "none", "body": "Hi Alice:\nAll is fine. Thanks.\n\n On Friday, September 23, 2022, 23:24:59 PM UTC, Alice wrote: \n \n Hi Bob:\n I just wanted to follow up to see that your account is ok now.\n \n Regards,\n Alic e\n", "message_id": "<1126698042.388315.1663969465698@mail.yahoo. Petrie Expires 11 March 2027 [Page 81] Internet-Draft JSON vCon September 2026 com>" }, { "type": "text", "start": "2022-09-23T23:38:12.000+00:00", "duration": 0, "parties": [ 0, 1 ], "mediatype": "text/plain", "encoding": "none", "body": "Awesome!\n\n On Friday, September 23, 2022, 23: 34: PM UTC, Bob wrote: \n\n Hi Alice:\n All is fine. Thanks.\n \n On Friday, September 23 , 2022, 23:24:59 PM UTC, Alice wrote: \n \n Hi Bob:\n I just wanted to follow up to see t hat your account is ok now.\n \n Regards,\n Alic e\n", "message_id": "<2031327240.390235.1663969499936@mail.yahoo. com>" } ], "analysis": [], "attachments": [], "created_at": "2026-09-07T22:32:08.133+00:00", "subject": "Account issue followup", "uuid": "01a07e00-0ecc-81db-b9a2-279e0d16bc46" } A.4. Two Party Call vCon With Externally Referenced Recording This example vCon is for a simple 2 party PSTN call. It has a single Dialog Object which reference a single channel wav format recording with the two parties audio mixed into the single channel. The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec.vcon Petrie Expires 11 March 2027 [Page 82] Internet-Draft JSON vCon September 2026 { "created_at": "2022-06-21T13:53:00-04:00", "parties": [ { "tel": "+12345678901", "name": "Alice" }, { "tel": "+19876543210", "name": "Bob" } ], "dialog": [ { "type": "recording", "start": "2022-06-21T17:53:26.000+00:00", "duration": 33.12, "parties": [ 0, 1 ], "url": "https://github.com/ietf-wg-vcon/draft-ietf-vcon-vco n-core/raw/refs/heads/main/examples/ab_call.mp3", "mediatype": "audio/x-mp3", "filename": "ab_call.mp3", "content_hash": "sha512-GLy6IPaIUM1GqzZqfIPZlWjaDsNgNvZM0iC ONNThnH0a75fhUM6cYzLZ5GynSURREvZwmOh54-2lRRieyj82UQ" } ], "analysis": [], "attachments": [], "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46" } A.5. Two Party Call vCon with Analysis TODO: fix diarization in transcript The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec_analysis.vcon { "created_at": "2022-06-21T13:53:00-04:00", "parties": [ { "tel": "+12345678901", "name": "Alice" Petrie Expires 11 March 2027 [Page 83] Internet-Draft JSON vCon September 2026 }, { "tel": "+19876543210", "name": "Bob" } ], "dialog": [ { "type": "recording", "start": "2022-06-21T17:53:26.000+00:00", "duration": 33.12, "parties": [ 0, 1 ], "url": "https://github.com/ietf-wg-vcon/draft-ietf-vcon-vco n-core/raw/refs/heads/main/examples/ab_call.mp3", "mediatype": "audio/x-mp3", "filename": "ab_call.mp3", "content_hash": "sha512-GLy6IPaIUM1GqzZqfIPZlWjaDsNgNvZM0iC ONNThnH0a75fhUM6cYzLZ5GynSURREvZwmOh54-2lRRieyj82UQ" } ], "analysis": [ { "type": "transcript", "dialog": 0, "body": { "metadata": { "transaction_key": "deprecated", "request_id": "01a07da8-d6f9-7bd0-9bb0-909cc027e3d2", "sha256": "04dc074100461f5082f2a7a286d0161f0e2728025e83 c20592aa7ea3724c2933", "created": "2026-09-07T20:56:52.282Z", "duration": 33.119938, "channels": 1, "models": [ "2187e11a-3532-4498-b076-81fa530bdd49" ], "model_info": { "2187e11a-3532-4498-b076-81fa530bdd49": { "name": "general-nova-3", "version": "2025-07-31.0", "arch": "nova-3" } }, "diarize_info": { "model_uuid": "a9f85c2b-5afb-4b9d-b49b-492c43a01cfb", Petrie Expires 11 March 2027 [Page 84] Internet-Draft JSON vCon September 2026 "arch": "v1" } }, "results": { "channels": [ { "alternatives": [ { "transcript": "Hello. This is example.com. My n ame is Bob. How can I help you? Hi. I'd like to add Fu to my service. Okay. Can you give m e your name and phone number so I can look up your account? My name is Alice, and my numbe r is 1234567890. Thank you. Okay. I've added two to your service. Is there anything else t hat I can help you with? No. Thank you. Goodb ye. Goodbye. Have a nice day.", "confidence": 1, "words": [ { "word": "hello", "start": 1.1999999, "end": 1.76, "confidence": 0.9946289, "speaker": 0, "speaker_confidence": 0.13926673, "punctuated_word": "Hello." }, { "word": "this", "start": 1.76, "end": 2.24, "confidence": 1, "speaker": 0, "speaker_confidence": 0.13926673, "punctuated_word": "This" }, { "word": "is", "start": 2.24, "end": 2.3999999, "confidence": 0.9970703, "speaker": 0, "speaker_confidence": 0.13926673, "punctuated_word": "is" }, { "word": "example.com", Petrie Expires 11 March 2027 [Page 85] Internet-Draft JSON vCon September 2026 "start": 2.3999999, "end": 3.4399998, "confidence": 0.90690106, "speaker": 0, "speaker_confidence": 0.13926673, "punctuated_word": "example.com." }, { "word": "my", "start": 3.4399998, "end": 3.6, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "My" }, { "word": "name", "start": 3.6, "end": 3.6799998, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "name" }, { "word": "is", "start": 3.6799998, "end": 3.84, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "is" }, { "word": "bob", "start": 3.84, "end": 4.3199997, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "Bob." }, { "word": "how", "start": 4.3199997, "end": 4.48, "confidence": 1, Petrie Expires 11 March 2027 [Page 86] Internet-Draft JSON vCon September 2026 "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "How" }, { "word": "can", "start": 4.48, "end": 4.72, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "can" }, { "word": "i", "start": 4.72, "end": 4.7999997, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "I" }, { "word": "help", "start": 4.7999997, "end": 5.04, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "help" }, { "word": "you", "start": 5.04, "end": 5.52, "confidence": 1, "speaker": 0, "speaker_confidence": 0.514462, "punctuated_word": "you?" }, { "word": "hi", "start": 5.6, "end": 6.3199997, "confidence": 0.9995117, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "Hi." Petrie Expires 11 March 2027 [Page 87] Internet-Draft JSON vCon September 2026 }, { "word": "i'd", "start": 6.3199997, "end": 6.72, "confidence": 0.99560547, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "I'd" }, { "word": "like", "start": 6.72, "end": 6.8799996, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "like" }, { "word": "to", "start": 6.8799996, "end": 6.96, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "to" }, { "word": "add", "start": 6.96, "end": 7.2799997, "confidence": 0.9819336, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "add" }, { "word": "fu", "start": 7.2799997, "end": 7.68, "confidence": 0.36791992, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "Fu" }, { "word": "to", Petrie Expires 11 March 2027 [Page 88] Internet-Draft JSON vCon September 2026 "start": 7.68, "end": 8, "confidence": 0.99609375, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "to" }, { "word": "my", "start": 8, "end": 8.16, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "my" }, { "word": "service", "start": 8.16, "end": 8.799999, "confidence": 0.9892578, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "service." }, { "word": "okay", "start": 9.2, "end": 9.839999, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "Okay." }, { "word": "can", "start": 10.16, "end": 10.4, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "Can" }, { "word": "you", "start": 10.4, "end": 10.559999, "confidence": 1, Petrie Expires 11 March 2027 [Page 89] Internet-Draft JSON vCon September 2026 "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "you" }, { "word": "give", "start": 10.559999, "end": 10.719999, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "give" }, { "word": "me", "start": 10.719999, "end": 10.88, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5764292, "punctuated_word": "me" }, { "word": "your", "start": 10.88, "end": 11.04, "confidence": 1, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "your" }, { "word": "name", "start": 11.04, "end": 11.2, "confidence": 1, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "name" }, { "word": "and", "start": 11.2, "end": 11.44, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "and" Petrie Expires 11 March 2027 [Page 90] Internet-Draft JSON vCon September 2026 }, { "word": "phone", "start": 11.44, "end": 11.599999, "confidence": 1, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "phone" }, { "word": "number", "start": 11.599999, "end": 11.84, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "number" }, { "word": "so", "start": 11.84, "end": 12.08, "confidence": 0.8935547, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "so" }, { "word": "i", "start": 12.08, "end": 12.16, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.27236283, "punctuated_word": "I" }, { "word": "can", "start": 12.16, "end": 12.32, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "can" }, { "word": "look", Petrie Expires 11 March 2027 [Page 91] Internet-Draft JSON vCon September 2026 "start": 12.32, "end": 12.48, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "look" }, { "word": "up", "start": 12.48, "end": 12.639999, "confidence": 0.9980469, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "up" }, { "word": "your", "start": 12.639999, "end": 12.799999, "confidence": 0.9980469, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "your" }, { "word": "account", "start": 12.799999, "end": 13.12, "confidence": 0.9980469, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "account?" }, { "word": "my", "start": 13.735, "end": 14.135, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "My" }, { "word": "name", "start": 14.135, "end": 14.295, "confidence": 1, Petrie Expires 11 March 2027 [Page 92] Internet-Draft JSON vCon September 2026 "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "name" }, { "word": "is", "start": 14.295, "end": 14.455, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "is" }, { "word": "alice", "start": 14.455, "end": 15.174999, "confidence": 0.9355469, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "Alice," }, { "word": "and", "start": 15.174999, "end": 15.335, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "and" }, { "word": "my", "start": 15.335, "end": 15.575, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "my" }, { "word": "number", "start": 15.575, "end": 15.8949995, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "number" Petrie Expires 11 March 2027 [Page 93] Internet-Draft JSON vCon September 2026 }, { "word": "is", "start": 15.8949995, "end": 16.455, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "is" }, { "word": "1234567890", "start": 16.455, "end": 20.615, "confidence": 0.9999512, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "1234567890." }, { "word": "thank", "start": 20.775, "end": 21.095, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "Thank" }, { "word": "you", "start": 21.095, "end": 21.654999, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "you." }, { "word": "okay", "start": 22.935, "end": 23.335, "confidence": 1, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "Okay." }, { "word": "i've", Petrie Expires 11 March 2027 [Page 94] Internet-Draft JSON vCon September 2026 "start": 24.134874, "end": 24.534874, "confidence": 0.99560547, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "I've" }, { "word": "added", "start": 24.534874, "end": 24.854876, "confidence": 0.9873047, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "added" }, { "word": "two", "start": 24.854876, "end": 25.094875, "confidence": 0.7949219, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "two" }, { "word": "to", "start": 25.094875, "end": 25.254875, "confidence": 0.8339844, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "to" }, { "word": "your", "start": 25.254875, "end": 25.414875, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "your" }, { "word": "service", "start": 25.414875, "end": 25.734875, "confidence": 0.99560547, Petrie Expires 11 March 2027 [Page 95] Internet-Draft JSON vCon September 2026 "speaker": 0, "speaker_confidence": 0.6558071, "punctuated_word": "service." }, { "word": "is", "start": 25.734875, "end": 25.894875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "Is" }, { "word": "there", "start": 25.894875, "end": 26.054874, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "there" }, { "word": "anything", "start": 26.054874, "end": 26.294874, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "anything" }, { "word": "else", "start": 26.294874, "end": 26.534874, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "else" }, { "word": "that", "start": 26.534874, "end": 26.694874, "confidence": 0.6303711, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "that" Petrie Expires 11 March 2027 [Page 96] Internet-Draft JSON vCon September 2026 }, { "word": "i", "start": 26.694874, "end": 26.774876, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "I" }, { "word": "can", "start": 26.774876, "end": 26.934875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "can" }, { "word": "help", "start": 26.934875, "end": 27.094875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "help" }, { "word": "you", "start": 27.094875, "end": 27.174875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "you" }, { "word": "with", "start": 27.174875, "end": 27.734875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "with?" }, { "word": "no", Petrie Expires 11 March 2027 [Page 97] Internet-Draft JSON vCon September 2026 "start": 28.054874, "end": 28.534874, "confidence": 1, "speaker": 0, "speaker_confidence": 0.4986121, "punctuated_word": "No." }, { "word": "thank", "start": 28.534874, "end": 28.774876, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "Thank" }, { "word": "you", "start": 28.774876, "end": 29.334873, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "you." }, { "word": "goodbye", "start": 29.334875, "end": 29.974874, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "Goodbye." }, { "word": "goodbye", "start": 30.374874, "end": 31.014874, "confidence": 0.9995117, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "Goodbye." }, { "word": "have", "start": 31.014874, "end": 31.334875, "confidence": 1, Petrie Expires 11 March 2027 [Page 98] Internet-Draft JSON vCon September 2026 "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "Have" }, { "word": "a", "start": 31.334875, "end": 31.494875, "confidence": 1, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "a" }, { "word": "nice", "start": 31.494875, "end": 31.654875, "confidence": 0.99902344, "speaker": 0, "speaker_confidence": 0.5971861, "punctuated_word": "nice" }, { "word": "day", "start": 31.654875, "end": 31.894875, "confidence": 1, "speaker": 0, "speaker_confidence": 0, "punctuated_word": "day." } ], "paragraphs": { "transcript": "\nSpeaker 0: Hello. This is ex ample.com. My name is Bob. How can I help y ou? Hi.\n\nI'd like to add Fu to my service . Okay. Can you give me your name and phone number so I can look up your account? My n ame is Alice, and my number is 1234567890. Thank you.\n\nOkay. I've added two to your service. Is there anything else that I can help you with? No. Thank you.\n\nGoodbye. G oodbye. Have a nice day.", "paragraphs": [ { "sentences": [ { "text": "Hello.", Petrie Expires 11 March 2027 [Page 99] Internet-Draft JSON vCon September 2026 "start": 1.1999999, "end": 1.76 }, { "text": "This is example.com.", "start": 1.76, "end": 3.4399998 }, { "text": "My name is Bob.", "start": 3.4399998, "end": 4.3199997 }, { "text": "How can I help you?", "start": 4.3199997, "end": 5.52 }, { "text": "Hi.", "start": 5.6, "end": 6.3199997 } ], "speaker": 0, "num_words": 14, "start": 1.1999999, "end": 6.3199997 }, { "sentences": [ { "text": "I'd like to add Fu to my ser vice.", "start": 6.3199997, "end": 8.799999 }, { "text": "Okay.", "start": 9.2, "end": 9.839999 }, { "text": "Can you give me your name an d phone number so I can look up you r account?", "start": 10.16, "end": 13.12 Petrie Expires 11 March 2027 [Page 100] Internet-Draft JSON vCon September 2026 }, { "text": "My name is Alice, and my num ber is 1234567890.", "start": 13.735, "end": 20.615 }, { "text": "Thank you.", "start": 20.775, "end": 21.654999 } ], "speaker": 0, "num_words": 36, "start": 6.3199997, "end": 21.654999 }, { "sentences": [ { "text": "Okay.", "start": 22.935, "end": 23.335 }, { "text": "I've added two to your servi ce.", "start": 24.134874, "end": 25.734875 }, { "text": "Is there anything else that I can help you with?", "start": 25.734875, "end": 27.734875 }, { "text": "No.", "start": 28.054874, "end": 28.534874 }, { "text": "Thank you.", "start": 28.534874, "end": 29.334873 } ], Petrie Expires 11 March 2027 [Page 101] Internet-Draft JSON vCon September 2026 "speaker": 0, "num_words": 20, "start": 22.935, "end": 29.334873 }, { "sentences": [ { "text": "Goodbye.", "start": 29.334875, "end": 29.974874 }, { "text": "Goodbye.", "start": 30.374874, "end": 31.014874 }, { "text": "Have a nice day.", "start": 31.014874, "end": 31.894875 } ], "speaker": 0, "num_words": 6, "start": 29.334875, "end": 31.894875 } ] } } ] } ] } }, "encoding": "json", "vendor": "deepgram", "schema": "deepgram_prerecorded", "product": "transcription" } ], "attachments": [], "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46" } Petrie Expires 11 March 2027 [Page 102] Internet-Draft JSON vCon September 2026 A.6. Signed vCon This example vCon is the signed form of the Two Party Call vCon With Externally Referenced Recording (Appendix A.4) example. The private key used to sign this can be found at: https://raw.githubusercontent.com/vcon-dev/vcon/main/certs/fake_grp.key The certificate chain is included in the x5c parameter of the header Object. The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec_signed.vcon { "payload": "eyJjcmVhdGVkX2F0IjoiMjAyMi0wNi0yMVQxMzo1MzowMC0wNDo wMCIsInBhcnRpZXMiOlt7InRlbCI6IisxMjM0NTY3ODkwMSIsIm5hbWUiOiJB bGljZSJ9LHsidGVsIjoiKzE5ODc2NTQzMjEwIiwibmFtZSI6IkJvYiJ9XSwiZ GlhbG9nIjpbeyJ0eXBlIjoicmVjb3JkaW5nIiwic3RhcnQiOiIyMDIyLTA2LT IxVDE3OjUzOjI2LjAwMCswMDowMCIsImR1cmF0aW9uIjozMy4xMiwicGFydGl lcyI6WzAsMV0sInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9pZXRmLXdnLXZj b24vZHJhZnQtaWV0Zi12Y29uLXZjb24tY29yZS9yYXcvcmVmcy9oZWFkcy9tY WluL2V4YW1wbGVzL2FiX2NhbGwubXAzIiwibWVkaWF0eXBlIjoiYXVkaW8veC 1tcDMiLCJmaWxlbmFtZSI6ImFiX2NhbGwubXAzIiwiY29udGVudF9oYXNoIjo ic2hhNTEyLUdMeTZJUGFJVU0xR3F6WnFmSVBabFdqYURzTmdOdlpNMGlDT05O VGhuSDBhNzVmaFVNNmNZekxaNUd5blNVUlJFdlp3bU9oNTQtMmxSUmlleWo4M lVRIn1dLCJhbmFseXNpcyI6W10sImF0dGFjaG1lbnRzIjpbXSwidXVpZCI6Ij AxYTA3ZGE4LWMyYmItODNlNS1iOWEyLTI3OWUwZDE2YmM0NiJ9", "signatures": [ { "header": { "x5c": [ "MIID0TCCArkCAQEwDQYJKoZIhvcNAQELBQAwgasxCzAJBgNVBAYTAl VTMQswCQYDVQQIDAJNQTERMA8GA1UEBwwIRmFrZXRvd24xETAPBgN VBAoMCEZha2VWY29uMREwDwYDVQQLDAhEaXZpc2lvbjEYMBYGA1UE AwwPZGl2LmZha2V2Y29uLmlvMSEwHwYJKoZIhvcNAQkBFhJhZG1pb kBmYWtldmNvbi5vcmcxGTAXBgNVHREMEGRpdi5mYWtldmNvbi5vcm cwHhcNMjIwNjA0MDE0MzI1WhcNMzIwNjAxMDE0MzI1WjCBsDELMAk GA1UEBhMCVVMxCzAJBgNVBAgMAk1BMREwDwYDVQQHDAhGYWtldG93 bjERMA8GA1UECgwIRmFrZVZjb24xDjAMBgNVBAsMBUdyb3VwMRwwG gYDVQQDDBNncnAuZGl2LmZha2V2Y29uLmlvMSEwHwYJKoZIhvcNAQ kBFhJhZG1pbkBmYWtldmNvbi5vcmcxHTAbBgNVHREMFGdycC5kaXY uZmFrZXZjb24ub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAtMtTCxeIROb1FmWIexe7Op95qYIVNEqn+fDghxWqoYm6T 75BGsl4rB9txFQeef3Q5SJIzeqffJDssXDsyREuwQ2iTcOrZaZxs8 h1NX9NjVD6MMAwx7tw0Cgmu8rj6+/Kjs0KI8OzCuDXZGTGf/bH6EQ W85qYh9IF0Pvijf3uq+HCke6WApusx76LpUp36IzvYEuTbWBFeoLo Petrie Expires 11 March 2027 [Page 103] Internet-Draft JSON vCon September 2026 +dyUdWmXpj0ghHiWZtT5zxJn9VrUhJX5KlaI0palWd0fOnr7mkdq7 9sFsKjEOcr1lanceAicCpD3/zRW+7AS8atGKAMfe2CcXEABucI7Dt tLMXcDIJM6EOkyW7n4due1RXGuNgnjeQIDAQABMA0GCSqGSIb3DQE BCwUAA4IBAQAQLjhKomSx1OqThhcO+aK0rzX6RjKh0eM0X7O7pPC8 1HxZKCDLhDvnUO9++17U6ba0bTnznKYKKG7HnDcB4dKBbH8XP2u3E nDskyoMrKpYRsRKwwJa8+RwOS7JEg+OtXYCRbWZvPjAC/z6o6OZK+ QPTyK5Grw2Px2mTr6BAdBQv7XsYWBRwOZyvSGnKyK60jcPlYUnu6Q t0fYXiYp6qF5l956fuT0d2UyDkM7S/Z7K+OC9+aIBNKH32B3nfXqZ PuP8WuiTOxcMwnefPwjxaqndFUkyk2Y+i6nXU8oN/DGUOTfY4xbm3 s3q7Dq5QPtq5kljB9yYkvcOULCSAmWBZl+G", "MIIEyTCCArECAQEwDQYJKoZIhvcNAQELBQAwgagxCzAJBgNVBAYTAl VTMQswCQYDVQQIDAJNQTERMA8GA1UEBwwIRmFrZXRvd24xFTATBgN VBAoMDEZha2VWY29uIEluYzESMBAGA1UECwwJQ29ycG9yYXRlMRQw EgYDVQQDDAtmYWtldmNvbi5pbzEhMB8GCSqGSIb3DQEJARYSYWRta W5AZmFrZXZjb24ub3JnMRUwEwYDVR0RDAxmYWtldmNvbi5vcmcwHh cNMjIwNTI5MjEzOTMxWhcNMzIwNTI2MjEzOTMxWjCBqzELMAkGA1U EBhMCVVMxCzAJBgNVBAgMAk1BMREwDwYDVQQHDAhGYWtldG93bjER MA8GA1UECgwIRmFrZVZjb24xETAPBgNVBAsMCERpdmlzaW9uMRgwF gYDVQQDDA9kaXYuZmFrZXZjb24uaW8xITAfBgkqhkiG9w0BCQEWEm FkbWluQGZha2V2Y29uLm9yZzEZMBcGA1UdEQwQZGl2LmZha2V2Y29 uLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM81 SKie1S78VAOBDc3LflYNSL9phecmjQs/9P+iqDXSVm3xpoqszGoLn 7w21aUAxl++F9Z80Tc70URn2qqUcVTYcx3SmgHuYgspEmJsMRor/m n3HpHr2ajh+26RKgDGPBrtebeH1si8mX15a/ICzHxrUaE2Y/6DZ/2 wGTXrAE4bYAOUaYft5GGSZl6yP6dXg3EJy2bK2cUTdMIZG/Y7Ny1D 3N4V7MBirDd5FU7k6pMbyr3d/xoi8VL8F1mRCf6zxfFOjaMFT0atE iTp3M0rw6iS08hy0cDFsPJzIcPgXEitUgGPo/NLgeb8ZmL1kg9B2v MgaanbuZB6il79A4GgDIUCAwEAATANBgkqhkiG9w0BAQsFAAOCAgE AWOJJlvSQDsDROQZNdX3kMkAH3HYyAlE7LHNtIYHVhyt7I7WuqS6Z GvSoxSfkT0GdAN7cV+jchdZpAnpCXGX+yHuSvrw4oSqigdSLeSUMx 2zaSv4wLAvydC/zDkHIRObyuDEKyy/pa4Na0aunPU3E1Bg0V+JqQ3 RUJIy1v6AGLrliwaEIgP3Clzi/u640dWBHabOEjxFj9bX73+FRWhi t4EzOJYKvti1EXlmRjMbj3SmsrcbGMrpu4WipEG5S05VlMhXXSyQq 9IScFho5CFtamDgI3jL49lyrx0+CcjDkw0nW9fXdAtB3BhSYEXdLu JAvLRQixUQFwH23doumPi1uW8euEhHTRo1pEFWQ5U59NOTUA5Ghuu po0aM2CnDD5Re8uO3ChilCUb0FlwgMD/7ABSd1LChU8iluhKy9CEB R2zc8uTqW43Gcv/psBaejgOKJlxZuusGVvuV1nTHRa4hmFYxxPel7 ogeZzGQqFjBlb35CE+BcGYY0ViaHefy+fmi/fN6NrrN6pBOPjVZbp CFn+wFTUyrMU5Vq/FaPe0us7i3paQcwIz9wyide5OztpxebY8UnXm y22X+6PkHB0jnL35Qe8xl7Z0nMZNdy4xkzGgaa6talRDPhKkY1lId w+KdCXJuUc7rkLKa5po9SPdvVLhEPu26SHkI0I+d5hz+gMp8=", "MIIGMzCCBBugAwIBAgIUHk/6QbzjDZ9AONAFvwYJqB/jbvowDQYJKo ZIhvcNAQELBQAwgagxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNQTE RMA8GA1UEBwwIRmFrZXRvd24xFTATBgNVBAoMDEZha2VWY29uIElu YzESMBAGA1UECwwJQ29ycG9yYXRlMRQwEgYDVQQDDAtmYWtldmNvb i5pbzEhMB8GCSqGSIb3DQEJARYSYWRtaW5AZmFrZXZjb24ub3JnMR UwEwYDVR0RDAxmYWtldmNvbi5vcmcwHhcNMjIwNTI5MjEzOTMxWhc NMzIwNTI2MjEzOTMxWjCBqDELMAkGA1UEBhMCVVMxCzAJBgNVBAgM Petrie Expires 11 March 2027 [Page 104] Internet-Draft JSON vCon September 2026 Ak1BMREwDwYDVQQHDAhGYWtldG93bjEVMBMGA1UECgwMRmFrZVZjb 24gSW5jMRIwEAYDVQQLDAlDb3Jwb3JhdGUxFDASBgNVBAMMC2Zha2 V2Y29uLmlvMSEwHwYJKoZIhvcNAQkBFhJhZG1pbkBmYWtldmNvbi5 vcmcxFTATBgNVHREMDGZha2V2Y29uLm9yZzCCAiIwDQYJKoZIhvcN AQEBBQADggIPADCCAgoCggIBAMIeaqkm8pn6mwUzWBgnQiY9Jr3Vy VamxBc9/duT8eCN9mmANGzX5zGj86KtGjlDcoAzANrtsr2Dpz4zra 29HWbwbOa1ZTOOaR93QgifkS802zp+zHGGRaKlq3euDqDVzyXinhs vXOVlEwkOrAvV6kUcTIzcxVibrFfHttzv/hXUNxjCouAE7MIG6wO8 y+E2bBkg7R5ydfeU4Q9npBefwtiQ8oWf0C46mDYFQ8l31goae17Vp iyS3t4h5HL+1yqdYJSWms5Qh0vp9req5AjwuHIDBxNLpO2gY1SQmS dO03oLcZwBglGKlpQSwYgr9J5uo2B+NV9aYKEO51bySinSF8T4D/o 4cq6oyJLXBwmSsLbjjVIQBoSdRBmWh8zE2ZzFNaaBlYO9ikIaWXwb tkbsE+4QpOaOj/kUIHLFI9iOhOidsInaOfgYzw12FtGE1Wq5x5Xsz wWpPWU8NQw8gzTzFzVObxrfcsXrs0s6feuTCDMt5Zht2HCWFr9TmY DFAfOB05kFWTi5sE5KYaP54iJvjAFmuTDjlif7Z8ZWVal9XB+g3sM yQ8DVEj/0dXS+nRVuJQlUH4ql9SUIwK63RKdedALYC6X1j2lgK9aT uL+cyNJ5SbuNA95CxNgvWtBrcO6HxlbmIDxKrAAo5aj4hnlQcY4RR bNwppCAjK+zcASlpyvRAgMBAAGjUzBRMB0GA1UdDgQWBBSSDtfqU6 +DEyYPCar08yVnnZSFzTAfBgNVHSMEGDAWgBSSDtfqU6+DEyYPCar 08yVnnZSFzTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA A4ICAQC8JDxTdmc86YFdKElWQnWxoPMsPeRyDYQoVTC2wydZsdJ5d GbkAhYlPPxK+zypP18fGry5PHAHl9mZYz+FdGjNTwllcfN9/G0Sdo y4kU9eN9KfC9OUIkBIq8D0r7ANT3l3XmGbnIxWJEtb0SyTcqk3dwW cNTqGguhQ03jUKW5yUpVoQjN4TtmHyweoYTNi+HKsCUvEXGdA9wdh 4jVOqYeepmsax5eTUJsKuCKqQ3+xB7JONw85imfVotySCXsoMe7lu SRYuldn8SBIpKYUGJlpWIi6Gr0mLwHarrYoi9bwtcKAxRNXZiGQgh iUw2Zsw+jmgBrEtI4Iarg8wWqJ5Mov7MsTVpnoZ5Xywr0GznDlgcN tyqMibOULeM8yLPQrHn/tQjSiP3eUPz6+Zb9FqzQJCCi2UiauD4mO gzBSCCbew9PDYb2QeMZqNZmN3eVNMV4hh7t9jTc0zqPF5jluddVmp dHxLx/T9XZuSV21p8clNprJNQxprtHpxDxjhNMIrcV39rzi9tNikw mzRMf0r40f/JWnaV668sekDXtvIj8pZwyE4FNuaiJwojkQxDfjqk6 7Qs5NUQsFcaIwMes8It74ASHm8DUKEhDT2ASgMtUDwKWrOBefrSPq jY7+EMh2yVZnQhMwpx4s7CH0za32Yq+KC8GotHdI6jisDEom7aHgl g==" ], "alg": "RS256", "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46" }, "signature": "Q6JQlnQwjxOGg_Sy3xFghaG_gQjySKC6KzaNCH0MZGKRN Y2i_K5T6zTidFskzI0lvGAi3EX54aRPWpTdStROdIVgbFNdYriqv-W6s_ Hdy-l7LNW5v4TpuPAmkfE6MYmBW_FVkHiD9PojVKJ3Y8rZ3CT2h6tZxU1 My2UdFCpKb98o7xunmIqAonJ9zWKpZK3oqTk9M9mPT5TKFYV9TL08tTrK JrGQAaiQZa3rxnj-jkJjsNRfX0rI48YNimyiNPPiauBAT0yavZw-2I8og TtvBWpSh0piu3Or1mUTHPH1vfHynV-mhz57h5PXOUmxJyDw9dnJ7wjX_c XJPp3dj_4YDw", "protected": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6W yJNSUlEMFRDQ0Fya0NBUUV3RFFZSktvWklodmNOQVFFTEJRQXdnYXN4Q3 pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSURBSk5RVEVSTUE4R0ExVUV Petrie Expires 11 March 2027 [Page 105] Internet-Draft JSON vCon September 2026 Cd3dJUm1GclpYUnZkMjR4RVRBUEJnTlZCQW9NQ0VaaGEyVldZMjl1TVJF d0R3WURWUVFMREFoRWFYWnBjMmx2YmpFWU1CWUdBMVVFQXd3UFpHbDJMb VpoYTJWMlkyOXVMbWx2TVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpoWkcxcG JrQm1ZV3RsZG1OdmJpNXZjbWN4R1RBWEJnTlZIUkVNRUdScGRpNW1ZV3R sZG1OdmJpNXZjbWN3SGhjTk1qSXdOakEwTURFME16STFXaGNOTXpJd05q QXhNREUwTXpJMVdqQ0JzREVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQ kFnTUFrMUJNUkV3RHdZRFZRUUhEQWhHWVd0bGRHOTNiakVSTUE4R0ExVU VDZ3dJUm1GclpWWmpiMjR4RGpBTUJnTlZCQXNNQlVkeWIzVndNUnd3R2d ZRFZRUUREQk5uY25BdVpHbDJMbVpoYTJWMlkyOXVMbWx2TVNFd0h3WUpL b1pJaHZjTkFRa0JGaEpoWkcxcGJrQm1ZV3RsZG1OdmJpNXZjbWN4SFRBY kJnTlZIUkVNRkdkeWNDNWthWFl1Wm1GclpYWmpiMjR1YjNKbk1JSUJJak FOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdE10VEN 4ZUlST2IxRm1XSWV4ZTdPcDk1cVlJVk5FcW4rZkRnaHhXcW9ZbTZUNzVC R3NsNHJCOXR4RlFlZWYzUTVTSkl6ZXFmZkpEc3NYRHN5UkV1d1EyaVRjT 3JaYVp4czhoMU5YOU5qVkQ2TU1Bd3g3dHcwQ2dtdThyajYrL0tqczBLST hPekN1RFhaR1RHZi9iSDZFUVc4NXFZaDlJRjBQdmlqZjN1cStIQ2tlNld BcHVzeDc2THBVcDM2SXp2WUV1VGJXQkZlb0xvK2R5VWRXbVhwajBnaEhp V1p0VDV6eEpuOVZyVWhKWDVLbGFJMHBhbFdkMGZPbnI3bWtkcTc5c0ZzS 2pFT2NyMWxhbmNlQWljQ3BEMy96UlcrN0FTOGF0R0tBTWZlMkNjWEVBQn VjSTdEdHRMTVhjRElKTTZFT2t5VzduNGR1ZTFSWEd1TmduamVRSURBUUF CTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBUUxqaEtvbVN4MU9xVGho Y08rYUswcnpYNlJqS2gwZU0wWDdPN3BQQzgxSHhaS0NETGhEdm5VTzkrK zE3VTZiYTBiVG56bktZS0tHN0huRGNCNGRLQmJIOFhQMnUzRW5Ec2t5b0 1yS3BZUnNSS3d3SmE4K1J3T1M3SkVnK090WFlDUmJXWnZQakFDL3o2bzZ PWksrUVBUeUs1R3J3MlB4Mm1UcjZCQWRCUXY3WHNZV0JSd09aeXZTR25L eUs2MGpjUGxZVW51NlF0MGZZWGlZcDZxRjVsOTU2ZnVUMGQyVXlEa003U y9aN0srT0M5K2FJQk5LSDMyQjNuZlhxWlB1UDhXdWlUT3hjTXduZWZQd2 p4YXFuZEZVa3lrMlkraTZuWFU4b04vREdVT1RmWTR4Ym0zczNxN0RxNVF QdHE1a2xqQjl5WWt2Y09VTENTQW1XQlpsK0ciLCJNSUlFeVRDQ0FyRUNB UUV3RFFZSktvWklodmNOQVFFTEJRQXdnYWd4Q3pBSkJnTlZCQVlUQWxWV E1Rc3dDUVlEVlFRSURBSk5RVEVSTUE4R0ExVUVCd3dJUm1GclpYUnZkMj R4RlRBVEJnTlZCQW9NREVaaGEyVldZMjl1SUVsdVl6RVNNQkFHQTFVRUN 3d0pRMjl5Y0c5eVlYUmxNUlF3RWdZRFZRUUREQXRtWVd0bGRtTnZiaTVw YnpFaE1COEdDU3FHU0liM0RRRUpBUllTWVdSdGFXNUFabUZyWlhaamIyN HViM0puTVJVd0V3WURWUjBSREF4bVlXdGxkbU52Ymk1dmNtY3dIaGNOTW pJd05USTVNakV6T1RNeFdoY05Nekl3TlRJMk1qRXpPVE14V2pDQnF6RUx NQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdNQWsxQk1SRXdEd1lEVlFR SERBaEdZV3RsZEc5M2JqRVJNQThHQTFVRUNnd0lSbUZyWlZaamIyNHhFV EFQQmdOVkJBc01DRVJwZG1semFXOXVNUmd3RmdZRFZRUUREQTlrYVhZdV ptRnJaWFpqYjI0dWFXOHhJVEFmQmdrcWhraUc5dzBCQ1FFV0VtRmtiV2x 1UUdaaGEyVjJZMjl1TG05eVp6RVpNQmNHQTFVZEVRd1FaR2wyTG1aaGEy VjJZMjl1TG05eVp6Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQ URDQ0FRb0NnZ0VCQU04MVNLaWUxUzc4VkFPQkRjM0xmbFlOU0w5cGhlY2 1qUXMvOVAraXFEWFNWbTN4cG9xc3pHb0xuN3cyMWFVQXhsKytGOVo4MFR jNzBVUm4ycXFVY1ZUWWN4M1NtZ0h1WWdzcEVtSnNNUm9yL21uM0hwSHIy YWpoKzI2UktnREdQQnJ0ZWJlSDFzaThtWDE1YS9JQ3pIeHJVYUUyWS82R FovMndHVFhyQUU0YllBT1VhWWZ0NUdHU1psNnlQNmRYZzNFSnkyYksyY1 VUZE1JWkcvWTdOeTFEM040VjdNQmlyRGQ1RlU3azZwTWJ5cjNkL3hvaTh Petrie Expires 11 March 2027 [Page 106] Internet-Draft JSON vCon September 2026 WTDhGMW1SQ2Y2enhmRk9qYU1GVDBhdEVpVHAzTTBydzZpUzA4aHkwY0RG c1BKekljUGdYRWl0VWdHUG8vTkxnZWI4Wm1MMWtnOUIydk1nYWFuYnVaQ jZpbDc5QTRHZ0RJVUNBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQW dFQVdPSkpsdlNRRHNEUk9RWk5kWDNrTWtBSDNIWXlBbEU3TEhOdElZSFZ oeXQ3STdXdXFTNlpHdlNveFNma1QwR2RBTjdjVitqY2hkWnBBbnBDWEdY K3lIdVN2cnc0b1NxaWdkU0xlU1VNeDJ6YVN2NHdMQXZ5ZEMvekRrSElST 2J5dURFS3l5L3BhNE5hMGF1blBVM0UxQmcwVitKcVEzUlVKSXkxdjZBR0 xybGl3YUVJZ1AzQ2x6aS91NjQwZFdCSGFiT0VqeEZqOWJYNzMrRlJXaGl 0NEV6T0pZS3Z0aTFFWGxtUmpNYmozU21zcmNiR01ycHU0V2lwRUc1UzA1 VmxNaFhYU3lRcTlJU2NGaG81Q0Z0YW1EZ0kzakw0OWx5cngwK0NjakRrd zBuVzlmWGRBdEIzQmhTWUVYZEx1SkF2TFJRaXhVUUZ3SDIzZG91bVBpMX VXOGV1RWhIVFJvMXBFRldRNVU1OU5PVFVBNUdodXVwbzBhTTJDbkRENVJ lOHVPM0NoaWxDVWIwRmx3Z01ELzdBQlNkMUxDaFU4aWx1aEt5OUNFQlIy emM4dVRxVzQzR2N2L3BzQmFlamdPS0pseFp1dXNHVnZ1VjFuVEhSYTRob UZZeHhQZWw3b2dlWnpHUXFGakJsYjM1Q0UrQmNHWVkwVmlhSGVmeStmbW kvZk42TnJyTjZwQk9QalZaYnBDRm4rd0ZUVXlyTVU1VnEvRmFQZTB1czd pM3BhUWN3SXo5d3lpZGU1T3p0cHhlYlk4VW5YbXkyMlgrNlBrSEIwam5M MzVRZTh4bDdaMG5NWk5keTR4a3pHZ2FhNnRhbFJEUGhLa1kxbElkdytLZ ENYSnVVYzdya0xLYTVwbzlTUGR2VkxoRVB1MjZTSGtJMEkrZDVoeitnTX A4PSIsIk1JSUdNekNDQkJ1Z0F3SUJBZ0lVSGsvNlFiempEWjlBT05BRnZ 3WUpxQi9qYnZvd0RRWUpLb1pJaHZjTkFRRUxCUUF3Z2FneEN6QUpCZ05W QkFZVEFsVlRNUXN3Q1FZRFZRUUlEQUpOUVRFUk1BOEdBMVVFQnd3SVJtR nJaWFJ2ZDI0eEZUQVRCZ05WQkFvTURFWmhhMlZXWTI5dUlFbHVZekVTTU JBR0ExVUVDd3dKUTI5eWNHOXlZWFJsTVJRd0VnWURWUVFEREF0bVlXdGx kbU52Ymk1cGJ6RWhNQjhHQ1NxR1NJYjNEUUVKQVJZU1lXUnRhVzVBWm1G clpYWmpiMjR1YjNKbk1SVXdFd1lEVlIwUkRBeG1ZV3RsZG1OdmJpNXZjb WN3SGhjTk1qSXdOVEk1TWpFek9UTXhXaGNOTXpJd05USTJNakV6T1RNeF dqQ0JxREVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnTUFrMUJNUkV 3RHdZRFZRUUhEQWhHWVd0bGRHOTNiakVWTUJNR0ExVUVDZ3dNUm1GclpW WmpiMjRnU1c1ak1SSXdFQVlEVlFRTERBbERiM0p3YjNKaGRHVXhGREFTQ mdOVkJBTU1DMlpoYTJWMlkyOXVMbWx2TVNFd0h3WUpLb1pJaHZjTkFRa0 JGaEpoWkcxcGJrQm1ZV3RsZG1OdmJpNXZjbWN4RlRBVEJnTlZIUkVNREd aaGEyVjJZMjl1TG05eVp6Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURn Z0lQQURDQ0Fnb0NnZ0lCQU1JZWFxa204cG42bXdVeldCZ25RaVk5SnIzV nlWYW14QmM5L2R1VDhlQ045bW1BTkd6WDV6R2o4Nkt0R2psRGNvQXpBTn J0c3IyRHB6NHpyYTI5SFdid2JPYTFaVE9PYVI5M1FnaWZrUzgwMnpwK3p IR0dSYUtscTNldURxRFZ6eVhpbmhzdlhPVmxFd2tPckF2VjZrVWNUSXpj eFZpYnJGZkh0dHp2L2hYVU54akNvdUFFN01JRzZ3Tzh5K0UyYkJrZzdSN XlkZmVVNFE5bnBCZWZ3dGlROG9XZjBDNDZtRFlGUThsMzFnb2FlMTdWcG l5UzN0NGg1SEwrMXlxZFlKU1dtczVRaDB2cDlyZXE1QWp3dUhJREJ4Tkx wTzJnWTFTUW1TZE8wM29MY1p3QmdsR0tscFFTd1lncjlKNXVvMkIrTlY5 YVlLRU81MWJ5U2luU0Y4VDREL280Y3E2b3lKTFhCd21Tc0xiampWSVFCb 1NkUkJtV2g4ekUyWnpGTmFhQmxZTzlpa0lhV1h3YnRrYnNFKzRRcE9hT2 ova1VJSExGSTlpT2hPaWRzSW5hT2ZnWXp3MTJGdEdFMVdxNXg1WHN6d1d wUFdVOE5RdzhnelR6RnpWT2J4cmZjc1hyczBzNmZldVRDRE10NVpodDJI Q1dGcjlUbVlERkFmT0IwNWtGV1RpNXNFNUtZYVA1NGlKdmpBRm11VERqb GlmN1o4WldWYWw5WEIrZzNzTXlROERWRWovMGRYUytuUlZ1SlFsVUg0cW w5U1VJd0s2M1JLZGVkQUxZQzZYMWoybGdLOWFUdUwrY3lOSjVTYnVOQTk Petrie Expires 11 March 2027 [Page 107] Internet-Draft JSON vCon September 2026 1Q3hOZ3ZXdEJyY082SHhsYm1JRHhLckFBbzVhajRobmxRY1k0UlJiTndw cENBaksremNBU2xweXZSQWdNQkFBR2pVekJSTUIwR0ExVWREZ1FXQkJTU 0R0ZnFVNitERXlZUENhcjA4eVZublpTRnpUQWZCZ05WSFNNRUdEQVdnQl NTRHRmcVU2K0RFeVlQQ2FyMDh5Vm5uWlNGelRBUEJnTlZIUk1CQWY4RUJ UQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDOEpEeFRkbWM4 NllGZEtFbFdRbld4b1BNc1BlUnlEWVFvVlRDMnd5ZFpzZEo1ZEdia0FoW WxQUHhLK3p5cFAxOGZHcnk1UEhBSGw5bVpZeitGZEdqTlR3bGxjZk45L0 cwU2RveTRrVTllTjlLZkM5T1VJa0JJcThEMHI3QU5UM2wzWG1HYm5JeFd KRXRiMFN5VGNxazNkd1djTlRxR2d1aFEwM2pVS1c1eVVwVm9Rak40VHRt SHl3ZW9ZVE5pK0hLc0NVdkVYR2RBOXdkaDRqVk9xWWVlcG1zYXg1ZVRVS nNLdUNLcVEzK3hCN0pPTnc4NWltZlZvdHlTQ1hzb01lN2x1U1JZdWxkbj hTQklwS1lVR0pscFdJaTZHcjBtTHdIYXJyWW9pOWJ3dGNLQXhSTlhaaUd RZ2hpVXcyWnN3K2ptZ0JyRXRJNElhcmc4d1dxSjVNb3Y3TXNUVnBub1o1 WHl3cjBHem5EbGdjTnR5cU1pYk9VTGVNOHlMUFFySG4vdFFqU2lQM2VVU Ho2K1piOUZxelFKQ0NpMlVpYXVENG1PZ3pCU0NDYmV3OVBEWWIyUWVNWn FOWm1OM2VWTk1WNGhoN3Q5alRjMHpxUEY1amx1ZGRWbXBkSHhMeC9UOVh adVNWMjFwOGNsTnBySk5ReHBydEhweER4amhOTUlyY1YzOXJ6aTl0Tmlr d216Uk1mMHI0MGYvSlduYVY2NjhzZWtEWHR2SWo4cFp3eUU0Rk51YWlKd 29qa1F4RGZqcWs2N1FzNU5VUXNGY2FJd01lczhJdDc0QVNIbThEVUtFaE RUMkFTZ010VUR3S1dyT0JlZnJTUHFqWTcrRU1oMnlWWm5RaE13cHg0czd DSDB6YTMyWXErS0M4R290SGRJNmppc0RFb203YUhnbGc9PSJdfQ" } ] } A.7. Encrypted vCon This example vCon is the encrypted form of the Signed vCon (Appendix A.6) example. The private key to decrypt it can be found at: https://raw.githubusercontent.com/vcon-dev/vcon/main/certs/fake_grp.key The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec_encrypted.vcon { "protected": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1M TIifQ", "iv": "uoiDh-wFSrMHSrk2IMxaJQ", "ciphertext": "tOu0enZwzMiA2HROAVKsNOoG_GrrWrTNP2Ej5NFMKPDthCzg 9nxbiaZE8sWzFU_hLUkFomKwB0q9grZYqywaWxoMLaloIUSdcECR4AQflyfp2 qxmO-o-QARRHTWa8MzO2m22DEuEfB1bLqiEZaQXRyLjim119bRXXN9ljHJCKc jnSz7oZ-FqGtuId7bDxUGtN-qkYe9cR5NHIFxrc6TLTh2fjSVERYVuGbR0796 Zwwf-weqg0ruWMA4lfnHwKdrAa6RoFNkyYtRqa9E_wqN6LGaPMZBGfYUnOdIZ 9uuqMSqgQO3w4npMEOripDqJvozhL8ojxqT9_9RzRts719SijqwwQGD5IJmGf lYbRqSV6m5TK9VyvJfm-UtICiw39ZXZF1dfS4Xe2Ej2DEptiBcmSrXufQwIDc Petrie Expires 11 March 2027 [Page 108] Internet-Draft JSON vCon September 2026 xcW34hMIrAj7negDQKBCbDzRpQ3g9WsMk0qZkhD1kREtBB_eBlXO30AMNiRJi xWidlxpDSgtUGrLtGy2B6QZFGcrb59zc3pnUnsaVF8u0zaOO17-QM4CYgwhNa 4_qXDPqAkcyym2_b7vVrXR2C5ceDcMzyGtrU1WVEGkPpGZeJyD4j9VUUyzBKQ RURZs4yuB5QJmPGXoWnp-Px22aBlbU_VpdtS22FqxjhA7qC6uDIJwFicRxlLC LR4kwYmRvlSulg2XLKIjPU-5P-_jg-guWh4GX_qjNlVMURKOTZd_JkiTE0I6v N4QTsTOE5GqEICULb7B5081GH1OWeIcWL9SqEh-uMuLqltnGhFQshmUx3V6lp CaECs5VDqB5X8TLz2GM8Xy-_XcRLWvPYravIWm4L4JjMwRAXOLHb_ZdSPOGf2 wWRu5eWVTbjgwKjWfqm7JiwsJHmcjvB-HdPo42lBPXCkWrwUCxEp-vTySVBqG Igi2dLA-hIG6YxfRrQlb6cdv3EKcPSSfUN2b7i8F_-oQRYDGgHQfsPQFFmdE_ _HFJA7IdHkcJvnhoYM4g72BxkeAhtwcElFTwUi5tE7aPP9v1viwJNO8CNkdXZ 1gZ2Ne-OlMRlPdiMzt31ClWKbH5YiBJ-jNUkDDzTQr74Ob9CHV58ySxQSoWqV WMP466JWUuP6cg6AaDKEzB92UdR9y0zDGVStX4itHeL0onjy4K6Qwom3j7MK5 3BGGB-tqyUD7bH_N3T_MKq9l0p8tFR2kua1Vkl4TdsUdoIsnCm9wVJoM4ItYE ajuxkUTShejETRuHM_JR4UNAT76jutHuvfpSkSQpOCb9f7BKwNgwz9q_z4r7k PNxPGCYxsvQXk8E1LkK_HZIrjnswzOUwsOlmQSGiOq4A6IrSlj_G0ylc9D61J Y9DXS7Qhy4-krydHf16ZyHycPWCFBSp4ZvrpE9XAJ2c6kKPqgm8SJT9Eazrqi QXSEdBwyfgt6ptGR-CCn5vSDKdCLN39EsaGgT9R5wLl2tWRr4Fz0WxDjYoVFE Xuvv-nFjm85nVzMHSaxH9vXP7tZi_q0_4TY1my9OQOn1-h05346St7NlmIGWW FCJmvDoodI8eNCZYwsa3j6J7mujDMRItFCgov23bJWGU4PC006PzBcHGgsS1s VdmuZ1b6wcConlyuHaI9vV7FQxGxhv1oZAaCvqzgpYaQJ6B7SX0mZYXV2rrD0 LX4GxcB4ps3dDCyuiE8v_m9434HWeyt3rAtGrb3sE7Z1684pf03TdzH10G1zF OU0Q0bc7y1aSBdHv78Kn3pshRIWLHpvCHev10YDPq8AHBhw1Yuw7QkpC1nzcr qFZMlnzd3A23sa7B03vajLufrkv3-Ivwt-iWQ6KYjRy0ifQdeLwIN_rjK3EFz A71brt6oooIj5f04r-5Iddsc439T8h-LxLrOIeWkeZ8YxZ-KrSe7YIj8PZ08p Rt2EGLLDkM5NvEk73xNWoiArFE-8Q5BpGla59T4r0kblljgp96TdlvQpNDk0y WIxH5b3Ekc7IVTeOdliOdZVD4g0WpxZSEDipx9GHQZ-ZabW9x_-S3tiAXvdSm g22_aXX7LIdjPnuuaOtWkzj-NOx-_Ny_DnvCn-9onARVL-rd8hr2QxgS9I0hD 9_7fW8YibqsYpih0WakcP0grMy6aUzM0BgeHKZsfQofxRVoY9j4mFmxnGuLaz tUUvW8gPRvHg90mYMd7gDHzFqUqOKTfUoX4hAaRGJ11d_0_RJHf246iy4dfCH cdOT5E-t3b3BVnnjH--uB5tQ9O1AGcnWm7cXlNduNs198e_NgZZk4uqyFTMej J-hWlieeXXhdAazPLrpo-mctnUJtnh3qm5ERPsJYnbL6MkgkeIgKDzg8VKe9N aBoumvSXj05PQ24XDfiZjgup6F2LbLdcbVw0vZEk7GtJwReTWtko_kppJtbNc 8APLn1O-JzqGwK5UqZgBdP2IZrlBsZSpNg_rBWhdegfxPINwPl9y4WNpFktvK Tx1OEtCuiZ5QN02dvakBHQ8RfIAte98nWuEFw6Q_yyRlfY8zVdLOfxPVXypam xR-ZXpjsAB6qkq2wzn1ECyI_s4_hx6dmTRTElqZhG9lXUzxmFgyAb6HFT4eC2 bJluNyNb_SSR7aT6z53U3wxCFzgq5ivV7NtFJTLnf4xaZbSHJzjAvt3E-GYhh QBndFHt3SYoXLkwI0TYHQ-TVgRMPmourrV6wq-h77zzmmdq93ioGyCL3qLpCn Mg8s2u18YUB1dGbZNepaPTxxWRyC_sUsvTTKk2r2tSlnOg_iAnU8xIgBuY0ye NMMtYn-SXdJ-1GFia_Ls8w2-cqt1mBf6ouyAmNrlWrwuN6KY1lwQpFbvhDC4v sTpaBfcX6nC1QaIguBGLIYyYbWAHIePf7DmY_ecNpnsrpGaSS-1zX8lCEYz2m 1ShIMl6ltiA9igSBTB4uV2kIA1a72QQaEEba4hGsvFr-6mCumpyrLd-PwuY2f 2Lme91ORcZqj7OTwbkiqJ2B4JvS8v97z90ZsWvZoAS31Y19Kk-yzram-LFwDN vTUBkw9pTRhZWNxU_GfHRcZ_7VEtNltRxCg9Vx2yZBhJyeZhl9ghwgjaogfP3 8aQUA7GNHnQtNsj1u9AKhBp10ywCBmdzSYqdBbr4pyL4OiONf6rzF7Pacq0yO y8DNXK_4zvo-aZ7p0-Xjid_hpeDi4GZLyqJ2a-4PQNV1_LHSS_cTLM2M8zHiE xBvuHOQXwaKvZfXhEpGBA1HEmXWfMbzDBUHwf--OOSs3ki2D7WjX_r7SsqUZg 6i-rd39XlJTY4FJKIOEVSbhhALIIWPmWf3zcFHZdGMkuGxkAyQwHHxGPUEtMt 5li3oswRCEDQazHhN3mD1wmVrcXuU7byMWI43DRF3Iszt0BIlKNJDhQ_I3Ymx Petrie Expires 11 March 2027 [Page 109] Internet-Draft JSON vCon September 2026 WF7dNCe8XMD5G-LBO7111n9J4lD6etfYgKVRlV6h0ZBNpSbmFkDBc5tUWgj5J l-z9l__3y-_JkRbpzfptkKeh9mpN6N1aQQadKNq5RuzKcUkrm8yLl99L5F7HO _amIX6DhWlGQmR-w7BR3LJ4EhmNyU9bSSSwG2MNPQOWNOWetitzsLVPKJF_h_ UKlUv6VdJTfJwIM_CQpnHC3Mi4gKk7I-vM3njcNlJ1g05MG3ISxfneH6fiYFn A6Mce-PJa7iYmdHJAu5WpBdBI4mjeYb2fb4TIWU09HDALFZjrhMTD0c6CNl2a Z8zVGnKQNJErRqNJFCaJq6AeamkSrtVsJotAQwa1FRgvDoLzAnhCTzqyG9Wmi h3I8GkwOy9GO0_GgOJ5iJlbpof4gEmlCrwwAWItjExQXhajQ-w7WPXQUvLFTc 3xSyfH4h7xLm2vjER_PMn8LAYJxdHq4jjGmbyHx-SUQ6XxVpdC7zpfzCgQdTe LgHHC1P6aGTp-ri3WSVAWN1tRxSIoTsrZGoTYGHVBPFeZmJeUWnZ4ysJ9Xhan _VH4eXV5r9xLnXae_eeMx9iPNoedxjlqCDqGMwA8aWGAOKOh2Rw7a5qg0Cozs thdQ1HFCdXoeNTjifwl54LhEixtC8TpQTgza3sMc0LETCUqXZm7egBhqMUWGP t4FSCrIMLV4LfjtvNzyEio7xau0nRtOY4yiX9CeCrmGJOo6eO1wdkk3b84bvv CWNcNDpZTQ1bTVmsnP93lCf1YotiMetKtJeGdHsjDCPZQksv025l0RvjrcKPd KD6og9fGWi7kKoBLXUh8Pfydc2J4_c187vhwES5x48d7D5PR2lfS6rop9Ojkk V7U_CfwzNEIsgzzrlf4fGG8QPiZ_fgiLIrIOGmmNQjEkfTcRasHffqHMO8GYV aaXoKDGdbVRPXcgtn8srAZQBABMVtBf_pBoTg5O32fRbi_sNS_pxjsLd-L9p5 R8GdR17pGKFHGHjpMjOjwNcZyMybtL9KVP8jlJrDnG3Be-24NhPKj5PRAHLj4 AwzDcwIQJ702R9eifK4kLOaziluyhGbq1Xq78QHvf_W_YCHk6t1uck-chREl6 7VeTtl0VwiNt5SQbdODa7r6g19LB1AFeZwp8v7GW3RvnPpNdjG-lBnnP2yYlb -TeRn3LZPZdcvHAjXYE8UIiFDYWIVnKkRzm-hNjL-YQP9ETqG1cM8mnDigyPS F1noBFirQuwZjPS2MpZ7EuyMmtJfCcq6aeUXDPDRFUrpysK2vrBpSgvXj_4KV rUgm40CUAng6Cv_PINj4zPUZ9XsmpRXY76LaYmORqtsy4QaQy7_VHuz83m7rY WQwLjzbtUnGHDnekUFeWYPCSpsgCm8iJExybcH_z6qzCSVhlZYZbTqscXbAdW 3M7t_HoHKgIASJTqWjGcGgfrc-A5nmeLyO030xYzh32kHfbOKHtJ5YN3oyM11 B5V0RrJVBwGU6-yC9AvOzFfyKTK-IavOTEmwh-mXo7SflwJa4Buw0w-tLtRKi jC51J_l7HHnQrG2mMLRNtnUZqZfQ4s---_ZNLjW9jM8LIfH55sofesiJFwyA1 I1cGNPhD-wn97HlTvitAsER-N6W58q-ed-fRRegawmK01VRfLYQzj7S996r61 _siPdAGMitlfts5oTO1v1cf9e01O16Qz5-8Rmw5EDC1cC-XnCICU6vz7AgRU0 6C5d8hYpzlHLf383EBjf9yB3kiGtqIBPVPCRll92sinLGhz-NXn1eI61LchvG 7HMz27HoEJxHVc3hob1XJA-tfLw_wVD6iMN9t4jiDn1dWBMI-AGYq4fRS55hu Zmh-_tXP9MjYeMdk9Ep2dnZIJzDaKIiUy0Jyj4eQr7ujXTO9Zy6vLiJw_kvqG kT_vi18gZPnwC84B-M38jy3FN1QBTL53K7C_4TFtDHkMFlQsPFV03Mvf9lyJ7 m8CpWGVuiRCniimVB1wQ_wr3dw_bB4jXz_uKG-pf43ZQ3O3XhBZYb0HPIJ9bm PZnQgfn8AuDu38sd6pIkowzEi0AeCLuSQ7oLzUW8G5EgzYcVcQC44PBpSLvh4 cC-ROWPyM16cGxEjiSrlTM1dr3E406flqObwhLsP24mWdvzOhqrAIKhdFYIg2 bGf8Gc8d_NFeGPPvcWzpazWqKt5q2CBOYLQaJHP6C8VeolGYP3dWB6yKCp8kZ W6JHkDhs2wAUO-VTIxIcmJ5zn4gXj-vMSDHJI-Dvt1hfyrSBc46fLxdqYG71p 4BOVid3xeaqATcu7OJPkgIih8CpGjM4cMGZbRM_nEPr2vIwPHdWJhnmbaPHPO 31ncwJ1kQyGG_NP30JI8K9STXLC98UcGCWq1CohHIvm1sUSYYqzp8wwo9WDRs 07Pq53IvofAyRK_RphbRvUZ6rbZ9xDUzsf8B2tmDof13U980VzRgDZOQsQXnW S0U9rwEXC38Xh_30P78Al_KMULLYFgoVG_3jnBDrollay7YMdbwc-NVDQgWPd 1PYFWt0o59_nlS3o7HBAZ9j7EYnHADhAVbKGuoc-7EhThF_n8dflWzt6jPdBw DLAPqiXwxRGWR26Ewy6ui_prcVn4_cr9f9XELhGFtuGOrLGqea2yWKqfFFO15 rbEZo8M9RtqfY9TIaH5G4-2LQtwVT7EtGd6uObdZBAibDQmHzYaZXjH57fuvU ulqlYX4FzLUL6nfOLrqp9fTsQw7jXDwJ7gTyJGliSmvFeO4QgKAynQD1_sh-Q 9p6LfmajYaOpPx4JO0_wnehGKR59SYM8OIlyN7219nE7-13BlsF-ZlngFhdqM oWqILsFrDit55S-EQGSIJ00dZp0WPi47LQl_ihNAE8yQEti-3iuULg6r2WHzE mBCfhSYzXd2g-PnHQaoMzECE5jPthuMTbDDxzI7DDV7Fs3jYfTEiMa9jP9P0X Petrie Expires 11 March 2027 [Page 110] Internet-Draft JSON vCon September 2026 95IHS8t_PrOvqOV07ufpkmsuDNCcs9eYWwsSTH-mQmsvbTEu9mwtBygAEY8F2 tl_JDB1vhQ5kYIXc8DN28k-HiFlwheYLHlUbj8YIASfrNJJOTcwE0n_NEIIO0 vOIjWsK-yLG-iO2ofH892SXVp_eDvvO_gLxifn5Ua29uSaqH8oL4ywpu3mFhA xBMd3ih1cmkZHJGrEZhhWz-lSsvA1R80N6h-ocbs4sB3ULIh1nj_kPU3Wuz2T VIoP533bBIkcLbe4IirYX8O8YiEtsSEm9-eflY2Ws3sBRTxwtvlB3faDIMwJe ML8qKwyZ0FgAKue-1dDsfDRgOhab1U6seAWrbnS2QAcM3NgXlZ-LLpj9q1GEQ LUj3_voAi9-8W1plloDA5jCMMmGsKNhdZhLKm1CZC-gqRHNqMXZFZKB1W91vb 42pBu8ymK3hLr2xlwP-X0rJvORT4zAnfZjQqH60YMufnMzu-Cl6JJA_oUwnxU PxZZiUHNqU27Kyw12nsr5c4w94njLP7VtL04BNROL_jgxFuk-Wwz6hAcWuiUu MSnj8YIwZIbCz_2wN4r7DXrqOloIoASd0615M3AWMlZ4IahuyrCT65KrFuRca 0-t6zE_f77S5D-jvB4jvJrhxlD0u9uQJyy9X85bgwUi22yJQm-aloiHb9MRmA DWZWM0jyBVb1fHZNtuVqCVuzdVEsDbiDcIHrV75G7vbCDOCk5oRbzmItwrJQE qyOnfCJoTL8_DlQbjGKZnhOfvHVC2HjMpxfE_8qXX0U4X-1oTEyPGDX5up-5h elTS2Ro_vPqevL-N6rifxewXqtXA_5b6nw8xBZexRwHpSEA1E2GUpisP2s9Cm NlK3ohdJ7uyWMVCtVMLBveyTPJHy00am_2JFweW9sMR_MZGshLKlrDJVmIfCh AngTAhjq2anhv0LCLwlq5xniCFzkb9HL3tFXx29rtFOHup7hGFy0JkQMA7Beo A6Q29iysLzMHvz249BQIKk59vZWmN7YoVrmKl2938tQlwF8V9xStCCZSztx9X Ofl-C_80w22Q7zNPMt8UXphrAAPnnss0vWFS_e0L8iE1f0c2L1DQDdYXakwwj T3RAF6P_dMsza9IX3Fw2EtTDe4c7kgKUQntTGz13mQFWSGYcKdYjO3IvCenmP vO1pEcbWOz42G1mvk_k4ZTrusacF8PNUVoS6xXf3138pjfFSwakoxuITVjrsy lWauA5G_Bs106rWySfkpggqrgd6DjSxbWbMDiw6V7711Jcj-o8jsp8unWkgk3 A6XvIbtdV5Dzczh4F_IJFVUlEG6DBbpdDF616MColxeSKzPAfS2823XE1l5HC o0i5pwUsSQgC3TdKhFxc0Bp-5gmwWG6CnCr_aNCiI15zBlRaL83wbYNlEy2Yn CGDD-0-YKH1rQ1WPcHnlF4936KlaGi3OdIcrjq3iwYUrh96de3kSe7vx5q322 raL9tNQL-lEaQZ3WNWbww3q_UszwQ3X8PQ2b1oRG9-q3kIOHZdJNPy519yocf Dl0ARqv31UP6uQGNHbN2QoS-KssLlzGgLWeNr7X03iIeMx499Kr_pH_v1j8io Io0nW66MBnVj4n7-LbwoHIx2slQiDd61W__VC5B071DuSEwHMwTHbkFuN9CTW ZFd2ahnuxmUcTwtI7WX6wI5Zg2KSHGut0YCLBRdHAHSgwdQRf2k-UOxrJtl8z 6J1hVouUfvZbOKpfaCGoKRjLnPcYqIabzAEiMq_eqIUcbRFpi8qFqr_tNN4au TqtY017VokE3MegP7bhQxCQB_2t4-lT8twIwZ4-Qxlnq51AodO0CK013m9mlZ r_agdb2eY9gaZ_5UmUtqMs9vHjd4_xUaucWOfJQhyRpwt2AtqM4mvWIRF7LLK 4OmrEaN6xiYlNlHFKY_wIB4DFdO2oWF7o4CA13Yw2r-PdScYwpZ6jEAEsu5I4 XgG6tNscp_ny_e-YO0rAcIUEwbKWL-U5skMuCFowRRqxkDZQFhyGnVyMTJzr8 qgLjkQVeOxNUDRCmCpp7zUCL5HIalzELi1jDKqJpbffdxgnjbB4ebBj3sThfD tYoeHJwurXRtbtj4LoLQ8IrcKk00h2wtzA74f8WVElIN8A57oYJYelbZ6k0AY F3dpIu8WEO2spruF-Ht1En01ve7w7XaM2w0hhDVCxgP5coRkRVVmafdcebbud 4PXd9u6P75QRICZt1250F3ExDlmVuTASEZtb1d-fqGmbgqX_jHzJXQ7VrFu62 dFavRLb2SJSAL7JX_kWzi_C1RcCgkhgSN5Jm59ocdfUOC3GozyuxQ03OM_EeI _H9rjZX90tfGFtQnireqSc4OKFA-IxJkAoiby6GuPegZ86tmGzVuQLrFMPl6g Jjx6AoWVYmLkL2gtVsb1SVGE61m0gREGcCgT46Y2Bfefc14lqpI4ccwJlGhy3 IhseuLgQfVz2ZKUe1HthyhA6waBlaE0ba34NTpaW58fYQATK0riM7O240LIBT 9hx5XpbADoF9i5SCHCXBqdzKQj9UBbzOsr3xz70ryqhrU4RjrBFLp-YFsPYJl QELKlNCs4dTrTf6BHfT6n1ZldP6gMP6Rtbv31nKK9PYhPjUC2oA9xjnXI15fV JRhsx98oO7IoymL_rW3wuG5ryl-EuXzVF6fByo9PM_fmtUddXpZRLcQWejCp4 TeLYwyXPPLBN79o9QAOpsyNhaZ576FOdj040lMLcpbbLLfOQA5oyh_pnbgS6z 8tIBwdPcvwc6OetGjnp3rTRr0ZcfxLKRD204zD9biLLCxNeLXsU3rr6d-ZSun hmmpLUrqjrtgiCWzyto549u914KdUTo76GNDqCOaWGM8-P-AbnTpGvkkA1Y85 sq9DdlYwfyW4xDjERbPg8igZeFhYbGFUTWjKuE--pg4d9_dMNcL_2T3WwRtSb Petrie Expires 11 March 2027 [Page 111] Internet-Draft JSON vCon September 2026 8fuHcxTh7juqkF7VaTRD-beXHrU_eso6vQbugkTpSGftFoTDWpoismyhVnV9A X7ja0IOLpXWgeN76wgfHQtDkupRG04JPua1wn79AoEVn0hJuP4cG0cXDmVOEz 9Rs4kdWoiB-BkrIcU_ytRyFlIBk73UmocIFHeuiLBHT2k4OHqEeoWo07r7Nud kd7NMt50WiR37R0SKEy_wf9R5n8VWmWzXRgunk3EY74OF7DMTB_UL0mt11Pro BsrbaaDNYOb9szg-HrwaUGP4m7kiTHFLRzYYoLU69cnQVLcXyebURWqUu0xXb YBqVQiPoZ-MbVtftMlzRcoDb0ZCONiIstWsvMsOI9zrxepCqJh9g5X9hVp2IB NhJgzz_kIkupg1kQlBrgk0P8NkxIaNu2-fYwxyFbmJjVWThp1zu-taFQVmmKu CwLeS7fCj1uIYHKF-WdakyjJB_xpf5J71CnCGcoe6FUguUncKzmFknsF5r3EZ ygmZdjecAszsML1Sm9juVlOg_-vxcS_IgkxNkOWs_DdHSapBUNtuvNslZh5uF ZwZtU0APdVO0_G3vRt0OFQ8tCqeAqnBCwAD69E-MZClW2zsguY7StBuAza9pp DGykq2jtkmhJb3E0ydGXRECfLPl4rCCRBUB-sBDQN2ciFiUlWSHt-CzTXvEfw o31ZrmLRS1m39T7MgCN0N-cduZmq9N3jDgrNWcpdjgmURVV3Al2yuwiB-YDs8 XH2gbpTr5rmpvk1wlBfJ6cTt8vxTIx7TDj9sjzcJdrOZgSB3PvrDSezfBqrNY 05HPqAmgINCyP-wp9wLS-kcWoeNe6VKugDvrdDYUKhuUUFWsxQCelRE5vYJmf 0dRddlFr3c8fmM3YI4nJYH4a3YoM8loYepzuS8avo7COdKARfQ0NfWQIEbFEz CiGwSRHf6MJ7Bgve7EZltSX-tIviiGYDp295KpeIp0pFV-RkiuqibMwJiFqb_ WVzK89R4xuuUCH_3HV_TEcwboMR_dFyF0RRuLZKXCzpBXIo9mLLUzXAZSVOdr bOIMj4ekJzw3GQTZkPFN6-043qQrqQiY0NkNKf7QSMEgw8Zy6YDetSbLemocD 2HKnjyFSh3ETOYmAibHVhi7BLmVDlWu6PGmjLDaqjsU0U7g0t42af9DI48UgC 7GijaSs88UQMZIjNAff8EVTbn14v79-_eZ4Gb9J-Hn0W3u12jXBdo2cOgJt2f 4DPstCq9t7lwMzFhBUE-6Eq0V9BVVPvEiUsYNN99920G__ZTQEj6b_XdZi99l mAYfJGu5-YtwAehUDVUhMb2_z4fNuNZ_25Nad9WDA6B3vIoRYsDIOnd2MyiDn EYYrtVAWvU9GZ4DUFGZdmd5_-Bjoj8D-K_MMze-zZHk-4wLCB3Ph0olq4BXDr QaDt1gshQCQZ3ex5iQhQvcsttffP3D0ubsn6eQvOft48O_M9FthFFSQY8l_UV nr3dY4asbpECk5ntvdo2pi72nAsytkMq571qOl3kYf4Q9wf03xiIAW9nSpYJZ 6RUf3OUJSY4VipDHtepdbGYf4pWC0GRBaMCHaHKRZlol_DjeTVCdNTO6cRY-w 2LMfABc6eIikayVGvQL7UFuKUelmLA9wsGzF0hb4JawGscsMaQUlHH65ArWlW L0vXaphmtBYXTE8GXSSee4z7PeWQE4mdldif0pGQt0PTZpZE_tYwQEfTyHxrk ShJSuem3RU7wnm8I49VTKtjIFMCVNzOexMUqC0vU4pd_M3zAK9zeQ8QYcPHke 1tlMZcgS4H7bUYxl7c9KBAzlL5ylCwoFCel8JDY1PWFfsQf9rFexDCZKdKfcJ G3Nvn6G35_x8_2CeJHnpcBaMDNhQmo0ByOk43u-_ANtWGsZQZAsRYXEDGc-oL 9g7uNiInkXYNwZTeG3NHqP2AfA3efjN51ZNPzEITL8fkE2kFZ7oELcpt2cxz- kG5Q5SHAvW-OM2BBjNHdNO2nfXVYTs7sa02fnxn6m5dn4ayV041YXT5wzX6qD B07ATRKVImheAIphBNzQKIVUF9iFak8cA0jSCg35isT8vZb_PhK6U64gMsYxm PIBypA_iBe6poa6hVPjC0cwtlAbsk4XzWN1HM3yh9f1Q7IDdHXsCTBr9xDrXb gSOb_0zXA85Aj-FGiBXkpKjW5K7eRA6xJ3-RGpG3SCATLWQlBVykxjAm5kr6h dPKYf8hRImOXK9Xu3banKxvvUKqhPXZiBVrYKkcY8DjVd7IzibJdA91xQjuCP HnSu6YUSapF32LD1Ex9sdNDrp3sWsO1_LnRbbXOSlynDMFT5jp9ip6jrbEXoJ c2TuT57cy1nYYQFZUpiWDilbE3QDrJ3SRV5AHXZN0n-Y_o05fZdGzd2s1M_fZ 5uZgs_45_Obi5pO6_GgIq5QKAtFF468vNhtRXsfByuLKitZAx-6Ho2uiKSYde 8-dLUUH0i-DmZypZUAunAwx9-IuPZzH2XmZ5r9iX_VpZAW_dlHblcZRUdz2NU _bzy7pb7EHGAKbxaILnmWgLAVC2WNmCb9FFab_izBl10bHMNjfobxDazBQXBl aImetVQdBpJu7KdJIoUBIbWw-U8De-wDTmjufxnxuoGGc1UYV9u2z3R92IEuE ru6j9Fr5ny3UKJF7ahiwx6m0oXE1vEKdd6WMPW5aWwhV6Wrwd5Ca_Mfh_7Zap t7oTHPxvHV9XZiqzbxy_Knq0OqAEjvj1ot5ZBY8_4q-cCOUHS9lm9JmVBWxzu Y3oL0spGkbcDOXsptgp3DUgJu_vgcJFsouwvbyhDDdFKOiBEHhSQmAD2-MByn 6Gfj1CXGuH7sGJtB2yS1fHA5Ym-nX1dKOxksJlCO9Eqt5wWs4Wi0xlF7PjWIh Pk8KUVim7c9O_HJghC30pRR5K-Em4ESaqK0rRRETWoKc_y5_3QZi1lHe_Ynuz Petrie Expires 11 March 2027 [Page 112] Internet-Draft JSON vCon September 2026 AooGM4HyTwznHgBLri_-FaO9-AR2Hz0E9sqHo5KDiKvph4-ojTt4d3T1Iwvoj c3LYbeGTOoEzWQGYHdu_fna2-x-BiD4cXJ4_2HZkVgCSvlyFrxERhYUU1wVNL Atpp_zbD8KFrISLGb20GLrDsWZbxjMihYpCXQJevr4FCAHmKHaLe0_sU1hOI3 GpfHrW6laYZzlId9XcB8LZzxxBFzdZMj6V2E5o6y95q7OPaNUJ1kuqS1zIJJt 16yY-PpQUv71_GiR4AUBWoXxeApjQVmN6mG_WJsfmPJNlaY7O_Etxy_W1y2sH hQT03bcbomGsihGTw32sgPuJ3KXOC7oM0-nQn4eQEGqtMacfzAfwn4os-NEcE TzvnzIBEF1TVDG_LbG_WDNm5g7Y1O7epJEyPS_u3H7lTYRjhE_GqQU-uiNK6L y6wyFZw9Na5TssGwuX5ODdxNuyEWhEdph6ho749j27qEj4nuhHjEsm1-5te81 yEJs9ARfD-K5MG-iRrLiY0i0eyyUXcoYUSVWb2P788sym8poSLPqBWcj2e01e TlJnnFSgUOEvggXFKgXkY22UOphQojGy0iYJj7xTZhwv2cox7v7GSO1dATeL4 JrcoHUS4vlpvmQNsptbMgCTfOVXfn4oZXqDX3ftk-8NA5dT_DLiXikPWcEs1t lVGb9MF7geQ-4-juzI6D1sHSBsVL0h16HCR7AH6twguRgOGyBpynu2sIbcNyr cvy0qJB6K2XGkJFI5PwRSspSZbSlNfTNSmJQX70ToMcxJ7Al7TJ1UDoYdG_At X8iYXs5w-BdA5feJe8GkPkfMtbCoEEB-4uhu3ShLsNqOT1AAffhiBQz5ou7uD z5YuArRgrmeGsXiT1oZBKX1JGKZZq-bWcbSjpOe8fKHxpV4B-b9H_m13RBWRw NLQIGpzS5KV5mFw7e5lxHTN7WyoIIw-V4eUE1SrgbjAUrwKZmFlnNPGG93SAm HtIu4Tn2k-oBDgnA5gbeWNGc78JJRKqHMV7y3i-bP88UZ0bR_N2EFCwdbdES_ 7eHPrDftcy-nZbC_knOyx9qi2DRlI6HrOHshity9Dc6VQW4dVWTgWD10aLtQb QAFVTXSiZ94G6lbhFraw7RNslw-KVczwenQfVDxbUGVbjCr3HV8gdzxBeAC4Y 9wzIcl84UOP2EdStQA0xNWZs8z20P7_7swzEOqu4_ILaAg0pVeVW6T5CXnCFI aAdjukbQ_iN7MaEult8hH8t0ejzIka1VNh8_9wREtoIXWcN_kL3b-dOzvQ4Gl nYE7HwtnjufeC8BCuIDbE08HpPop4aeI4pFgiBrxPeLN5XY-kgwvSk7na7qBV bs_AGjmMUxrl6YNR2veE8CqT3PDv-JYlSm6264UrCAep1G8l91yC-wSoOJol1 cv2xJKLQTV3Fm6DD0lBNF5k89Riljc3CGdTzm1PGXvCz6ehxf29sfyEY1sAa9 If_pwMeWWizmHSeTzvTM7hImaAyPTxm586rQk0lhEqnmS0eSjCX6Q-AqG1BXz ueepg31uEr-78yhbdt98hdhZmRO8v-wjbxpWXBiwOHJT0xltpGdmxuI6xGyGS y8ZXqGb7cp588uwh-5z40szrX4DjBu9_TAc24jt-TGd5x0FqfAJyexskf_YaD Bsu5hQXPzAPjuZwHMHaW_MdJBR1IN7ALAZHvag5F_Nh8X0CI1xYlo8YGxLA_i tvrlIlicMddcZeafps1W4gFtAftT-gIVT1ZlNEL2qGARsfr8nGbdg9R4gmYcZ 6C2ZyV0ShVH0uLeKixrOfoLX3qvbz3pTN8dEPXOzjhb0w6HnohrmAgqYF_km4 V9FR1SQjGTMA8O6ASrE4fcPcK65jSUSS5GrYGWTzh0a-LjlFkTWom2xm9QuCR krGhDzAz4MufIptPbiNn_VrlFkixx5pw4vC-sOCWyJwgSwhL0kkLOg1AYdKp5 lZRjQlDMHnoUmgyHDCcP-QqhMNLSg7K-t7Ov_WUHXFssp8ivublUhkGJkzxFX TAu2cD5hT8Iiwtad_1Aa-ZZok8LTbl3JT5bd5ivqO9d6GjaPmjXRT9G1IYfmh BN_hZ-9QSh3HZ89LFpMCOcQfWK6XysOTinchmcLp2eldGjeH1AF940N9IrrLm 0pk403DSf8r4g2uM8yww5ZfLA8qEWUgYSnlwLpcITMVrJ1mAixpcM041DoPPJ uHv1tvAt3TbErSEmdzpRgmQSU7inUm3nlMZPqq7jPYs5IGgeinescmxL4GonF ehLrvKF3ICRFaE_eeibKu4ZP_BlSrekO0NLoq4UwKNyp2i9n0yhLN0pkGBTv7 xT1CLsap7BsHNEgQZPGJPXOoBMd9DkZVpKtmpPMilDqqxAWRPjr_xG9_vejeY Y6WYZgiE5Kc5mFwRJ_kI_yHoqCsoC4Rf4CqTL4tNkiAzvyVyhEf0WejbU8Y3Y f30UjN1WfRAPV-wSu4uQTYAGasaUe1txuqls7R29Q-gL27v-l7Auk3Lss3dk4 R4Rfac6F256ypWYWhs5QzxviXcYq5R1ID8vKam3Rh3C4MopighNJZe03lrWQx 3sJbN-IndCBGdRDKzmxG2pi1ULMLRBW265S5nLJ9qDhEtcmPN248vy6_UnoXE 8ia-4ssSroe3XOdpVYLqfQrM0oWtAv71LRtnWw3jNgE3pLMTg9OIX9Vu3VDxM LEWLXjvsDreOJn_uqDF_AvN8sha5TtS_cSRIc5rvQIvYC5nyZ5c8aVy2zCAoM gusXpUseWGHUMUwJpMXrRYGTsrWUDWIzdUb8LUkStepJqff1hfwcWF2Ia2xqT J2X7PXWABWtgs3bEdmdjzcc9yHTCmVtORBbykMwrU_HzK1MKrz2_2EoZLkg4r m4YxVLnniTIB2rPK1ol7zkT88VcGK5vyy1YqiC3ckI5kqd_4QMYWBwdb507iX Petrie Expires 11 March 2027 [Page 113] Internet-Draft JSON vCon September 2026 AdQQbKtfUavD-Q_1KKL0LGWNbSzMH6IIJxn2yZcdJRQDXxNoTQCrMkKk6SfZk f4vUzdzFurE_m7lr5LfSmTnQanj2BJ3WtHPf6UBbQ-11Sy46IuGR2yip6hoJz pYGP1d5tdaXNpEWiFL5IOV7RNd8ogOsEZtxJcwW6j5tDvKflQVbvoepeeCD5Y 37VngTRmuvWoOA00eEfsEiwxFFAx5ZgqXyFNL2zR5UM-ysT_S4o4DMkdqdAaq fz-rqfj22uju0sYans-1nxFoDbzlSnrDhg_arzWbMzSw2xGWvZRj2CpfHbMsd TgXzwvYmpPfMzBoJPoUrWLVQDNMi_JiFXNPnLiAEB-znb3faY1bVRTpiDQlyj 0RX-scV5fBVu962VLxZJXr-hA2V8kHSihocpgRhuR8HFEljOYV7U0hov4EMDT HSs8suVSaG1VIOu3x9PPVLsYjFICM9OLmwAEIx9zvNRoq8UYUrPlPqWV6Y9lK F0QP1ZZZL_KS0NUgAlG5SPAMr1alFWoyMBcfVSXMduAteDHX7bk-Vkkj4BeER B0SaUlgR6rP4_eS7TbT3WMczfngVBZ57Yi_4X1EQBwtTbG5lPsLD8-5jknX2Y l7bX3Ve2IPpRGqmhKIGWpwxcAC9ri_PeD1nGpbseiX7GQ0lP46PnMoi37--hG AvKcDm2jiWXABwIvGOrTyLzhWU8pKBseumajrT5l_ohQ87P_n7Xllsrz5FJcl lcg46NKOBmo08MGvU6nJOGW__4wgz2etzAiB2gBj36_-dF3tJmGTmpv99Rjns Zj4yT-NaFEVxXgqd3KKsm7vkuNx5B4e-IPtoQXkxVQlL1MGjYR7JLS5WeGoUl FyPFvoHEvOtSFJ5c-QlQ1zVhwZXYvsWEHcXzlhzT71Wqgr6hj_TcEo9Ob__DV jJPDeL7rtERyDU6eYrKxNuIewzdRyW7rB7NxI4u7aBvGnO-rX3c17LYYmTw3O 7GMaPh1kcd21faUuqq6MycXYNCwZtMRVXiVqZVRQN6q53kylRlgMkf-I_VRqo hEP9GTORmvFklSJFzCM814-APDzNnvOSJ5cpoN3vUMabb5yJQvH1BlvuxhzgB H-j6QwkNLv6LnmEA2XZ_a7Ox6nualibKXMCR7wDGz8DoGSMFaaZF0M3voMJWe dmgQM2y5l2kvslMcKMAEHbVFZBSBjDswDoYZRfpnO13yfSveEo_CwXMSsd65m B4l8UQ0zOiVUAPAVQ1htGJSImQq59I6aoFFLawueWGaQSlR2b4hYWE8i5oCYx 1nnmpDUniyFodagtIYNRsZOrcxSbY4czdKi02i3CUmD7QB_MrOcRVVGBEIa1P rAKmMWRyu3ePbVazMwigfVq9ghmJ3NFWI5IWp1t3DsprkADIkj_9le1stoNos Zo_ef7gee58_7vThYn0bf36CvlF8Bna-Ic4bsOa-7EXy27pt0aTNSMEIUPrTC nswHx5TTxzfD7MUvMzj6rqbOF3TgXODC7pXbZr7jO6-AqZBPW3Q9C7vAlPwh- WrO0nsk7ypZGdA1VXnNr3N9pcuy3PZPRkysG-xsoOLuW_stH2zeXYollPyQC2 s_CnVcI0unYvmP6YkXVZHyip8dJlUVhAHMwSV8A5Wd5zVxOqQlxRJuev58gzM afjVW0kJFvOWuOrQh86rTna5PODGBOPepAmddRPFFMlRRphmWuCPRSOkKnVye gAxXNHNjc6F7zIdqODvzQxI2hNWPiQ8LmKoAYktbV8EsYVhdVt1X-tQEI34f2 iKHckNHFllgXzqfRTcVeyG_Y9m7QuAPIGHt4qmTbybQ0MQGZO9IMvIEDkaySX mpwCfxhfkq6Vma29eCU1AobxEw-tZTZ9R9N0tjDuiUhRCGlANIWUd8QhpfTfT BRLyBrUjoq7n7LgAY28oc8CE_-3IQNBQeb4v6s84AKBEpWJt5kmluQLJZitHo UTTB425cbJhFDWyMKd-bU5iKflpndtuog-762r2x1gVFJaetGJsUg_o7Uass2 Gfb5_jBBEDnrPhOaZauaXEsAKoCCjJE6f9ElTvM6CgEFebL1OtVkwlcXfN51- dwpnxVeKKQkU_Fqzu0YaPxllNzZZzXRjjAR1iLPHDoSNyd7X4C5xmNnr44gzc 6Sg-rRzZ4VSljg6MVKkmsWJlIuNkR9jV4M_VOSCVLY9RP3UqTsHcUgZbGswIJ PJBpc3Hgurbh4YX0lI4o6O9my1XTrJv9ICm0ijbQM3X2nJF4Zv_vhvqp5Mtdm P0mDWi8QPs-ptZwFLE__LM3PV6joWd1nXq6TJ7EcrAX0zk6hTC-liXFncYfzR 1nniq2pQGZLokC6NID41OEsXTcdJZt1t7yd8Xv1PgDXoRmEOTILaeUv4MDKEV d4pTwCRctDJmap_iycCK3YVsnMGmU0s55tDL1VwvocEMDu1TSJW0qrR4OAORU DYdWgZhuwodPrHywGqkt0Dqx1K93fuAO6HjmFZ0KXPGzrDFeSdWRvFVGgA5Y4 V5IX0qpvSlUzscdgkNy6-3Gs", "tag": "U6W713kOK4_fPukH3d_b7Bx8-vIQnTNGePl21s_9SnM", "recipients": [ { "header": { "enc": "A256CBC-HS512" }, Petrie Expires 11 March 2027 [Page 114] Internet-Draft JSON vCon September 2026 "encrypted_key": "VzWgir5UdrY9t2vhs55TuVLMZcOHKlEBPjrtDcl6R Rq1mHX_vTkgydEDZ-mgjOJ9f1HTMT0mvkoQUVNhApXO6ZcaRJGqYdESvC pYv-gS0uWeIciJjekGs78NuOaBT4gfppUUBerq3GkR6KbHO03RJ11-xi6 sYXE6-i8nj7hgvIZNKmKiwPXV7y1OZRpdtt4PmG5IGQihf70M42Ib-l9- tD_MMpOBF3Jwfz4PCTPoUUnM6CVSzpOhV1xxcWPHGIWUgtdYJlufm2Ybw q4_kvwP-E8eKEaTSoXdvhQKdJ73E_dNcblo1ZsgAZSPOSmswMdiNbgMdb q9kaAVNbVYcZXD8Q" } ], "unprotected": { "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46", "cty": "application/vcon+json", "enc": "A256CBC-HS512" } } A.8. Redacted vCon This is an example redaction of the vCon in the example Two Party Call vCon With Externally Referenced Recording (Appendix A.4). Most notable is the Redacted object (Section 4.1.8) which references the lesser redacted version of this vCon. In addition the *url* parameter has been redacted from the Dialog Object (Section 4.3), but the rest of the Dialog Object (Section 4.3) was left in the redaction. The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec_redacted.vcon { "created_at": "2022-06-21T13:53:00-04:00", "parties": [ { "name": "Alice" }, { "name": "Bob" } ], "dialog": [ { "type": "recording", "start": "2022-06-21T17:53:26.000+00:00", "duration": 33.12, "parties": [ 0, 1 Petrie Expires 11 March 2027 [Page 115] Internet-Draft JSON vCon September 2026 ], "mediatype": "audio/x-mp3", "filename": "ab_call.mp3", "content_hash": "sha512-GLy6IPaIUM1GqzZqfIPZlWjaDsNgNvZM0iC ONNThnH0a75fhUM6cYzLZ5GynSURREvZwmOh54-2lRRieyj82UQ" } ], "analysis": [ { "type": "transcript-redacted", "dialog": 0, "body": [ { "parties": 0, "start": "2022-06-21T17:53:27.200000+00:00", "duration": 0.5600001000000001, "text": "Hello." }, { "parties": 0, "start": "2022-06-21T17:53:27.760000+00:00", "duration": 1.6799997999999998, "text": "This is {{URL}}." }, { "parties": 0, "start": "2022-06-21T17:53:29.440000+00:00", "duration": 0.8799999000000005, "text": "My name is Bob." }, { "parties": 0, "start": "2022-06-21T17:53:30.320000+00:00", "duration": 1.2000002999999992, "text": "How can I help you?" }, { "parties": 0, "start": "2022-06-21T17:53:31.600000+00:00", "duration": 0.7199997000000007, "text": "Hi." }, { "parties": 0, "start": "2022-06-21T17:53:32.320000+00:00", "duration": 2.4799992999999994, "text": "I'd like to add Fu to my service." }, Petrie Expires 11 March 2027 [Page 116] Internet-Draft JSON vCon September 2026 { "parties": 0, "start": "2022-06-21T17:53:35.200000+00:00", "duration": 0.6399990000000013, "text": "{{US_STATE}}." }, { "parties": 0, "start": "2022-06-21T17:53:36.160000+00:00", "duration": 2.959999999999999, "text": "Can you give me your name and phone number so I can look up your account?" }, { "parties": 0, "start": "2022-06-21T17:53:39.735000+00:00", "duration": 6.879999999999999, "text": "My name is Alice, and my number is {{BAN}}." }, { "parties": 0, "start": "2022-06-21T17:53:46.775000+00:00", "duration": 0.8799990000000015, "text": "Thank you." }, { "parties": 0, "start": "2022-06-21T17:53:48.935000+00:00", "duration": 0.40000000000000213, "text": "{{US_STATE}}." }, { "parties": 0, "start": "2022-06-21T17:53:50.134874+00:00", "duration": 1.600000999999999, "text": "I've added two to your service." }, { "parties": 0, "start": "2022-06-21T17:53:51.734875+00:00", "duration": 2, "text": "Is there anything else that I can help you wit h?" }, { "parties": 0, "start": "2022-06-21T17:53:54.054874+00:00", "duration": 0.4799999999999969, Petrie Expires 11 March 2027 [Page 117] Internet-Draft JSON vCon September 2026 "text": "No." }, { "parties": 0, "start": "2022-06-21T17:53:54.534874+00:00", "duration": 0.7999990000000032, "text": "Thank you." }, { "parties": 0, "start": "2022-06-21T17:53:55.334875+00:00", "duration": 0.6399989999999995, "text": "Goodbye." }, { "parties": 0, "start": "2022-06-21T17:53:56.374874+00:00", "duration": 0.6400000000000006, "text": "Goodbye." }, { "parties": 0, "start": "2022-06-21T17:53:57.014874+00:00", "duration": 0.880001, "text": "Have a nice day." } ], "encoding": "json", "vendor": "CapitalOne", "schema": "data_labeler_schema", "product": "dataprofiler" } ], "attachments": [], "uuid": "01928e10-193e-8231-b9a2-279e0d16bc46", "redacted": { "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46", "type": "PII Redaction" } } A.9. Amended Signed vCon This is an example vCon with an Amended Object (Section 4.1.9) referencing the vCon that it amends or adds additional content. In this case it is referencing the signed vCon example above. An example text Dialog Object (index 1) is the amendment. Petrie Expires 11 March 2027 [Page 118] Internet-Draft JSON vCon September 2026 The unformatted version of the following example can be downloaded from: https://raw.githubusercontent.com/ietf-wg-vcon/draft-ietf-vcon- vcon-core/refs/heads/main/examples/ab_call_ext_rec_amended.vcon Petrie Expires 11 March 2027 [Page 119] Internet-Draft JSON vCon September 2026 { "created_at": "2022-06-21T13:53:00-04:00", "parties": [ { "tel": "+12345678901", "name": "Alice" }, { "tel": "+19876543210", "name": "Bob" } ], "dialog": [ { "type": "recording", "start": "2022-06-21T17:53:26.000+00:00", "duration": 33.12, "parties": [ 0, 1 ], "url": "https://github.com/ietf-wg-vcon/draft-ietf-vcon-vco n-core/raw/refs/heads/main/examples/ab_call.mp3", "mediatype": "audio/x-mp3", "filename": "ab_call.mp3", "content_hash": "sha512-GLy6IPaIUM1GqzZqfIPZlWjaDsNgNvZM0iC ONNThnH0a75fhUM6cYzLZ5GynSURREvZwmOh54-2lRRieyj82UQ" }, { "type": "text", "start": "2022-06-21T17:53:26.000+00:00", "parties": [ 1, 0 ], "mediatype": "text/plain", "body": "Good day!", "encoding": "none" } ], "analysis": [], "attachments": [], "uuid": "01a07da8-c5c1-8db4-a20f-d188127fad29", "amended": { "uuid": "01a07da8-c2bb-83e5-b9a2-279e0d16bc46" } } Petrie Expires 11 March 2027 [Page 120] Internet-Draft JSON vCon September 2026 TODO: recording-set example with party_history Appendix B. vCon JSON Schema This JSON schema is provided as informational. The text in sections 1-6 of this document define the normative definition of the vCon schema. If the JSON schema provided below differs from that in the text of the above sections, the text should be taken as the definitive definition and the JSON Schema below should be consider incorrect. The JSON Schema definition below has been formatted with line breaks to print nicely on the page. The unformatted version of the JSON schema can be downloaded from: https://raw.githubusercontent.com/ ietf-wg-vcon/draft-ietf-vcon-vcon-core/refs/heads/main/ vcon_json_schema.json { "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://ietf.org/vcon/schemas/unsigned-vcon.json", "title": "vCon - Unsigned Form", "description": "JSON schema for the unsigned form of vCon (Conv ersational Data Container) as defined in RFCXXXX", "type": "object", "required": [ "uuid", "created_at" ], "properties": { "vcon": { "type": "string", "description": "DEPRECATED: Syntactic version of the JSON f ormat. This was used to indicate schema changes in the In ternet-Draft versions", "const": "0.4.0" }, "uuid": { "type": "string", "description": "Globally unique identifier for the vCon. SH OULD be a version 8 UUID", "format": "uuid" }, "extensions": { "type": "array", "description": "List of names of all vCon extensions used b y this vCon", "items": { "type": "string" Petrie Expires 11 March 2027 [Page 121] Internet-Draft JSON vCon September 2026 } }, "critical": { "type": "array", "description": "List of extension names that a consumer MUS T support to safely process this vCon", "items": { "type": "string" } }, "created_at": { "type": "string", "description": "Creation time of this vCon in RFC3339 forma t", "format": "date-time" }, "updated_at": { "type": "string", "description": "Last modified time of this vCon in RFC3339 format", "format": "date-time" }, "subject": { "type": "string", "description": "Subject or topic of the conversation" }, "redacted": { "type": "object", "description": "Reference to the unredacted or less redacte d vCon prior instance", "required": [ "type" ], "properties": { "uuid": { "type": "string", "description": "UUID of the unredacted or less redacted vCon prior instance", "format": "uuid" }, "type": { "type": "string", "description": "Type of redaction performed" }, "url": { "type": "string", "description": "HTTPS URL where the referenced vCon is stored", Petrie Expires 11 March 2027 [Page 122] Internet-Draft JSON vCon September 2026 "format": "uri" }, "content_hash": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ], "description": "Hash(es) of the external content using format: algorithm-base64url_encoded_hash" } }, "dependencies": { "url": [ "content_hash" ] } }, "amended": { "type": "object", "description": "Reference to the prior vCon instance versio n that this vCon amends", "properties": { "uuid": { "type": "string", "description": "UUID of the prior vCon instance version ", "format": "uuid" }, "url": { "type": "string", "description": "HTTPS URL where the referenced vCon is stored", "format": "uri" }, "content_hash": { "oneOf": [ { "type": "string" }, { "type": "array", Petrie Expires 11 March 2027 [Page 123] Internet-Draft JSON vCon September 2026 "items": { "type": "string" } } ], "description": "Hash(es) of the external content (requi red if url is provided)" } }, "dependencies": { "url": [ "content_hash" ] }, "if": { "not": { "required": [ "url" ] } }, "then": { "required": [ "uuid" ], "$comment": "uuid is optional only if an external referen ce is provided" } }, "parties": { "type": "array", "description": "Array of Party Objects representing all par ties involved in the conversation", "items": { "$ref": "#/definitions/Party" } }, "dialog": { "type": "array", "description": "Array of Dialog Objects containing the capt ured conversation content", "items": { "$ref": "#/definitions/Dialog" } }, "analysis": { "type": "array", "description": "Array of Analysis Objects containing analys Petrie Expires 11 March 2027 [Page 124] Internet-Draft JSON vCon September 2026 is performed on the conversational data", "items": { "$ref": "#/definitions/Analysis" } }, "attachments": { "type": "array", "description": "Array of Attachment Objects for ancillary d ocuments related to the conversation", "items": { "$ref": "#/definitions/Attachment" } } }, "definitions": { "Party": { "type": "object", "description": "Represents a party involved in the conversa tion", "properties": { "tel": { "type": "string", "description": "TEL URL (RFC3966) for the party" }, "sip": { "type": "string", "description": "SIP URL for the party" }, "stir": { "type": "string", "description": "STIR PASSporT in JWS Compact Serializat ion form" }, "mailto": { "type": "string", "description": "Email address for the party in any comm on form, including a bare address or a MAILTO URL" }, "name": { "type": "string", "description": "Name of the party" }, "did": { "type": "string", "description": "Decentralized Identifier (DID) URI for the party" }, "validation": { Petrie Expires 11 March 2027 [Page 125] Internet-Draft JSON vCon September 2026 "type": "string", "description": "Label or token identifying the method o f identity validation used" }, "gmlpos": { "type": "string", "description": "Geographic location in GML pos format ( latitude longitude)" }, "civicaddress": { "$ref": "#/definitions/Civicaddress" }, "uuid": { "type": "string", "description": "Free form unique identifier for the par ticipant; not constrained to UUID syntax" }, "type": { "type": "string", "description": "Participant type" }, "org": { "type": "string", "description": "Organization to which the party belongs " }, "dept": { "type": "string", "description": "Department to which the party belongs" } } }, "Civicaddress": { "type": "object", "description": "Civic address information for a party's loc ation", "properties": { "country": { "type": "string" }, "a1": { "type": "string", "description": "National subdivision (state/province)" }, "a2": { "type": "string", "description": "County/parish/district" }, Petrie Expires 11 March 2027 [Page 126] Internet-Draft JSON vCon September 2026 "a3": { "type": "string", "description": "City/township" }, "a4": { "type": "string", "description": "City division/borough" }, "a5": { "type": "string", "description": "Neighborhood/block" }, "a6": { "type": "string", "description": "Street" }, "prd": { "type": "string", "description": "Leading street direction" }, "pod": { "type": "string", "description": "Trailing street suffix" }, "sts": { "type": "string", "description": "Street suffix" }, "hno": { "type": "string", "description": "House number" }, "hns": { "type": "string", "description": "House number suffix" }, "lmk": { "type": "string", "description": "Landmark" }, "loc": { "type": "string", "description": "Additional location info" }, "flr": { "type": "string", "description": "Floor" }, Petrie Expires 11 March 2027 [Page 127] Internet-Draft JSON vCon September 2026 "nam": { "type": "string", "description": "Name/occupant" }, "pc": { "type": "string", "description": "Postal code" } } }, "Dialog": { "type": "object", "description": "Represents a segment of captured conversati on", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "recording", "text", "transfer", "incomplete", "recording-set" ], "description": "Type of dialog" }, "start": { "type": "string", "format": "date-time", "description": "Start time of the dialog in RFC3339 for mat; SHOULD be present unless not known; optional for transfer type" }, "duration": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "number", "minimum": 0 } ], "description": "Duration in seconds" Petrie Expires 11 March 2027 [Page 128] Internet-Draft JSON vCon September 2026 }, "parties": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "array", "items": { "type": "integer", "minimum": 0 } }, { "type": "array", "items": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "array", "items": { "type": "integer", "minimum": 0 } }, { "type": "null" } ] } } ], "description": "Index/indices of parties in the parties array; SHOULD be present for recording, recording-se t and text types; MUST NOT be present for transfer ty pe" }, "originator": { "type": "integer", "minimum": 0, "description": "Index of the originating party if first party is not the originator" }, "recordings": { Petrie Expires 11 March 2027 [Page 129] Internet-Draft JSON vCon September 2026 "type": "array", "items": { "type": "integer", "minimum": 0 }, "description": "recording-set reference to list of indi ces to recording Dialog Objects" }, "recording_set": { "type": "integer", "minimum": 0, "description": "Index of the recording-set Dialog Objec t that this recording is a part of" }, "mediatype": { "type": "string", "description": "Media type of the dialog content; MUST be present for inline content; not required when Dial og Content is absent" }, "filename": { "type": "string", "description": "Original filename of the dialog content " }, "body": { "description": "Inline content of the dialog (for inlin e files). Any type for encoding=json, otherwise it m ust be a string." }, "encoding": { "type": "string", "enum": [ "base64url", "json", "none" ], "description": "Encoding type for inline content" }, "url": { "type": "string", "format": "uri", "description": "HTTPS URL for externally referenced con tent" }, "content_hash": { "oneOf": [ { Petrie Expires 11 March 2027 [Page 130] Internet-Draft JSON vCon September 2026 "type": "string" }, { "type": "array", "items": { "type": "string" } } ], "description": "Hash(es) of external content" }, "disposition": { "type": "string", "enum": [ "no-answer", "congestion", "failed", "busy", "hung-up", "voicemail-no-message" ], "description": "Reason the call or conversation failed (required for incomplete type); \"failed\" SHOULD be used when the reason is not known" }, "session_id": { "anyOf": [ { "$ref": "#/definitions/SessionId" }, { "type": "array", "items": { "$ref": "#/definitions/SessionId" } }, { "type": "array", "items": { "oneOf": [ { "$ref": "#/definitions/SessionId" }, { "type": "array", "items": { "$ref": "#/definitions/SessionId" } Petrie Expires 11 March 2027 [Page 131] Internet-Draft JSON vCon September 2026 } ] } } ], "description": "Session ID(s) for the dialog" }, "party_history": { "type": "array", "items": { "$ref": "#/definitions/PartyHistory" }, "description": "History of party join/drop/hold/mute ev ents" }, "transferee": { "type": "integer", "minimum": 0, "description": "Party index of the transferee (for tran sfer type)" }, "transferor": { "type": "integer", "minimum": 0, "description": "Party index of the transferor (for tran sfer type)" }, "transfer_target": { "type": "integer", "minimum": 0, "description": "Party index of the transfer target (for transfer type)" }, "original": { "type": "integer", "minimum": 0, "description": "Dialog index of the original call (for transfer type); may reference a recording, recording- set or text type Dialog Object" }, "consultation": { "type": "integer", "minimum": 0, "description": "Dialog index of the consultation call ( for transfer type); may reference a recording, record ing-set, text or incomplete type Dialog Object" }, "target_dialog": { Petrie Expires 11 March 2027 [Page 132] Internet-Draft JSON vCon September 2026 "type": "integer", "minimum": 0, "description": "Dialog index of the target call (for tr ansfer type); may reference a recording, recording-se t, text or incomplete type Dialog Object" }, "application": { "type": "string", "description": "Application, communication channel or c ontext of the conversation" }, "message_id": { "type": "string", "description": "Unique message identifier from the mess aging system" } }, "dependencies": { "url": [ "content_hash" ] }, "allOf": [ { "if": { "properties": { "type": { "const": "incomplete" } }, "required": [ "type" ] }, "then": { "required": [ "disposition" ] } }, { "if": { "properties": { "type": { "const": "recording-set" } }, "required": [ Petrie Expires 11 March 2027 [Page 133] Internet-Draft JSON vCon September 2026 "type" ] }, "then": { "required": [ "recordings" ] } }, { "if": { "properties": { "type": { "const": "transfer" } }, "required": [ "type" ] }, "then": { "not": { "anyOf": [ { "required": [ "parties" ] }, { "required": [ "originator" ] }, { "required": [ "session_id" ] }, { "required": [ "party_history" ] }, { "required": [ "message_id" ] }, Petrie Expires 11 March 2027 [Page 134] Internet-Draft JSON vCon September 2026 { "required": [ "recordings" ] }, { "required": [ "recording_set" ] }, { "required": [ "mediatype" ] }, { "required": [ "filename" ] }, { "required": [ "body" ] }, { "required": [ "encoding" ] }, { "required": [ "url" ] }, { "required": [ "content_hash" ] } ] } } }, { "if": { "properties": { "type": { Petrie Expires 11 March 2027 [Page 135] Internet-Draft JSON vCon September 2026 "const": "recording-set" } }, "required": [ "type" ] }, "then": { "not": { "anyOf": [ { "required": [ "message_id" ] }, { "required": [ "recording_set" ] }, { "required": [ "mediatype" ] }, { "required": [ "filename" ] }, { "required": [ "body" ] }, { "required": [ "encoding" ] }, { "required": [ "url" ] }, { "required": [ "content_hash" Petrie Expires 11 March 2027 [Page 136] Internet-Draft JSON vCon September 2026 ] }, { "required": [ "transferee" ] }, { "required": [ "transferor" ] }, { "required": [ "transfer_target" ] }, { "required": [ "original" ] }, { "required": [ "consultation" ] }, { "required": [ "target_dialog" ] } ] } } }, { "if": { "properties": { "type": { "const": "incomplete" } }, "required": [ "type" ] }, "then": { Petrie Expires 11 March 2027 [Page 137] Internet-Draft JSON vCon September 2026 "not": { "anyOf": [ { "required": [ "message_id" ] }, { "required": [ "recordings" ] }, { "required": [ "recording_set" ] }, { "required": [ "mediatype" ] }, { "required": [ "filename" ] }, { "required": [ "body" ] }, { "required": [ "encoding" ] }, { "required": [ "url" ] }, { "required": [ "content_hash" ] }, { Petrie Expires 11 March 2027 [Page 138] Internet-Draft JSON vCon September 2026 "required": [ "transferee" ] }, { "required": [ "transferor" ] }, { "required": [ "transfer_target" ] }, { "required": [ "original" ] }, { "required": [ "consultation" ] }, { "required": [ "target_dialog" ] } ] } } }, { "if": { "properties": { "type": { "const": "recording" } }, "required": [ "type" ] }, "then": { "not": { "anyOf": [ { Petrie Expires 11 March 2027 [Page 139] Internet-Draft JSON vCon September 2026 "required": [ "recordings" ] }, { "required": [ "transferee" ] }, { "required": [ "transferor" ] }, { "required": [ "transfer_target" ] }, { "required": [ "original" ] }, { "required": [ "consultation" ] }, { "required": [ "target_dialog" ] } ] } } }, { "if": { "properties": { "type": { "const": "text" } }, "required": [ "type" ] Petrie Expires 11 March 2027 [Page 140] Internet-Draft JSON vCon September 2026 }, "then": { "not": { "anyOf": [ { "required": [ "recordings" ] }, { "required": [ "recording_set" ] }, { "required": [ "transferee" ] }, { "required": [ "transferor" ] }, { "required": [ "transfer_target" ] }, { "required": [ "original" ] }, { "required": [ "consultation" ] }, { "required": [ "target_dialog" ] } ] } } }, Petrie Expires 11 March 2027 [Page 141] Internet-Draft JSON vCon September 2026 { "if": { "required": [ "body" ], "properties": { "body": { "not": { "const": "" } } } }, "then": { "required": [ "encoding" ] } }, { "if": { "required": [ "body" ], "properties": { "body": { "not": { "const": "" } } } }, "then": { "required": [ "mediatype" ] } } ] }, "SessionId": { "type": "object", "description": "Session identifier with local and remote UU IDs", "properties": { "local": { "type": "string", "description": "Local UUID for the session" Petrie Expires 11 March 2027 [Page 142] Internet-Draft JSON vCon September 2026 }, "remote": { "type": "string", "description": "Remote UUID for the session" } } }, "PartyHistory": { "type": "object", "description": "Records party events during the dialog", "required": [ "party", "time", "event" ], "properties": { "party": { "type": "integer", "minimum": 0, "description": "Index of the party" }, "time": { "type": "string", "format": "date-time", "description": "Time of the event in RFC3339 format" }, "event": { "type": "string", "enum": [ "join", "drop", "hold", "unhold", "mute", "unmute", "keydown", "keyup" ], "description": "Type of event" }, "button": { "type": "string", "description": "DTMF digit, character or string (requir ed for keydown/keyup events)" } }, "if": { "properties": { Petrie Expires 11 March 2027 [Page 143] Internet-Draft JSON vCon September 2026 "event": { "enum": [ "keydown", "keyup" ] } }, "required": [ "event" ] }, "then": { "required": [ "button" ] } }, "Attachment": { "type": "object", "description": "Represents an ancillary document related to the conversation", "required": [ "start", "party", "dialog" ], "properties": { "purpose": { "type": "string", "description": "text description of what the attachment is for" }, "start": { "type": "string", "format": "date-time", "description": "Time the attachment was sent/exchanged in RFC3339 format" }, "party": { "type": "integer", "minimum": 0, "description": "Index of the party that contributed the attachment" }, "dialog": { "type": "integer", "minimum": 0, "description": "Index of the dialog this attachment is Petrie Expires 11 March 2027 [Page 144] Internet-Draft JSON vCon September 2026 part of" }, "mediatype": { "type": "string", "description": "Media type of the attachment content; M UST be present for inline content; not required when Attachment Content is absent" }, "filename": { "type": "string", "description": "Original filename of the attachment" }, "body": { "description": "Inline content of the attachment (for i nline files). Any type for encoding=json, otherwise it must be a string." }, "encoding": { "type": "string", "enum": [ "base64url", "json", "none" ], "description": "Encoding type for inline content" }, "url": { "type": "string", "format": "uri", "description": "HTTPS URL for externally referenced att achment" }, "content_hash": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ], "description": "Hash(es) of external content" } }, "dependencies": { Petrie Expires 11 March 2027 [Page 145] Internet-Draft JSON vCon September 2026 "url": [ "content_hash" ] }, "allOf": [ { "if": { "required": [ "body" ], "properties": { "body": { "not": { "const": "" } } } }, "then": { "required": [ "encoding" ] } }, { "if": { "required": [ "body" ], "properties": { "body": { "not": { "const": "" } } } }, "then": { "required": [ "mediatype" ] } } ] }, "Analysis": { "type": "object", "description": "Represents analysis performed on the conver Petrie Expires 11 March 2027 [Page 146] Internet-Draft JSON vCon September 2026 sational data", "required": [ "type", "vendor" ], "properties": { "type": { "type": "string", "description": "Semantic type of analysis (e.g., report , sentiment, summary, transcript, translation, tts)" }, "dialog": { "oneOf": [ { "type": "integer", "minimum": 0 }, { "type": "array", "items": { "type": "integer", "minimum": 0 } } ], "description": "Index/indices of dialog objects this an alysis is based on" }, "attachment": { "oneOf": [ { "type": "integer", "minimum": 0 }, { "type": "array", "items": { "type": "integer", "minimum": 0 } } ], "description": "Index/indices of attachment objects thi s analysis is based on" }, "mediatype": { "type": "string", "description": "Media type of the analysis content; SHO Petrie Expires 11 March 2027 [Page 147] Internet-Draft JSON vCon September 2026 ULD be provided for inline content and for external c ontent without an HTTPS Content-Type header; when no media type is defined for the data format, the vendor , product and schema parameters SHOULD identify the f ormat instead" }, "filename": { "type": "string", "description": "Original filename of the analysis data" }, "vendor": { "type": "string", "description": "Vendor or product name that generated t he analysis" }, "product": { "type": "string", "description": "Product name to differentiate from othe r vendor products" }, "schema": { "type": "string", "description": "Token or label for the data format/sche ma of the analysis" }, "body": { "description": "Inline content of the analysis (for inl ine files). Any type for encoding=json, otherwise it must be a string." }, "encoding": { "type": "string", "enum": [ "base64url", "json", "none" ], "description": "Encoding type for inline content" }, "url": { "type": "string", "format": "uri", "description": "HTTPS URL for externally referenced ana lysis" }, "content_hash": { "oneOf": [ { Petrie Expires 11 March 2027 [Page 148] Internet-Draft JSON vCon September 2026 "type": "string" }, { "type": "array", "items": { "type": "string" } } ], "description": "Hash(es) of external content" } }, "dependencies": { "url": [ "content_hash" ] }, "allOf": [ { "if": { "required": [ "body" ], "properties": { "body": { "not": { "const": "" } } } }, "then": { "required": [ "encoding" ] } } ] } }, "not": { "required": [ "redacted", "amended" ], "$comment": "The redacted and amended parameters are mutually exclusive" }, Petrie Expires 11 March 2027 [Page 149] Internet-Draft JSON vCon September 2026 "$comment": "At least one of the parties, dialog, analysis or a ttachments parameters SHOULD be present (RFCXXXX Section 4). SHOULD-level statements are not enforced by this schema." } Appendix C. vCon CDDL This CDDL for vCon core is provided as informational. The text in sections 1-6 of this document define the normative definition of the vCon CDDL. If the CDDL provided below differs or conflicts from that in the text of the above sections, the text should be taken as the definitive definition and the CDDL below should be consider incorrect. ; CDDL for the JSON vCon - Conversation Data Container ; Generated from the prose of draft-ietf-vcon-vcon-core ; (syntax version 0.4.0). ; The prose of the draft is normative. ; This CDDL is informative. ; Constraints that cannot be expressed in CDDL are stated in ; comments. ; Note: the extension parameter wildcard (* tstr => any) means the ; per-type parameter prohibitions in this CDDL are advisory; a ; prohibited parameter matches the wildcard. The prose and Table 1 ; of the draft are definitive. ; A vCon JSON object is in one of three forms (Section 3): ; unsigned, signed (JWS) or encrypted (JWE). vcon = unsigned_vcon_type / signed_vcon_type / encrypted_vcon_type ; Unsigned form of vCon Object (Section 4) ;_________________________________________ unsigned_vcon_type = { ; DEPRECATED (Section 4.1.1) ? "vcon": "0.4.0", uuid: uuid_value_type, ; Section 4.1.2 ? extensions: [* tstr], ; Section 4.1.3 ? critical: [* tstr], ; Section 4.1.4 created_at: date_type, ; Section 4.1.5 ? updated_at: date_type, ; Section 4.1.6 ? subject: tstr, ; Section 4.1.7 ? ( redacted: redacted_object_type // ; Section 4.1.8 amended: amended_object_type ), ; Section 4.1.9 ; at least one of parties, dialog, analysis or attachments ; SHOULD be present (Section 4) ? parties: [* party_object_type], ; Section 4.1.10 Petrie Expires 11 March 2027 [Page 150] Internet-Draft JSON vCon September 2026 ? dialog: [* dialog_object_type], ; Section 4.1.11 ? analysis: [* analysis_object_type], ; Section 4.1.12 ? attachments: [* attachment_object_type], ; Section 4.1.13 extension_parameters_type } ; Object and multi-parameter types ;_________________________________ ; Redacted Object (Section 4.1.8.1) ; uuid SHOULD be provided. ; content_hash MUST be provided if url is provided. redacted_object_type = { ? uuid: uuid_value_type, type: tstr, ? ( url: url_value_type, content_hash: content_hash_type ), extension_parameters_type } ; Amended Object (Section 4.1.9.1) ; uuid is optional only if an external reference is provided. ; content_hash MUST be provided if url is provided. amended_object_type = { ? uuid: uuid_value_type, ? ( url: url_value_type, content_hash: content_hash_type ), extension_parameters_type } ; Party Object (Section 4.2) ; A Party Object with no parameters is permitted. party_object_type = { ? tel: tstr, ; Section 4.2.1 ? sip: tstr, ; Section 4.2.2 ? stir: tstr, ; Section 4.2.3 ? mailto: tstr, ; Section 4.2.4 ? name: tstr, ; Section 4.2.5 ? did: tstr, ; Section 4.2.6 ? validation: tstr, ; Section 4.2.7 ? gmlpos: tstr, ; Section 4.2.8 ? civicaddress: civicaddress_type, ; Section 4.2.9 ; a free form unique identifier for the participant; ; not constrained to UUID syntax (Section 4.2.10) ? uuid: tstr, ; type SHOULD be "person", "bot" or "organization" ? type: tstr, ; Section 4.2.11 ? org: tstr, ; Section 4.2.12 Petrie Expires 11 March 2027 [Page 151] Internet-Draft JSON vCon September 2026 ? dept: tstr, ; Section 4.2.13 extension_parameters_type } ; Civicaddress Object (Section 4.2.9) civicaddress_type = { ? country: tstr, ? a1: tstr, ? a2: tstr, ? a3: tstr, ? a4: tstr, ? a5: tstr, ? a6: tstr, ? prd: tstr, ? pod: tstr, ? sts: tstr, ? hno: tstr, ? hns: tstr, ? lmk: tstr, ? loc: tstr, ? flr: tstr, ? nam: tstr, ? pc: tstr, extension_parameters_type } ; Dialog Object (Section 4.3) ; A placeholder Dialog Object contains only the type parameter and, ; for the "incomplete" type, the required disposition parameter. ; A placeholder Dialog Object MUST be of type "recording" if the ; call was set up, or of type "incomplete" if it was not. dialog_object_type = { ( dialog_recording_type // dialog_text_type // dialog_recording_set_type // dialog_transfer_type // dialog_incomplete_type ), extension_parameters_type } ; Parameters common to all Dialog Object types dialog_common_type = ( ; start SHOULD be present; MAY be omitted if not known ? start: date_type, ; Section 4.3.2 ? duration: duration_type, ; Section 4.3.3 ? application: tstr ; Section 4.3.15 ) Petrie Expires 11 March 2027 [Page 152] Internet-Draft JSON vCon September 2026 ; Parameters prohibited in "transfer" type Dialog Objects dialog_session_group_type = ( ? session_id: session_id_parameter_type, ; Section 4.3.12 ? party_history: [* party_history_object_type] ; Section 4.3.13 ) dialog_recording_type = ( type: "recording", ; Section 4.3.1 dialog_common_type, dialog_session_group_type, ; parties SHOULD be present ? parties: dialog_parties_type, ; Section 4.3.4 ? originator: party_index_type, ; Section 4.3.5 ; recording_set SHOULD be present when part of a recording-set ? recording_set: dialog_index_type, ; Section 4.3.7 ; mediatype MUST be present for inline content; not required ; when Dialog Content is absent ? mediatype: media_type_value_type, ; Section 4.3.8 ? filename: tstr, ; Section 4.3.9 ? message_id: tstr, ; Section 4.3.16 ; Dialog Content (Section 4.3.10) SHOULD be present; ; body or url MAY be absent if redacted ? file_content_type ) dialog_text_type = ( type: "text", ; Section 4.3.1 dialog_common_type, dialog_session_group_type, ; parties SHOULD be present ? parties: dialog_parties_type, ; Section 4.3.4 ? originator: party_index_type, ; Section 4.3.5 ; mediatype MUST be present for inline content; not required ; when Dialog Content is absent ? mediatype: media_type_value_type, ; Section 4.3.8 ? filename: tstr, ; Section 4.3.9 ? message_id: tstr, ; Section 4.3.16 ; Dialog Content (Section 4.3.10) SHOULD be present; ; body or url MAY be absent if redacted ? file_content_type ) dialog_recording_set_type = ( type: "recording-set", ; Section 4.3.1 dialog_common_type, dialog_session_group_type, ; parties SHOULD be present ? parties: dialog_parties_type, ; Section 4.3.4 Petrie Expires 11 March 2027 [Page 153] Internet-Draft JSON vCon September 2026 ? originator: party_index_type, ; Section 4.3.5 recordings: [* dialog_index_type] ; Section 4.3.6 ) ; The transfer parameters are defined for the "transfer" type ; Dialog Object and MUST NOT be present in other dialog types. ; Each SHOULD be present unless noted as optional (Section 4.3.14). ; The duration parameter has no defined meaning for the "transfer" ; type; it MAY be present but its semantics are undefined. dialog_transfer_type = ( type: "transfer", ; Section 4.3.1 dialog_common_type, ? transferee: party_index_type, ? transferor: party_index_type, ; optional if the transfer is abandoned before the target ; was identified ? transfer_target: party_index_type, ; references a "recording", "recording-set" or "text" type ; Dialog Object; an original call cannot be "incomplete" ? original: dialog_index_type, ; consultation and target_dialog reference a "recording", ; "recording-set", "text" or "incomplete" type Dialog Object ? consultation: dialog_index_type, ? target_dialog: dialog_index_type ) dialog_incomplete_type = ( type: "incomplete", ; Section 4.3.1 dialog_common_type, dialog_session_group_type, ? parties: dialog_parties_type, ; Section 4.3.4 ? originator: party_index_type, ; Section 4.3.5 ; "failed" SHOULD be used when the reason is not known disposition: disposition_value_type ; Section 4.3.11 ) ; Party_History Object (Section 4.3.13.1) ; button is required for keydown and keyup events. party_history_object_type = { party: party_index_type, time: date_type, ( event: "join" / "drop" / "hold" / "unhold" / "mute" / "unmute" // ( event: "keydown" / "keyup", button: tstr ) ), extension_parameters_type } Petrie Expires 11 March 2027 [Page 154] Internet-Draft JSON vCon September 2026 ; Attachment Object (Section 4.4) attachment_object_type = { ? purpose: tstr, ; Section 4.4.1 start: date_type, ; Section 4.4.2 party: party_index_type, ; Section 4.4.3 dialog: dialog_index_type, ; Section 4.4.4 ; mediatype MUST be present for inline content; not required ; when Attachment Content is absent ? mediatype: media_type_value_type, ; Section 4.4.5 ? filename: tstr, ; Section 4.4.6 ; Attachment Content (Section 4.4.7) SHOULD be present; ; body or url MAY be absent if redacted ? file_content_type, extension_parameters_type } ; Analysis Object (Section 4.5) analysis_object_type = { ; type SHOULD be one of: "report", "sentiment", "summary", ; "transcript", "translation", "tts" type: tstr, ; Section 4.5.1 ; dialog is optional only if the analysis was not derived ; from any dialog ? dialog: dialog_index_or_list_type, ; Section 4.5.2 ; attachment is optional only if the analysis was not derived ; from any attachment ? attachment: attachment_index_or_list_type, ; Section 4.5.3 ; mediatype SHOULD be present for inline content; when no ; media type is defined for the analysis data format, the ; vendor, product and schema parameters SHOULD identify the ; format instead ? mediatype: media_type_value_type, ; Section 4.5.4 ? filename: tstr, ; Section 4.5.5 vendor: tstr, ; Section 4.5.6 ? product: tstr, ; Section 4.5.7 ? schema: tstr, ; Section 4.5.8 ; Analysis Content (Section 4.5.9) SHOULD be present; ; body or url MAY be absent if redacted ? file_content_type, extension_parameters_type } ; Inline Files (Section 2.3) and ; Externally Referenced Files (Section 2.4) ;___________________________________________ file_content_type = ( inline_content_type // external_content_type ) Petrie Expires 11 March 2027 [Page 155] Internet-Draft JSON vCon September 2026 ; body is any JSON value when encoding is "json"; ; otherwise body is a string (Sections 2.3.1 and 2.3.2). inline_content_type = ( ( encoding: "json", body: any ) // ( encoding: "none" / "base64url", body: tstr ) ) external_content_type = ( url: url_value_type, ; Section 2.4.1 content_hash: content_hash_type ; Section 2.4.2 ) ; SessionId (Section 2.2 and Section 4.3.12) ; The empty object is the placeholder for a party with no session id. session_id_object_type = { ? "local": uuid_value_type, ? "remote": uuid_value_type } session_id_parameter_type = session_id_object_type / [* ( session_id_object_type / [* session_id_object_type] )] ; Basic types and single parameter types ;_______________________________________ ; RFC3339 date string (Section 2.2) date_type = tstr ; String token of the form: hash algorithm, "-", Base64Url encoded ; digest, e.g. "sha512-..." (Section 2.2) content_hash_value_type = tstr content_hash_type = content_hash_value_type / [* content_hash_value_type] ; Duration in seconds; MUST be non-negative (Section 4.3.3) duration_type = uint / float ; "no-answer" etc. (Section 4.3.11) disposition_value_type = "no-answer" / "congestion" / "failed" / "busy" / "hung-up" / "voicemail-no-message" ; Media type of the form: type "/" subtype (Section 2.2) media_type_value_type = tstr Petrie Expires 11 March 2027 [Page 156] Internet-Draft JSON vCon September 2026 party_index_type = uint dialog_index_type = uint dialog_index_or_list_type = dialog_index_type / [* dialog_index_type] attachment_index_type = uint attachment_index_or_list_type = attachment_index_type / [* attachment_index_type] ; Index or indices of parties; the nested array form is used for ; multi-channel recordings with one entry per channel; null is the ; placeholder for an unused channel (Section 4.3.4). dialog_parties_type = party_index_type / [* ( party_index_type / [* party_index_type] / null )] ; Extension parameters MAY appear in any object (Section 2.5) extension_parameters_type = ( * tstr => any ) uuid_value_type = tstr ; HTTPS URL (Section 2.4.1) url_value_type = tstr ; Signed Form of vCon Object (Section 5.2) ;_________________________________________ signed_vcon_type = { payload: base64url_value_type, signatures: [* signature_object_type], extension_parameters_type } ; Signature Object (Section 5.2.1) signature_object_type = { header: signed_header_object_type, protected: base64url_value_type, signature: base64url_value_type, extension_parameters_type } ; Header Object (Section 5.2.2) ; MUST include alg and either x5c or x5u. signed_header_object_type = { alg: tstr, ; SHOULD be "RS256" Petrie Expires 11 March 2027 [Page 157] Internet-Draft JSON vCon September 2026 ( x5c: [* tstr] // x5u: url_value_type ), ? uuid: uuid_value_type, ; SHOULD be provided extension_parameters_type } ; Encrypted Form of vCon Object (Section 5.3) ;____________________________________________ encrypted_vcon_type = { unprotected: unprotected_object_type, recipients: [* recipient_object_type], iv: base64url_value_type, ciphertext: base64url_value_type, tag: base64url_value_type, extension_parameters_type } ; Unprotected Object (Section 5.3.1) unprotected_object_type = { ; cty SHOULD be "application/vcon" or "application/vcon+gzip" cty: tstr, ; enc SHOULD be "A256CBC-HS512" enc: tstr, ? uuid: uuid_value_type, ; SHOULD be provided extension_parameters_type } ; Recipient Object (Section 5.3.2) recipient_object_type = { header: recipient_header_object_type, encrypted_key: base64url_value_type, extension_parameters_type } ; Header Object (Section 5.3.3) recipient_header_object_type = { alg: tstr, ; SHOULD be "RSA-OAEP" extension_parameters_type } ; Base64Url encoded string base64url_value_type = tstr Petrie Expires 11 March 2027 [Page 158] Internet-Draft JSON vCon September 2026 Acknowledgments * Thank you to Thomas McCarthy-Howe for inventing the concept of a vCon and the many discussions that we had while this concept was developed into reality. * Thank you to Jonathan Rosenberg and Andrew Siciliano for their input to the vCon container requirements in the form of I-D: draft-rosenberg-vcon-cc-usecases. * Thank you to Rohan Mahy for his help in exploring the CDDL schema and CBOR format for vCon and testing out the extension framework with MIME. * The examples in this document were generated using the command line interface (CLI) from the py-vcon [PY-VCON] python open source project. * Thank you to Steve Lasker for formatting and spelling edits. * Thank you to Mike Jones for input and help media types, version and helping to form the extension framework. * Thank you to Jonathan Lennox for numerous inputs including separate single channel recordings per party and the extension framework. * Thank you to Marc Petit-Huguenin for sorting out session_id. * Thank you to Rob Sliwa for helping to review and test the JSON Schema. * Thank you to Mike Jones, Richard Barnes and Mike Ounsworth for their help with providing an approach to maintaining integrity for long term storage of signed vCons. * Thank you to Scott Godin for several thorough reviews and the idea and help on designing the multi-segment recording metadata concept for recording-set. * Thank you to Henk Birkholz for identifying a few ambiguities in the syntax and a few missing IANA entries. Author's Address Daniel G Petrie SIPez LLC Email: dan.ietf@sipez.com Petrie Expires 11 March 2027 [Page 159]