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.
Type: Standards Track
Last Updated: 2006-06-29
JIG: Standards JIG
Approving Body: Jabber Council
Dependencies: XMPP Core, JEP-0166
Superseded By: None
Short Name: jingle-dtmf
Wiki Page: <http://wiki.jabber.org/index.php/Jingle DTMF (JEP-0181)>
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 following keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
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  for voice chat (see Jingle Audio Media Description Format ) SHOULD use the native DTMF format for the relevant transport method, for example RFC 2833  for Jingle RTP-ICE Transport Method  and the native IAX format for Jingle IAX Transport Method . 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 SHOULD be one or more instances of the following characters: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, and * -- however, the characters A, B, C, and D MAY be sent as well. 
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 firstname.lastname@example.org/balcony' to='ivr.shakespeare.lit' id='dtmf1' type='set'> <jingle xmlns='http://jabber.org/protocol/jingle' action='media-info' email@example.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) .
The Jabber Registrar  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='DTMFString' use='required'/> <xs:attribute name='duration' type='xs:positiveInteger' use='optional'/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:element> <xs:simpleType name="DTMFString"> <xs:restriction base="xs:string"> <xs:pattern value="(#|\*|0|1|2|3|4|5|6|7|8|9|A|B|C|D)*" /> </xs:restriction> </xs:simpleType> <xs:simpleType name='empty'> <xs:restriction base='xs:string'> <xs:enumeration value=''/> </xs:restriction> </xs:simpleType> </xs:schema>
6. Although A, B, C, and D were originally defined as part of DTMF, they were never deployed to telephony consumers and were used only for control purposes at private branch exchanges (PBXs) and central office operator stations; however, they are used in certain non-telephony applications of DTMF, such as ham radio.
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/>.
Allowed characters A, B, C, and D; updated schema.(psa)
Initial JEP version.(psa)