This document specifies an XML format for encapsulating DTMF data in informational messages sent within the context of Jingle audio interactions.
WARNING: This Standards-Track JEP is Experimental. Publication as a Jabber Enhancement Proposal does not imply approval of this proposal by the Jabber Software Foundation. Implementation of the protocol described herein is encouraged in exploratory implementations, but production systems should not deploy implementations of this protocol until it advances to a status of Draft.
Status: Experimental
Type: Standards Track
Number: 0181
Version: 0.1
Last Updated: 2006-03-23
JIG: Standards JIG
Approving Body: Jabber Council
Dependencies: XMPP Core, JEP-0166
Supersedes: None
Superseded By: None
Short Name: jingle-dtmf
Wiki Page: <http://wiki.jabber.org/index.php/Jingle DTMF (JEP-0181)>
Email:
stpeter@jabber.org
JID:
stpeter@jabber.org
This Jabber Enhancement Proposal is copyright 1999 - 2006 by the Jabber Software Foundation (JSF) and is in full conformance with the JSF's Intellectual Property Rights Policy <http://www.jabber.org/jsf/ipr-policy.shtml>. This material may be distributed only subject to the terms and conditions set forth in the Creative Commons Attribution License (<http://creativecommons.org/licenses/by/2.5/>).
The preferred venue for discussion of this document is the Standards-JIG discussion list: <http://mail.jabber.org/mailman/listinfo/standards-jig>.
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 3920) and XMPP IM (RFC 3921) specifications contributed by the Jabber Software Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this JEP has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The keywords "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 RFC 2119.
Traditional telephony systems use Dual Tone Multi-Frequency (DTMF) for dialing and to issue commands such as those used in Interactive Voice Response (IVR) applications. Internet telephony systems also use DTMF tones for interoperability with the public switched telephone network (PSTN). XMPP clients that use Jingle [1] for voice chat (see Jingle Audio Media Description Format [2]) SHOULD use the native DTMF format for the relevant transport method, for example RFC 2833 [3] for Jingle RTP-ICE Transport Method [4] and the native IAX format for Jingle IAX Transport Method [5]. This document specifies an XML format for use as a fallback when transport-native DTMF formats are not available.
The format for the XML DTMF format is as follows:
<dtmf xmlns='http://jabber.org/protocol/info/dtmf'> <tone code='integer' duration='integer'/> <tone ... /> </dtmf>
The <dtmf/> element MUST contain at least one <tone/> element and MAY contain more than one <tone/> element.
The <tone/> element MUST possess a 'code' attribute that specifies the tone(s) to be generated and MAY possess a 'duration' attribute that specifies the duration of each tone in milliseconds.
The value of the 'code' attribute MUST be one or more instances of the following characters: 1, 2, 3, 4, 5, 6, 7, 8, 9, *, 0, or #. [6]
The value of the 'duration' attribute MUST be a positive integer; the integer MUST be greater than 50 (in accordance with ANSI T1.401-1988), SHOULD be at least 70, and SHOULD NOT be significantly more than 120.
The <dtmf> element SHOULD be sent as the payload of a Jingle media-info message as illustrated in the following example.
<iq from='juliet@capulet.com/balcony' to='ivr.shakespeare.lit' id='dtmf1' type='set'> <jingle xmlns='http://jabber.org/protocol/jingle' action='media-info' initiator='juliet@capulet.com/balcony' sid='a73sjjvkla37jfea'> <dtmf xmlns='http://jabber.org/protocol/jingle/info/dtmf'> <tone code='76636'/> </dtmf> </jingle> </iq>
This document introduces no known security vulnerabilities.
This JEP requires no interaction with the Internet Assigned Numbers Authority (IANA) [7].
The Jabber Registrar [8] shall include 'http://jabber.org/protocol/jingle/info/dtmf' in its registry of protocol namespaces.
<?xml version='1.0' encoding='UTF-8'?> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' targetNamespace='http://jabber.org/protocol/jingle/info/dtmf' xmlns='http://jabber.org/protocol/jingle/info/dtmf' elementFormDefault='qualified'> <xs:element name='dtmf'> <xs:complexType> <xs:sequence> <xs:element ref='tone' minOccurs='1' maxOccurs='unbounded'/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name='tone'> <xs:complexType> <xs:simpleContent> <xs:extension base='empty'> <xs:attribute name='code' type='xs:string' use='required'/> <xs:attribute name='duration' type='xs:positiveInteger' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:element> <xs:simpleType name='empty'> <xs:restriction base='xs:string'> <xs:enumeration value=''/> </xs:restriction> </xs:simpleType> </xs:schema>
1. JEP-0166: Jingle <http://www.jabber.org/jeps/jep-0166.html>.
2. JEP-0167: Jingle Audio Media Description Format <http://www.jabber.org/jeps/jep-0167.html>.
3. RFC 2833: RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals <http://www.ietf.org/rfc/rfc2833.txt>.
4. JEP-0176: Jingle RTP-ICE Transport Method <http://www.jabber.org/jeps/jep-0176.html>.
5. JEP-0179: Jingle IAX Transport Method <http://www.jabber.org/jeps/jep-0179.html>.
6. Although the characters A, B, C, and D were originally defined as part of DTMF, they were never deployed to consumers and were used only for control purposes at private branch exchanges (PBXs) and central office operator stations; therefore they MUST NOT be sent.
7. The Internet Assigned Numbers Authority (IANA) is the central coordinator for the assignment of unique parameter values for Internet protocols, such as port numbers and URI schemes. For further information, see <http://www.iana.org/>.
8. The Jabber Registrar maintains a list of reserved Jabber protocol namespaces as well as registries of parameters used in the context of protocols approved by the Jabber Software Foundation. For further information, see <http://www.jabber.org/registrar/>.
Initial JEP version.
(psa)END