| < draft-ietf-mediactrl-ivr-control-package-02.txt | draft-ietf-mediactrl-ivr-control-package-03.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 7, 2009 Rain Willow Communications | Expires: June 1, 2009 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| Avaya | Avaya | |||
| November 3, 2008 | November 28, 2008 | |||
| 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-02 | draft-ietf-mediactrl-ivr-control-package-03 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| 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 7, 2009. | This Internet-Draft will expire on June 1, 2009. | |||
| 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 2, line 35 ¶ | skipping to change at page 2, line 35 ¶ | |||
| 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> . . . . . . . . . . . . . . . . . . . . 20 | |||
| 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24 | 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 23 | |||
| 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 24 | 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 24 | |||
| 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 25 | 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27 | 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 26 | |||
| 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27 | 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 26 | |||
| 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 27 | 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28 | 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 | 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30 | 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 31 | 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 31 | 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 32 | 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 | 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 33 | |||
| 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 34 | 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 36 | 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 36 | |||
| 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 | 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 | |||
| 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 39 | 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 40 | 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 | 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 | |||
| skipping to change at page 3, line 21 ¶ | skipping to change at page 3, line 21 ¶ | |||
| 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 | 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 55 | 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 55 | 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 55 | 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 | 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 56 | 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 56 | 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 56 | |||
| 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 | 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 57 | 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 | 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 | |||
| 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 61 | 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 60 | |||
| 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 61 | 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 | 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 63 | 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 63 | |||
| 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 64 | 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 64 | 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 64 | 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 65 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 65 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 66 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 66 | |||
| 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 66 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 66 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 66 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 66 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 66 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 66 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 73 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 | |||
| 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 | |||
| 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 114 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 116 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 114 | 8.1. Control Package Registration . . . . . . . . . . . . . . 116 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 114 | 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 116 | |||
| 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 114 | 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 116 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 115 | 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 117 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 124 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 127 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 125 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 128 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 126 | 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 129 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 126 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 136 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 127 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 136 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 129 | 13.2. Informative References . . . . . . . . . . . . . . . . . 137 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 130 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 139 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 140 | ||||
| 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 27 ¶ | skipping to change at page 5, line 27 ¶ | |||
| dialogs on media connections and conferences. The term 'dialog' in | dialogs on media connections and conferences. The term 'dialog' in | |||
| this document refers to an IVR dialog and is completely unrelated to | this document refers to an IVR dialog and is completely unrelated to | |||
| the notion of a SIP dialog. The term 'IVR' is used in its inclusive | the notion of a SIP dialog. The term 'IVR' is used in its inclusive | |||
| sense, allowing media other than voice for dialog interaction. | sense, allowing media other than voice for dialog interaction. | |||
| The package defines dialog management request elements for preparing, | The package defines dialog management request elements for preparing, | |||
| starting and terminating dialog interactions, as well as associated | starting and terminating dialog interactions, as well as associated | |||
| responses and notifications. Dialog interactions are specified using | responses and notifications. Dialog interactions are specified using | |||
| a dialog language where the language specifies a well-defined syntax | a dialog language where the language specifies a well-defined syntax | |||
| and semantics for permitted operations (play a prompt, record input | and semantics for permitted operations (play a prompt, record input | |||
| from the user, etc). This package defines a own lightweight IVR | from the user, etc). This package defines a lightweight IVR dialog | |||
| dialog language (supporting prompt playback, runtime controls, DTMF | language (supporting prompt playback, runtime controls, DTMF collect | |||
| collect and media recording) and allows other dialog languages to be | and media recording) and allows other dialog languages to be used. | |||
| used. These dialog languages are specified inside dialog management | These dialog languages are specified inside dialog management | |||
| elements for preparing and starting dialog interactions. The package | elements for preparing and starting dialog interactions. The package | |||
| also defines elements for auditing package capabilities and IVR | also defines elements for auditing package capabilities and IVR | |||
| dialogs. | dialogs. | |||
| This package has been designed to satisfy the IETF MediaCtrl | This package has been designed to satisfy IVR requirements documented | |||
| requirements ([RFC5167]) by building upon two major approaches to IVR | in the Media Server Control Protocol Requirements document | |||
| dialog design. These approaches address a wide range of IVR use | ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. | |||
| cases and are used in many applications which are extensively | It achieves this by building upon two major approaches to IVR dialog | |||
| deployed today. | design. These approaches address a wide range of IVR use cases and | |||
| 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 ([MSML]) 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 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 | |||
| not any advanced VoiceXML constructs (such as <form>, its | not any advanced VoiceXML constructs (such as <form>, its | |||
| interpretation algorithm, or a dynamic data model). As W3C develops | interpretation algorithm, or a dynamic data model). As W3C develops | |||
| VoiceXML 3.0, we expect to see further alignment, especially in | VoiceXML 3.0, we expect to see further alignment, especially in | |||
| providing a set of basic independent primitive elements (such as | providing a set of basic independent primitive elements (such as | |||
| prompt, collect, record and runtime controls) which can be re-used in | prompt, collect, record and runtime controls) which can be re-used in | |||
| skipping to change at page 6, line 31 ¶ | skipping to change at page 6, line 32 ¶ | |||
| o playing one or more media resources as a prompt to the user | o playing one or more media resources as a prompt to the user | |||
| o runtime controls (including VCR controls like speed and volume) | o runtime controls (including VCR controls like speed and volume) | |||
| o collecting DTMF input from the user according to a grammar | o collecting DTMF input from the user according to a grammar | |||
| o recording user media input | o recording user media input | |||
| Out of scope for this dialog language are more advanced functions | Out of scope for this dialog language are more advanced functions | |||
| including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), | including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), | |||
| VoiceXML, fax and media transformation. Such functionality may be | fax, automatic prompt recovery ('media fallback') and media | |||
| addressed by other dialog languages (such as VoiceXML) used with this | transformation. Such functionality can be addressed by other dialog | |||
| package, extensions to this package (addition of foreign elements or | languages (such as VoiceXML) used with this package, extensions to | |||
| attributes from another namespace) or other control packages. | this package (addition of foreign elements or attributes from another | |||
| namespace) or other control packages. | ||||
| The functionality of this package is defined by messages, containing | The functionality of this package is defined by messages, containing | |||
| XML [XML] elements, transported using the Media Control Channel | XML [XML] elements, transported using the Media Control Channel | |||
| Framework. The XML elements can be divided into three types: dialog | Framework. The XML elements can be divided into three types: dialog | |||
| management elements; a dialog element which defines a lightweight IVR | management elements; a dialog element which defines a lightweight IVR | |||
| dialog language used with dialog management elements; and finally, | dialog language used with dialog management elements; and finally, | |||
| elements for auditing package capabilities as well as dialogs managed | elements for auditing package capabilities as well as dialogs managed | |||
| by the package. | by the package. | |||
| Dialog management elements are designed to manage the general | Dialog management elements are designed to manage the general | |||
| lifecycle of a dialog. Elements are provided for preparing a dialog, | lifecycle of a dialog. Elements are provided for preparing a dialog, | |||
| starting the dialog on a conference or connection, and terminating | starting the dialog on a conference or connection, and terminating | |||
| execution of a dialog. Each of these elements is contained in a | execution of a dialog. Each of these elements is contained in a | |||
| Media Control Channel Framework CONTROL message sent to the media | Media Control Channel Framework CONTROL message sent to the media | |||
| server. When the appropriate action has been executed, the media | server. When the appropriate action has been executed, the media | |||
| server sends a REPORT message (or a 200 response to the CONTROL if it | server sends a REPORT message (or a 200 response to the CONTROL if it | |||
| can execute in time) with a response element indicating whether the | can execute in time) with a response element indicating whether the | |||
| operation was successful or not (e.g. if the dialog cannot be | operation was successful or not (e.g. if the dialog cannot be | |||
| started, then the error is reported in this response). Once a dialog | started, then the error is reported in this response). Once a dialog | |||
| has been successfully started, the media server may send further | has been successfully started, the media server can send further | |||
| event notifications in a framework CONTROL message. This package | event notifications in a framework CONTROL message. This package | |||
| defines two event notifications: a DTMF event indicating the DTMF | defines two event notifications: a DTMF event indicating the DTMF | |||
| activity; and a dialogexit event indicating that the dialog has | activity; and a dialogexit event indicating that the dialog has | |||
| exited. If the dialog has executed successful, the dialogexit event | exited. If the dialog has executed successful, the dialogexit event | |||
| includes information collected during the dialog. If an error occurs | includes information collected during the dialog. If an error occurs | |||
| during execution (e.g. a media resource failed to play, no recording | during execution (e.g. a media resource failed to play, no recording | |||
| resource available, etc), then error information is reported in the | resource available, etc), then error information is reported in the | |||
| dialogexit event. Once a dialogexit event is sent, the dialog | dialogexit event. Once a dialogexit event is sent, the dialog | |||
| lifecycle is terminated. | lifecycle is terminated. | |||
| skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 6 ¶ | |||
| an external dialog document. | an external dialog document. | |||
| The document is organized as follows. Section 3 describes how this | The document is organized as follows. Section 3 describes how this | |||
| control package fulfills the requirements for a Media Control Channel | control package fulfills the requirements for a Media Control Channel | |||
| Framework control package. Section 4 describes the syntax and | Framework control package. Section 4 describes the syntax and | |||
| semantics of defined elements, including dialog management | semantics of defined elements, including dialog management | |||
| (Section 4.2), the IVR dialog element (Section 4.3) and audit | (Section 4.2), the IVR dialog element (Section 4.3) and audit | |||
| elements (Section 4.4). Section 5 describes an XML schema for these | elements (Section 4.4). Section 5 describes an XML schema for these | |||
| elements and provides extensibility by allowing attributes and | elements and provides extensibility by allowing attributes and | |||
| elements from other namespaces. Section 6 provides examples of | elements from other namespaces. Section 6 provides examples of | |||
| package usage. | package usage. Section 7 describes important security considerations | |||
| for use of this control package. Section 8 provides information on | ||||
| IANA registration of this control package, including its name, XML | ||||
| namespace and MIME media type. Finally, Section 12 provides | ||||
| additional information on using VoiceXML when supported as an | ||||
| external dialog language. | ||||
| 2. Conventions and Terminology | 2. Conventions and Terminology | |||
| In this document, BCP 14 [RFC2119] defines the key words "MUST", | In this document, BCP 14 [RFC2119] defines the key words "MUST", | |||
| "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | |||
| "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | |||
| addition, BCP 15 indicates requirement levels for compliant | addition, BCP 15 indicates requirement levels for compliant | |||
| implementations. | implementations. | |||
| The following additional terms are defined for use in this document: | The following additional terms are defined for use in this document: | |||
| Dialog: A dialog performs media interaction with a user following | Dialog: A dialog performs media interaction with a user following | |||
| the concept of an IVR (Interactive Voice Response) dialog (this | the concept of an IVR (Interactive Voice Response) dialog (this | |||
| sense of 'dialog' is completely unrelated to a SIP dialog). A | sense of 'dialog' is completely unrelated to a SIP dialog). A | |||
| dialog is specified as inline XML, or via a URI reference to an | dialog is specified as inline XML, or via a URI reference to an | |||
| external dialog document. Traditional IVR dialogs typically | external dialog document. Traditional IVR dialogs typically | |||
| feature capabilities such as playing audio prompts, collecting | feature capabilities such as playing audio prompts, collecting | |||
| DTMF input and recording audio input from the user. More | DTMF input and recording audio input from the user. More | |||
| inclusive definitions may include support for other media types, | inclusive definitions include support for other media types, | |||
| runtime controls, synthesized speech, recording and playback of | runtime controls, synthesized speech, recording and playback of | |||
| video, recognition of spoken input, and mixed initiative | video, recognition of spoken input, and mixed initiative | |||
| conversations. | conversations. | |||
| Application server: A SIP [RFC3261] application server (AS) hosts | Application server: A SIP [RFC3261] application server (AS) hosts | |||
| and executes services such as interactive media and conferencing | and executes services such as interactive media and conferencing | |||
| in an operator's network. An AS influences and impacts the SIP | in an operator's network. An AS influences and impacts the SIP | |||
| session, in particular by terminating SIP sessions on a media | session, in particular by terminating SIP sessions on a media | |||
| server, which is under its control. | server, which is under its control. | |||
| skipping to change at page 12, line 4 ¶ | skipping to change at page 12, line 4 ¶ | |||
| When operating as Control Client, the MS sends CONTROL messages with | When operating as Control Client, the MS sends CONTROL messages with | |||
| the MIME media type defined in Section 8.3 and a body containing an | the MIME media type defined in Section 8.3 and a body containing an | |||
| <mscivr> element (Section 4.1) with a notification <event> child | <mscivr> element (Section 4.1) with a notification <event> child | |||
| element (Section 4.2.5). | element (Section 4.2.5). | |||
| 3.5. REPORT Message Body | 3.5. REPORT Message Body | |||
| The Control Framework requires a control package definition to define | The Control Framework requires a control package definition to define | |||
| the REPORT body that can be contained within a REPORT command | the REPORT body that can be contained within a REPORT command | |||
| request, or that no report package body is required. This section | request, or that no report package body is required. This section | |||
| should indicate the location of detailed syntax definitions and | indicates the location of detailed syntax definitions and semantics | |||
| semantics for the appropriate body types. | for the appropriate body types. | |||
| When operating as Control Server, the MS sends REPORT bodies with the | When operating as Control Server, the MS sends REPORT bodies with the | |||
| MIME media type defined in Section 8.3 and containing a <mscivr> | MIME media type defined in Section 8.3 and containing a <mscivr> | |||
| element (Section 4.1) with a response child element. The response | element (Section 4.1) with a response child element. The response | |||
| element for dialog management requests is a <response> element | element for dialog management requests is a <response> element | |||
| (Section 4.2.4). The response element for an audit request is a | (Section 4.2.4). The response element for an audit request is a | |||
| <auditresponse> element (Section 4.4.2). | <auditresponse> element (Section 4.4.2). | |||
| 3.6. Audit | 3.6. Audit | |||
| skipping to change at page 13, line 18 ¶ | skipping to change at page 13, line 18 ¶ | |||
| are defined in the XML namespace specified in Section 8.2. | are defined in the XML namespace specified in Section 8.2. | |||
| The root element is <mscivr> (Section 4.1). All other XML elements | The root element is <mscivr> (Section 4.1). All other XML elements | |||
| (requests, responses and notification elements) are contained within | (requests, responses and notification elements) are contained within | |||
| it. Child elements describe dialog management (Section 4.2) and | it. Child elements describe dialog management (Section 4.2) and | |||
| audit (Section 4.4) functionality. The IVR dialog element (contained | audit (Section 4.4) functionality. The IVR dialog element (contained | |||
| within dialog management elements) is defined in Section 4.3. | within dialog management elements) is defined in Section 4.3. | |||
| Response status codes are defined in Section 4.5 and type definitions | Response status codes are defined in Section 4.5 and type definitions | |||
| in Section 4.6. | in Section 4.6. | |||
| Implementation of this control package MUST address the Security | ||||
| Considerations described in Section 7 ). | ||||
| Implementation of this control package MUST adhere to the syntax and | Implementation of this control package MUST adhere to the syntax and | |||
| semantics of XML elements defined in this section and the schema | semantics of XML elements defined in this section and the schema | |||
| (Section 5). Since XML Schema is unable to support some types of | (Section 5). Since XML Schema is unable to support some types of | |||
| syntactic constraints (such as attribute and element co-occurrence), | syntactic constraints (such as attribute and element co-occurrence), | |||
| some elements in this package specify additional syntactic | some elements in this package specify additional syntactic | |||
| constraints in their textual definition. If there is a difference in | constraints in their textual definition. If there is a difference in | |||
| constraints between the XML schema and the textual description of | constraints between the XML schema and the textual description of | |||
| elements in this section, the textual definition takes priority. | elements in this section, the textual definition takes priority. | |||
| The XML schema supports extensibility by allowing attributes and | The XML schema supports extensibility by allowing attributes and | |||
| elements from other namespaces. Implementations MAY support | elements from other namespaces. Implementations MAY support | |||
| additional capabilities by means of attributes and elements from | additional capabilities by means of attributes and elements from | |||
| other (foreign) namespaces. Attributes and elements from foreign | other (foreign) namespaces. Attributes and elements from foreign | |||
| namespaces are not described in this section. | namespaces are not described in this section. | |||
| Some elements in this control package contain attributes whose value | Some elements in this control package contain attributes whose value | |||
| is a URI. These elements include: <dialogprepare> (Section 4.2.1), | is a URI. These elements include: <dialogprepare> (Section 4.2.1), | |||
| <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.5), <grammar> | <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.5), <grammar> | |||
| (Section 4.3.1.3.1), and <record> (Section 4.3.1.4). While this | (Section 4.3.1.3.1), and <record> (Section 4.3.1.4). The MS MUST | |||
| package is agnostic to the URI schemes supported by the MS, it is | support one or more schemes using communication protocols suitable | |||
| RECOMMENDED that the MS support one or more schemes using | for fetching resources (e.g. HTTP). | |||
| communication protocols suitable for fetching resources (e.g. HTTP). | ||||
| Usage examples are provided in Section 6. | Usage examples are provided in Section 6. | |||
| 4.1. <mscivr> | 4.1. <mscivr> | |||
| The <mscivr> element has the following attributes (in addition to | The <mscivr> element has the following attributes (in addition to | |||
| standard XML namespace attributes such as xmlns): | standard XML namespace attributes such as xmlns): | |||
| version: a string specifying the mscivr package version. The value | version: a string specifying the mscivr package version. The value | |||
| is fixed as '1.0' for this version of the package. The attribute | is fixed as '1.0' for this version of the package. The attribute | |||
| skipping to change at page 14, line 35 ¶ | skipping to change at page 14, line 41 ¶ | |||
| For example, a request to the MS to start an IVR dialog playing a | For example, a request to the MS to start an IVR dialog playing a | |||
| prompt: | prompt: | |||
| <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> | <dialogstart> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/welcome.wav"/> | <media loc="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | ||||
| </mscivr> | </mscivr> | |||
| and a response from the MS that the dialog started successfully: | and a response from the MS that the dialog started successfully: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <response status="200" dialogid="d1"/> | <response status="200" dialogid="d1"/> | |||
| </mscivr> | </mscivr> | |||
| and finally a notification from the MS indicating that the dialog | and finally a notification from the MS indicating that the dialog | |||
| exited upon completion of playing the prompt: | exited upon completion of playing the prompt: | |||
| skipping to change at page 15, line 32 ¶ | skipping to change at page 15, line 38 ¶ | |||
| <dialogterminate>: terminate a dialog | <dialogterminate>: terminate a dialog | |||
| Responses from the MS describe the status of the requested operation. | Responses from the MS describe the status of the requested operation. | |||
| Responses are specified in a <response> element (Section 4.2.4) which | Responses are specified in a <response> element (Section 4.2.4) which | |||
| includes a mandatory attribute describing the status in terms of a | includes a mandatory attribute describing the status in terms of a | |||
| numeric code. Response status codes are defined in Section 4.5. The | numeric code. Response status codes are defined in Section 4.5. The | |||
| MS MUST respond to a request message with a response message. If the | MS MUST respond to a request message with a response message. If the | |||
| MS is not able to process the request and carry out the dialog | MS is not able to process the request and carry out the dialog | |||
| operation, the request has failed and the MS MUST indicate the class | operation, the request has failed and the MS MUST indicate the class | |||
| of failure using an appropriate 4xx response code. Unless an error | of failure using an appropriate 4xx response code. Unless an error | |||
| response code is mandated for a specific class of error within this | response code is specified for a class of error within this section, | |||
| section, implementations follow Section 4.5 in determining the | implementations follow Section 4.5 in determining the appropriate | |||
| appropriate status code for the response. | status code for the response. | |||
| Notifications are sent from the MS to provide updates on the status | Notifications are sent from the MS to provide updates on the status | |||
| of a dialog or operations defined within the dialog. Notifications | of a dialog or operations defined within the dialog. Notifications | |||
| are specified in an <event> element (Section 4.2.5). | are specified in an <event> element (Section 4.2.5). | |||
| +---------+ | +---------+ | |||
| | IDLE | | | IDLE | | |||
| +---------+ | +---------+ | |||
| | | | | | | |||
| | | | | | | |||
| skipping to change at page 17, line 30 ¶ | skipping to change at page 17, line 30 ¶ | |||
| duration, the dialog transitions to the TERMINATED state and the | duration, the dialog transitions to the TERMINATED state and the | |||
| MS MUST send a dialogexit notification with the appropriate error | MS MUST send a dialogexit notification with the appropriate error | |||
| status code (see Section 4.2.5.1). A maximum preparation duration | status code (see Section 4.2.5.1). A maximum preparation duration | |||
| of 30s is RECOMMENDED. | of 30s 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 a 410 | dialog transitions to the TERMINATED state and the MS MUST send a | |||
| 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. | |||
| The MS MUST send a 200 response indicating the start operation was | The MS MUST send a 200 response indicating the start operation was | |||
| successful. If any dialog events occurs which were subscribed to, | successful. If any dialog events occurs which were subscribed to, | |||
| the MS MUST send a notifications when the dialog event occurs. | the MS MUST send a notifications when the dialog event occurs. | |||
| When the dialog exits (due to normal termination, an error or a | When the dialog exits (due to normal termination, an error or a | |||
| terminate request), the MS MUST send a dialogexit notification | terminate request), the MS MUST send a dialogexit notification | |||
| event (see Section 4.2.5.1) and the dialog transitions to the | event (see Section 4.2.5.1) and the dialog transitions to the | |||
| TERMINATED state. | TERMINATED state. | |||
| skipping to change at page 18, line 13 ¶ | skipping to change at page 18, line 13 ¶ | |||
| identifier is no longer valid and can be reused for another dialog. | identifier is no longer valid and can be reused for another dialog. | |||
| The identifier is used to reference the dialog in subsequent | The identifier is used to reference the dialog in subsequent | |||
| requests, responses and notifications. In a <dialogstart> request, | requests, responses and notifications. In a <dialogstart> request, | |||
| the dialog identifier can be specified in the prepareddialogid | the dialog identifier can be specified in the prepareddialogid | |||
| attribute indicating the prepared dialog to start. In | attribute indicating the prepared dialog to start. In | |||
| <dialogterminate> and <audit> requests, the dialog identifier is | <dialogterminate> and <audit> requests, the dialog identifier is | |||
| specified in the dialogid attribute, indicating which dialog is to be | specified in the dialogid attribute, indicating which dialog is to be | |||
| terminated or audited respectively. If these requests specify a | terminated or audited respectively. If these requests specify a | |||
| dialog identifier already associated with another dialog on the MS, | dialog identifier already associated with another dialog on the MS, | |||
| the MS MUST send a response with a 405 status code (see Section 4.5) | the MS sends a response with a 405 status code (see Section 4.5) and | |||
| and the same dialogid as in the request. The MS MUST specify a | the same dialogid as in the request. The MS MUST specify a dialog | |||
| dialog identifier in notifications associated with the dialog. The | identifier in notifications associated with the dialog. The MS MUST | |||
| MS MUST specify a dialog identifier in responses unless it is a | specify a dialog identifier in responses unless it is a response to a | |||
| response to a <dialogterminate> request without a valid dialog | syntactically invalid request. | |||
| identifier specified. | ||||
| For a given dialog, the <dialogprepare> or <dialogstart> request | For a given dialog, the <dialogprepare> or <dialogstart> request | |||
| elements specify the dialog content to execute either by including | elements specify the dialog content to execute either by including | |||
| inline a <dialog> element (the dialog language defined in this | inline a <dialog> element (the dialog language defined in this | |||
| package, see Section 4.3) or by referencing an external dialog | package, see Section 4.3) or by referencing an external dialog | |||
| document (a dialog language defined outside this package). When | document (a dialog language defined outside this package). When | |||
| referencing an external dialog document, the request element contains | referencing an external dialog document, the request element contains | |||
| a URI reference to the remote document (specifying the dialog | a URI reference to the remote document (specifying the dialog | |||
| definition) and, optionally, a type attribute indicating the MIME | definition) and, optionally, a type attribute indicating the MIME | |||
| media type associated with the dialog document. Consequently, the | media type associated with the dialog document. Consequently, the | |||
| skipping to change at page 18, line 50 ¶ | skipping to change at page 18, line 49 ¶ | |||
| dialog document syntactically and semantically. | 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). If the URI | prepare. A valid value is a URI (see Section 4.6.9). If the URI | |||
| scheme is unsupported, the MS MUST send a <response> with a 420 | scheme is unsupported, the MS sends a <response> with a 420 status | |||
| status code (Section 4.5). If the document cannot be retrieved | code (Section 4.5). If the document cannot be retrieved within | |||
| within the timeout interval, the MS MUST send a <response> with a | the timeout interval, the MS sends a <response> with a 409 status | |||
| 409 status code. If the document contains a type of dialog | code. If the document contains a type of dialog language which | |||
| language which the MS does not supported, the MS MUST send a | the MS does not supported, the MS sends a <response> with a 421 | |||
| <response> with a 421 status code. The attribute is optional. | status code. The attribute is optional. There is no default | |||
| There is no default value. | value. | |||
| type: specifies the type of the external dialog document indicated | type: specifies the type of the external dialog document indicated | |||
| in the 'src' attribute. A valid value is a MIME media type (see | in the 'src' attribute. A valid value is a MIME media type (see | |||
| Section 4.6.10). The MS MAY use the value to assist the remote | Section 4.6.10). If the URI scheme used in the src attribute | |||
| source in selecting the appropriate resource type (e.g. with HTTP | defines a mechanism for establishing the authoratitive MIME media | |||
| 'accept' header) and to determine how the document is to be | type of the media resource, the value returned by that mechanism | |||
| processed if the protocol does not provide an authoritative MIME | takes precedence over this attribute. The attribute is optional. | |||
| media type for the returned resource. The attribute is optional. | There is no default value. | |||
| fetchtimeout: the maximum timeout interval to wait when fetching an | fetchtimeout: the maximum timeout interval to wait when fetching an | |||
| external dialog document. A valid value is a Time Designation | external dialog document. A valid value is a Time Designation | |||
| (see Section 4.6.7). The attribute is optional. The default | (see Section 4.6.7). The attribute is optional. The default | |||
| value is 30s. | value is 30s. | |||
| dialogid: string indicating a unique name for the dialog. If a | dialogid: string indicating a unique name for the dialog. If a | |||
| dialog with the same name already exists on the MS, the MS MUST | dialog with the same name already exists on the MS, the MS sends a | |||
| send a <response> with a 405 status code (Section 4.5). If this | <response> with a 405 status code (Section 4.5). If this | |||
| attribute is not specified, the MS MUST create a unique name for | attribute is not specified, the MS MUST create a unique name for | |||
| the dialog (see Section 4.2 for dialog identifier assignment). | the dialog (see Section 4.2 for dialog identifier assignment). | |||
| The attribute is optional. There is no default value. | The attribute is optional. There is no default value. | |||
| The <dialogprepare> element has one optional child element: | The <dialogprepare> element has one optional child element: | |||
| <dialog> an IVR dialog (Section 4.3) to prepare. The element is | <dialog> an IVR dialog (Section 4.3) to prepare. The element is | |||
| optional. | optional. | |||
| The dialog to prepare can either be specified inline with a <dialog> | The dialog to prepare can either be specified inline with a <dialog> | |||
| child element or externally (for dialog languages defined outside | child element or externally (for dialog languages defined outside | |||
| this specification) using the src attribute. It is a syntax error if | this specification) using the src attribute. It is a syntax error if | |||
| both an inline <dialog> element element and a src attribute are | both an inline <dialog> element element and a src attribute are | |||
| specified and the MS MUST send a <response> with a 400 status code | specified and the MS sends a <response> with a 400 status code (see | |||
| (see Section 4.5). The type and fetchtimeout attributes are only | Section 4.5). The type and fetchtimeout attributes are only relevant | |||
| relevant when a dialog is specified as an external document. | when a dialog is specified as an external document. | |||
| For example, a <dialogprepare> request to prepare an inline IVR | For example, a <dialogprepare> request to prepare an inline IVR | |||
| dialog with a single prompt: | dialog with a single prompt: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogprepare> | <dialogprepare> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/welcome.wav"/> | <media loc="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| skipping to change at page 20, line 13 ¶ | skipping to change at page 20, line 4 ¶ | |||
| dialog with a single prompt: | dialog with a single prompt: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogprepare> | <dialogprepare> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/welcome.wav"/> | <media loc="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogprepare> | </dialogprepare> | |||
| </mscivr> | </mscivr> | |||
| In this example, a request with a specified dialogid to prepare a | In this example, a request with a specified dialogid to prepare a | |||
| VoiceXML dialog document located externally: | VoiceXML dialog document located externally: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogprepare dialogid="d2" type="application/voicexml+xml" | <dialogprepare dialogid="d2" type="application/voicexml+xml" | |||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"/> | fetchtimeout="15s"/> | |||
| </mscivr> | </mscivr> | |||
| 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). | code 409 (Section 4.5). Further information on using VoiceXML can be | |||
| 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 | an external document and resources if necessary, and the dialog | |||
| document validated syntactically and semantically). Media processors | document validated syntactically and semantically). Media processors | |||
| (e.g. DTMF and prompt queue) are activated and associated with the | (e.g. DTMF and prompt queue) are activated and associated with the | |||
| specified connection or conference. | 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). If the URI scheme is | A valid value is a URI (see Section 4.6.9). If the URI scheme is | |||
| unsupported, the MS MUST send 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 MUST send a <response> with a 409 status | timeout interval, the MS sends a <response> with a 409 status | |||
| code. If the document contains a type of dialog language which | code. If the document contains a type of dialog language which | |||
| the MS does not supported, the MS MUST send a <response> with a | the MS does not supported, the MS sends a <response> with a 421 | |||
| 421 status code. The attribute is optional. There is no default | status code. The attribute is optional. There is no default | |||
| value. | value. | |||
| type: specifies the type of the external dialog document indicated | type: specifies the type of the external dialog document indicated | |||
| in the 'src' attribute. A valid value is a MIME media type (see | in the 'src' attribute. A valid value is a MIME media type (see | |||
| Section 4.6.10). The MS MAY use the value to assist the remote | Section 4.6.10). If the URI scheme used in the src attribute | |||
| source in selecting the appropriate resource type (e.g. with HTTP | defines a mechanism for establishing the authoratitive MIME media | |||
| 'accept' header) and to determine how the document is to be | type of the media resource, the value returned by that mechanism | |||
| processed if the protocol does not provide an authoritative MIME | takes precedence over this attribute. The attribute is optional. | |||
| media type for the returned resource. The attribute is optional. | There is no default value. | |||
| fetchtimeout: the maximum timeout interval to wait when fetching an | fetchtimeout: the maximum timeout interval to wait when fetching an | |||
| external dialog document. A valid value is a Time Designation | external dialog document. A valid value is a Time Designation | |||
| (see Section 4.6.7). The attribute is optional. The default | (see Section 4.6.7). The attribute is optional. The default | |||
| value is 30s. | value is 30s. | |||
| dialogid: string indicating a unique name for the dialog. If a | dialogid: string indicating a unique name for the dialog. If a | |||
| dialog with the same name already exists on the MS, the MS MUST | dialog with the same name already exists on the MS, the MS sends a | |||
| send a <response> with a 405 status code (Section 4.5). If | <response> with a 405 status code (Section 4.5). If neither the | |||
| neither the dialogid attribute nor the prepareddialogid attribute | dialogid attribute nor the prepareddialogid attribute is | |||
| is specified, the MS MUST create a unique name for the dialog (see | specified, the MS MUST create a unique name for the dialog (see | |||
| Section 4.2 for dialog identifier assignment). The attribute is | Section 4.2 for dialog identifier assignment). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| prepareddialogid: string identifying a dialog previously prepared | prepareddialogid: string identifying a dialog previously prepared | |||
| using a dialogprepare (Section 4.2.1) request. If neither the | using a dialogprepare (Section 4.2.1) request. If neither the | |||
| dialogid attribute nor the prepareddialogid attribute is | dialogid attribute nor the prepareddialogid attribute is | |||
| specified, the MS MUST create a unique name for the dialog (see | specified, the MS MUST create a unique name for the dialog (see | |||
| Section 4.2 for dialog identifier assignment). The attribute is | Section 4.2 for dialog identifier assignment). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| skipping to change at page 21, line 46 ¶ | skipping to change at page 21, line 38 ¶ | |||
| optional. There is no default value. | optional. There is no default value. | |||
| conferenceid: string identifying the conference on which this dialog | conferenceid: string identifying the conference on which this dialog | |||
| is to be started (see Section 17.1 of | is to be started (see Section 17.1 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| Exactly one of the connectionid or conferenceid attributes MUST be | Exactly one of the connectionid or conferenceid attributes MUST be | |||
| specified. If both connectionid and conferenceid attributes are | specified. If both connectionid and conferenceid attributes are | |||
| specified or neither are specified, it is a syntax error and the MS | specified or neither are specified, it is a syntax error and the MS | |||
| MUST send a <response> with a 400 status code (Section 4.5). | sends a <response> with a 400 status code (Section 4.5). | |||
| It is an error if the connection or conference referenced by a | It is an error if the connection or conference referenced by a | |||
| specific connectionid or conferenceid attribute is not available on | specific connectionid or conferenceid attribute is not available on | |||
| the MS at the time the <dialogstart> request is executed. If an | the MS at the time the <dialogstart> request is executed. If an | |||
| invalid connectionid is specified, the MS MUST send a <response> with | invalid connectionid is specified, the MS sends a <response> with a | |||
| a 407 status code (Section 4.5). If an invalid conferenceid is | 407 status code (Section 4.5). If an invalid conferenceid is | |||
| specified, the MS MUST send a <response> with a 408 status code. | specified, the MS sends a <response> with a 408 status code. | |||
| The <dialogstart> element has the following sequence of child | The <dialogstart> element has the following sequence of child | |||
| elements: | elements: | |||
| <dialog>: specifies an IVR dialog (Section 4.3) to execute. The | <dialog>: specifies an IVR dialog (Section 4.3) to execute. The | |||
| element is optional. | element is optional. | |||
| <subscribe>: specifies subscriptions to dialog events | <subscribe>: specifies subscriptions to dialog events | |||
| (Section 4.2.2.1). The element is optional. | (Section 4.2.2.1). The element is optional. | |||
| <params>: specifies input parameters (Section 4.2.6) for a dialog | <params>: specifies input parameters (Section 4.2.6) for a dialog | |||
| languages defined outside this specification. The element is | languages defined outside this specification. The element is | |||
| optional. If a parameter is not supported by the MS for the | optional. If a parameter is not supported by the MS for the | |||
| external dialog language, the MS MUST send a <response> with a 427 | external dialog language, the MS sends a <response> with a 427 | |||
| status code (Section 4.5). | status code (Section 4.5). | |||
| <stream>: determines the media stream(s) associated with the | <stream>: determines the media stream(s) associated with the | |||
| connection or conference on which the dialog is executed | connection or conference on which the dialog is executed | |||
| (Section 4.2.2.2). The <stream> element is optional. Multiple | (Section 4.2.2.2). The <stream> element is optional. Multiple | |||
| <stream> elements may be specified. | <stream> elements can be specified. | |||
| The dialog to start can be specified either (a) inline with a | The dialog to start can be specified either (a) inline with a | |||
| <dialog> child element, or (b) externally using the src attribute | <dialog> child element, or (b) externally using the src attribute | |||
| (for dialog languages defined outside this specification), or (c) | (for dialog languages defined outside this specification), or (c) | |||
| reference a previously prepared dialog using the prepareddialogid | reference a previously prepared dialog using the prepareddialogid | |||
| attribute. If exactly one of the src attribute, the prepareddialogid | attribute. If exactly one of the src attribute, the prepareddialogid | |||
| or a <dialog> child element is not specified, it is a syntax error | or a <dialog> child element is not specified, it is a syntax error | |||
| and the MS MUST send a <response> with a 400 status code | and the MS sends a <response> with a 400 status code (Section 4.5). | |||
| (Section 4.5). If the prepareddialogid and dialogid attributes are | If the prepareddialogid and dialogid attributes are specified, it is | |||
| specified, it is also a syntax error and the MS MUST send a | also a syntax error and the MS sends a <response> with a 400 status | |||
| <response> with a 400 status code. The type and fetchtimeout | code. The type and fetchtimeout attributes are only relevant when a | |||
| attributes are only relevant when a dialog is specified as an | dialog is specified as an external document. | |||
| external document. | ||||
| The <stream> element provides explicit control over which media | The <stream> element provides explicit control over which media | |||
| streams on the connection or conference are used during dialog | streams on the connection or conference are used during dialog | |||
| execution. For example, if a connection supports both audio and | execution. For example, if a connection supports both audio and | |||
| video streams, a <stream> element could be used to indicate that only | video streams, a <stream> element could be used to indicate that only | |||
| the audio stream is used in receive mode. In cases where there are | the audio stream is used in receive mode. In cases where there are | |||
| multiple media streams of the same type for a dialog, it is | multiple media streams of the same type for a dialog, the AS MUST use | |||
| RECOMMENDED that the configuration is explicitly specified using | <stream> elements to explicitly specify the configuration. If no | |||
| <stream> elements. If no <stream> elements are specified, then the | <stream> elements are specified, then the default media configuration | |||
| default media configuration is that defined for the connection or | is that defined for the connection or conference. | |||
| conference. | ||||
| If a <stream> element is in conflict with (a) another <stream> | If a <stream> element is in conflict with (a) another <stream> | |||
| element, (b) with specified connection or conference media | element, (b) with specified connection or conference media | |||
| capabilities, (c) with a SDP label value as part of the connectionid | capabilities, (c) with a SDP label value as part of the connectionid | |||
| (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then | (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then | |||
| the MS MUST send a <response> with a 411 status code (Section 4.5). | the MS sends a <response> with a 411 status code (Section 4.5). If | |||
| If the media stream configuration is not supported by the MS, then | the media stream configuration is not supported by the MS, then the | |||
| the MS MUST send a <response> with a 428 status code (Section 4.5). | MS sends a <response> with a 428 status code (Section 4.5). | |||
| This specification allows multiple, simultaneous dialogs to be | ||||
| started on the same connection or conference. It is RECOMMENDED the | ||||
| MS support the following cases: | ||||
| 1. different media streams used in different dialogs; e.g. audio | ||||
| only on one dialog and video only on another dialog | ||||
| 2. the same media stream received by different dialogs | ||||
| 3. use of implicit mixing (where appropriate) when the same type of | ||||
| media stream is sent from different dialogs | ||||
| If the MS does not support starting another dialog on the same | The MS MAY support multiple, simultaneous dialogs being started on | |||
| connection or conference it MUST send a <response> with a 432 status | the same connection or conference. For example, the same connection | |||
| code (Section 4.5) when it receives the second dialog request. | can receive different media streams (e.g. audio and video) from | |||
| different dialogs, or receive (and implicitly mix where appropriate) | ||||
| the same type of media streams from different dialogs. If the MS | ||||
| does not support starting another dialog on the same connection or | ||||
| conference, it sends a <response> with a 432 status code | ||||
| (Section 4.5) when it receives the second (or subsequent) dialog | ||||
| request. | ||||
| For example, a request to start an ivr dialog on a connection | For example, a request to start an ivr dialog on a connection | |||
| subscribing to DTMF notifications: | subscribing to DTMF notifications: | |||
| <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> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/getpin.wav"/> | <media loc="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| skipping to change at page 24, line 4 ¶ | skipping to change at page 23, line 39 ¶ | |||
| In this example, the dialog is started on a conference where only | In this example, the dialog is started on a conference where only | |||
| audio media stream is received: | audio media stream is received: | |||
| <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> | |||
| <record maxtime="384000s"/> | <record maxtime="384000s"/> | |||
| </dialog> | </dialog> | |||
| <stream media="audio" direction="recvonly"/> | <stream media="audio" direction="recvonly"/> | |||
| </mscivr> | </mscivr> | |||
| 4.2.2.1. <subscribe> | 4.2.2.1. <subscribe> | |||
| The <subscribe> element allows the AS to subscribe to, and be | The <subscribe> element allows the AS to subscribe to, and be | |||
| notified of, specific events which occur during execution of the | notified of, specific events which occur during execution of the | |||
| dialog. Notifications of dialog events are delivered using the | dialog. Notifications of dialog events are delivered using the | |||
| <event> element (see Section 4.2.5). | <event> element (see Section 4.2.5). | |||
| The <subscribe> element has no attributes. | The <subscribe> element has no attributes. | |||
| The <subscribe> element has the following sequence of child elements | The <subscribe> element has the following sequence of child elements | |||
| (0 or more occurrences): | (0 or more occurrences): | |||
| <dtmfsub>: Subscription to DTMF input during the dialog | <dtmfsub>: Subscription to DTMF input during the dialog | |||
| (Section 4.2.2.1.1). The element is optional. | (Section 4.2.2.1.1). The element is optional. | |||
| The MS MUST support a <dtmfsub> subscription. It MAY support other | The MS MUST support <dtmfsub> subscription for the IVR dialog | |||
| dialog subscriptions (using elements and attributes from a foreign | language defined in this specification (Section 4.3). It MAY support | |||
| namespace). | other dialog subscriptions (specified using attributes and child | |||
| elements from a foreign namespace). If the MS does not support a | ||||
| subscription specified in a foreign namespace, the MS sends a | ||||
| response with a 431 status code (see Section 4.5). | ||||
| 4.2.2.1.1. <dtmfsub> | 4.2.2.1.1. <dtmfsub> | |||
| The <dtmfsub> element has the following attributes: | The <dtmfsub> element has the following attributes: | |||
| matchmode: controls which DTMF input are subscribed to. Valid | matchmode: controls which DTMF input are subscribed to. Valid | |||
| values are: "all" - notify all DTMF key presses received during | values are: "all" - notify all DTMF key presses received during | |||
| the dialog; "collect" - notify only DTMF input matched by the | the dialog; "collect" - notify only DTMF input matched by the | |||
| collect operation (Section 4.3.1.3); and "control" - notify only | collect operation (Section 4.3.1.3); and "control" - notify only | |||
| DTMF input matched by the runtime control operation | DTMF input matched by the runtime control operation | |||
| skipping to change at page 25, line 34 ¶ | skipping to change at page 25, line 17 ¶ | |||
| <dtmfnotify matchmode="collect" dtmf="2" | <dtmfnotify matchmode="collect" dtmf="2" | |||
| timestamp="2008-05-12T12:13:14Z"/> | timestamp="2008-05-12T12:13:14Z"/> | |||
| /event> | /event> | |||
| </mscivr> | </mscivr> | |||
| 4.2.2.2. <stream> | 4.2.2.2. <stream> | |||
| The <stream> element has the following attributes: | The <stream> element has the following attributes: | |||
| media: a string indicating the type of media associated with the | media: a string indicating the type of media associated with the | |||
| stream. It is strongly RECOMMENDED that the following values are | stream. The following values MUST be used for common types of | |||
| used for common types of media: "audio" for audio media, and | media: "audio" for audio media, and "video" for video media. The | |||
| "video" for video media. The attribute is mandatory. | attribute is mandatory. | |||
| label: a string indicating the SDP label associated with a media | label: a string indicating the SDP label associated with a media | |||
| stream ([RFC4574]). The attribute is optional. | stream ([RFC4574]). The attribute is optional. | |||
| direction: a string indicating the direction of the media flow | direction: a string indicating the direction of the media flow | |||
| between a dialog and its end point conference or connection. | between a dialog and its end point conference or connection. | |||
| Defined values are: "sendrecv" (media can be sent and received), | Defined values are: "sendrecv" (media can be sent and received), | |||
| "sendonly" (media can only be sent), "recvonly" (media can only be | "sendonly" (media can only be sent), "recvonly" (media can only be | |||
| received) and "inactive" (stream is not to be used). The default | received) and "inactive" (stream is not to be used). The default | |||
| value is "sendrecv". The attribute is optional. | value is "sendrecv". The attribute is optional. | |||
| skipping to change at page 26, line 14 ¶ | skipping to change at page 25, line 42 ¶ | |||
| <region>: an element to specify the region within a mixer video | <region>: an element to specify the region within a mixer video | |||
| layout where a media stream is displayed (Section 4.2.2.2.1). The | layout where a media stream is displayed (Section 4.2.2.2.1). The | |||
| element is optional. | element is optional. | |||
| <priority>: an element to configure priority associated with the | <priority>: an element to configure priority associated with the | |||
| stream in the conference mix (Section 4.2.2.2.2). The element is | stream in the conference mix (Section 4.2.2.2.2). The element is | |||
| optional. | optional. | |||
| If conferenceid is not specified or if the "media" attribute does not | If conferenceid is not specified or if the "media" attribute does not | |||
| have the value of "video", then the MS MUST ignored the <region> and | have the value of "video", then the MS ignores the <region> and | |||
| <priority> elements. | <priority> elements. | |||
| For example, assume a user agent connection with multiple audio and | For example, assume a user agent connection with multiple audio and | |||
| video streams associated with the user and a separate web camera. In | video streams associated with the user and a separate web camera. In | |||
| this case, the dialog could be started to record only the audio and | this case, the dialog could be started to record only the audio and | |||
| video streams associated with the user: | video streams associated with the user: | |||
| <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> | |||
| skipping to change at page 27, line 13 ¶ | skipping to change at page 26, line 40 ¶ | |||
| </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. | |||
| If the region name is invalid, then the MS MUST report a 416 status | If the region name is invalid, then the MS reports a 416 status code | |||
| code (Section 4.5) in the response to the request element containing | (Section 4.5) in the response to the request element containing the | |||
| the <region> element. | <region> element. | |||
| 4.2.2.2.2. <priority> | 4.2.2.2.2. <priority> | |||
| The <priority> element is used to explicitly specify the priority of | The <priority> element is used to explicitly specify the priority of | |||
| the dialog for presentation in a conference mix. | the dialog for presentation in a conference mix. | |||
| The <priority> element has no attributes and its content model | The <priority> element has no attributes and its content model | |||
| specifies a positive integer (see Section 4.6.5). The lower the | specifies a positive integer (see Section 4.6.5). The lower the | |||
| value, the higher the priority. | value, the higher the priority. | |||
| 4.2.3. <dialogterminate> | 4.2.3. <dialogterminate> | |||
| A dialog can be terminated by sending a <dialogterminate> request | A dialog can be terminated by sending a <dialogterminate> request | |||
| element to the MS. | element to the MS. | |||
| The <dialogterminate> element has the following attributes: | The <dialogterminate> element has the following attributes: | |||
| dialogid: string identifying the dialog to terminate. If the | dialogid: string identifying the dialog to terminate. If the | |||
| specified dialog identifier is invalid, the MS MUST send a | specified dialog identifier is invalid, the MS sends a response | |||
| response with a 405 status code (Section 4.5). The attribute is | with a 405 status code (Section 4.5). The attribute is mandatory. | |||
| mandatory. | ||||
| immediate: indicates whether a dialog in the STARTED state is to be | immediate: indicates whether a dialog in the STARTED state is to be | |||
| terminated immediately or not (in other states, termination is | terminated immediately or not (in other states, termination is | |||
| always immediate). A valid value is a boolean (see | always immediate). A valid value is a boolean (see | |||
| Section 4.6.1). A value of true indicates that the dialog is | Section 4.6.1). A value of true indicates that the dialog is | |||
| terminated immediately and the MS MUST send a dialogexit | terminated immediately and the MS MUST send a dialogexit | |||
| notification (Section 4.2.5.1)without report information. A value | notification (Section 4.2.5.1) without report information. A | |||
| of false indicates that the dialog terminates after the current | value of false indicates that the dialog terminates after the | |||
| iteration and the MS MUST send a dialogexit notification with | current iteration and the MS MUST send a dialogexit notification | |||
| report information. The attribute is optional. The default value | with report information. The attribute is optional. The default | |||
| is false. | value is false. | |||
| The MS MUST reply to <dialogterminate> request with a <response> | The MS MUST reply to <dialogterminate> request with a <response> | |||
| element (Section 4.2.4), reporting whether the dialog was terminated | element (Section 4.2.4), reporting whether the dialog was terminated | |||
| successful or not. | successful or not. | |||
| For example, immediately terminating a STARTED dialog with dialogid | For example, immediately terminating a STARTED dialog with dialogid | |||
| "d4": | "d4": | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogterminate dialogid="d4" immediate="true"/> | <dialogterminate dialogid="d4" immediate="true"/> | |||
| skipping to change at page 28, line 35 ¶ | skipping to change at page 28, line 14 ¶ | |||
| status: numeric code indicating the response status. Valid values | status: numeric code indicating the response status. Valid values | |||
| are defined in Section 4.5. The attribute is mandatory. | are defined in Section 4.5. The attribute is mandatory. | |||
| reason: string specifying a reason for the response status. The | reason: string specifying a reason for the response status. The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| dialogid: string identifying the dialog. If the request specifies a | dialogid: string identifying the dialog. If the request specifies a | |||
| dialogid, then that value is used. Otherwise, with | dialogid, then that value is used. Otherwise, with | |||
| <dialogprepare> and <dialogstart> requests, the dialogid generated | <dialogprepare> and <dialogstart> requests, the dialogid generated | |||
| by the MS is used. If there is no available dialogid (e.g. a | by the MS is used. If there is no available dialogid because the | |||
| <dialogterminate> request with no dialogid attribute specified), | request is syntactically invalid (e.g. a <dialogterminate> request | |||
| then the value is the empty string. The attribute is mandatory. | with no dialogid attribute specified), then the value is the empty | |||
| string. The attribute is mandatory. | ||||
| connectionid: string identifying the SIP dialog connection | connectionid: string identifying the SIP dialog connection | |||
| associated with the dialog (see Section 17.1 of | associated with the dialog (see Section 17.1 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| conferenceid: string identifying the conference associated with the | conferenceid: string identifying the conference associated with the | |||
| dialog (see Section 17.1 of | dialog (see Section 17.1 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | [I-D.ietf-mediactrl-sip-control-framework]). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| skipping to change at page 30, line 14 ¶ | skipping to change at page 29, line 38 ¶ | |||
| 4.2.5.1. <dialogexit> | 4.2.5.1. <dialogexit> | |||
| The <dialogexit> event indicates that a prepared or active dialog has | The <dialogexit> event indicates that a prepared or active dialog has | |||
| exited because it is complete, has been terminated, or because an | exited because it is complete, has been terminated, or because an | |||
| error occurred during execution (for example, a media resource cannot | error occurred during execution (for example, a media resource cannot | |||
| be played). This event MUST be sent by the MS when the dialog exits. | be played). This event MUST be sent by the MS when the dialog exits. | |||
| The <dialogexit> element has the following attributes: | The <dialogexit> element has the following attributes: | |||
| status: a status code indicating success or failure of the dialog. | status: a status code indicating the status of the dialog when it | |||
| A valid value is a non-negative integer (see Section 4.6.4). A | exits. A valid value is a non-negative integer (see | |||
| value of 0 indicates that the dialog has been terminated by a | Section 4.6.4). The MS MUST support the following values: | |||
| <dialogterminate> request. A value of 1 indicates success. A | ||||
| value of 2 indicates that the dialog terminated because the | ||||
| connection or conference associated with the dialog has | ||||
| terminated. A value of 3 indicates the dialog terminated due to | ||||
| exceeding its maximum duration. A value of 4 indicates the dialog | ||||
| terminated due to an execution error. Any other value indicates | ||||
| an error defined by the MS. The attribute is mandatory. | ||||
| reason: a textual description providing a reason for the status | 0 indicates the dialog has been terminated by a <dialogterminate> | |||
| code; e.g. details about an error. A valid value is a string (see | request. | |||
| Section 4.6.6). The attribute is optional. There is no default | ||||
| value. | 1 indicates successful completion of the dialog. | |||
| 2 indicates the dialog terminated because the connection or | ||||
| conference associated with the dialog has terminated. | ||||
| 3 indicates the dialog terminated due to exceeding its maximum | ||||
| duration. | ||||
| 4 indicates the dialog terminated due to an execution error. | ||||
| 5 Reserved for future use. | ||||
| 6 Reserved for future use. | ||||
| 7 Reserved for future use. | ||||
| 8 Reserved for future use. | ||||
| 9 Reserved for future use. | ||||
| The MS MAY define other values. The AS MUST treat any status code | ||||
| it does not recognize as being equivalent to 4 (dialog execution | ||||
| error). The attribute is mandatory. | ||||
| reason: a textual description which the MS SHOULD use to provide a | ||||
| reason for the status code; e.g. details about an error. A valid | ||||
| value is a string (see Section 4.6.6). The attribute is optional. | ||||
| There is no default value. | ||||
| The <dialogexit> element has the following sequence of child | The <dialogexit> element has the following sequence of child | |||
| elements: | elements: | |||
| <promptinfo>: report information (Section 4.3.2.1) about the prompt | <promptinfo>: report information (Section 4.3.2.1) about the prompt | |||
| execution in an IVR <dialog>. The element is optional. | execution in an IVR <dialog>. The element is optional. | |||
| <controlinfo>: reports information (Section 4.3.2.2) about the | <controlinfo>: reports information (Section 4.3.2.2) about the | |||
| control execution in an IVR <dialog>. The element is optional. | control execution in an IVR <dialog>. The element is optional. | |||
| skipping to change at page 34, line 36 ¶ | skipping to change at page 34, line 36 ¶ | |||
| <collect>: <collectinfo> (see Section 4.3.2.3) with the dtmf and | <collect>: <collectinfo> (see Section 4.3.2.3) with the dtmf and | |||
| termmode attributes specified. | termmode attributes specified. | |||
| <record>: <recordinfo> (see Section 4.3.2.4) with at least the | <record>: <recordinfo> (see Section 4.3.2.4) with at least the | |||
| termmode attribute and one <mediainfo> element specified. | termmode attribute and one <mediainfo> element specified. | |||
| The media format requirements for IVR dialogs are undefined. This | The media format requirements for IVR dialogs are undefined. This | |||
| package is agnostic to the media types and codecs for media resources | package is agnostic to the media types and codecs for media resources | |||
| and recording which need to be supported by an implementation. For | and recording which need to be supported by an implementation. For | |||
| example, a MS implementation may choose to support only audio and in | example, a MS implementation might only support audio and in | |||
| particular the 'audio/basic' codec for media playback and recording. | particular the 'audio/basic' codec for media playback and recording. | |||
| However, when executing a dialog, if an MS encounters a media type or | However, when executing a dialog, if an MS encounters a media type or | |||
| codec which it cannot process, the MS MUST stop further processing | codec which it cannot process, the MS MUST stop further processing | |||
| and report the error using the dialogexit notification. | and report the error using the dialogexit notification. | |||
| 4.3.1. <dialog> | 4.3.1. <dialog> | |||
| An IVR dialog to play prompts to the user, allow runtime controls, | An IVR dialog to play prompts to the user, allow runtime controls, | |||
| collect DTMF or record input. The dialog is specified using a | collect DTMF or record input. The dialog is specified using a | |||
| <dialog> element. | <dialog> element. | |||
| skipping to change at page 35, line 40 ¶ | skipping to change at page 35, line 40 ¶ | |||
| <collect>: defines how DTMF is collected (see Section 4.3.1.3). The | <collect>: defines how DTMF is collected (see Section 4.3.1.3). The | |||
| element is optional. | element is optional. | |||
| <record>: defines how recording takes place (see Section 4.3.1.4). | <record>: defines how recording takes place (see Section 4.3.1.4). | |||
| The element is optional. | The element is optional. | |||
| Although the behavior when both <collect> and <record> elements are | Although the behavior when both <collect> and <record> elements are | |||
| specified in a request is not defined in this control package, the MS | specified in a request is not defined in this control package, the MS | |||
| MAY support this configuration. If the MS does not support this | MAY support this configuration. If the MS does not support this | |||
| configuration, the MS MUST send a <response> with a 433 status code. | configuration, the MS sends a <response> with a 433 status code. | |||
| The MS has the following execution model for the IVR dialog after | The MS has the following execution model for the IVR dialog after | |||
| initialization (initialization errors are reported by the MS in the | initialization (initialization errors are reported by the MS in the | |||
| response): | response): | |||
| 1. If an error occurs during execution, then the MS terminates the | 1. If an error occurs during execution, then the MS terminates the | |||
| dialog and reports the error in the <dialogexit> event by setting | dialog and reports the error in the <dialogexit> event by setting | |||
| the status attribute (see Section 4.3.2). Details about the | the status attribute (see Section 4.3.2). Details about the | |||
| error are specified in the reason attribute. | error are specified in the reason attribute. | |||
| skipping to change at page 37, line 23 ¶ | skipping to change at page 37, line 23 ¶ | |||
| <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. | |||
| <par>: specifies media resources to play in parallel (see | <par>: specifies media resources to play in parallel (see | |||
| Section 4.3.1.1.3). The element is optional. | Section 4.3.1.1.3). The element is optional. | |||
| If the MS does not support the configuration required for prompt | If the MS does not support the configuration required for prompt | |||
| playback to the output media streams, the MS MUST send a <response> | playback to the output media streams and a more specific error code | |||
| with a 429 status code (Section 4.5). The MS MAY support transcoding | is not defined for its child elements, the MS sends a <response> with | |||
| a 429 status code (Section 4.5). The MS MAY support transcoding | ||||
| between the media resource format and the output stream format. | between the media resource format and the output stream format. | |||
| The MS has the following execution model for prompt playing after | The MS has the following execution model for prompt playing after | |||
| initialization: | initialization: | |||
| 1. The MS initiates prompt playback playing its child elements | 1. The MS initiates prompt playback playing its child elements | |||
| (<media>, <variable>, <dtmf> and <par>) one after another in | (<media>, <variable>, <dtmf> and <par>) one after another in | |||
| document order. | document order. | |||
| 2. If any error (including fetching and rendering errors) occurs | 2. If any error (including fetching and rendering errors) occurs | |||
| skipping to change at page 38, line 45 ¶ | skipping to change at page 38, line 46 ¶ | |||
| Valid values are "male" or "female". The attribute is optional. | Valid values are "male" or "female". The attribute is optional. | |||
| There is no default value. | There is no default value. | |||
| xml:lang: specifies the language to use when rendering the variable. | xml:lang: specifies the language to use when rendering the variable. | |||
| A valid value is a language identifier (see Section 4.6.11). The | A valid value is a language identifier (see Section 4.6.11). The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| The <variable> element has no children. | The <variable> element has no children. | |||
| This package is agnostic to which <variable> values, types and | This package is agnostic to which <variable> values, types and | |||
| formats are supported by an implementation. However it is | formats are supported by an implementation. If a <variable> element | |||
| RECOMMENDED that an implementation support the following type/format | configuration specified in a request is not supported by the MS, the | |||
| combinations: | MS sends a <response> with a 425 status code (Section 4.5). | |||
| For example, the MS could support <variable> type/format combinations | ||||
| such as: | ||||
| type=date Supported formats: "mdy" (month day year), "ymd" (year | type=date Supported formats: "mdy" (month day year), "ymd" (year | |||
| month day), "dym" (day month year), "dm" (day month) | month day), "dym" (day month year), "dm" (day month). The value | |||
| attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, | ||||
| 2 digit day). | ||||
| type=time Supported formats: "t12" (12 hour format with am/pm), | type=time Supported formats: "t12" (12 hour format with am/pm), | |||
| "t24" (24 hour format) | "t24" (24 hour format). The value attribute has the format HH:MM | |||
| (2 digit hours, 2 digit minutes). | ||||
| type=digits Supported formats: "gen" (general digit string), "crn" | type=digits Supported formats: "gen" (general digit string), "crn" | |||
| (cardinal), "ord" (ordinal) | (cardinal), "ord" (ordinal). The value attribute has the format | |||
| of "D+" (one or more digits). | ||||
| This specification is agnostic to the type and codec of media | This specification is agnostic to the type and codec of media | |||
| resources into which variable are rendered as well as the rendering | resources into which variable are rendered as well as the rendering | |||
| mechanism itself. For example, an MS implementation supporting audio | mechanism itself. For example, an MS implementation supporting audio | |||
| rendering may map the <variable> into one or more audio media | rendering could map the <variable> into one or more audio media | |||
| resources. | resources. | |||
| If a <variable> element configuration is not supported by the MS, the | ||||
| MS MUST send a <response> with a 425 status code (Section 4.5). | ||||
| Depending on the specific implementation of the <variable> rendering | Depending on the specific implementation of the <variable> rendering | |||
| on the MS, execution of this element may be seen as conversion of a | on the MS, execution of this element can be seen as conversion of a | |||
| <variable> into a list of <media> elements. For example, | <variable> into a list of <media> elements. For example, | |||
| <variable value="2008-02-25" type="date" format="dmy" | <variable value="2008-02-25" type="date" format="dmy" | |||
| xml:lang="en" gender="male"/> | xml:lang="en" gender="male"/> | |||
| could be transformed into audio saying "twenty-fifth of February two | could be transformed into audio saying "twenty-fifth of February two | |||
| thousand and eight" using a list of <media> resources: | thousand and eight" using a list of <media> resources: | |||
| <media loc="nfs://voicebase/en/male/25th.wav"/> | <media loc="nfs://voicebase/en/male/25th.wav"/> | |||
| <media loc="nfs://voicebase/en/male/of.wav"/> | <media loc="nfs://voicebase/en/male/of.wav"/> | |||
| skipping to change at page 40, line 14 ¶ | skipping to change at page 40, line 17 ¶ | |||
| level: used to define the power level for which the DTMF tones will | level: used to define the power level for which the DTMF tones will | |||
| be generated. Values are expressed in dBm0. A valid value is an | be generated. Values are expressed in dBm0. A valid value is an | |||
| integer in the range of 0 to -96 (dBm0). Larger negative values | integer in the range of 0 to -96 (dBm0). Larger negative values | |||
| express lower power levels. Note that values lower than -55 dBm0 | express lower power levels. Note that values lower than -55 dBm0 | |||
| will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). | will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). | |||
| The attribute is optional. The default value is -6 (dBm0). | The attribute is optional. The default value is -6 (dBm0). | |||
| duration: specifies the duration for which each DTMF tone is | duration: specifies the duration for which each DTMF tone is | |||
| generated. A valid value is a time designation (see | generated. A valid value is a time designation (see | |||
| Section 4.6.7). Implementations may round the value if they only | Section 4.6.7). The MS MAY round the value if it only supports | |||
| support discrete durations. The attribute is optional. The | discrete durations. The attribute is optional. The default value | |||
| default value is 100ms. | is 100ms. | |||
| interval: specifies the duration of a silence interval following | interval: specifies the duration of a silence interval following | |||
| each generated DTMF tone. A valid value is a time designation | each generated DTMF tone. A valid value is a time designation | |||
| (see Section 4.6.7). Implementations may round the value if they | (see Section 4.6.7). The MS MAY round the value if it only | |||
| only support discrete durations. The attribute is optional. The | supports discrete durations. The attribute is optional. The | |||
| default value is 100ms. | default value is 100ms. | |||
| The <dtmf> element has no children. | The <dtmf> element has no children. | |||
| If a <dtmf> element configuration is not supported, the MS MUST send | If a <dtmf> element configuration is not supported, the MS sends a | |||
| a <response> with a 426 status code (Section 4.5). | <response> with a 426 status code (Section 4.5). | |||
| 4.3.1.1.3. <par> | 4.3.1.1.3. <par> | |||
| The <par> element allows media resources to be played in parallel. | The <par> element allows media resources to be played in parallel. | |||
| Each of its child elements specify a media resource (or a sequence of | Each of its child elements specify a media resource (or a sequence of | |||
| media resources using the <seq> element). When playback of the <par> | media resources using the <seq> element). When playback of the <par> | |||
| element is initiated, the MS begins playback of all its child | element is initiated, the MS begins playback of all its child | |||
| elements at the same time. This element is modeled after the <par> | elements at the same time. This element is modeled after the <par> | |||
| element in SMIL ([W3C.REC-SMIL2-20051213]). | element in SMIL ([W3C.REC-SMIL2-20051213]). | |||
| skipping to change at page 41, line 18 ¶ | skipping to change at page 41, line 19 ¶ | |||
| <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 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. | |||
| It is RECOMMENDED that the MS implementation at least supports | If a <par> element configuration is not supported, the MS sends a | |||
| playback different media (e.g. audio and video) in parallel where | <response> with a 435 status code (Section 4.5). | |||
| mixing of media on the same stream is not required. The MS MAY | ||||
| support transcoding between the media resource format and the output | ||||
| stream format. | ||||
| Runtime <control>s (Section 4.3.1.2) apply to each child element | Runtime <control>s (Section 4.3.1.2) apply to each child element | |||
| playing parallel. For example, pause and resume controls cause all | playing parallel. For example, pause and resume controls cause all | |||
| child elements to be paused and resumed respectively. | child elements to be paused and resumed respectively. | |||
| If the <par> element is stopped by the prompt container (e.g. bargein | If the <par> element is stopped by the prompt container (e.g. bargein | |||
| or dialog termination), then playback of all child elements is | or dialog termination), then playback of all child elements is | |||
| stopped. The playback duration (Section 4.3.2.1) reported for the | stopped. The playback duration (Section 4.3.2.1) reported for the | |||
| <par> element is the duration of parallel playback, not the | <par> element is the duration of parallel playback, not the | |||
| cumulative duration of each child element played in parallel. | cumulative duration of each child element played in parallel. | |||
| skipping to change at page 42, line 34 ¶ | skipping to change at page 42, line 33 ¶ | |||
| <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 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. | |||
| It is RECOMMENDED that the MS implementation at least supports | ||||
| playback of the same media (e.g. audio only) within a <seq> element. | ||||
| Playback of a <seq> element is complete when all child elements in | Playback of a <seq> element is complete when all child elements in | |||
| the sequence are complete. If the <seq> element is stopped by the | the sequence are complete. If the <seq> element is stopped by the | |||
| <par> container, then playback of the current child element is | <par> container, then playback of the current child element is | |||
| stopped (remaining child elements in the sequence are not played). | stopped (remaining child elements in the sequence are not played). | |||
| For example, a request to play a sequence of audio resources in | For example, a request to play a sequence of audio resources in | |||
| parallel with a video media: | parallel with a video media: | |||
| <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="c1"> | <dialogstart connectionid="c1"> | |||
| skipping to change at page 44, line 15 ¶ | skipping to change at page 44, line 15 ¶ | |||
| 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. | |||
| skipinterval: indicates how far a MS should skip backwards or | skipinterval: indicates how far a MS skips backwards or forwards | |||
| forwards through prompt playback when the rewind (rwkey) of fast | through prompt playback when the rewind (rwkey) of fast forward | |||
| forward key (ffkey) is pressed. A valid value is a Time | key (ffkey) is pressed. A valid value is a Time Designation (see | |||
| Designation (see Section 4.6.7). The attribute is optional. The | Section 4.6.7). The attribute is optional. The default value is | |||
| default value is 6s. | 6s. | |||
| ffkey: maps a DTMF key to a fast forward operation equal to the | ffkey: maps a DTMF key to a fast forward operation equal to the | |||
| value of 'skipinterval'. A valid value is a DTMF Character (see | value of 'skipinterval'. A valid value is a DTMF Character (see | |||
| Section 4.6.2). The attribute is optional. There is no default | Section 4.6.2). The attribute is optional. There is no default | |||
| value. | value. | |||
| rwkey: maps a DTMF key to a rewind operation equal to the value of | rwkey: maps a DTMF key to a rewind operation equal to the value of | |||
| 'skipinterval'. A valid value is a DTMF Character (see | 'skipinterval'. A valid value is a DTMF Character (see | |||
| Section 4.6.2). The attribute is optional. There is no default | Section 4.6.2). The attribute is optional. There is no default | |||
| value. | value. | |||
| pauseinterval: indicates how long a MS should pause prompt playback | pauseinterval: indicates how long a MS pauses prompt playback when | |||
| when the pausekey is pressed. A valid value is a Time Designation | the pausekey is pressed. A valid value is a Time Designation (see | |||
| (see Section 4.6.7). The attribute is optional. The default | Section 4.6.7). The attribute is optional. The default value is | |||
| value is 10s. | 10s. | |||
| pausekey: maps a DTMF key to a pause operation equal to the value of | pausekey: maps a DTMF key to a pause operation equal to the value of | |||
| 'pauseinterval'. A valid value is a DTMF Character (see | 'pauseinterval'. A valid value is a DTMF Character (see | |||
| Section 4.6.2). The attribute is optional. There is no default | Section 4.6.2). The attribute is optional. There is no default | |||
| value. | value. | |||
| resumekey: maps a DTMF key to a resume operation. A valid value is | resumekey: maps a DTMF key to a resume operation. A valid value is | |||
| a DTMF Character (see Section 4.6.2). The attribute is optional. | a DTMF Character (see Section 4.6.2). The attribute is optional. | |||
| There is no default value. | There is no default value. | |||
| skipping to change at page 45, line 39 ¶ | skipping to change at page 45, line 39 ¶ | |||
| external: allows one or more DTMF keys to be declared as external | external: allows one or more DTMF keys to be declared as external | |||
| controls (for example: video camera controls); the MS can send | controls (for example: video camera controls); the MS can send | |||
| notifications when a matching key is activated using <dtmfnotify> | notifications when a matching key is activated using <dtmfnotify> | |||
| (Section 4.2.5.2). A valid value is a DTMF String (see | (Section 4.2.5.2). A valid value is a DTMF String (see | |||
| Section 4.6.3). The attribute is optional. There is no default | Section 4.6.3). The attribute is optional. There is no default | |||
| value. | value. | |||
| If the same DTMF is specified in more than one DTMF key control | If the same DTMF is specified in more than one DTMF key control | |||
| attribute - except the pausekey and resumekey attributes - the MS | attribute - except the pausekey and resumekey attributes - the MS | |||
| MUST send a <response> with a 413 status code (Section 4.5). | sends a <response> with a 413 status code (Section 4.5). | |||
| The MS has the following execution model for runtime control after | The MS has the following execution model for runtime control after | |||
| initialization: | initialization: | |||
| 1. If an error occurs during execution, then the MS terminates | 1. If an error occurs during execution, then the MS terminates | |||
| runtime control and the error is reported to the dialog | runtime control and the error is reported to the dialog | |||
| container. The MS MAY report controls executed successfully | container. The MS MAY report controls executed successfully | |||
| before the error in <controlinfo> (see Section 4.3.2.2). | before the error in <controlinfo> (see Section 4.3.2.2). | |||
| 2. Runtime controls are active only during prompt playback (if no | 2. Runtime controls are active only during prompt playback (if no | |||
| skipping to change at page 46, line 45 ¶ | skipping to change at page 46, line 45 ¶ | |||
| attribute is optional. The default value is 5s. | attribute is optional. The default value is 5s. | |||
| interdigittimeout: indicates inter-digit timeout value to use when | interdigittimeout: indicates inter-digit timeout value to use when | |||
| recognizing DTMF input. A valid value is a Time Designation (see | recognizing DTMF input. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). The attribute is optional. The default value is | |||
| 2s. | 2s. | |||
| termtimeout: indicates the terminating timeout value to use when | termtimeout: indicates the terminating timeout value to use when | |||
| recognizing DTMF input. A valid value is a Time Designation (see | recognizing DTMF input. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). The attribute is optional. The default value is | |||
| 0s. | 0s (no delay). | |||
| escapekey: specifies a DTMF key that indicates the DTMF collection | escapekey: specifies a DTMF key that indicates the DTMF collection | |||
| is to be re-initiated. A valid value is a DTMF Character (see | is to be re-initiated. A valid value is a DTMF Character (see | |||
| Section 4.6.2). The attribute is optional. There is no default | Section 4.6.2). The attribute is optional. There is no default | |||
| value. | value. | |||
| termchar: specifies a DTMF character for terminating DTMF input | termchar: specifies a DTMF character for terminating DTMF input | |||
| collection using the internal grammar. A valid value is a DTMF | collection using the internal grammar. A valid value is a DTMF | |||
| character (see Section 4.6.2). To disable termination by a | character (see Section 4.6.2). To disable termination by a | |||
| conventional DTMF character, set the parameter to an | conventional DTMF character, set the parameter to an | |||
| skipping to change at page 47, line 34 ¶ | skipping to change at page 47, line 34 ¶ | |||
| collection. | collection. | |||
| The MS has the following execution model for DTMF collection after | The MS has the following execution model for DTMF collection after | |||
| initialization: | initialization: | |||
| 1. The DTMF collection buffer MUST NOT receive DTMF input matching | 1. The DTMF collection buffer MUST NOT receive DTMF input matching | |||
| <control> operations (see Section 4.3.1.2). | <control> operations (see Section 4.3.1.2). | |||
| 2. If an error occurs during execution, then the MS terminates | 2. If an error occurs during execution, then the MS terminates | |||
| collection and reports the error to the dialog container (see | collection and reports the error to the dialog container (see | |||
| Section 4.3). The MS may report DTMF collected before the error | Section 4.3). The MS MAY report DTMF collected before the error | |||
| in <collectinfo> (see Section 4.3.2.3). | in <collectinfo> (see Section 4.3.2.3). | |||
| 3. The MS clears the digit buffer if the value of the | 3. The MS clears the digit buffer if the value of the | |||
| cleardigitbuffer attribute is true. | cleardigitbuffer attribute is true. | |||
| 4. The MS activates a timer with the duration of the value of the | 4. The MS activates a timer with the duration of the value of the | |||
| timeout attribute. If the timer expires before DTMF input | timeout attribute. If the timer expires before DTMF input | |||
| collection begins, then collection execution terminates, the | collection begins, then collection execution terminates, the | |||
| <collectinfo> (see Section 4.3.2.3) has the termmode attribute | <collectinfo> (see Section 4.3.2.3) has the termmode attribute | |||
| set to noinput and the execution status reported to the dialog | set to noinput and the execution status reported to the dialog | |||
| container. | container. | |||
| 5. If DTMF collect input matches the value of the escapekey | 5. If DTMF collect input matches the value of the escapekey | |||
| attribute, then the MS cancels the timer and re-initializes DTMF | attribute, then the MS cancels the timer and re-initializes DTMF | |||
| collection. | collection. | |||
| 6. Other DTMF collect input is matched to the grammar. Valid DTMF | 6. Other DTMF collect input is matched to the grammar. Valid DTMF | |||
| patterns are either a simple digit string where the maximum | patterns are either a simple digit string where the maximum | |||
| length is determined by the maxdigits attribute and may be | length is determined by the maxdigits attribute and which can be | |||
| terminated by the character in the termchar attribute; or a | terminated by the character in the termchar attribute; or a | |||
| custom DTMF grammar specified with the <grammar> element. The | custom DTMF grammar specified with the <grammar> element. The | |||
| attributes interdigittimeout and termtimeout control interdigit | attributes interdigittimeout and termtimeout control interdigit | |||
| timeout and the terminating timeout respectively. | timeout and the terminating timeout respectively. | |||
| 7. If the collect input completely matches the grammar, the timer is | 7. If the collect input completely matches the grammar, the timer is | |||
| canceled, the MS terminates collection execution and reports | canceled, the MS terminates collection execution and reports | |||
| execution status to the dialog container with <collectinfo> (see | execution status to the dialog container with <collectinfo> (see | |||
| Section 4.3.2.3) where the termmode attribute set to match. | Section 4.3.2.3) where the termmode attribute set to match. | |||
| skipping to change at page 48, line 31 ¶ | skipping to change at page 48, line 31 ¶ | |||
| The <grammar> element allows a custom grammar, inline or external, to | The <grammar> element allows a custom grammar, inline or external, to | |||
| be specified. Custom grammars permit the full range of DTMF | be specified. Custom grammars permit the full range of DTMF | |||
| characters including '*' and '#' to be specified for DTMF pattern | characters including '*' and '#' to be specified for DTMF pattern | |||
| matching. | matching. | |||
| The <grammar> element has the following attributes: | The <grammar> element has the following attributes: | |||
| src: specifies the location of an external grammar document. A | src: specifies the location of an external grammar document. A | |||
| valid value is a URI (see Section 4.6.9). If the URI scheme is | valid value is a URI (see Section 4.6.9). If the URI scheme is | |||
| unsupported, the MS MUST send a <response> with a 420 status code | unsupported, the MS sends a <response> with a 420 status code | |||
| (Section 4.5). If the resource cannot be retrieved within the | (Section 4.5). If the resource cannot be retrieved within the | |||
| timeout interval, the MS MUST send a <response> with a 409 status | timeout interval, the MS sends a <response> with a 409 status | |||
| code. If the grammar format is not supported, the MS MUST send a | code. If the grammar format is not supported, the MS sends a | |||
| <response> with a 424 status code. The attribute is optional. | <response> with a 424 status code. The attribute is optional. | |||
| There is no default value. | There is no default value. | |||
| type: identifies the preferred type of the grammar document | type: identifies the preferred type of the grammar document | |||
| identified by the src attribute. The MS MAY use the value to | identified by the src attribute. A valid value is a MIME media | |||
| assist the remote source in selecting the appropriate resource | type (see Section 4.6.10). If the URI scheme used in the src | |||
| type (e.g. with HTTP 'accept' header) and to determine how the | attribute defines a mechanism for establishing the authoratitive | |||
| document is processed if the protocol does not provide an | MIME media type of the media resource, the value returned by that | |||
| authoritative MIME media type for the returned resource. A valid | mechanism takes precedence over this attribute. The attribute is | |||
| value is a MIME media type (see Section 4.6.10). The attribute is | ||||
| optional. There is no default value. | optional. There is no default value. | |||
| fetchtimeout: the maximum interval to wait when fetching a grammar | fetchtimeout: the maximum interval to wait when fetching a grammar | |||
| resource. A valid value is a Time Designation (see | resource. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). The attribute is optional. The default value is | |||
| 30s. | 30s. | |||
| The <grammar> element allows inline grammars to be specified. XML | The <grammar> element allows inline grammars to be specified. XML | |||
| grammar formats MUST use a namespace other than the one used in this | grammar formats MUST use a namespace other than the one used in this | |||
| specification. Non-XML grammar formats MAY use a CDATA section. | specification. Non-XML grammar formats MAY use a CDATA section. | |||
| The MS MUST support the [SRGS] XML grammar format ("application/ | The MS MUST support the [SRGS] XML grammar format ("application/ | |||
| srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar | srgs+xml") and MS MAY support KPML ([RFC4730]) or other grammar | |||
| formats. If the grammar format is not supported by the MS, then the | formats. If the grammar format is not supported by the MS, then the | |||
| MS MUST send a <response> with a 424 status code (Section 4.5). | MS sends a <response> with a 424 status code (Section 4.5). | |||
| For example, the following fragment shows DTMF collection with an | For example, the following fragment shows DTMF collection with an | |||
| inline SRGS grammar: | inline SRGS grammar: | |||
| <collect cleardigitbuffer="false" timeout="20s" | <collect cleardigitbuffer="false" timeout="20s" | |||
| interdigittimeout="1s"> | interdigittimeout="1s"> | |||
| <grammar> | <grammar> | |||
| <grammar xmlns="http://www.w3.org/2001/06/grammar" | <grammar xmlns="http://www.w3.org/2001/06/grammar" | |||
| version="1.0" mode="dtmf"> | version="1.0" mode="dtmf"> | |||
| <rule id="digit"> | <rule id="digit"> | |||
| skipping to change at page 50, line 20 ¶ | skipping to change at page 50, line 20 ¶ | |||
| 4.3.1.4. <record> | 4.3.1.4. <record> | |||
| The <record> element specifies how media input is recorded. | The <record> element specifies how media input is recorded. | |||
| The <record> element has the following attributes: | The <record> element has the following attributes: | |||
| timeout: indicates the time to wait for user input to begin. A | timeout: indicates the time to wait for user input to begin. A | |||
| valid value is a Time Designation (see Section 4.6.7). The | valid value is a Time Designation (see Section 4.6.7). The | |||
| attribute is optional. The default value is 5s. | attribute is optional. The default value is 5s. | |||
| vadinitial: Control whether voice activity detection can be used to | vadinitial: Control whether voice activity detection (VAD) is used | |||
| initiate the recording operation. A valid value is a boolean (see | to initiate the recording operation. A valid value is a boolean | |||
| Section 4.6.1). A value of true indicates the MS MAY initiate | (see Section 4.6.1). A value of true indicates the MS MUST | |||
| recording using voice activity detection. A value of false | initiate recording if the VAD detects voice on the configured | |||
| indicates that the MS MUST NOT initiate recording using voice | inbound audio streams. A value of false indicates that the MS | |||
| activity detection. The attribute is optional. The default value | MUST NOT initiate recording using VAD. The attribute is optional. | |||
| is true. | The default value is false. | |||
| vadfinal: Control whether voice activity detection can be used to | vadfinal: Control whether voice activity detection (VAD) is used to | |||
| terminate the recording operation. A valid value is a boolean | terminate the recording operation. A valid value is a boolean | |||
| (see Section 4.6.1). A value of true indicates the MS MAY | (see Section 4.6.1). A value of true indicates the MS MUST | |||
| terminate recording using voice activity detection. A value of | terminate recording if the VAD detects a period of silence (whose | |||
| false indicates that the MS MUST NOT terminate recording using | duration is specified by the finalsilence attribute) on configured | |||
| voice activity detection. The attribute is optional. The default | inbound audio streams. A value of false indicates that the MS | |||
| value is true. | MUST NOT terminate recording using VAD. The attribute is | |||
| optional. The default value is false. | ||||
| dtmfterm: Indicates whether the recording operation is terminated by | dtmfterm: Indicates whether the recording operation is terminated by | |||
| DTMF input. A valid value is a boolean (see Section 4.6.1). A | DTMF input. A valid value is a boolean (see Section 4.6.1). A | |||
| value of true indicates that recording is terminated by DTMF | value of true indicates that recording is terminated by DTMF | |||
| input. A value of false indicates that recording is not | input. A value of false indicates that recording is not | |||
| terminated by DTMF input. The attribute is optional. The default | terminated by DTMF input. The attribute is optional. The default | |||
| value is true. | value is true. | |||
| maxtime: indicates The maximum duration of the recording. A valid | maxtime: indicates The maximum duration of the recording. A valid | |||
| value is a Time Designation (see Section 4.6.7). The attribute is | value is a Time Designation (see Section 4.6.7). The attribute is | |||
| optional. The default value is 15s. | optional. The default value is 15s. | |||
| beep: indicates whether a 'beep' should be played immediately prior | beep: indicates whether a 'beep' is to be played immediately prior | |||
| to initiation of the recording operation. A valid value is a | to initiation of the recording operation. A valid value is a | |||
| boolean (see Section 4.6.1). The attribute is optional. The | boolean (see Section 4.6.1). The attribute is optional. The | |||
| default value is false. | default value is false. | |||
| finalsilence: indicates the interval of silence that indicates end | finalsilence: indicates the interval of silence that indicates the | |||
| of speech. This interval is not part of the recording itself. | end of voice input. This interval is not part of the recording | |||
| This parameter is ignored if the vadfinal attribute has the value | itself. This parameter is ignored if the vadfinal attribute has | |||
| false. A valid value is a Time Designation (see Section 4.6.7). | the value false. A valid value is a Time Designation (see | |||
| The attribute is optional. The default value is 5s. | Section 4.6.7). The attribute is optional. The default value is | |||
| 5s. | ||||
| append: indicates whether recorded data should be appended or not to | append: indicates whether recorded data is appended or not to a | |||
| a recording location if a resource already exists. A valid value | recording location if a resource already exists. A valid value is | |||
| is a boolean (see Section 4.6.1). A value of true indicates that | a boolean (see Section 4.6.1). A value of true indicates that | |||
| recorded data is appended to the existing resource at a recording | recorded data is appended to the existing resource at a recording | |||
| location. A value of false indicates that recorded data is to | location. A value of false indicates that recorded data is to | |||
| overwrite the existing resource. The attribute is optional. The | overwrite the existing resource. The attribute is optional. The | |||
| default value is false. | default value is false. | |||
| If either the vadinitial or vadfinal attribute is set to true and the | ||||
| MS does not support VAD, the MS sends a <response> with a 434 status | ||||
| code (Section 4.5). | ||||
| The <record> element has the following child element (0 or more | The <record> element has the following child element (0 or more | |||
| occurrences): | occurrences): | |||
| <media>: specifies the location and type of the media resource for | <media>: specifies the location and type of the media resource for | |||
| uploading recorded data (see Section 4.3.1.5). The MS MUST have | uploading recorded data (see Section 4.3.1.5). The MS uploads | |||
| uploaded the recorded data to this resource as soon as possible | recorded data to this resource as soon as possible after recording | |||
| after recording is complete. The element is optional. | is complete. The element is optional. | |||
| If multiple <media> elements are specified, then media input is to be | If multiple <media> elements are specified, then media input is to be | |||
| recorded in parallel to multiple resource locations. | recorded in parallel to multiple resource locations. | |||
| If no <media> child element is specified, the MS MUST provide a | If no <media> child element is specified, the MS MUST provide a | |||
| recording location where the recording format is implementation- | recording location where the recording format is implementation- | |||
| specific. The recording location and format are reported in | specific. The recording location and format are reported in | |||
| <recordinfo> (Section 4.3.2.4) when the dialog terminates. The | <recordinfo> (Section 4.3.2.4) when the dialog terminates. The | |||
| recording MUST be available from this location until the connection | recording MUST be available from this location until the connection | |||
| or conference associated with the dialog on the MS terminates. | or conference associated with the dialog on the MS terminates. | |||
| If the MS does not support the configuration required for recording | If the MS does not support the configuration required for recording | |||
| from the input media streams to one or more <media> elements, the MS | from the input media streams to one or more <media> elements and a | |||
| MUST send a <response> with a 423 status code (Section 4.5). It is | more specific error code is not defined for its child elements, the | |||
| RECOMMENDED that the MS implementation at least supports recording | MS sends a <response> with a 423 status code (Section 4.5). | |||
| different media (e.g. audio and video) in parallel to different | ||||
| locations. The MS MAY support transcoding between the input stream | ||||
| format and the recording location format. | ||||
| Note that an MS MAY support uploading recorded data to recording | Note that an MS MAY support uploading recorded data to recording | |||
| locations at the same time the recording operation takes place. Such | locations at the same time the recording operation takes place. Such | |||
| implementations should be aware of the requirements of certain | implementations need to be aware of the requirements of certain | |||
| recording formats (e.g. WAV) for metadata at the beginning of the | recording formats (e.g. WAV) for metadata at the beginning of the | |||
| uploaded file, that the finalsilence interval is not part of the | uploaded file, that the finalsilence interval is not part of the | |||
| recording and how these requirements interact with the URI scheme. | recording and how these requirements interact with the URI scheme. | |||
| The MS has the following execution model for recording after | The MS has the following execution model for recording after | |||
| initialization: | initialization: | |||
| 1. If an error occurs during execution (e.g. authentication or | 1. If an error occurs during execution (e.g. authentication or | |||
| communication error when trying to upload to a recording | communication error when trying to upload to a recording | |||
| location), then the MS terminates record execution and reports | location), then the MS terminates record execution and reports | |||
| skipping to change at page 53, line 45 ¶ | skipping to change at page 53, line 45 ¶ | |||
| 4.3.1.5. <media> | 4.3.1.5. <media> | |||
| The <media> element specifies a media resource to playback from (see | The <media> element specifies a media resource to playback from (see | |||
| Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback | Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback | |||
| case, the resource is retrieved and in the recording case, recording | case, the resource is retrieved and in the recording case, recording | |||
| data is uploaded to the resource location. | data is uploaded to the resource location. | |||
| A <media> element has the following attributes: | A <media> element has the following attributes: | |||
| loc: specifies the location of the media resource. A valid value is | loc: specifies the location of the media resource. A valid value is | |||
| a URI (see Section 4.6.9). The MS SHOULD support the inclusion of | a URI (see Section 4.6.9) including authentication information if | |||
| authentication information in the URI if the URI scheme supports | defined by the URI scheme (e.g. basic access authentication in | |||
| it (e.g. basic access authentication in HTTP). The MS MAY support | HTTP). If the URI scheme is not supported by the MS, the MS sends | |||
| more advanced authentication mechanisms. If the URI scheme is not | a <response> with a 420 status code (Section 4.5). If the | |||
| supported by the MS, the MS MUST send a <response> with a 420 | resource is to be retrieved but the MS cannot retrieve it within | |||
| status code (Section 4.5). If the resource is to be retrieved but | the timeout interval, the MS sends a <response> with a 409 status | |||
| the MS cannot retrieve it within the timeout interval, the MS MUST | code. If the format of the media resource is not supported, the | |||
| send a <response> with a 409 status code. If the format of the | MS sends a <response> with a 429 status code. The attribute is | |||
| media resource is not supported, the MS MUST send a <response> | mandatory. | |||
| with a 429 status code. The attribute is mandatory. | ||||
| type: specifies the type of the media resource indicated in the ref | type: specifies the type of the media resource indicated in the loc | |||
| attribute. A valid value is a MIME media type (see | attribute. A valid value is a MIME media type (see | |||
| Section 4.6.10). The value can include additional parameters | Section 4.6.10) which, depending on its definition, can include | |||
| (e.g. [RFC4281]) to guide the MS in using the media resource. If | additional parameters (e.g. [RFC4281]). If the URI scheme used | |||
| the resource is retrieved from the location, the MS MAY use the | in the loc attribute defines a mechanism for establishing the | |||
| value to assist the remote source in selecting the appropriate | authoratitive MIME media type of the media resource, the value | |||
| resource type (e.g. with HTTP 'accept' header) and to determine | returned by that mechanism takes precedence over this attribute. | |||
| how the resource is to be processed if the protocol does not | If additional media parameters are specified, the MS MUST use them | |||
| provide an authoritative MIME media type for the returned resource | to determine media processing. For example, [RFC4281] defines a | |||
| If data is to be uploaded to the resource location, the MS MAY use | 'codec' parameter for media types like video/3gpp which would | |||
| the parameters to determine which media streams are to be used; | determine which media streams are played or recorded. The | |||
| for example, using a 'codec' parameter for 'bucket' media types | attribute is optional. There is no default value. | |||
| like video/3gpp. The attribute is optional. There is no default | ||||
| value. | ||||
| fetchtimeout: the maximum interval to wait when fetching a media | fetchtimeout: the maximum interval to wait when fetching a media | |||
| resource. A valid value is a Time Designation (see | resource. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). The attribute is optional. The default value is | |||
| 30s. | 30s. | |||
| soundLevel: playback soundLevel (volume) for the media resource. A | soundLevel: playback soundLevel (volume) for the media resource. A | |||
| valid value is a percentage (see Section 4.6.4). The value | valid value is a percentage (see Section 4.6.4). The value | |||
| indicates increase or decrease relative to the original recorded | indicates increase or decrease relative to the original recorded | |||
| volume of the media. A value of 100% (the default) plays the | volume of the media. A value of 100% (the default) plays the | |||
| skipping to change at page 55, line 7 ¶ | skipping to change at page 55, line 4 ¶ | |||
| clipEnd: offset from start of media resource to end playback. A | clipEnd: offset from start of media resource to end playback. A | |||
| valid value is a Time Designation (see Section 4.6.7). The offset | valid value is a Time Designation (see Section 4.6.7). The offset | |||
| is measured in normal media playback time from the beginning of | is measured in normal media playback time from the beginning of | |||
| the media resource. If the clipEnd offset is after the end of | the media resource. If the clipEnd offset is after the end of | |||
| media, then the media is played to the end. If clipBegin is after | media, then the media is played to the end. If clipBegin is after | |||
| clipEnd, then no media is played. See 'clipEnd' in SMIL | clipEnd, then no media is played. See 'clipEnd' in SMIL | |||
| ([W3C.REC-SMIL2-20051213]) for further information. The attribute | ([W3C.REC-SMIL2-20051213]) for further information. The attribute | |||
| is optional. There is no default value. | is optional. There is no default value. | |||
| The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are | The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are | |||
| only relevant in the playback use case. The MS SHOULD ignore these | only relevant in the playback use case. The MS ignores these | |||
| attributes when using the <media> for recording. | attributes when using the <media> for recording. | |||
| The <media> element has no children. | The <media> element has no children. | |||
| 4.3.2. Exit Information | 4.3.2. Exit Information | |||
| When the dialog exits, information about the specified operations is | When the dialog exits, information about the specified operations is | |||
| reported in a <dialogexit> notification event (Section 4.2.5.1). | reported in a <dialogexit> notification event (Section 4.2.5.1). | |||
| 4.3.2.1. <promptinfo> | 4.3.2.1. <promptinfo> | |||
| skipping to change at page 56, line 26 ¶ | skipping to change at page 56, line 24 ¶ | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| termmode: indicates how collection was terminated. Valid values | termmode: indicates how collection was terminated. Valid values | |||
| are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is | are: 'stopped', 'match', 'noinput' or 'nomatch'. The attribute is | |||
| mandatory. | mandatory. | |||
| The <collectinfo> element has no child elements. | The <collectinfo> element has no child elements. | |||
| 4.3.2.4. <recordinfo> | 4.3.2.4. <recordinfo> | |||
| The <recordinfo> element reports information about record execution. | The <recordinfo> element reports information about record execution | |||
| (Section 4.3.1.4). | ||||
| The <recordinfo> element has the following attributes: | The <recordinfo> element has the following attributes: | |||
| termmode: indicates how recording was terminated. Valid values are: | termmode: indicates how recording was terminated. Valid values are: | |||
| 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The | 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The | |||
| attribute is mandatory. | attribute is mandatory. | |||
| duration: indicates the duration of the recording in milliseconds. | duration: indicates the duration of the recording in milliseconds. | |||
| A valid value is a non-negative integer (see Section 4.6.4). The | A valid value is a non-negative integer (see Section 4.6.4). The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| The <recordinfo> element has the following child element (0 or more | The <recordinfo> element has the following child element (0 or more | |||
| occurrences): | occurrences): | |||
| <mediainfo>: indicates information about a recorded media resource | <mediainfo>: indicates information about a recorded media resource | |||
| (see Section 4.3.2.4.1). The element is optional. | (see Section 4.3.2.4.1). The element is optional. | |||
| When the record operation is successful, the MS SHOULD specify the | When the record operation is successful, the MS MUST specify a | |||
| same number of <mediainfo> child elements as recorded media | <mediainfo> element for each recording location. For example, if the | |||
| destinations in <record> (Section 4.3.1.4). | <record> element contained three <media> child elements, then the | |||
| <recordinfo> would contain three <mediainfo> child elements. | ||||
| 4.3.2.4.1. <mediainfo> | 4.3.2.4.1. <mediainfo> | |||
| The <mediainfo> element reports information about a recorded media | The <mediainfo> element reports information about a recorded media | |||
| resource. | resource. | |||
| The <mediainfo> element has the following attributes: | The <mediainfo> element has the following attributes: | |||
| loc: indicates the location of the media resource. A valid value is | loc: indicates the location of the media resource. A valid value is | |||
| a URI (see Section 4.6.9). The attribute is mandatory. | a URI (see Section 4.6.9). The attribute is mandatory. | |||
| skipping to change at page 57, line 24 ¶ | skipping to change at page 57, line 24 ¶ | |||
| size: indicates the size of the media resource in bytes. A valid | size: indicates the size of the media resource in bytes. A valid | |||
| value is a non-negative integer (see Section 4.6.4). The | value is a non-negative integer (see Section 4.6.4). The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| 4.4. Audit Elements | 4.4. Audit Elements | |||
| The audit elements defined in this section allow the MS to be audited | The audit elements defined in this section allow the MS to be audited | |||
| for package capabilities as well as dialogs managed by the package. | for package capabilities as well as dialogs managed by the package. | |||
| Auditing is particularly important for two use cases. First, it | Auditing is particularly important for two use cases. First, it | |||
| enables discovery of package capabilities supported on an MS before | enables discovery of package capabilities supported on an MS before | |||
| an AS starts a dialog on connection or conference. The AS may then | an AS starts a dialog on connection or conference. The AS can then | |||
| use this information to create request elements using supported | use this information to create request elements using supported | |||
| capabilities and, in the case of codecs, to negotiate an appropriate | capabilities and, in the case of codecs, to negotiate an appropriate | |||
| SDP for a user agent's connection. Second, auditing enables | SDP for a user agent's connection. Second, auditing enables | |||
| discovery of the existence and status of dialogs currently managed by | discovery of the existence and status of dialogs currently managed by | |||
| the package on the MS. This allows one AS to take over management of | the package on the MS. This could be used when one AS takes over | |||
| the dialogs when the AS which initiated the dialogs fails or is no | management of the dialogs if the AS which initiated the dialogs fails | |||
| longer available. | or is no longer available (see Security Considerations described in | |||
| Section 7 ). | ||||
| 4.4.1. <audit> | 4.4.1. <audit> | |||
| The <audit> request element is sent to the MS to request information | The <audit> request element is sent to the MS to request information | |||
| about the capabilities of, and dialogs currently managed with, this | about the capabilities of, and dialogs currently managed with, this | |||
| control package. Capabilities include supported dialog languages, | control package. Capabilities include supported dialog languages, | |||
| grammar formats, record and media types as well as codecs. Dialog | grammar formats, record and media types as well as codecs. Dialog | |||
| information includes the status of managed dialogs as well as codecs. | information includes the status of managed dialogs as well as codecs. | |||
| The <audit> element has the following attributes: | The <audit> element has the following attributes: | |||
| skipping to change at page 58, line 13 ¶ | skipping to change at page 58, line 13 ¶ | |||
| true. | true. | |||
| dialogs: indicates whether dialogs currently managed by the package | dialogs: indicates whether dialogs currently managed by the package | |||
| are to be audited. A valid value is a boolean (see | are to be audited. A valid value is a boolean (see | |||
| Section 4.6.1). A value of true indicates that dialog information | Section 4.6.1). A value of true indicates that dialog information | |||
| is to be reported. A value of false indicates that dialog | is to be reported. A value of false indicates that dialog | |||
| information is not to be reported. The attribute is optional. | information is not to be reported. The attribute is optional. | |||
| The default value is true. | The default value is true. | |||
| dialogid: string identifying a specific dialog to audit. The MS | dialogid: string identifying a specific dialog to audit. The MS | |||
| MUST send a response with a 406 status code (Section 4.5) if the | sends a response with a 406 status code (Section 4.5) if the | |||
| specified dialog identifier is invalid. The attribute is | specified dialog identifier is invalid. The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| If the dialogs attribute has the value true and dialogid attribute is | If the dialogs attribute has the value true and dialogid attribute is | |||
| specified, then only audit information about the specified dialog is | specified, then only audit information about the specified dialog is | |||
| reported. If the dialogs attribute has the value false, then no | reported. If the dialogs attribute has the value false, then no | |||
| dialog audit information is reported even if a dialogid attribute is | dialog audit information is reported even if a dialogid attribute is | |||
| specified. | specified. | |||
| The <audit> element has no child elements. | The <audit> element has no child elements. | |||
| skipping to change at page 58, line 36 ¶ | skipping to change at page 58, line 36 ¶ | |||
| <auditresponse> element (Section 4.4.2) which includes a mandatory | <auditresponse> element (Section 4.4.2) which includes a mandatory | |||
| attribute describing the status in terms of a numeric code. Response | attribute describing the status in terms of a numeric code. Response | |||
| status codes are defined in Section 4.5. If the request is | status codes are defined in Section 4.5. If the request is | |||
| successful, the <auditresponse> contains (depending on attribute | successful, the <auditresponse> contains (depending on attribute | |||
| values) a <capabilities> element (Section 4.4.2.2) reporting package | values) a <capabilities> element (Section 4.4.2.2) reporting package | |||
| capabilities and a <dialogs> element (Section 4.4.2.3) reporting | capabilities and a <dialogs> element (Section 4.4.2.3) reporting | |||
| managed dialog information. If the MS is not able to process the | managed dialog information. If the MS is not able to process the | |||
| request and carry out the audit operation, the audit request has | request and carry out the audit operation, the audit request has | |||
| failed and the MS MUST indicate the class of failure using an | failed and the MS MUST indicate the class of failure using an | |||
| appropriate 4xx response code. Unless an error response code is | appropriate 4xx response code. Unless an error response code is | |||
| mandated for a specific class of error within this section, | specified for a class of error within this section, implementations | |||
| implementations follow Section 4.5 in determining the appropriate | follow Section 4.5 in determining the appropriate status code for the | |||
| status code for the response. | response. | |||
| For example, a request to audit capabilities and dialogs managed by | For example, a request to audit capabilities and dialogs managed by | |||
| the package: | the package: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <audit/> | <audit/> | |||
| </mscivr> | </mscivr> | |||
| In this example, only capabilities are to be audited: | In this example, only capabilities are to be audited: | |||
| skipping to change at page 59, line 41 ¶ | skipping to change at page 59, line 41 ¶ | |||
| For example, a successful response to a <audit> request requesting | For example, a successful response to a <audit> request requesting | |||
| capabilities and dialogs information: | capabilities and dialogs information: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <auditresponse status="200"> | <auditresponse status="200"> | |||
| <capabilities> | <capabilities> | |||
| <dialoglanguages> | <dialoglanguages> | |||
| <mimetype>application/voicexml+xml</mimetype> | <mimetype>application/voicexml+xml</mimetype> | |||
| </dialoglanguages> | </dialoglanguages> | |||
| <grammartypes> | <grammartypes/> | |||
| <mimetype>application/srgs+xml</mimetype> | ||||
| </grammartypes> | ||||
| <recordtypes> | <recordtypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <prompttypes> | <prompttypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </prompttypes> | </prompttypes> | |||
| <variables> | <variables> | |||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | <variabletype type="date" desc="value formatted as YYYYMMDD"> | |||
| skipping to change at page 63, line 9 ¶ | skipping to change at page 63, line 9 ¶ | |||
| <codecs>: element (Section 4.4.2.1) describing codecs available to | <codecs>: element (Section 4.4.2.1) describing codecs available to | |||
| the package. The element is mandatory. | the package. The element is mandatory. | |||
| For example, a fragment describing capabilities: | For example, a fragment describing capabilities: | |||
| <capabilities> | <capabilities> | |||
| <dialoglanguages> | <dialoglanguages> | |||
| <mimetype>application/voicexml+xml</mimetype> | <mimetype>application/voicexml+xml</mimetype> | |||
| </dialoglanguages> | </dialoglanguages> | |||
| <grammartypes> | <grammartypes/> | |||
| <mimetype>application/srgs+xml</mimetype> | ||||
| </grammartypes> | ||||
| <recordtypes> | <recordtypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <prompttypes> | <prompttypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </prompttypes> | </prompttypes> | |||
| <variables/> | <variables/> | |||
| <maxpreparedduration>30s</maxpreparedduration> | <maxpreparedduration>30s</maxpreparedduration> | |||
| skipping to change at page 64, line 12 ¶ | skipping to change at page 64, line 12 ¶ | |||
| The <dialoglanguages> element has the following sequence of child | The <dialoglanguages> element has the following sequence of child | |||
| elements (0 or more occurrences): | elements (0 or more occurrences): | |||
| <mimetype>: element whose content model describes a MIME media type | <mimetype>: element whose content model describes a MIME media type | |||
| (Section 4.6.10) associated with a supported dialog language. The | (Section 4.6.10) associated with a supported dialog language. The | |||
| element is optional. | element is optional. | |||
| 4.4.2.2.2. <grammartypes> | 4.4.2.2.2. <grammartypes> | |||
| The <grammartypes> element provides information about <grammar> | The <grammartypes> element provides information about <grammar> | |||
| format types supported by the package. The MS MUST include the | format types supported by the package. The MS MUST NOT include the | |||
| mandatory SRGS format type, "application/srgs+xml" | mandatory SRGS format type, "application/srgs+xml" | |||
| (Section 4.3.1.3.1). | (Section 4.3.1.3.1). | |||
| The <grammartypes> element has no attributes. | The <grammartypes> element has no attributes. | |||
| The <grammartypes> element has the following sequence of child | The <grammartypes> element has the following sequence of child | |||
| elements (1 or more occurrences): | elements (1 or more occurrences): | |||
| <mimetype>: element whose content model describes a mime type | <mimetype>: element whose content model describes a mime type | |||
| (Section 4.6.10). The element is optional. | (Section 4.6.10). The element is optional. | |||
| skipping to change at page 73, line 19 ¶ | skipping to change at page 73, line 19 ¶ | |||
| | | | dialog is already | | | | | | dialog is already | | | |||
| | | | running | | | | | | running | | | |||
| | | | | | | | | | | | | |||
| | 433 | Unsupported | the request contains | | | | 433 | Unsupported | the request contains | | | |||
| | | collect and | <collect> and | | | | | collect and | <collect> and | | | |||
| | | record | <record> elements and | | | | | record | <record> elements and | | | |||
| | | capability | the MS does support | | | | | capability | the MS does support | | | |||
| | | | these operations | | | | | | these operations | | | |||
| | | | simultaneously | | | | | | simultaneously | | | |||
| | | | | | | | | | | | | |||
| | 434 | Reserved for | | | | | 434 | Unsupported | the request contains | | | |||
| | | future use | | | | | | VAD | a <record> element | | | |||
| | | capability | where Voice Activity | | | ||||
| | | | Detection (VAD) is | | | ||||
| | | | required, but the MS | | | ||||
| | | | does not support VAD. | | | ||||
| | | | | | | | | | | | | |||
| | 435 | Reserved for | | | | | 435 | Unsupported | the request contains | | | |||
| | | future use | | | | | | parallel | a prompt <par> | | | |||
| | | playback | element whose | | | ||||
| | | | configuration is not | | | ||||
| | | | supported by the MS. | | | ||||
| | | | | | | | | | | | | |||
| | 436 | Reserved for | | | | | 436 | Reserved for | | | | |||
| | | future use | | | | | | future use | | | | |||
| | | | | | | | | | | | | |||
| | 437 | Reserved for | | | | | 437 | Reserved for | | | | |||
| | | future use | | | | | | future use | | | | |||
| | | | | | | | | | | | | |||
| | 438 | Reserved for | | | | | 438 | Reserved for | | | | |||
| | | future use | | | | | | future use | | | | |||
| | | | | | | | | | | | | |||
| skipping to change at page 76, line 31 ¶ | skipping to change at page 76, 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 (20081103) | IETF MediaCtrl IVR 1.0 (20081118) | |||
| 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 48 ¶ | skipping to change at page 87, line 48 ¶ | |||
| <xsd:attribute name="clipEnd" | <xsd:attribute name="clipEnd" | |||
| type="timedesignation.datatype"/> | type="timedesignation.datatype"/> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="media" type="mediaType" /> | <xsd:element name="media" type="mediaType" /> | |||
| <!-- variable --> | <!-- variable --> | |||
| <xsd:complexType name="variableType"> | <xsd:complexType name="variableT"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="value" type="xsd:string" | <xsd:attribute name="value" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="xsd:string" | <xsd:attribute name="type" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="format" type="xsd:string" /> | <xsd:attribute name="format" type="xsd:string" /> | |||
| <xsd:attribute name="gender" type="gender.datatype" /> | <xsd:attribute name="gender" type="gender.datatype" /> | |||
| <xsd:attribute ref="xml:lang" /> | <xsd:attribute ref="xml:lang" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="variable" type="variableType" /> | <xsd:element name="variable" type="variableT" /> | |||
| <!-- dtmf --> | <!-- dtmf --> | |||
| <xsd:complexType name="dtmfType"> | <xsd:complexType name="dtmfType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="digits" | <xsd:attribute name="digits" | |||
| type="dtmfstring.datatype" use="required" /> | type="dtmfstring.datatype" use="required" /> | |||
| <xsd:attribute name="level" type="xsd:integer" | <xsd:attribute name="level" type="xsd:integer" | |||
| default="-6" /> | default="-6" /> | |||
| skipping to change at page 91, line 33 ¶ | skipping to change at page 91, line 33 ¶ | |||
| <xsd:element ref="media" minOccurs="0" | <xsd:element ref="media" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <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="timeout" | <xsd:attribute name="timeout" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="beep" type="boolean.datatype" | <xsd:attribute name="beep" type="boolean.datatype" | |||
| default="false" /> | default="false" /> | |||
| <xsd:attribute name="vadinitial" | <xsd:attribute name="vadinitial" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="false" /> | |||
| <xsd:attribute name="vadfinal" | <xsd:attribute name="vadfinal" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="false" /> | |||
| <xsd:attribute name="dtmfterm" | <xsd:attribute name="dtmfterm" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="true" /> | |||
| <xsd:attribute name="maxtime" | <xsd:attribute name="maxtime" | |||
| type="timedesignation.datatype" default="15s" /> | type="timedesignation.datatype" default="15s" /> | |||
| <xsd:attribute name="finalsilence" | <xsd:attribute name="finalsilence" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="append" type="boolean.datatype" | <xsd:attribute name="append" type="boolean.datatype" | |||
| default="false" /> | default="false" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| skipping to change at page 97, line 9 ¶ | skipping to change at page 97, line 9 ¶ | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="desc" type="xsd:string" /> | <xsd:attribute name="desc" type="xsd:string" /> | |||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:anyAttribute namespace="##other" processContents="lax" /> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="format" type="formatType" /> | <xsd:element name="format" type="formatType" /> | |||
| <!-- maxpreparedduration --> | <!-- maxpreparedduration --> | |||
| <xsd:element name="maxpreparedduration" | <xsd:element name="maxpreparedduration" | |||
| type="timedesignation.datatype"/> | type="timedesignation.datatype"/> | |||
| <!-- maxrecordduration --> | <!-- maxrecordduration --> | |||
| <xsd:element name="maxrecordduration" | <xsd:element name="maxrecordduration" | |||
| type="timedesignation.datatype"/> | type="timedesignation.datatype"/> | |||
| <!-- dialogs --> | <!-- dialogs --> | |||
| <xsd:complexType name="dialogsType"> | <xsd:complexType name="dialogsType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="dialogaudit" minOccurs="0" | <xsd:element ref="dialogaudit" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| skipping to change at page 103, line 43 ¶ | skipping to change at page 103, line 43 ¶ | |||
| | (9) CONTROL: <event .../> | | | (9) CONTROL: <event .../> | | |||
| | <---------------------------------------- | | | <---------------------------------------- | | |||
| | | | | | | |||
| | (10) 200 | | | (10) 200 | | |||
| | ----------------------------------------> | | | ----------------------------------------> | | |||
| | | | | | | |||
| 6.1.4. Terminating a dialog | 6.1.4. Terminating a dialog | |||
| An IVR dialog is started successfully, and then terminated by the AS. | An IVR dialog is started successfully, and then terminated by the AS. | |||
| The dialogexit event is sent by to the AS when the dialog exits. | The dialogexit event is sent to the AS when the dialog exits. | |||
| Application Server (AS) Media Server (MS) | Application Server (AS) Media Server (MS) | |||
| | | | | | | |||
| | (1) CONTROL: <dialogstart> | | | (1) CONTROL: <dialogstart> | | |||
| | ----------------------------------------> | | | ----------------------------------------> | | |||
| | | | | | | |||
| | (2) 202 | | | (2) 202 | | |||
| | <--------------------------------------- | | | <--------------------------------------- | | |||
| | | | | | | |||
| | (3) REPORT: <response status="200"/> | | | (3) REPORT: <response status="200"/> | | |||
| skipping to change at page 110, line 20 ¶ | skipping to change at page 110, line 20 ¶ | |||
| <param name="prompt1">nfs://nas01/media1.3gp"</param> | <param name="prompt1">nfs://nas01/media1.3gp"</param> | |||
| <param name="prompt2">nfs://nas01/media2.3gp"</param> | <param name="prompt2">nfs://nas01/media2.3gp"</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If the MS does not support this dialog language, then the response | If the MS does not support this dialog language, then the response | |||
| would have the status code 409 (Section 4.5). However, if it does | would have the status code 409 (Section 4.5). However, if it does | |||
| support the VoiceXML dialog language, it would respond with a 200 | support the VoiceXML dialog language, it would respond with a 200 | |||
| status, activate the VoiceXML dialog and make the <params> available | status, activate the VoiceXML dialog and make the <params> available | |||
| in the VoiceXML script through the "connection.ccxml.values" object. | to the VoiceXML script as described in Section 12. | |||
| When the VoiceXML dialog exits, exit namelist parameters are | When the VoiceXML dialog exits, exit namelist parameters are | |||
| specified using <params> in the dialogexit event: | specified using <params> in the dialogexit 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="d2"> | <event dialogid="d2"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <params> | <params> | |||
| <param name="username">peter</param> | <param name="username">peter</param> | |||
| <param name="pin">1234</param> | <param name="pin">1234</param> | |||
| </params> | </params> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 6.4. Foreign Namespace Attributes and Elements | 6.4. Foreign Namespace Attributes and Elements | |||
| An MS may support attributes and elements from foreign namespaces | An MS can support attributes and elements from foreign namespaces | |||
| within the <mscivr> element. For example, it may support a <listen> | within the <mscivr> element. For example, the MS could support a | |||
| element (in a foreign namespace) for speech recognition by analogy to | <listen> element (in a foreign namespace) for speech recognition by | |||
| how <collect> support DTMF collection. | analogy to how <collect> support DTMF collection. | |||
| In the following example, a prompt and collect request is extended | In the following example, a prompt and collect request is extended | |||
| with a <listen> element: | with a <listen> element: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | |||
| xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | |||
| <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| skipping to change at page 111, line 38 ¶ | skipping to change at page 111, line 38 ¶ | |||
| If an MS receives this request but does not support the <listen> | If an MS receives this request but does not support the <listen> | |||
| element, then it would send a 431 response: | element, then it would send a 431 response: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <response status="431" dialogid="d560" | <response status="431" dialogid="d560" | |||
| reason="unsupported foreign listen element"/> | reason="unsupported foreign listen element"/> | |||
| </mscivr> | </mscivr> | |||
| If the MS does support this foreign element, it would send a 200 | If the MS does support this foreign element, it would send a 200 | |||
| response and start the dialog with speech recognition. When the | response and start the dialog with speech recognition. When the | |||
| dialog exits, it may provide information about the <listen> execution | dialog exits, it provides information about the <listen> execution | |||
| within <dialogexit>, again using elements in a foreign namespace such | within <dialogexit>, again using elements in a foreign namespace such | |||
| as <listeninfo> below: | as <listeninfo> below: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | |||
| xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | |||
| <event dialogid="d560"> | <event dialogid="d560"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <ex:listeninfo speech="1 2 3 4" termmode="match"/> | <ex:listeninfo speech="1 2 3 4" termmode="match"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| Note that in reply the AS must send a Control Framework 200 response | Note that in reply the AS sends a Control Framework 200 response even | |||
| even though the notification event contains an element in a foreign | though the notification event contains an element in a foreign | |||
| namespace which it may not understand. | namespace which it might not understand. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| As this control package processes XML markup, implementations MUST | As this control package processes XML markup, implementations MUST | |||
| address the security considerations of [RFC3023]. | address the security considerations of [RFC3023]. | |||
| As a Control Package of the Media Control Channel Framework, | Implementations of this control package MUST address security, | |||
| security, confidentiality and integrity of messages transported over | confidentiality and integrity of messages transported over the | |||
| the control channel MUST be addressed as described in Section 11 of | control channel as described in Section 11 of the Media Control | |||
| the Media Control channel Framework | channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), | |||
| ([I-D.ietf-mediactrl-sip-control-framework]), including Session | including Transport Level Protection, Control Channel Policy | |||
| Establishment, Transport Level Protection and Control Channel Policy | Management and Session Establishment. | |||
| Management. | ||||
| The Media Control Channel Framework permits additional policy | Adequate transport protection and authentication are critical, | |||
| management, including resource access and control channel usage, to | especially when the implementation is deployed in open networks. If | |||
| be specified at the control package level beyond that specified for | the implementation fails to correctly address these issues, it risks | |||
| the Media Control Channel Framework (see Section 11.3 of | exposure to malicious attacks, including (but not limited to): | |||
| [I-D.ietf-mediactrl-sip-control-framework]). | ||||
| Denial of Service: An attacker could insert a request message into | ||||
| the transport stream causing specific dialogs on the MS to be | ||||
| terminated immediately. For example, <dialogterminate | ||||
| dialogid="XXXX" immediate="true">, where the value of "XXXX" could | ||||
| be guessed or discovered by auditing active dialogs on the MS | ||||
| using an <audit> request. | ||||
| Resource Exhaustion: An attacker could insert into the control | ||||
| channel new request messages (or modify existing ones) with, for | ||||
| instance, <dialogprepare> elements with a very long fetchtimeout | ||||
| attribute and a bogus source URL. At some point this will exhaust | ||||
| the number of connections that the MS is able to make. | ||||
| Phishing: An attacker with access to the control channel could | ||||
| modify the "loc" attribute of the <media> element in a dialog to | ||||
| point to some other audio file that had different information from | ||||
| the original. This modified file could include a different phone | ||||
| number for people to call if they want more information or need to | ||||
| provide additional information (such as governmental, corporate or | ||||
| financial information). | ||||
| Data Theft: An attacker could modify a <record> element in the | ||||
| control channel so as to add a new recording location: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart> | ||||
| <dialog> | ||||
| <record> | ||||
| <media type="audio/x-wav" loc="(Good URI)"/> | ||||
| <media type="audio/x-wav" loc="(Attacker's URI)"/> | ||||
| </record> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| The recorded data would be uploaded to two locations indicated by | ||||
| the "{Good URI}" and the "{Attacker's URI}". This allows the | ||||
| attacker to steal the recorded audio (which could include | ||||
| sensitive or confidential information) without the originator of | ||||
| the request necessarily being aware of the theft. | ||||
| The Media Control Channel Framework permits additional security | ||||
| policy management, including resource access and control channel | ||||
| usage, to be specified at the control package level beyond that | ||||
| specified for the Media Control Channel Framework (see Section 11.3 | ||||
| of [I-D.ietf-mediactrl-sip-control-framework]). | ||||
| Since creation of IVR dialogs is associated with media processing | Since creation of IVR dialogs is associated with media processing | |||
| resources (e.g. DTMF detectors, media playback and recording, etc) | resources (e.g. DTMF detectors, media playback and recording, etc) | |||
| on the MS, policy management for this control package MUST address | on the MS, the security policy for this control package needs to | |||
| how such dialogs are managed across multiple control channels. This | address how such dialogs are securely managed across more than one | |||
| includes which channels are used to deliver dialog event | control channels. The identity of control channels is determined by | |||
| notifications, and whether channels are permitted to originate | the channel identifier: i.e. the value of the cfw-id attribute in the | |||
| requests managing a dialog which was not created through that channel | SDP and Dialog-ID header in the channel protocol (see | |||
| (e.g. a dialog has been prepared or started via channel X and a | [I-D.ietf-mediactrl-sip-control-framework]). Channels are the same | |||
| request to terminate the dialog originates from channel Y). | if they have the same identifier; otherwise, they are different. | |||
| This control package imposes the following additional security | ||||
| policies: | ||||
| Responses: The MS MUST only send a response to a dialog management | ||||
| or audit request using the same control channel as the one used to | ||||
| send the request. | ||||
| Notifications: The MS MUST only send notification events for a | ||||
| dialog using the same control channel as it received the request | ||||
| creating the dialog. | ||||
| Auditing: The MS MUST only provide audit information about dialogs | ||||
| which have been created on the same control channel as the one | ||||
| upon the <audit> request is sent. | ||||
| Rejection: The MS SHOULD reject requests to audit or manipulate an | ||||
| existing dialog on the MS if the channel is not the same as the | ||||
| one used when the dialog was created. The MS rejects a request by | ||||
| sending a Control Framework 403 response (see Section 7.4 and | ||||
| Section 11.3 of [I-D.ietf-mediactrl-sip-control-framework]). For | ||||
| example, if a channel with identifier 'cfw1234' has been used to | ||||
| send a request to create a particular dialog and the MS receives | ||||
| on channel 'cfw98969' a request to audit or terminate the dialog, | ||||
| then the MS sends a 403 framework response. | ||||
| There can be valid reasons why an implementation does not reject an | ||||
| audit or dialog manipulation request on a different channel from the | ||||
| one which created the dialog. For example, a system administrator | ||||
| might require a separate channel to audit dialog resources created by | ||||
| system users and to terminate dialogs consuming excessive system | ||||
| resources. Alternatively, a system monitor or resource broker might | ||||
| require a separate channel to audit dialogs managed by this package | ||||
| on a MS. However, the full implications need to be understood by the | ||||
| implementation and carefully weighted before accepting these reasons | ||||
| as valid. If the reasons are not valid in their particular | ||||
| circumstances, the MS rejects such requests. | ||||
| There can also be valid reasons for 'channel handover' including high | ||||
| availability support or where one AS needs to take over management of | ||||
| dialogs after the AS which created them has failed. This could be | ||||
| achieved by the control channels using the same channel identifier, | ||||
| one after another. For example, assume a channel is created with the | ||||
| identifier 'cfw1234' and the channel is used to create dialogs on the | ||||
| MS. This channel (and associated SIP dialog) then terminates due to | ||||
| a failure on the AS. As permitted by the Control Framework, the | ||||
| channel identifier 'cfw1234' could then be reused so that another | ||||
| channel is created with the same identifier 'cfw1234', allowing it to | ||||
| 'take over' management of the dialogs on the MS. Again, the | ||||
| implementation needs to understand the full implications and | ||||
| carefully weight them before accepting these reasons as valid. If | ||||
| the reasons are not valid for their particular circumstances, the MS | ||||
| uses the appropriate SIP mechanisms to prevent session establishment | ||||
| when the same channel identifier is used in setting up another | ||||
| control channel (see Section 4 of | ||||
| [I-D.ietf-mediactrl-sip-control-framework]). | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This specification instructs IANA to register a new Media Control | This specification instructs IANA to register a new Media Control | |||
| Channel Framework Package, a new XML namespace and a new MIME type. | Channel Framework Package, a new XML namespace and a new MIME type. | |||
| 8.1. Control Package Registration | 8.1. Control Package Registration | |||
| Control Package name: msc-ivr/1.0 | Control Package name: msc-ivr/1.0 | |||
| 8.2. URN Sub-Namespace Registration | 8.2. URN Sub-Namespace Registration | |||
| XML namespace: urn:ietf:params:xml:ns:msc-ivr | XML namespace: urn:ietf:params:xml:ns:msc-ivr | |||
| 8.3. Mime Type Registration | 8.3. MIME Type Registration | |||
| MIME type: application/msc-ivr+xml | MIME type: application/msc-ivr+xml | |||
| 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 major changes between the -03 and -02 versions. | ||||
| o Conformance language: Removed unnecessary MUSTs, especially for | ||||
| error codes. Removed lowercase 'should', 'must' and 'may'. | ||||
| o Introduction: Clarified which MediaCtrl IVR Requirements are | ||||
| satisfied by this package. Added link to Security Considerations | ||||
| Section (also in Section 4.0 and 4.4). | ||||
| o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS | ||||
| support of communication protocols in URIs. | ||||
| o 4.2.2:<dialogstart>: Changed RECOMMENDED to MAY for MS support of | ||||
| multiple dialogs on same connection or conference. Changed | ||||
| RECOMMENDED to MUST for using <stream> in cases where connection | ||||
| has multiple streams of the same type. | ||||
| o 4.2.2.2:<stream>: Changed RECOMMENDED to MUST for use of common | ||||
| media attribute values. | ||||
| o 4.2.2.1: <subscribe>: Clarified that if the MS does not support a | ||||
| subscription specified in a foreign namespace, then the MS | ||||
| generates a 431 error response. | ||||
| o 4.2.4: <response>: Clarified that a dialogid with an empty string | ||||
| value is used when the request is syntactically invalid. | ||||
| o 4.2.5.1: <dialogexit>: Added reserved range of status codes, and | ||||
| tightened up the wording. | ||||
| o 4.3.1.3:<collect>: Clarified that termtimeout attribute default of | ||||
| 0s meaning no delay. | ||||
| o 4.3.1.1.1: <variable>: Changed RECOMMENDED to MAY for MS support | ||||
| of date, time and digits <variable>s. Clarified value attribute | ||||
| format for date, time and digits. | ||||
| o 4.3.1.1.3: <par>: Removed RECOMMENDED for MS support of parallel | ||||
| playback of different media. Added error response code (435) if | ||||
| MS does not support parallel playback configuraton. | ||||
| o 4.3.1.1.3.1: <seq>: Removed RECOMMENDED for MS support of | ||||
| sequential playback of same media within a <par> (error case | ||||
| already covered by <par> configuration not supported response | ||||
| code). | ||||
| o 4.3.1.4:<record>: Removed RECOMMENDED for MS support of parallel | ||||
| recording of different media. Clarified wording around uploading | ||||
| recording data to a media resource location. | ||||
| o 4.3.1.4: <record>: Clarified the definition of vadinitial and | ||||
| vadfinal. Changed the default values to false. Added a response | ||||
| error (434) for when the MS does not support VAD. | ||||
| o 4.3.1.5: <media>. Removed unnecesaary SHOULD for MS ignoring | ||||
| fetchtimeout, soundLevel, clipBegin and clipEnd when <media> used | ||||
| for recording. Clarified definition of loc and type attributes | ||||
| with stronger conformance language. Similar clarifications of | ||||
| type attributes in <dialogprepare>, <dialogstart> and <grammar>. | ||||
| o 4.3.2.4.1: <mediainfo>: Clarified usage and strengthen conformance | ||||
| language. | ||||
| o 4.4.2.22: <grammartypes>: Changed MUST to MUST NOT for inclusion | ||||
| of mandatory SRGS grammar format. Updated examples. | ||||
| o Updated schema. | ||||
| o Security Considerations: Major update. Added examples showing | ||||
| malicious attacks when channel security is not correctly | ||||
| addressed. Added more details on multiple channel cases including | ||||
| administrator and monitor channels as well as channel handover. | ||||
| o Removed affliations in Contributors and Acknowledgements sections. | ||||
| o Added Appendix A describing how to use VoiceXML with this package | ||||
| if it is supported by the MS. | ||||
| o Corrected typos and nits. | ||||
| The following are the major changes between the -02 and -01 versions. | The following are the major changes between the -02 and -01 versions. | |||
| o corrected typos. | o corrected typos. | |||
| o Section 3: Aligned Control Package definitions with requirements | o Section 3: Aligned Control Package definitions with requirements | |||
| in Section 8 of the Control Framework. | in Section 8 of the Control Framework. | |||
| o Section 4.2.2.2: Added <priority> child element to <stream> | o Section 4.2.2.2: Added <priority> child element to <stream> | |||
| element (alignment with mixer package). | element (alignment with mixer package). | |||
| skipping to change at page 123, line 4 ¶ | skipping to change at page 126, line 37 ¶ | |||
| o added <stream> element as child of <dialogstart> | o added <stream> element as child of <dialogstart> | |||
| o removed 'type' attribute from <dialogprepare> and <dialogstart> | o removed 'type' attribute from <dialogprepare> and <dialogstart> | |||
| o added dialogid attribute to <dialogprepare> and <dialogstart> | o added dialogid attribute to <dialogprepare> and <dialogstart> | |||
| o removed template "Sample Implementation" section | o removed template "Sample Implementation" section | |||
| o renamed <namelist> to <data> | o renamed <namelist> to <data> | |||
| o re-organized so that template details after general package | o re-organized so that template details after general package | |||
| framework and element description. | framework and element description. | |||
| The following are the primary changes between the -01 of the draft | The following are the primary changes between the -01 of the draft | |||
| and the -00 version. | and the -00 version. | |||
| o Removed requirement for VoiceXML dialog support | o Removed requirement for VoiceXML dialog support | |||
| o Added requirement for template dialog support | o Added requirement for template dialog support | |||
| 10. Contributors | 10. Contributors | |||
| Asher Shiratzky from Radvision provided valuable support and | Asher Shiratzky provided valuable support and contributions to the | |||
| contributions to the 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 of Radisys, Gene | The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave | |||
| Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve | Burke, Dan York and Steve Buko for expert reviews of this work. | |||
| Buko of Dialogic for expert reviews of this work. | ||||
| 12. References | Ben Campbell carried out the RAI expert review on this specification | |||
| and provided a great deal of invaluable input. | ||||
| 12.1. Normative References | 12. Appendix A: Using VoiceXML as a dialog language | |||
| The IVR control package allows, but does not require, the MS to | ||||
| support other dialog languages by referencing an external dialog | ||||
| document. This appendix provides MS implementations which support | ||||
| the VoiceXML dialog language ([VXML20], [VXML21]) with additional | ||||
| details about using these dialogs in this package. | ||||
| This appendix covers preparing (Section 12.1), starting | ||||
| (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) | ||||
| VoiceXML dialogs as well as handling VoiceXML call transfer | ||||
| (Section 12.5). | ||||
| 12.1. Preparing a VoiceXML dialog | ||||
| A VoiceXML dialog is prepared by sending the MS a request containing | ||||
| a <dialogprepare> element (Section 4.2.1). The type attribute is set | ||||
| to "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document which is to be prepared by the MS. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogprepare type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| The VoiceXML dialog environment uses the <dialogprepare> request as | ||||
| an opportunity to fetch and validate the initial document indicated | ||||
| by the src attribute along with any resources referenced in the | ||||
| VoiceXML document marked as prefetchable. Note that the fetchtimeout | ||||
| attribute is not defined in VoiceXML for an initial document but the | ||||
| MS MUST support this attribute in its VoiceXML environment. | ||||
| The success or failure of the VoiceXML document preparation is | ||||
| reported in the MS response. For example, if the VoiceXML document | ||||
| cannot be retrieved, then a 407 error response is returned. If the | ||||
| document is syntactically invalid according to VoiceXML, then a 400 | ||||
| response is returned. If successful, the response includes a | ||||
| dialogid attribute whose value the AS can use in <dialogstart> | ||||
| element to start the prepared dialog. | ||||
| 12.2. Starting a VoiceXML dialog | ||||
| A VoiceXML dialog is started by sending the MS a request containing a | ||||
| <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has | ||||
| already been prepared using <dialogprepare>, then the MS starts the | ||||
| dialog indicated by the prepareddialogid attribute. Otherwise, a new | ||||
| VoiceXML dialog can be started by setting the type attribute to | ||||
| "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| Note that the fetchtimeout attribute is not defined in VoiceXML for | ||||
| an initial document but the MS MUST support this attribute in its | ||||
| VoiceXML environment. Note also that support for <dtmfsub> | ||||
| subscriptions (Section 4.2.2.1.1) and their associated dialog | ||||
| notification events is not defined in VoiceXML. If such a | ||||
| subscription is specified in a <dialogstart> request, then the MS | ||||
| sends a 439 error response (see Section 4.5). | ||||
| The success or failure of starting a VoiceXML dialog is reported in | ||||
| the MS response as described in Section 4.2.2. | ||||
| When the MS starts a VoiceXML dialog, the MS MUST map session | ||||
| information into VoiceXML session variable object. There are 3 types | ||||
| of session information: protocol information (Section 12.2.1), media | ||||
| stream information (Section 12.2.2) and parameter information | ||||
| (Section 12.2.3). | ||||
| 12.2.1. Session protocol information | ||||
| If the connectionid attribute is specified, the MS assigns protocol | ||||
| information from the SIP dialog associated with the connection to the | ||||
| following session variables in VoiceXML: | ||||
| session.connection.local.uri Evaluates to the SIP URI specified in | ||||
| the To: header of the initial INVITE | ||||
| session.connection.remote.uri Evaluates to the SIP URI specified in | ||||
| the From: header of the initial INVITE | ||||
| session.connection.protocol.name Evaluates to "sip". Note that this | ||||
| is intended to reflect the use of SIP in general, and does not | ||||
| distinguish between whether the connection accesses the MS via SIP | ||||
| or SIPS procedures. | ||||
| session.connection.protocol.version Evaluates to "2.0". | ||||
| session.connection.redirect This array is populated by information | ||||
| contained in the History-Info ([RFC4244]) header in the initial | ||||
| INVITE or is otherwise undefined. Each entry (hi-entry) in the | ||||
| History-Info header is mapped, in reverse order, into an element | ||||
| of the 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 | ||||
| pi Set to 'true' if hi-targeted-to-uri contains a | ||||
| 'Privacy=history' parameter, or if the INVITE Privacy header | ||||
| includes 'history'; 'false' otherwise | ||||
| si Set to the value of the 'si' parameter if it exists, undefined | ||||
| otherwise | ||||
| reason Set verbatim to the value of the 'Reason' parameter of hi- | ||||
| targeted-to-uri | ||||
| session.connection.aai Evaluates to the value of a SIP header with | ||||
| the name "aai" if present; otherwise undefined. | ||||
| session.connection.protocol.sip.requesturi This is an associative | ||||
| array where the array keys and values are formed from the URI | ||||
| parameters on the SIP Request-URI of the initial INVITE. The | ||||
| array key is the URI parameter name. The corresponding array | ||||
| value is obtained by evaluating the URI parameter value as a | ||||
| string. In addition, the array's toString() function returns the | ||||
| full SIP Request-URI. | ||||
| session.connection.protocol.sip.headers This is an associative array | ||||
| where each key in the array is the non-compact name of a SIP | ||||
| header in the initial INVITE converted to lower-case (note the | ||||
| case conversion does not apply to the header value). If multiple | ||||
| header fields of the same field name are present, the values are | ||||
| combined into a single comma-separated value. Implementations | ||||
| MUST at a minimum include the Call-ID header and MAY include other | ||||
| headers. For example, | ||||
| session.connection.protocol.sip.headers["call-id"] evaluates to | ||||
| the Call-ID of the SIP dialog. | ||||
| If a conferenceid attribute is specified and the MS supports using a | ||||
| VoiceXML dialog on a conference, then the MS populates the VoiceXML | ||||
| session protocol variables using an implementation specific | ||||
| mechanism. Otherwise, the MS sends an 439 error response | ||||
| (Section 4.5). | ||||
| 12.2.2. Session media stream information | ||||
| The media streams of the connection or conference to use for the | ||||
| dialog are described in Section 4.2.2, including use of <stream> | ||||
| elements (Section 4.2.2.2) if specified. The MS maps media stream | ||||
| information into VoiceXML session variables as follows: | ||||
| session.connection.protocol.sip.media This is an array where each | ||||
| array element is an object with the following properties: | ||||
| type This required property indicates the type of the media | ||||
| associated with the stream (see Section 4.2.2.2 <stream> type | ||||
| attribute definition) | ||||
| direction This required property indicates the directionality of | ||||
| the media relative to session.connection.originator (see | ||||
| Section 4.2.2.2 <stream> direction attribute definition). | ||||
| format This property is optional. If defined, the value of the | ||||
| property is an array. Each array element is an object which | ||||
| specifies information about one format of the media stream. | ||||
| The object contains at least one property called name whose | ||||
| value is the subtype of the media format ([RFC4855]). Other | ||||
| properties may be defined with string values; these correspond | ||||
| to required and, if defined, optional parameters of the format. | ||||
| As a consequence of this definition, there is an array entry in | ||||
| session.connection.protocol.sip.media for each media stream used by | ||||
| the VoiceXML dialog. For an example, consider a connection with bi- | ||||
| directional G.711 mu-law audio sampled at 8kHz where the dialog is | ||||
| started with | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <stream type="audio" direction="sendonly"/> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.connection.protocol.sip.media[0].type evaluates | ||||
| to "audio", session.connection.protocol.sip.media[0].direction to | ||||
| "sendonly", and | ||||
| session.connection.protocol.sip.media[0].format[0].name evaluates to | ||||
| "audio/PCMU" and | ||||
| session.connection.protocol.sip.media[0].format[0].rate evaluates to | ||||
| "8000". | ||||
| Note that this session variable is updated if the connection or | ||||
| conference media session characteristics for the VoiceXML dialog | ||||
| change (i.e. due to a SIP re-INVITE). | ||||
| 12.2.3. Session parameter information | ||||
| Parameter information is specified in the <params> child element of | ||||
| <dialogstart>, where each parameter is specified using a <param> | ||||
| element. The MS maps parameter information into VoiceXML session | ||||
| variables as follows: | ||||
| session.connection.params This is an array mapped to the <params> | ||||
| element. It is undefined if a <params> element is not specified. | ||||
| Each object in the array corresponds to a <param> child of the | ||||
| <params> element. Each object contains three required properties: | ||||
| a "name" property evaluating to the value of the name attribute of | ||||
| the <param> element: a "type" property evaluating to the value of | ||||
| the type attribute; and a "content" property evaluating to the | ||||
| content of the <param>. | ||||
| For example, a VoiceXML dialog started with one parameter: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <params> | ||||
| <param name="mode">playannouncement</param> | ||||
| </params> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.connection.params would be defined with one | ||||
| object in the array where session.connection.params[0].name evaluates | ||||
| to "mode", session.connection.params[0].type evaluates to "text/ | ||||
| plain" (the default value) and session.connection.params[0].content | ||||
| evaluates to "playannouncement". | ||||
| The MS sends an error response (see Section 4.2.2) if a <param> is | ||||
| not supported by the MS (e.g. the parameter type is not supported). | ||||
| 12.3. Terminating a VoiceXML dialog | ||||
| When the MS receives a request with a <dialogterminate> element | ||||
| (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. Note that if the immediate | ||||
| attribute has the value true, then the MS MUST NOT return <params> | ||||
| information when the VoiceXML dialog exits (even if the VoiceXML | ||||
| dialog provides such information) - see Section 12.4. | ||||
| If the connection or conference associated with the VoiceXML dialog | ||||
| terminates, then the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. | ||||
| 12.4. Exiting a VoiceXML dialog | ||||
| The MS sends a <dialogexit> notification event (Section 4.2.5.1) when | ||||
| the VoiceXML dialog is complete, has been terminated or because it | ||||
| exits due to an error. The <dialogexit> status attribute specifies | ||||
| the status of the VoiceXML dialog when it exits and its <params> | ||||
| child element specifies information, if any, returned from the | ||||
| VoiceXML dialog. | ||||
| A VoiceXML dialog exits when it processes a <disconnect> element, a | ||||
| <exit> element or an implicit exit according to the VoiceXML FIA. If | ||||
| the VoiceXML dialog executes a <disconnect> and then subsequently | ||||
| executes an <exit> with namelist information, the namelist | ||||
| information from the <exit> element is discarded. | ||||
| The MS reports namelist variables in the <params> element of the | ||||
| <dialogexit>. Each <param> reports on a namelist variable. The MS | ||||
| set the <param> name attribute to the name of the VoiceXML variable. | ||||
| The MS sets the <param> type attribute according to the type of the | ||||
| VoiceXML variable. The MS sets the <param> type to 'text/plain' when | ||||
| the VoiceXML variable is a simple ECMAScript value. If the VoiceXML | ||||
| variable is a recording, the MS sets the <param> type to the MIME | ||||
| media type of the recording and encodes the recorded content as CDATA | ||||
| in the <param> (see Section 4.2.6.1 for an example). If the VoiceXML | ||||
| variable is a complex ECMAScript value (e.g. object, array, etc), the | ||||
| MS sets the <param> type to 'application/json' and converts the | ||||
| variable value to its JSON value equivalent ([RFC4627]. The behavior | ||||
| resulting from specifying an ECMAScript object with circular | ||||
| references is not defined. | ||||
| If the expr attribute is specified on the VoiceXML <exit> element | ||||
| instead of the namelist attribute, the MS creates a <param> element | ||||
| with the reserved name '__exit', the type 'text/plain' and the | ||||
| content of the expr attribute. To allow the AS to differentiate | ||||
| between a <dialogexit> notification event resulting from a VoiceXML | ||||
| <disconnect> from one resulting from an <exit>, the MS creates a | ||||
| <param> with the reserved name '__reason', the type 'text/plain', and | ||||
| a value of "disconnect" (without brackets) to reflect the use of | ||||
| VoiceXML's <disconnect> element, and the value of "exit" (without | ||||
| brackets) to an explicit <exit> in the VoiceXML dialog. If the | ||||
| VoiceXML session terminates for other reasons (such as encountering | ||||
| an error), this parameter MAY be omitted or take on platform-specific | ||||
| values prefixed with an underscore. | ||||
| Table 2 provides some examples of VoiceXML <exit> usage and the | ||||
| corresponding <params> element in the <dialogexit> notification | ||||
| event. It assumes the following VoiceXML variable names and values: | ||||
| userAuthorized=true, pin=1234 and errors=0. The <param> type | ||||
| attributes ('text/plain') are omitted for clarity. | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> Usage | <params> Result | | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> | <params> <param | | ||||
| | | name="__reason">exit</param> </params> | | ||||
| | | | | ||||
| | <exit expr="5"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">5</param> </params> | | ||||
| | | | | ||||
| | <exit expr="'done'"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">'done'</param> </params> | | ||||
| | | | | ||||
| | <exit | <params> <param | | ||||
| | expr="userAuthorized"> | name="__reason">exit</param> <param | | ||||
| | | name="__exit">true</param> </params> | | ||||
| | | | | ||||
| | <exit namelist="pin | <params> <param | | ||||
| | errors"> | name="__reason">exit</param> <param | | ||||
| | | name="pin">1234</param> <param | | ||||
| | | name="errors">0</param> </params> | | ||||
| +------------------------+------------------------------------------+ | ||||
| Table 2: VoiceXML <exit> mapping examples | ||||
| 12.5. Call Transfer | ||||
| While VoiceXML is at its core a dialog language, it also provides | ||||
| optional call transfer capability. It is NOT RECOMMENDED to use | ||||
| VoiceXML's call transfer capability in networks involving Application | ||||
| Servers. Rather, the AS itself can provide call routing | ||||
| functionality by taking signaling actions based on the data returned | ||||
| to it, either through VoiceXML's own data submission mechanisms or | ||||
| through the mechanism described in Section 12.4. If the MS | ||||
| encounters a VoiceXML dialog using call transfer capability, the MS | ||||
| SHOULD terminate the VoiceXML dialog and return a <dialogexit> | ||||
| notification event reporting an execution error. | ||||
| 13. References | ||||
| 13.1. Normative References | ||||
| [I-D.ietf-mediactrl-sip-control-framework] | [I-D.ietf-mediactrl-sip-control-framework] | |||
| Boulton, C., Melanchuk, T., and S. McGlashan, "Media | Boulton, C., Melanchuk, T., and S. McGlashan, "Media | |||
| Control Channel Framework", | Control Channel Framework", | |||
| draft-ietf-mediactrl-sip-control-framework-06 (work in | draft-ietf-mediactrl-sip-control-framework-07 (work in | |||
| progress), October 2008. | progress), November 2008. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | |||
| Types", RFC 3023, January 2001. | Types", RFC 3023, January 2001. | |||
| [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. | |||
| skipping to change at page 126, line 39 ¶ | skipping to change at page 136, line 39 ¶ | |||
| Languages", BCP 47, RFC 4646, September 2006. | Languages", BCP 47, 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. | |||
| [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] | |||
| Grassel, G., Jansen, J., Zucker, D., Bulterman, D., | Zucker, D., Michel, T., Jansen, J., Mullender, S., | |||
| Layaida, N., Michel, T., Mullender, S., and A. Koivisto, | Layaida, N., Grassel, G., Koivisto, A., and D. Bulterman, | |||
| "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] | |||
| Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | |||
| Second Edition", W3C Recommendation, October 2004. | Second Edition", W3C Recommendation, October 2004. | |||
| 12.2. Informative References | 13.2. Informative References | |||
| [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., Even, R., and J. | Novo, O., Camarillo, G., Morgan, D., Even, R., and J. | |||
| Urpalainen, "Conference Information Data Model for | Urpalainen, "Conference Information Data Model for | |||
| skipping to change at page 127, line 42 ¶ | skipping to change at page 137, line 42 ¶ | |||
| 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. | |||
| [RFC4244] Barnes, M., "An Extension to the Session Initiation | ||||
| Protocol (SIP) for Request History Information", RFC 4244, | ||||
| November 2005. | ||||
| [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media | [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media | |||
| Types: application/voicexml+xml, application/ssml+xml, | Types: application/voicexml+xml, application/ssml+xml, | |||
| application/srgs, application/srgs+xml, application/ | application/srgs, application/srgs+xml, application/ | |||
| ccxml+xml, and application/pls+xml", RFC 4267, | ccxml+xml, and application/pls+xml", RFC 4267, | |||
| November 2005. | November 2005. | |||
| [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs | [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs | |||
| Parameter for "Bucket" Media Types", RFC 4281, | Parameter for "Bucket" Media Types", RFC 4281, | |||
| November 2005. | November 2005. | |||
| [RFC4627] Crockford, D., "The application/json Media Type for | ||||
| JavaScript Object Notation (JSON)", RFC 4627, July 2006. | ||||
| [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol | [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol | |||
| (SIP) Event Package for Key Press Stimulus (KPML)", | (SIP) Event Package for Key Press Stimulus (KPML)", | |||
| RFC 4730, November 2006. | RFC 4730, November 2006. | |||
| [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF | [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF | |||
| Digits, Telephony Tones, and Telephony Signals", RFC 4733, | Digits, Telephony Tones, and Telephony Signals", RFC 4733, | |||
| December 2006. | December 2006. | |||
| [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. | |||
| End of changes. 131 change blocks. | ||||
| 340 lines changed or deleted | 891 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/ | ||||