< draft-ietf-mediactrl-ivr-control-package-07.txt   draft-ietf-mediactrl-ivr-control-package-08.txt >
Network Working Group S. McGlashan Network Working Group S. McGlashan
Internet-Draft Hewlett-Packard Internet-Draft Hewlett-Packard
Intended status: Standards Track T. Melanchuk Intended status: Standards Track T. Melanchuk
Expires: May 29, 2010 Rain Willow Communications Expires: August 29, 2010 Rain Willow Communications
C. Boulton C. Boulton
NS-Technologies NS-Technologies
November 25, 2009 February 25, 2010
An Interactive Voice Response (IVR) Control Package for the Media An Interactive Voice Response (IVR) Control Package for the Media
Control Channel Framework Control Channel Framework
draft-ietf-mediactrl-ivr-control-package-07 draft-ietf-mediactrl-ivr-control-package-08
Abstract Abstract
This document defines a Media Control Channel Framework Package for This document defines a Media Control Channel Framework Package for
Interactive Voice Response (IVR) dialog interaction on media Interactive Voice Response (IVR) dialog interaction on media
connections and conferences. The package defines dialog management connections and conferences. The package defines dialog management
request elements for preparing, starting and terminating dialog request elements for preparing, starting and terminating dialog
interactions, as well as associated responses and notifications. interactions, as well as associated responses and notifications.
Dialog interactions are specified in a dialog language. This package Dialog interactions are specified in a dialog language. This package
defines a lightweight IVR dialog language (supporting prompt defines a lightweight IVR dialog language (supporting prompt
skipping to change at page 1, line 49 skipping to change at page 1, line 49
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on May 29, 2010. This Internet-Draft will expire on August 29, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 3, line 21 skipping to change at page 3, line 21
3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10
3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11
3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11
3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11
3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12
4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13
4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 13 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15
4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 18 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 18
4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 20 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 21
4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24
4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 25 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 25
4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 26 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 26
4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27
4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27
4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 27 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 28
4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28
4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30
4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 31 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 32
4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 32 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 32
4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 33 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 33
4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 34
4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 35 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 35
4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 37 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 38
4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 39
4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 40 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 41
4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 41 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 42
4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 43
4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 44 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 45
4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 46 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 48
4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 49 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 50
4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 50 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 52
4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 54 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 56
4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 57
4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 56 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 58
4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 56 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 58
4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 56 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 58
4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 58
4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 57 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 59
4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 57 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 59
4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 58 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 60
4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 58 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 60
4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 61
4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 61 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 63
4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 62 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 64
4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 64
4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 64 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 66
4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 65 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 67
4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 65 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 67
4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 65 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 67
4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 66 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 68
4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 66 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 68
4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 67 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 69
4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 67 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 69
4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 67 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 69
4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 67 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 69
4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 70
4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 76
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 78
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 103 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105
6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 103 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 105
6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 104 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 106
6.1.3. Preparing and starting an IVR dialog . . . . . . . . 104 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 106
6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 105 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 107
6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 106 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108
6.2.1. Playing announcements . . . . . . . . . . . . . . . . 106 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 108
6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 107 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 109
6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 109 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 111
6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 110 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 112
6.2.5. Subscriptions and notifications . . . . . . . . . . . 111 6.2.5. Subscriptions and notifications . . . . . . . . . . . 113
6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 111 6.2.6. Dialog repetition until DTMF collection complete . . 113
6.4. Foreign Namespace Attributes and Elements . . . . . . . . 112 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 114
7. Security Considerations . . . . . . . . . . . . . . . . . . . 115 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 115
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 118 7. Security Considerations . . . . . . . . . . . . . . . . . . . 117
8.1. Control Package Registration . . . . . . . . . . . . . . 118 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 120
8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 118 8.1. Control Package Registration . . . . . . . . . . . . . . 120
8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 119 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 120
8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 121
8.4. MIME Media Type Registration for 8.4. MIME Media Type Registration for
'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 119 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 121
9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 121 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 123
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 134 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 137
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 135 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 138
12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 136 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 139
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 144 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 147
13.1. Normative References . . . . . . . . . . . . . . . . . . 144 13.1. Normative References . . . . . . . . . . . . . . . . . . 147
13.2. Informative References . . . . . . . . . . . . . . . . . 145 13.2. Informative References . . . . . . . . . . . . . . . . . 148
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 147
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 150
1. Introduction 1. Introduction
The Media Control Channel Framework The Media Control Channel Framework
([I-D.ietf-mediactrl-sip-control-framework]) provides a generic ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic
approach for establishment and reporting capabilities of remotely approach for establishment and reporting capabilities of remotely
initiated commands. The Control Framework utilizes many functions initiated commands. The Control Framework utilizes many functions
provided by the Session Initiation Protocol [RFC3261] (SIP) for the provided by the Session Initiation Protocol [RFC3261] (SIP) for the
rendezvous and establishment of a reliable channel for control rendezvous and establishment of a reliable channel for control
interactions. The Control Framework also introduces the concept of a interactions. The Control Framework also introduces the concept of a
skipping to change at page 5, line 44 skipping to change at page 6, line 44
This package has been designed to satisfy IVR requirements documented This package has been designed to satisfy IVR requirements documented
in the Media Server Control Protocol Requirements document in the Media Server Control Protocol Requirements document
([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30.
It achieves this by building upon two major approaches to IVR dialog It achieves this by building upon two major approaches to IVR dialog
design. These approaches address a wide range of IVR use cases and design. These approaches address a wide range of IVR use cases and
are used in many applications which are extensively deployed today. are used in many applications which are extensively deployed today.
First, the package is designed to provide the major IVR functionality First, the package is designed to provide the major IVR functionality
of SIP Media Server languages such as netann ([RFC4240]), MSCML of SIP Media Server languages such as netann ([RFC4240]), MSCML
([RFC5022]) and MSML ([MSML]) which themselves build upon more ([RFC5022]) and MSML ([RFC5707]) which themselves build upon more
traditional non-SIP languages ([H.248.9], [RFC2897]). A key traditional non-SIP languages ([H.248.9], [RFC2897]). A key
differentiator is that this package provides IVR functionality using differentiator is that this package provides IVR functionality using
the Media Control Channel Framework. the Media Control Channel Framework.
Second, its design is aligned with key concepts of the web model as Second, its design is aligned with key concepts of the web model as
defined in W3C Voice Browser languages. The key dialog management defined in W3C Voice Browser languages. The key dialog management
mechanism is closely aligned with CCXML ([CCXML10]). The dialog mechanism is closely aligned with CCXML ([CCXML10]). The dialog
functionality defined in this package can be largely seen as a subset functionality defined in this package can be largely seen as a subset
of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting,
DTMF collection and media recording features are incorporated, but DTMF collection and media recording features are incorporated, but
skipping to change at page 16, line 37 skipping to change at page 17, line 37
| | | |--------+| <dialogterminate>/| | | | | | | |--------+| <dialogterminate>/| | | |
| | +---------+ || 200 response +---------+ | | | | +---------+ || 200 response +---------+ | |
| | || | | | | | || | | |
| | /dialogexit notification|| | | | | | /dialogexit notification|| | | |
| | (timeout) || | | | | | (timeout) || | | |
| | || | | | | | || | | |
| | || | | | | | || | | |
| | || | | | | | || | | |
| | ||<dialogterminate>/ | | | | | ||<dialogterminate>/ | | |
| | || 200 response | | | | | || 200 response | | |
| | || |/dialogexit | | | | || + |/dialogexit | |
| | || | notification | | | | || /dialogexit | notification | |
| | || | | | | | || notification | | |
| | || | | | | | || | | |
| | vv | | | | | vv | | |
| | /ERROR response +-----------+ | | | | | /ERROR response +-----------+ | | |
| +---------------------->| |<----------+ /ERROR response| | | +---------------------->| |<----------+ /ERROR response| |
+------------------------>|TERMINATED |<---------------------------+ | +------------------------>|TERMINATED |<---------------------------+ |
<dialogterminate>/ | |<-----------------------------+ <dialogterminate>/ | |<-----------------------------+
410 response +-----------+ <dialogterminate>/410 response 410 response +-----------+ <dialogterminate>/410 response
Figure 1: Dialog Lifecycle Figure 1: Dialog Lifecycle
skipping to change at page 17, line 17 skipping to change at page 18, line 17
PREPARING: the dialog is being prepared. The dialog is assigned a PREPARING: the dialog is being prepared. The dialog is assigned a
valid dialog identifier (see below). If an error occurs the valid dialog identifier (see below). If an error occurs the
dialog transitions to the TERMINATED state and the MS MUST send a dialog transitions to the TERMINATED state and the MS MUST send a
response indicating the error. If the dialog is terminated before response indicating the error. If the dialog is terminated before
preparation is complete, the dialog transitions to the TERMINATED preparation is complete, the dialog transitions to the TERMINATED
state and the MS MUST send a 410 response (Section 4.5) for the state and the MS MUST send a 410 response (Section 4.5) for the
prepare request. prepare request.
PREPARED: the dialog has been successfully prepared and the MS MUST PREPARED: the dialog has been successfully prepared and the MS MUST
send a 200 response indicating the prepare operation was send a 200 response indicating the prepare operation was
successful. If the dialog is then terminated, the dialog successful. If the dialog is terminated, then the MS MUST send a
transitions to the TERMINATED state. If the duration the dialog 200 response, the dialog transitions to the TERMINATED state and
remains in the PREPARED state exceeds the maximum preparation the MS MUST send a dialogexit notification event (see
duration, the dialog transitions to the TERMINATED state and the Section 4.2.5.1). If the duration the dialog remains in the
MS MUST send a dialogexit notification with the appropriate error PREPARED state exceeds the maximum preparation duration, the
status code (see Section 4.2.5.1). A maximum preparation duration dialog transitions to the TERMINATED state and the MS MUST send a
of 30s is RECOMMENDED. dialogexit notification with the appropriate error status code
(see Section 4.2.5.1). A maximum preparation duration of 300s is
RECOMMENDED.
STARTING: the dialog is being started. If the dialog has not STARTING: the dialog is being started. If the dialog has not
already been prepared, it is first prepared and assigned a valid already been prepared, it is first prepared and assigned a valid
dialog identifier (see below). If an error occurs the dialog dialog identifier (see below). If an error occurs the dialog
transitions to the TERMINATED state and the MS MUST send a transitions to the TERMINATED state and the MS MUST send a
response indicating the error. If the dialog is terminated, the response indicating the error. If the dialog is terminated, the
dialog transitions to the TERMINATED state and the MS MUST send a dialog transitions to the TERMINATED state and the MS MUST send a
410 response (Section 4.5) for the start request. 410 response (Section 4.5) for the start request.
STARTED: the dialog has been successfully started and is now active. STARTED: the dialog has been successfully started and is now active.
skipping to change at page 18, line 37 skipping to change at page 19, line 38
media type associated with the dialog document. Consequently, the media type associated with the dialog document. Consequently, the
dialog language associated with a dialog on the MS is identified dialog language associated with a dialog on the MS is identified
either inline by a <dialog> child element or by a src attribute either inline by a <dialog> child element or by a src attribute
referencing a document containing the dialog language. The MS MUST referencing a document containing the dialog language. The MS MUST
support inline the IVR dialog language defined in Section 4.3. The support inline the IVR dialog language defined in Section 4.3. The
MS MAY support other dialog languages by reference. MS MAY support other dialog languages by reference.
4.2.1. <dialogprepare> 4.2.1. <dialogprepare>
The <dialogprepare> request is sent to the MS to request preparation The <dialogprepare> request is sent to the MS to request preparation
of a dialog. Dialog preparation consists of (a) retrieving external of a dialog. Dialog preparation consists of (a) retrieving an
dialog document and resources (if required), and (b) validating the external dialog document and/or external resources referenced within
dialog document syntactically and semantically. an inline <dialog> element, and (b) validating the dialog document
syntactically and semantically.
A prepared dialog is executed when the MS receives a <dialogstart> A prepared dialog is executed when the MS receives a <dialogstart>
request referencing the prepared dialog identifier (see request referencing the prepared dialog identifier (see
Section 4.2.2). Section 4.2.2).
The <dialogprepare> element has the following attributes: The <dialogprepare> element has the following attributes:
src: specifies the location of an external dialog document to src: specifies the location of an external dialog document to
prepare. A valid value is a URI (see Section 4.6.9) including prepare. A valid value is a URI (see Section 4.6.9) including
authentication information if defined by the URI scheme (e.g. authentication information if defined by the URI scheme (e.g.
skipping to change at page 20, line 46 skipping to change at page 22, line 9
Since MS support for dialog languages other than the IVR dialog Since MS support for dialog languages other than the IVR dialog
language defined in this package is optional, if the MS does not language defined in this package is optional, if the MS does not
support the dialog language it would send a response with the status support the dialog language it would send a response with the status
code 409 (Section 4.5). Further information on using VoiceXML can be code 409 (Section 4.5). Further information on using VoiceXML can be
found in Section 12. found in Section 12.
4.2.2. <dialogstart> 4.2.2. <dialogstart>
The <dialogstart> element is sent to the MS to start a dialog. If The <dialogstart> element is sent to the MS to start a dialog. If
the dialog has not been prepared, the dialog is prepared (retrieving the dialog has not been prepared, the dialog is prepared (retrieving
an external document and resources if necessary, and the dialog external document and/or external resources referenced within
document validated syntactically and semantically). Media processors <dialog> element, and the dialog document validated syntactically and
(e.g. DTMF and prompt queue) are activated and associated with the semantically). Media processors (e.g. DTMF and prompt queue) are
specified connection or conference. activated and associated with the specified connection or conference.
The <dialogstart> element has the following attributes: The <dialogstart> element has the following attributes:
src: specifies the location of an external dialog document to start. src: specifies the location of an external dialog document to start.
A valid value is a URI (see Section 4.6.9) including A valid value is a URI (see Section 4.6.9) including
authentication information if defined by the URI scheme (e.g. authentication information if defined by the URI scheme (e.g.
basic access authentication in HTTP). If the URI scheme is basic access authentication in HTTP). If the URI scheme is
unsupported, the MS sends a <response> with a 420 status code unsupported, the MS sends a <response> with a 420 status code
(Section 4.5). If the document cannot be retrieved with the (Section 4.5). If the document cannot be retrieved with the
timeout interval, the MS sends a <response> with a 409 status timeout interval, the MS sends a <response> with a 409 status
skipping to change at page 25, line 35 skipping to change at page 26, line 41
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart dialogid="d3" connectionid="connection1"> <dialogstart dialogid="d3" connectionid="connection1">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/getpin.wav"/> <media loc="http://www.example.com/getpin.wav"/>
</prompt> </prompt>
<control ffkey="2" rewkey="3"/> <control ffkey="2" rewkey="3"/>
</dialog> </dialog>
<subscribe> <subscribe>
<dmtfnotify matchmode="control"/> <dmtfsub matchmode="control"/>
</subscribe> </subscribe>
</dialogstart> </dialogstart>
</mscivr> </mscivr>
Each time a '2' or '3' DTMF input is received, the MS sends a Each time a '2' or '3' DTMF input is received, the MS sends a
notification event: notification event:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="d3"> <event dialogid="d3">
<dtmfnotify matchmode="collect" dtmf="2" <dtmfnotify matchmode="collect" dtmf="2"
skipping to change at page 27, line 4 skipping to change at page 28, line 14
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="connection1"> <dialogstart connectionid="connection1">
<dialog> <dialog>
<record maxtime="384000s"/> <record maxtime="384000s"/>
</dialog> </dialog>
<stream media="audio" label="camaudio" direction="inactive"/> <stream media="audio" label="camaudio" direction="inactive"/>
<stream media="video" label="camvideo" direction="inactive"/> <stream media="video" label="camvideo" direction="inactive"/>
<stream media="audio" label="useraudio" direction="sendonly"/> <stream media="audio" label="useraudio" direction="sendonly"/>
<stream media="video" label="uservideo" direction="sendonly"/> <stream media="video" label="uservideo" direction="sendonly"/>
</mscivr> </mscivr>
Using the <region> element, the dialog can be started on a conference Using the <region> element, the dialog can be started on a conference
mixer so that the video output from the dialog is directed to a mixer so that the video output from the dialog is directed to a
specific region within a video layout. For example: specific region within a video layout. For example:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart conferenceid="conference1"> <dialogstart conferenceid="conference1">
<dialog> <dialog>
<prompt> <prompt>
<media loc="http://www.example.com/presentation.3gp"/> <media loc="http://www.example.com/presentation.3gp"/>
</prompt> </prompt>
</dialog> </dialog>
<stream media="video" direction="recvonly"> <stream media="video" direction="recvonly">
<region>r1</region> <region>1</region>
</stream> </stream>
</mscivr> </mscivr>
4.2.2.2.1. <region> 4.2.2.2.1. <region>
The <region> element is used to specify the region within a video The <region> element is used to specify the region within a video
layout where a video media stream is displayed. layout where a video media stream is displayed.
The <region> element has no attributes and its content model The <region> element has no attributes and its content model
specifies the name of the region layout. specifies the name of the region layout.
skipping to change at page 35, line 38 skipping to change at page 37, line 15
repeatCount: number of times the dialog is to be executed. A valid repeatCount: number of times the dialog is to be executed. A valid
value is a non-negative integer (see Section 4.6.4). A value of 0 value is a non-negative integer (see Section 4.6.4). A value of 0
indicates that the dialog is repeated until halted by other means. indicates that the dialog is repeated until halted by other means.
The attribute is optional. The default value is 1. The attribute is optional. The default value is 1.
repeatDur: maximum duration for dialog execution. A valid value is repeatDur: maximum duration for dialog execution. A valid value is
a Time Designation (see Section 4.6.7). If no value is specified, a Time Designation (see Section 4.6.7). If no value is specified,
then there is no limit on the duration of the dialog. The then there is no limit on the duration of the dialog. The
attribute is optional. There is no default value. attribute is optional. There is no default value.
repeatUntilComplete: indicates whether the MS terminates dialog
execution when an input operation is completed successfully. A
valid value is a boolean (see Section 4.6.1). A value of true
indicates that dialog execution is terminated when an input
operation associated with its child elements is completed
sucessfully (see execution model below for precise conditions). A
value of false indicates that dialog execution is terminated by
other means. The attribute is optional. The default value is
false.
The repeatDur attribute takes priority over the repeatCount attribute The repeatDur attribute takes priority over the repeatCount attribute
in determining maximum duration of the dialog. See 'repeatCount' and in determining maximum duration of the dialog. See 'repeatCount' and
'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further
information. In the situation where a dialog is repeated more than information. In the situation where a dialog is repeated more than
once, only the results of operations in the last dialog iteration are once, only the results of operations in the last dialog iteration are
reported. reported.
The <dialog> element has the following sequence of child elements (at The <dialog> element has the following sequence of child elements (at
least one, any order): least one, any order):
skipping to change at page 36, line 52 skipping to change at page 38, line 36
when a specified <prompt> terminates, then start the collect when a specified <prompt> terminates, then start the collect
operation or the record operation if the <collect> or <record> operation or the record operation if the <collect> or <record>
elements respectively are specified. If subscriptions are elements respectively are specified. If subscriptions are
specified for the dialog, then the MS sends a notification event specified for the dialog, then the MS sends a notification event
when the specified event occurs. If execution of a child element when the specified event occurs. If execution of a child element
results in an error, the MS terminates dialog execution (and results in an error, the MS terminates dialog execution (and
stops other child element operations) and the MS sends a stops other child element operations) and the MS sends a
dialogexit status event, reporting any information gathered. dialogexit status event, reporting any information gathered.
5. If the dialog execution cycle completes successfully, then the MS 5. If the dialog execution cycle completes successfully, then the MS
increments the counter by one. If the value of the repeatCount increments the counter by one. The MS terminates dialog
attribute is greater than zero and the counter is equal to the execution if either of the following conditions is true:
value of the repeatCount attribute, then the MS terminates dialog
execution and the sends a dialogexit (with a status of 1) * the value of the repeatCount attribute is greater than zero
reporting operation information collected in the last dialog and the counter is equal to the value of the repeatCount
execution cycle only. Otherwise, another dialog execution cycle attribute
is initiated.
* the value of the repeatUntilComplete attribute is true and one
of the following conditions is true:
+ <collect> reports termination status of 'match' or
'stopped'.
+ <record> reports termination status of 'stopped', 'dtmf',
'maxtime' or 'finalsilence'.
When the MS terminates dialog execution, it sends a dialogexit
(with a status of 1) reporting operation information collected in
the last dialog execution cycle only. Otherwise, another dialog
execution cycle is initiated.
4.3.1.1. <prompt> 4.3.1.1. <prompt>
The <prompt> element specifies a sequence of media resources to play The <prompt> element specifies a sequence of media resources to play
back in document order. back in document order.
A <prompt> element has the following attributes: A <prompt> element has the following attributes:
xml:base: A string declaring the base URI from which relative URIs xml:base: A string declaring the base URI from which relative URIs
in child elements are resolved prior to fetching. A valid value in child elements are resolved prior to fetching. A valid value
skipping to change at page 41, line 36 skipping to change at page 43, line 36
stopped when one child element reports it is complete. stopped when one child element reports it is complete.
The <par> element has the following child elements (at least one, any The <par> element has the following child elements (at least one, any
order, multiple occurrences of each element permitted): order, multiple occurrences of each element permitted):
<seq>: specifies a sequence of media resources to play in a parallel <seq>: specifies a sequence of media resources to play in a parallel
with other <par> child elements (see Section 4.3.1.1.3.1). The with other <par> child elements (see Section 4.3.1.1.3.1). The
element is optional. element is optional.
<media>: specifies a media resource (see Section 4.3.1.5) to play. <media>: specifies a media resource (see Section 4.3.1.5) to play.
The element is optional. The MS is responsible for assigning the appropriate media
stream(s) when more than one is available. The element is
optional.
<variable>: specifies a variable media announcement (see <variable>: specifies a variable media announcement (see
Section 4.3.1.1.1) to play. The element is optional. Section 4.3.1.1.1) to play. The element is optional.
<dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to <dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to
play. The element is optional. play. The element is optional.
If a <par> element configuration is not supported, the MS sends a If a <par> element configuration is not supported, the MS sends a
<response> with a 435 status code (Section 4.5). <response> with a 435 status code (Section 4.5).
skipping to change at page 44, line 15 skipping to change at page 46, line 17
4.3.1.2. <control> 4.3.1.2. <control>
The <control> element defines how DTMF input is mapped to runtime The <control> element defines how DTMF input is mapped to runtime
controls, including prompt playback controls. controls, including prompt playback controls.
DTMF input matching these controls MUST NOT cause prompt playback to DTMF input matching these controls MUST NOT cause prompt playback to
interrupted (i.e. no prompt bargein), but causes the appropriate interrupted (i.e. no prompt bargein), but causes the appropriate
operation to be applied; for examples, speeding up prompt playback. operation to be applied; for examples, speeding up prompt playback.
DTMF input matching these controls has priority over <collect> input DTMF input matching these controls has priority over <collect> input
for the duration of prompt playback. If incoming DTMF matches a for the duration of prompt playback. If an incoming DTMF character
specified runtime control, then the DTMF is not available to the matches a specified runtime control, then the DTMF character is
<collect> operation, including its digit buffer. Once prompt consumed: it is not added to the digit buffer and so is not available
playback is complete, runtime controls are no longer active. to the <collect> operation. Once prompt playback is complete,
runtime controls are no longer active.
The <control> element has the following attributes: The <control> element has the following attributes:
gotostartkey: maps a DTMF key to skip directly to the start of the gotostartkey: maps a DTMF key to skip directly to the start of the
prompt. A valid value is a DTMF Character (see Section 4.6.2). prompt. A valid value is a DTMF Character (see Section 4.6.2).
The attribute is optional. There is no default value. The attribute is optional. There is no default value.
gotoendkey: maps a DTMF key to skip directly to the end of the gotoendkey: maps a DTMF key to skip directly to the end of the
prompt. A valid value is a DTMF Character (see Section 4.6.2). prompt. A valid value is a DTMF Character (see Section 4.6.2).
The attribute is optional. There is no default value. The attribute is optional. There is no default value.
skipping to change at page 47, line 25 skipping to change at page 49, line 31
interdigittimeout: indicates the maximum time to wait for another interdigittimeout: indicates the maximum time to wait for another
DTMF when the collected input is incomplete with respect to the DTMF when the collected input is incomplete with respect to the
grammar. A valid value is a Time Designation (see Section 4.6.7). grammar. A valid value is a Time Designation (see Section 4.6.7).
The attribute is optional. The default value is 2s. The attribute is optional. The default value is 2s.
termtimeout: indicates the maximum time to wait for the termchar termtimeout: indicates the maximum time to wait for the termchar
character when the collected input is complete with respect to the character when the collected input is complete with respect to the
grammar. A valid value is a Time Designation (see Section 4.6.7). grammar. A valid value is a Time Designation (see Section 4.6.7).
The attribute is optional. The default value is 0s (no delay). The attribute is optional. The default value is 0s (no delay).
escapekey: specifies a DTMF key that indicates the DTMF collection escapekey: specifies a DTMF key that indicates collected grammar
is to be re-initiated. A valid value is a DTMF Character (see matches are discarded and the DTMF collection is to be re-
Section 4.6.2). The attribute is optional. There is no default initiated. A valid value is a DTMF Character (see Section 4.6.2).
value. The attribute is optional. There is no default value.
termchar: specifies a DTMF character for terminating DTMF input termchar: specifies a DTMF character for terminating DTMF input
collection using the internal grammar. It is ignored when a collection using the internal grammar. It is ignored when a
custom grammar is used. A valid value is a DTMF character (see custom grammar is specified. A valid value is a DTMF character
Section 4.6.2). To disable termination by a conventional DTMF (see Section 4.6.2). To disable termination by a conventional
character, set the parameter to an unconventional character like DTMF character, set the parameter to an unconventional character
'A'. The attribute is optional. The default value is '#'. like 'A'. The attribute is optional. The default value is '#'.
maxdigits: The maximum number of digits to collect using an internal maxdigits: The maximum number of digits to collect using an internal
digits (0-9 only) grammar. A valid value is a positive integer digits (0-9 only) grammar. It is ignored when a custom grammar is
(see Section 4.6.5). The attribute is optional. The default specified. A valid value is a positive integer (see
value is 5. Section 4.6.5). The attribute is optional. The default value is
5.
The following matching priority is defined for incoming DTMF:
termchar attribute, escapekey attribute and then as part of a
grammar. For example, if "1" is defined as the escapekey attribute
and as part of a grammar, then its interpretation as a escapekey
takes priority.
The <collect> element has the following child elements: The <collect> element has the following child elements:
<grammar>: indicates a custom grammar format (see <grammar>: indicates a custom grammar format (see
Section 4.3.1.3.1). The element is optional. Section 4.3.1.3.1). The element is optional.
The custom grammar takes priority over the internal grammar. If a The custom grammar takes priority over the internal grammar. If a
<grammar> element is specified, the MS MUST use it for DTMF <grammar> element is specified, the MS MUST use it for DTMF
collection. collection.
skipping to change at page 48, line 42 skipping to change at page 51, line 7
or a custom DTMF grammar specified with the <grammar> element. or a custom DTMF grammar specified with the <grammar> element.
6. After escapekey input, or a valid input which does not complete 6. After escapekey input, or a valid input which does not complete
the grammar, the MS activates a timer for the value of the the grammar, the MS activates a timer for the value of the
interdigittimeout attribute or the termtimeout attribute. The MS interdigittimeout attribute or the termtimeout attribute. The MS
only uses the termtimeout value when the grammar does not allow only uses the termtimeout value when the grammar does not allow
any additional input; otherwise, the MS uses the any additional input; otherwise, the MS uses the
interdigittimeout. interdigittimeout.
7. If DTMF collect input matches the value of the escapekey 7. If DTMF collect input matches the value of the escapekey
attribute, then the MS re-initializes DTMF collection. attribute, then the MS re-initializes DTMF collection: i.e. the
MS discards collected DTMFs already matched against the grammar,
and the MS attempts to match incoming DTMF (including any pending
in the digit buffer) as described in Step 5 above.
8. If the collect input is not valid with respect to the grammar or 8. If the collect input is not valid with respect to the grammar or
an interdigittimeout timer expires, the MS terminates collection an interdigittimeout timer expires, the MS terminates collection
execution and reports execution status to the dialog container execution and reports execution status to the dialog container
with a <collectinfo> (see Section 4.3.2.3) where the termmode with a <collectinfo> (see Section 4.3.2.3) where the termmode
attribute is set to nomatch. attribute is set to nomatch.
9. If the collect input completes the grammar or if a termtimeout 9. If the collect input completes the grammar or if a termtimeout
timer expires, then the MS terminates collection execution and timer expires, then the MS terminates collection execution and
reports execution status to the dialog container with reports execution status to the dialog container with
skipping to change at page 75, line 37 skipping to change at page 78, line 37
4.6.10. MIME Media Type 4.6.10. MIME Media Type
A string formated as a IANA MIME media type ([MIME.mediatypes]). A string formated as a IANA MIME media type ([MIME.mediatypes]).
4.6.11. Language Identifier 4.6.11. Language Identifier
A language identifier labels information content as being of a A language identifier labels information content as being of a
particular human language variant. Following the XML specification particular human language variant. Following the XML specification
for language identification [XML], a legal language identifier is for language identification [XML], a legal language identifier is
identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code identified by a RFC566 ([RFC5646]) and RFC4647 ([RFC4647]) code where
where the language code is required and a country code or other the language code is required and a country code or other subtag
subtag identifier is optional. identifier is optional.
4.6.12. DateTime 4.6.12. DateTime
A string formated according to the XML schema definition of a A string formated according to the XML schema definition of a
dateTime type ([XMLSchema:Part2]). dateTime type ([XMLSchema:Part2]).
5. Formal Syntax 5. Formal Syntax
This section defines the XML schema for IVR Control Package. This section defines the XML schema for IVR Control Package.
skipping to change at page 76, line 31 skipping to change at page 79, line 31
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr" <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr"
elementFormDefault="qualified" blockDefault="#all" elementFormDefault="qualified" blockDefault="#all"
xmlns="urn:ietf:params:xml:ns:msc-ivr" xmlns="urn:ietf:params:xml:ns:msc-ivr"
xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes" xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation> <xsd:annotation>
<xsd:documentation> <xsd:documentation>
IETF MediaCtrl IVR 1.0 (20090710) IETF MediaCtrl IVR 1.0 (20100225)
This is the schema of the IETF MediaCtrl IVR control This is the schema of the IETF MediaCtrl IVR control
package. package.
The schema namespace is urn:ietf:params:xml:ns:msc-ivr The schema namespace is urn:ietf:params:xml:ns:msc-ivr
</xsd:documentation> </xsd:documentation>
</xsd:annotation> </xsd:annotation>
<!-- <!--
skipping to change at page 87, line 30 skipping to change at page 90, line 30
maxOccurs="1" /> maxOccurs="1" />
<xsd:element ref="record" minOccurs="0" <xsd:element ref="record" minOccurs="0"
maxOccurs="1" /> maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0" <xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" /> maxOccurs="unbounded" processContents="lax" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="repeatCount" <xsd:attribute name="repeatCount"
type="xsd:nonNegativeInteger" default="1" /> type="xsd:nonNegativeInteger" default="1" />
<xsd:attribute name="repeatDur" <xsd:attribute name="repeatDur"
type="timedesignation.datatype" /> type="timedesignation.datatype" />
<xsd:attribute name="repeatUntilComplete"
type="boolean.datatype" default="false"/>
</xsd:extension> </xsd:extension>
</xsd:complexContent> </xsd:complexContent>
</xsd:complexType> </xsd:complexType>
<xsd:element name="dialog" type="dialogType" /> <xsd:element name="dialog" type="dialogType" />
<!-- prompt --> <!-- prompt -->
<xsd:complexType name="promptType"> <xsd:complexType name="promptType">
<xsd:complexContent> <xsd:complexContent>
skipping to change at page 111, line 49 skipping to change at page 114, line 49
<event dialogid="vxi81"> <event dialogid="vxi81">
<dtmfnotify matchmode="collect" dtmf="12" <dtmfnotify matchmode="collect" dtmf="12"
timestamp="2008-05-12T12:13:14Z"/> timestamp="2008-05-12T12:13:14Z"/>
</event> </event>
</mscivr> </mscivr>
If no user input was provided, or the input did not match the If no user input was provided, or the input did not match the
grammar, the dialog would continue to loop until terminated (or an grammar, the dialog would continue to loop until terminated (or an
error occurred). error occurred).
6.2.6. Dialog repetition until DTMF collection complete
This example is a prompt and collect dialog to collect the PIN from
the user. The repeatUntilComplete attribute in the <dialog> is set
to true in this case so that when the grammar collection is complete,
the MS automatically terminates the dialog repeat cycle and reports
the results in a <dialogexit> event.
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart connectionid="7HDY839:HJKSkyHS">
<dialog repeatCount="3" repeatUntilComplete="true">
<prompt bargein="true">
<media loc="http://example.com/please_enter_your_pin.vox"/>
</prompt>
<collect maxdigits="4"/>
</dialog>
</dialogstart>
</mscivr>
If the user barges in on the prompt and <collect> receives DTMF input
matching the grammar, the dialog cycle is considered complete and the
MS returns the following:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<event dialogid="vxi81">
<dialogexit status="1">
<promptinfo duration="3654" termmode="bargein"/>
<collectinfo dtmf="1234" termmode="match">
</dialogexit>
</event>
</mscivr>
If no user input was provided, or the input did not match the
grammar, the dialog would loop for a maximum of 3 times.
6.3. Other Dialog Languages 6.3. Other Dialog Languages
The following example requests that a VoiceXML dialog is started: The following example requests that a VoiceXML dialog is started:
<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
<dialogstart dialogid="d2" <dialogstart dialogid="d2"
connectionid="7HDY839:HJKSkyHS" connectionid="7HDY839:HJKSkyHS"
type="application/voicexml+xml" type="application/voicexml+xml"
src="http://www.example.com/mydialog.vxml" src="http://www.example.com/mydialog.vxml"
fetchtimeout="15s"> fetchtimeout="15s">
skipping to change at page 121, line 9 skipping to change at page 124, line 9
Person & email address to contact for further information: Scott Person & email address to contact for further information: Scott
McGlashan <smcg.stds01@mcglashan.org> McGlashan <smcg.stds01@mcglashan.org>
Intended usage: LIMITED USE Intended usage: LIMITED USE
Author/Change controller: The IETF Author/Change controller: The IETF
Other information: None. Other information: None.
9. Change Summary 9. Change Summary
Note to RFC Editor: Please remove this whole section. Note to RFC Editor: Please remove this whole section.
The following are the changes between the -08 and -07 versions
(addressing IETF Last Call comments):
o 4.2: Changed recommended maximum duration value for a prepared
dialog from 30s to 300s.
o 4.2: Changed the dialog state machine so that when a PREPARED
dialog is terminated, the MS always sends a <dialogexit>
notification event.
o 4.2.1/4.2.2: Clarified that dialog preparation covers retrieval of
external resources (e.g. media, grammar, etc) when they are
referenced by an inline <dialog> element.
o 4.2.2.1.1: Fixed example replacing <dtmfnotify> with <dtmfsub> in
<subscribe> element
o 4.3.1: Added repeatUntilComplete attribute to <dialog> to allow
repetition of an dialog until input (DTMF or recording) is
completed successfully. Updated XML schema. Added example in
6.2.6.
o 4.3.1.1.3: Clarified that in the case of <par>, it is
responsibility of the MS to assign the appropriate stream(s) for
playback of each <media>.
o 4.3.1.2: Clarified that DTMF matching <control>s are consumed and
not added to the digit buffer.
o 4.3.1.3: Clarified that <collect>'s maxdigits attribute is ignored
if a custom grammar is specified.
o 4.3.1.3: Clarified that when a DTMF input can match more than one
of {termchar, escapekey, grammar}, then the priority of matching
is: termchar, escapekey and then grammar.
o 4.3.1.3: Clarified that the behavior of the escapekey: the MS
discards collected DTMFs already matched against the grammar, and
the MS attempts to match incoming DTMF (including any pending in
the digit buffer) as described in Step 5 of the <collect>
execution model.
o 12.2.1: Changed mapping between SIP History-Info and VoiceXML
session.connection.redirect to align with RFC5552 reported Errata.
The following are the changes between the -07 and -06 versions The following are the changes between the -07 and -06 versions
(primarily addressing AD Review comments): (primarily addressing AD Review comments):
o Generally corrected references from Section 17.1 to Section 16.1 o Generally corrected references from Section 17.1 to Section 16.1
of Control Channel Framework. of Control Channel Framework.
o 4.2.2.1.1: corrected syntax error in example o 4.2.2.1.1: corrected syntax error in example
o 4.2.3.1: corrected example by adding conferenceid attribute. o 4.2.3.1: corrected example by adding conferenceid attribute.
skipping to change at page 133, line 4 skipping to change at page 136, line 48
'promptandrecord' dialog type 'promptandrecord' dialog type
o updated references o updated references
The following are the major changes between the -02 of the draft and The following are the major changes between the -02 of the draft and
the -01 version. the -01 version.
o added version 1.0 to package name o added version 1.0 to package name
o separate section for element definitions o separate section for element definitions
o dialogterminate treated as request rather than notification
o dialogterminate treated as request rather than notification
o simplified responses: single element <response> o simplified responses: single element <response>
o removed response elements: <dialogprepared>, <dialogstarted>, o removed response elements: <dialogprepared>, <dialogstarted>,
<errordialognotprepared>, <errordialognotstarted> <errordialognotprepared>, <errordialognotstarted>
o simplified event notifications to single <event> element carried o simplified event notifications to single <event> element carried
in a REPORT in a REPORT
o <dialogexit> element replaced with <event name="dialogexit"> o <dialogexit> element replaced with <event name="dialogexit">
skipping to change at page 135, line 8 skipping to change at page 139, line 8
early versions of this document. early versions of this document.
The authors would like to thank the IVR design team consisting of The authors would like to thank the IVR design team consisting of
Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary
Barnes and Steve Buko who provided valuable feedback, input and text Barnes and Steve Buko who provided valuable feedback, input and text
to this document. to this document.
11. Acknowledgments 11. Acknowledgments
The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave
Burke, Dan York, Steve Buko and Jean-Francois Bertrand for expert Burke, Dan York, Steve Buko, Jean-Francois Bertrand and Henry Lum for
reviews of this work. expert reviews of this work.
Ben Campbell carried out the RAI expert review on this specification Ben Campbell carried out the RAI expert review on this specification
and provided a great deal of invaluable input. Donald Eastlake and provided a great deal of invaluable input. Donald Eastlake
carried out a thorough security review. carried out a thorough security review.
12. Appendix A: Using VoiceXML as a dialog language 12. Appendix A: Using VoiceXML as a dialog language
The IVR control package allows, but does not require, the MS to The IVR control package allows, but does not require, the MS to
support other dialog languages by referencing an external dialog support other dialog languages by referencing an external dialog
document. This appendix provides MS implementations which support document. This appendix provides MS implementations which support
skipping to change at page 138, line 22 skipping to change at page 142, line 22
session.connection.protocol.name Evaluates to "sip". Note that this session.connection.protocol.name Evaluates to "sip". Note that this
is intended to reflect the use of SIP in general, and does not is intended to reflect the use of SIP in general, and does not
distinguish between whether the connection accesses the MS via SIP distinguish between whether the connection accesses the MS via SIP
or SIPS procedures. or SIPS procedures.
session.connection.protocol.version Evaluates to "2.0". session.connection.protocol.version Evaluates to "2.0".
session.connection.redirect This array is populated by information session.connection.redirect This array is populated by information
contained in the History-Info ([RFC4244]) header in the initial contained in the History-Info ([RFC4244]) header in the initial
INVITE or is otherwise undefined. Each entry (hi-entry) in the INVITE or is otherwise undefined. Each entry (hi-entry) in the
History-Info header is mapped, in reverse order, into an element History-Info header is mapped, in the order it appeared in the
of the session.connection.redirect array. Properties of each History-Info header, into an element of the
element of the array are determined as follows: session.connection.redirect array. Properties of each element of
the array are determined as follows:
uri Set to the hi-targeted-to-uri value of the History-Info entry uri Set to the hi-targeted-to-uri value of the History-Info entry
pi Set to 'true' if hi-targeted-to-uri contains a pi Set to 'true' if hi-targeted-to-uri contains a
'Privacy=history' parameter, or if the INVITE Privacy header 'Privacy=history' parameter, or if the INVITE Privacy header
includes 'history'; 'false' otherwise includes 'history'; 'false' otherwise
si Set to the value of the 'si' parameter if it exists, undefined si Set to the value of the 'si' parameter if it exists, undefined
otherwise otherwise
skipping to change at page 144, line 35 skipping to change at page 148, line 35
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. January 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description [RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006. Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[RFC4646] Phillips, A. and M. Davis, "Tags for Identifying
Languages", RFC 4646, September 2006.
[RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags",
BCP 47, RFC 4647, September 2006. BCP 47, RFC 4647, September 2006.
[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying
Languages", BCP 47, RFC 5646, September 2009.
[SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar
Specification Version 1.0", W3C Recommendation, Specification Version 1.0", W3C Recommendation,
March 2004. March 2004.
[W3C.REC-SMIL2-20051213] [W3C.REC-SMIL2-20051213]
Bulterman, D., Michel, T., Zucker, D., Jansen, J., Layaida, N., Mullender, S., Michel, T., Grassel, G.,
Layaida, N., Mullender, S., Grassel, G., and A. Koivisto, Jansen, J., Koivisto, A., Bulterman, D., and D. Zucker,
"Synchronized Multimedia Integration Language (SMIL 2.1)", "Synchronized Multimedia Integration Language (SMIL 2.1)",
World Wide Web Consortium Recommendation REC-SMIL2- World Wide Web Consortium Recommendation REC-SMIL2-
20051213, December 2005, 20051213, December 2005,
<http://www.w3.org/TR/2005/REC-SMIL2-20051213>. <http://www.w3.org/TR/2005/REC-SMIL2-20051213>.
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0 and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Third Edition)", W3C Recommendation, February 2004. (Third Edition)", W3C Recommendation, February 2004.
[XMLSchema:Part2] [XMLSchema:Part2]
skipping to change at page 145, line 24 skipping to change at page 149, line 24
[CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version
1.0", W3C Working Draft (work in progress), January 2007. 1.0", W3C Working Draft (work in progress), January 2007.
[H.248.9] "Gateway control protocol: Advanced media server [H.248.9] "Gateway control protocol: Advanced media server
packages", ITU-T Recommendation H.248.9. packages", ITU-T Recommendation H.248.9.
[I-D.ietf-xcon-common-data-model] [I-D.ietf-xcon-common-data-model]
Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen,
"Conference Information Data Model for Centralized "Conference Information Data Model for Centralized
Conferencing (XCON)", draft-ietf-xcon-common-data-model-14 Conferencing (XCON)", draft-ietf-xcon-common-data-model-18
(work in progress), November 2009. (work in progress), February 2010.
[IANA] "IANA registry for RTP Payload Types", [IANA] "IANA registry for RTP Payload Types",
<http://www.iana.org/assignments/rtp-parameters>. <http://www.iana.org/assignments/rtp-parameters>.
[MIME.mediatypes] [MIME.mediatypes]
"IANA registry for MIME Media Types", "IANA registry for MIME Media Types",
<http://www.iana.org/assignments/media-types/>. <http://www.iana.org/assignments/media-types/>.
[MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session
Markup Language (MSML)", draft-saleem-msml-09 (work in
progress), July 2009.
[RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio
Package", RFC 2897, August 2000. Package", RFC 2897, August 2000.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network
Media Services with SIP", RFC 4240, December 2005. Media Services with SIP", RFC 4240, December 2005.
skipping to change at page 146, line 36 skipping to change at page 150, line 31
[RFC4855] Casner, S., "Media Type Registration of RTP Payload [RFC4855] Casner, S., "Media Type Registration of RTP Payload
Formats", RFC 4855, February 2007. Formats", RFC 4855, February 2007.
[RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server
Control Markup Language (MSCML) and Protocol", RFC 5022, Control Markup Language (MSCML) and Protocol", RFC 5022,
September 2007. September 2007.
[RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol
Requirements", RFC 5167, March 2008. Requirements", RFC 5167, March 2008.
[RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup
Language (MSML)", RFC 5707, February 2010.
[VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P.,
Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K.,
and S. Tryphonas, "Voice Extensible Markup Language and S. Tryphonas, "Voice Extensible Markup Language
(VoiceXML) Version 2.0", W3C Recommendation, March 2004. (VoiceXML) Version 2.0", W3C Recommendation, March 2004.
[VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D.,
Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee,
A., Porter, B., and K. Rehor, "Voice Extensible Markup A., Porter, B., and K. Rehor, "Voice Extensible Markup
Language (VoiceXML) Version 2.1", W3C Recommendation, Language (VoiceXML) Version 2.1", W3C Recommendation,
June 2007. June 2007.
 End of changes. 43 change blocks. 
139 lines changed or deleted 261 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/