Internet-Draft | vCon CC Extension | July 2025 |
Petrie | Expires 8 January 2026 | [Page] |
A vCon is container for data and information relating to a human conversation. This document defines an extension for the JSON vCon schema in support of call, support or contact center application of the vCon conversational data exchange format.¶
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-cc-extension/draft-ietf-vcon-cc-extension.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-vcon-cc-extension/.¶
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-cc-extension.¶
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/.¶
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 8 January 2026.¶
Copyright (c) 2025 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.¶
This document adds a number of new parameters to the Party Object and the Dialog Object defined as part of the JSON vCon schema in [VCON-CORE]. The vCon parameters defined in this document have been determined to be need and are specific to the contact center uses of vCon. The general framework and requirements for defining an extension to the JSON vCon schema are defined in [VCON-CORE].¶
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.¶
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 append additional information forming a subsequent vCon instance version¶
vCon syntax version - the version for the data syntax used for form a vCon¶
signed form - JWS signed document with the unsigned vCon form contained in the payload¶
This document uses the same JSON notation that is used in [VCON-CORE]. For the ease of documentation, the convention for JSON notation used in this document is copied from section 2.2 of [VCON-CORE].¶
All parameters are assumed to be mandatory unless other wise noted.¶
Objects or arrays with no or null values MAY be excluded from the vCon.¶
This vCon extension adds a new extensions parameter name value token. The string token "CC" should be included in the extensions array of the vCon Object. It is not required that consumers of vCons with the CC extension content support this extension. It does not change the semantics or remove any parameters form the core vCon schema. There is no need to list the CC extension name in the must_support parameter.¶
This vCon extension adds the following new parameters to the Party Object in support of Contact Center use cases.¶
The role that the participant played in the conversation. In a call center there are roles: such as: agents, customer, supervisor and specialist. In conferences there are roles: host, cohost, speaker, panelist, participant and other roles. The role parameter provides the ability to label the role that the part played in the conversation.¶
role: "String" (optional)¶
The following values for the role parameter MAY be used:¶
Other values for the role parameter MAY also be used.¶
In a contact center scenario, the conversation with this party may be part of a larger effort of contacting a group of parties, individually or perhaps in groups. It is sometimes useful to reference the list from which this party was included. The contact_list may be used as a label for foreign key reference to the contact list that this party was on.¶
contact_list "String" (optional)¶
This vCon extension adds the following new parameters to the Dialog Object in support of Contact Center use cases.¶
In a contact center scenario, a dialog may be initiated as part of a campaign or set of dialogs initiated with a common goal or focus or to be handled or treated in a specific way. The campaign parameter is string that may be used as a label or foreign key in reference to an external specification for how the communication is to be initiated, handled or treated. In some case it may be appropriate to attached the campaign data as an Attachment Object.¶
campaign: "String" (optional)¶
interaction_type "String" (optional)¶
TODO: add enumerated values from JDR¶
TODO: Is this different from RFC7989 session ID (session_id in core)?¶
In a contact center scenario, interactions with a party are often labeled with an identifier. In some case the interaction is contained in a single dialog. In others there may be multiple dialogs (e.g. messages or calls) that are all part of a single interaction. There may also be many interactions for a single conversation or vCon. The interaction parameter is used as a label or foreign key in reference to the interaction ID.¶
interaction_id "String" (optional)¶
A contact center may service multiple purposes or customers. In this scenario it is important to label the conversation segment or dialog. The agent or automata which services the dialog are required to have a specific skill. To facilitate this in a vCon dialog, the skill parameter is provided. The string values of the skill parameter are contact center specific.¶
skill "String" (optional)¶
Security considerations are covered in the [VCON-CORE] document. This extension to vCon adds no additional security concerns.¶
The following extension name is added to the vCon Extensions Names Registry.¶
Extension Name | Extension Description | Change Controller | Specification Document(s): |
---|---|---|---|
CC | Contact Center | IESG | Section 3 RFC XXXX |
The following defines additional values for the vCon Parties Object Parameter Names Registry.¶
Parameter Name | Parameter Description | Change Controller | Specification Document(s) |
---|---|---|---|
role | agent party role | IESG | Section 3.1.1 RFC XXXX |
contact_list | contact_list including this party | IESG | Section 3.1.2 RFC XXXX |
The following defines the initial values for the vCon Dialog Object Parameter Names Registry.¶
Parameter Name | Parameter Description | Change Controller | Specification Document(s) |
---|---|---|---|
campaign | campaign to which dialog is part of | IESG | Section 3.2.1 RFC XXXX |
interaction_type | dialog interaction type | IESG | Section 3.2.2 RFC XXXX |
interaction_id | dialog interaction id | IESG | Section 3.2.3 RFC XXXX |
skill | required skill | IESG | Section 3.2.4 RFC XXXX |
TODO: insert draft-rosenberg-vcon-cc-usecases here¶
TODO¶
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.¶
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.¶