| < draft-ietf-mediactrl-ivr-control-package-01.txt | draft-ietf-mediactrl-ivr-control-package-02.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: April 10, 2009 Rain Willow Communications | Expires: May 7, 2009 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| Avaya | Avaya | |||
| October 7, 2008 | November 3, 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-01 | draft-ietf-mediactrl-ivr-control-package-02 | |||
| 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 April 10, 2009. | This Internet-Draft will expire on May 7, 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 29 ¶ | skipping to change at page 2, line 29 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 | 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 | |||
| 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 | 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 | |||
| 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 | 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 | |||
| 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 | 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 | |||
| 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 | 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 | 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 | |||
| 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 | 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
| 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> . . . . . . . . . . . . . . . . . . . 23 | 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24 | |||
| 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> . . . . . . . . . . . . . . . . . . 26 | 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 26 | 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 27 | 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28 | ||||
| 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 | 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 29 | 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30 | |||
| 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 30 | 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 31 | 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 31 | 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 32 | 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. <media> . . . . . . . . . . . . . . . . . . . 37 | 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 | |||
| 4.3.1.1.2. <variable> . . . . . . . . . . . . . . . . . 38 | 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.3.1.1.3. <dtmf> . . . . . . . . . . . . . . . . . . . 40 | 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 41 | 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 | |||
| 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 43 | 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 43 | |||
| 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 45 | 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 46 | |||
| 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 47 | 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 48 | |||
| 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 51 | 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 50 | |||
| 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 51 | 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 51 | 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 51 | 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 51 | 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 52 | 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 55 | |||
| 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 52 | 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 53 | 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 54 | 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 56 | |||
| 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 56 | 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 56 | 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 57 | 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 | |||
| 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 59 | 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 60 | 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 60 | 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.2.4. <mediatypes> . . . . . . . . . . . . . . . . 60 | 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 63 | |||
| 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 61 | 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 61 | 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 62 | 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 62 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 62 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 65 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 62 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 66 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 63 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 66 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 65 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 66 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 67 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 66 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 91 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 91 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 73 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 91 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 92 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 92 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 93 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 94 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 94 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 95 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 97 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 98 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 98 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 | |||
| 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 99 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 | |||
| 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 100 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 102 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 103 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 103 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 | |||
| 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 103 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 114 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 104 | 8.1. Control Package Registration . . . . . . . . . . . . . . 114 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 112 | 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 114 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 113 | 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 114 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 114 | 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 115 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 114 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 124 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 115 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 125 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 117 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 126 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 118 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 126 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 127 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 129 | ||||
| Intellectual Property and Copyright Statements . . . . . . . . . 130 | ||||
| 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 10, line 21 ¶ | skipping to change at page 10, line 21 ¶ | |||
| 3.1. Control Package Name | 3.1. Control Package Name | |||
| The Control Framework requires a Control Package to specify and | The Control Framework requires a Control Package to specify and | |||
| register a unique name and version. | register a unique name and version. | |||
| The name and version of this Control Package is "msc-ivr/1.0" (Media | The name and version of this Control Package is "msc-ivr/1.0" (Media | |||
| Server Control - Interactive Voice Response - version 1.0). Its IANA | Server Control - Interactive Voice Response - version 1.0). Its IANA | |||
| registration is specified in Section 8.1. | registration is specified in Section 8.1. | |||
| Since this is the initial ("1.0") version of the control package, | ||||
| there are no backwards compatibility issues to address. | ||||
| 3.2. Framework Message Usage | 3.2. Framework Message Usage | |||
| The Control Framework requires a Control Package to explicitly detail | The Control Framework requires a Control Package to explicitly detail | |||
| the control messages that can be used as well as provide an | the control messages that can be used as well as provide an | |||
| indication of directionality between entities. This will include | indication of directionality between entities. This will include | |||
| which role type is allowed to initiate a request type. | which role type is allowed to initiate a request type. | |||
| This package specifies CONTROL and response messages in terms of XML | This package specifies CONTROL and response messages in terms of XML | |||
| elements defined in Section 4. These elements describe requests, | elements defined in Section 4, where the message bodies have the MIME | |||
| media type defined in Section 8.3. These elements describe requests, | ||||
| response and notifications and all are contained within a root | response and notifications and all are contained within a root | |||
| <mscivr> element (Section 4.1). | <mscivr> element (Section 4.1). | |||
| In this package, the MS operates as a Control Framework Server in | In this package, the MS operates as a Control Server in receiving | |||
| receiving requests from, and sending responses to, the AS (operating | requests from, and sending responses to, the AS (operating as Control | |||
| as Control Framework Client). Dialog management requests and | Client). Dialog management requests and responses are defined in | |||
| responses are defined in Section 4.2. Audit requests and responses | Section 4.2. Audit requests and responses are defined in | |||
| are defined in Section 4.4. dialog management and audit responses are | Section 4.4. dialog management and audit responses are carried in a | |||
| carried in a framework 200 response or REPORT message bodies. This | framework 200 response or REPORT message bodies. This package's | |||
| package's response codes are defined in Section 4.5. | response codes are defined in Section 4.5. | |||
| Note that package responses are different from framework response | Note that package responses are different from framework response | |||
| codes. Framework error response codes (see Section 8 of | codes. Framework error response codes (see Section 8 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]) are used when the request | [I-D.ietf-mediactrl-sip-control-framework]) are used when the request | |||
| or event notification is invalid; for example, a request is invalid | or event notification is invalid; for example, a request is invalid | |||
| XML (400), or not understood (500). | XML (400), or not understood (500). | |||
| The MS also operates as a Control Framework Client in sending event | The MS also operates as a Control Client in sending event | |||
| notification to the AS (Control Framework Server). Event | notification to the AS (Control Server). Event notifications | |||
| notifications (Section 4.2.5) are carried in CONTROL message bodies. | (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST | |||
| The AS MUST respond with a Control Framework 200 response. | respond with a Control Framework 200 response. | |||
| 3.3. Common XML Support | 3.3. Common XML Support | |||
| The Control Framework requires a Control Package definition to | The Control Framework requires a Control Package definition to | |||
| specify if the attributes for media dialog or conference references | specify if the attributes for media dialog or conference references | |||
| are required. | are required. | |||
| This package requires that the XML Schema in Section 17.1 of | This package requires that the XML Schema in Section 17.1 of | |||
| [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for | [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for | |||
| media dialogs and conferences. | media dialogs and conferences. | |||
| skipping to change at page 11, line 27 ¶ | skipping to change at page 11, line 29 ¶ | |||
| imports the definitions of these attributes from the framework | imports the definitions of these attributes from the framework | |||
| schema. | schema. | |||
| 3.4. CONTROL Message Body | 3.4. CONTROL Message Body | |||
| The Control Framework requires a Control Package to define the | The Control Framework requires a Control Package to define the | |||
| control body that can be contained within a CONTROL command request | control body that can be contained within a CONTROL command request | |||
| and to indicate the location of detailed syntax definitions and | and to indicate the location of detailed syntax definitions and | |||
| semantics for the appropriate body types. | semantics for the appropriate body types. | |||
| When operating as Control Framework Server, the MS receives CONTROL | When operating as Control Server, the MS receives CONTROL messages | |||
| messages body containing an <mscivr> element with either a dialog | body with the MIME media type defined in Section 8.3 and containing | |||
| management or audit request child element. | an <mscivr> element (Section 4.1) with either a dialog management or | |||
| audit request child element. | ||||
| The following dialog management request elements are carried in | The following dialog management request elements are carried in | |||
| CONTROL message bodies to MS: <dialogprepare> (Section 4.2.1), | CONTROL message bodies to MS: <dialogprepare> (Section 4.2.1), | |||
| <dialogstart> (Section 4.2.2) and <dialogterminate> | <dialogstart> (Section 4.2.2) and <dialogterminate> | |||
| (Section 4.2.3)elements. | (Section 4.2.3)elements. | |||
| The <audit> request element (Section 4.4.1) is also carried in | The <audit> request element (Section 4.4.1) is also carried in | |||
| CONTROL message bodies. | CONTROL message bodies. | |||
| When operating as Control Framework Client, the MS sends CONTROL | When operating as Control Client, the MS sends CONTROL messages with | |||
| messages with a body containing a notification <event> element | the MIME media type defined in Section 8.3 and a body containing an | |||
| (Section 4.2.5). | <mscivr> element (Section 4.1) with a notification <event> child | |||
| 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 | should indicate the location of detailed syntax definitions and | |||
| semantics for the appropriate body types. | semantics for the appropriate body types. | |||
| When operating as Control Framework Server, the MS sends REPORT | When operating as Control Server, the MS sends REPORT bodies with the | |||
| bodies containing a <mscivr> element with a response child element. | MIME media type defined in Section 8.3 and containing a <mscivr> | |||
| element (Section 4.1) with a response child element. The response | ||||
| The response element for dialog management requests is a <response> | element for dialog management requests is a <response> element | |||
| element (Section 4.2.4). The response element for an audit request | (Section 4.2.4). The response element for an audit request is a | |||
| is a <auditresponse> element (Section 4.4.2). | <auditresponse> element (Section 4.4.2). | |||
| 3.6. Audit | 3.6. Audit | |||
| The Control Framework encourages Control Packages to specify whether | The Control Framework encourages Control Packages to specify whether | |||
| auditing is available, how it is triggered as well as the query/ | auditing is available, how it is triggered as well as the query/ | |||
| response formats. | response formats. | |||
| This Control Packages supports auditing of package capabilities and | This Control Packages supports auditing of package capabilities and | |||
| dialogs on the MS. An audit request is carried in a CONTROL messages | dialogs on the MS. An audit request is carried in a CONTROL message | |||
| and an audit response in a REPORT message (or a 200 response to the | (see Section 3.4) and an audit response in a REPORT message (or a 200 | |||
| CONTROL if it can execute the audit in time). | response to the CONTROL if it can execute the audit in time) (see | |||
| Section 3.5). | ||||
| The syntax and semantics of audit request and response elements is | The syntax and semantics of audit request and response elements is | |||
| defined in Section 4.4. | defined in Section 4.4. | |||
| 3.7. Examples | ||||
| The Control Framework recommends Control Packages to provide a range | ||||
| of message flows that represent common flows using the package and | ||||
| this framework document. | ||||
| This Control Package provides examples of such message flows in | ||||
| Section 6. | ||||
| 4. Element Definitions | 4. Element Definitions | |||
| This section defines the XML elements for this package. The elements | This section defines the XML elements for this package. The elements | |||
| 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 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). The XML schema supports extensibility by allowing | (Section 5). Since XML Schema is unable to support some types of | |||
| attributes and elements from other namespaces. Implementations MAY | syntactic constraints (such as attribute and element co-occurrence), | |||
| support attributes and elements from other (foreign) namespaces. If | some elements in this package specify additional syntactic | |||
| an MS implementation receives a <mscivr> element containing | constraints in their textual definition. If there is a difference in | |||
| attributes or elements from another namespace which it does not | ||||
| support, the MS MUST send a 426 response (Section 4.5). | ||||
| Attributes and elements from foreign namespaces are not described in | ||||
| this section. In all other cases where 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 | ||||
| elements from other namespaces. Implementations MAY support | ||||
| additional capabilities by means of attributes and elements from | ||||
| other (foreign) namespaces. Attributes and elements from foreign | ||||
| 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.1.1), <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). While this | |||
| package is agnostic to the URI schemes supported by the MS, it is | package is agnostic to the URI schemes supported by the MS, it is | |||
| RECOMMENDED that the MS support one or more schemes using | RECOMMENDED that the MS support one or more schemes using | |||
| communication protocols suitable 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 | |||
| skipping to change at page 14, line 31 ¶ | skipping to change at page 14, line 32 ¶ | |||
| <auditresponse> response to an audit request. See Section 4.4.2 | <auditresponse> response to an audit request. See Section 4.4.2 | |||
| 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 src="http://www.example.com/welcome.wav"/> | <media loc="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </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> | |||
| skipping to change at page 14, line 51 ¶ | skipping to change at page 15, line 4 ¶ | |||
| 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: | |||
| <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="d1"> | <event dialogid="d1"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <promptinfo termmode="completed"/> | <promptinfo termmode="completed"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 4.2. Dialog Management Elements | 4.2. Dialog Management Elements | |||
| This section defines the dialog management XML elements for this | This section defines the dialog management XML elements for this | |||
| control package. These elements are divided into requests, responses | control package. These elements are divided into requests, responses | |||
| and notifications. | and notifications. | |||
| Request elements are sent to the MS to request a specific dialog | Request elements are sent to the MS to request a specific dialog | |||
| operation to be executed. The following request elements are | operation to be executed. The following request elements are | |||
| defined: | defined: | |||
| <dialogprepare>: prepare a dialog for later execution | <dialogprepare>: prepare a dialog for later execution | |||
| <dialogstart>: start a (prepared) dialog on a connection or | <dialogstart>: start a (prepared) dialog on a connection or | |||
| conference | conference | |||
| <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). The | Responses are specified in a <response> element (Section 4.2.4) which | |||
| includes a mandatory attribute describing the status in terms of a | ||||
| 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, it is an error and the MS MUST indicate the error in the | operation, the request has failed and the MS MUST indicate the class | |||
| status code of the response. Both general error codes (e.g. syntax | of failure using an appropriate 4xx response code. Unless an error | |||
| errors such as missing elements or attributes) as well as request- | response code is mandated for a specific class of error within this | |||
| specific status codes (e.g. invalid connectionid) are defined in | section, implementations follow Section 4.5 in determining the | |||
| Section 4.5 | appropriate 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 16, line 46 ¶ | skipping to change at page 16, line 46 ¶ | |||
| | | || 200 response | | | | | | || 200 response | | | | |||
| | | || |/dialogexit | | | | | || |/dialogexit | | | |||
| | | || | notification | | | | | || | notification | | | |||
| | | || | | | | | | || | | | | |||
| | | || | | | | | | || | | | | |||
| | | vv | | | | | | vv | | | | |||
| | | /ERROR response +-----------+ | | | | | | /ERROR response +-----------+ | | | | |||
| | +---------------------->| |<----------+ /ERROR response| | | | +---------------------->| |<----------+ /ERROR response| | | |||
| +------------------------>|TERMINATED |<---------------------------+ | | +------------------------>|TERMINATED |<---------------------------+ | | |||
| <dialogterminate>/ | |<-----------------------------+ | <dialogterminate>/ | |<-----------------------------+ | |||
| 414 response +-----------+ <dialogterminate>/414 response | 410 response +-----------+ <dialogterminate>/410 response | |||
| Figure 1: Dialog Lifecycle | Figure 1: Dialog Lifecycle | |||
| The MS implementation MUST adhere to the dialog lifecycle shown in | The MS implementation MUST adhere to the dialog lifecycle shown in | |||
| Figure 1, where each dialog has the following states: | Figure 1, where each dialog has the following states: | |||
| IDLE: the dialog is uninitialized. | IDLE: the dialog is uninitialized. | |||
| PREPARING: the dialog is being prepared. The dialog is assigned a | PREPARING: the dialog is being prepared. The dialog is assigned a | |||
| valid dialog identifier (see below). If an error occurs the | valid dialog identifier (see below). If an error occurs the | |||
| dialog transitions to the TERMINATED state and the MS MUST send a | dialog transitions to the TERMINATED state and the MS MUST send a | |||
| response indicating the error type. If the dialog is terminated | response indicating the error. If the dialog is terminated before | |||
| before preparation is complete, the dialog transitions to the | preparation is complete, the dialog transitions to the TERMINATED | |||
| TERMINATED state and the MS MUST send a 414 response (Section 4.5) | state and the MS MUST send a 410 response (Section 4.5) for the | |||
| for the prepare request. | prepare request. | |||
| PREPARED: the dialog has been successfully prepared and the MS MUST | PREPARED: the dialog has been successfully prepared and the MS MUST | |||
| send a response indicating the prepare operation was successful. | send a 200 response indicating the prepare operation was | |||
| If the dialog is then terminated, the dialog transitions to the | successful. If the dialog is then terminated, the dialog | |||
| TERMINATED state. If the duration the dialog remains in the | transitions to the TERMINATED state. If the duration the dialog | |||
| PREPARED state exceeds the maximum preparation duration, the | remains in the PREPARED state exceeds the maximum preparation | |||
| dialog transitions to the TERMINATED state and the MS MUST send a | duration, the dialog transitions to the TERMINATED state and the | |||
| dialogexit notification with an error status code (Section 4.5). | MS MUST send a dialogexit notification with the appropriate error | |||
| A maximum preparation duration of 30s is RECOMMENDED. | status code (see Section 4.2.5.1). A maximum preparation duration | |||
| 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 type. If the dialog is terminated, | response indicating the error. If the dialog is terminated, the | |||
| the dialog transitions to the TERMINATED state and the MS MUST a | dialog transitions to the TERMINATED state and the MS MUST a 410 | |||
| 414 response (Section 4.5) for the start request. | 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 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 and the dialog transitions to the TERMINATED state. | event (see Section 4.2.5.1) and the dialog transitions to the | |||
| TERMINATED state. | ||||
| TERMINATED: the dialog is terminated and its dialog identifier is no | TERMINATED: the dialog is terminated and its dialog identifier is no | |||
| longer valid. Dialog notifications MUST NOT be sent for this | longer valid. Dialog notifications MUST NOT be sent for this | |||
| dialog. | dialog. | |||
| Each dialog has a valid identifier until it transitions to a | Each dialog has a valid identifier until it transitions to a | |||
| TERMINATED state. The dialog identifier is assigned by the MS unless | TERMINATED state. The dialog identifier is assigned by the MS unless | |||
| the <dialogprepare> or <dialogstart> request already specifies a | the <dialogprepare> or <dialogstart> request already specifies a | |||
| identifier (dialogid) which is not associated with any other dialog | identifier (dialogid) which is not associated with any other dialog | |||
| on the MS. Once a dialog is in a TERMINATED state, its dialog | on the MS. Once a dialog is in a TERMINATED state, its dialog | |||
| 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, the MS MUST | dialog identifier already associated with another dialog on the MS, | |||
| send a response with a 401 status code (Section 4.5) and the same | the MS MUST send a response with a 405 status code (see Section 4.5) | |||
| dialogid as in the request. The MS MUST specify a dialog identifier | and the same dialogid as in the request. The MS MUST specify a | |||
| in notifications associated with the dialog. The MS MUST specify a | dialog identifier in notifications associated with the dialog. The | |||
| dialog identifier in responses unless it is a response to a | MS MUST specify a dialog identifier in responses unless it is a | |||
| <dialogterminate> request without any dialog identifier specified. | response to a <dialogterminate> request without a valid dialog | |||
| 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 46 ¶ | skipping to change at page 18, line 50 ¶ | |||
| 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 unknown or unsupported, the MS MUST send a <response> | scheme is unsupported, the MS MUST send a <response> with a 420 | |||
| with a 415 status code (Section 4.5). If the document cannot be | status code (Section 4.5). If the document cannot be retrieved | |||
| retrieved, the MS MUST send a <response> with a 410 status code. | within the timeout interval, the MS MUST send a <response> with a | |||
| If the document contains a type of dialog which the MS does not | 409 status code. If the document contains a type of dialog | |||
| supported, the MS MUST send a <response> with a 409 status code. | language which the MS does not supported, the MS MUST send a | |||
| The attribute is optional. There is no default value. | <response> with a 421 status code. The attribute is optional. | |||
| There is no default 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). The MS MAY use the value to assist the remote | |||
| source in selecting the appropriate resource type (e.g. with HTTP | source in selecting the appropriate resource type (e.g. with HTTP | |||
| 'accept' header) and to determine how the document is to be | 'accept' header) and to determine how the document is to be | |||
| processed if the protocol does not provide an authoritative MIME | processed if the protocol does not provide an authoritative MIME | |||
| media type for the returned resource. The attribute is optional. | media type for the returned resource. The attribute is optional. | |||
| fetchtimeout: the maximum interval to wait when fetching an external | fetchtimeout: the maximum timeout interval to wait when fetching an | |||
| dialog document. A valid value is a Time Designation (see | external dialog document. A valid value is a Time Designation | |||
| Section 4.6.7). If the external document cannot be fetched within | (see Section 4.6.7). The attribute is optional. The default | |||
| the maximum interval, the MS MUST send a <response> with a 417 | value is 30s. | |||
| status code (Section 4.5). The attribute is optional. The | ||||
| default 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 MUST | |||
| send a <response> with a 401 status code (Section 4.5). If this | send a <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 418 status code | specified and the MS MUST send a <response> with a 400 status code | |||
| (Section 4.5). The type and fetchtimeout attributes are only | (see Section 4.5). The type and fetchtimeout attributes are only | |||
| relevant when a dialog is specified as an external document. | relevant 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 src="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 | |||
| skipping to change at page 20, line 31 ¶ | skipping to change at page 20, line 42 ¶ | |||
| 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 | |||
| unknown or unsupported, the MS MUST send a <response> with a 415 | unsupported, the MS MUST send a <response> with a 420 status code | |||
| status code (Section 4.5). If the document cannot be retrieved, | (Section 4.5). If the document cannot be retrieved with the | |||
| the MS MUST send a <response> with a 410 status code. If the | timeout interval, the MS MUST send a <response> with a 409 status | |||
| document contains a type of dialog which the MS does not | code. If the document contains a type of dialog language which | |||
| supported, the MS MUST send a <response> with a 409 status code. | the MS does not supported, the MS MUST send a <response> with a | |||
| The attribute is optional. There is no default value. | 421 status code. The attribute is optional. There is no default | |||
| 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). The MS MAY use the value to assist the remote | |||
| source in selecting the appropriate resource type (e.g. with HTTP | source in selecting the appropriate resource type (e.g. with HTTP | |||
| 'accept' header) and to determine how the document is to be | 'accept' header) and to determine how the document is to be | |||
| processed if the protocol does not provide an authoritative MIME | processed if the protocol does not provide an authoritative MIME | |||
| media type for the returned resource. The attribute is optional. | media type for the returned resource. The attribute is optional. | |||
| fetchtimeout: the maximum interval to wait when fetching an external | fetchtimeout: the maximum timeout interval to wait when fetching an | |||
| dialog document. A valid value is a Time Designation (see | external dialog document. A valid value is a Time Designation | |||
| Section 4.6.7). If the external document cannot be fetched within | (see Section 4.6.7). The attribute is optional. The default | |||
| the maximum interval, the MS MUST send a <response> with a 417 | value is 30s. | |||
| status code (Section 4.5). The attribute is optional. The | ||||
| default 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 MUST | |||
| send a <response> with a 401 status code (Section 4.5). If | send a <response> with a 405 status code (Section 4.5). If | |||
| neither the dialogid attribute nor the prepareddialogid attribute | neither the dialogid attribute nor the prepareddialogid attribute | |||
| is specified, the MS MUST create a unique name for the dialog (see | is 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 | |||
| skipping to change at page 21, line 33 ¶ | skipping to change at page 21, line 46 ¶ | |||
| 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 418 status code (Section 4.5). | MUST send 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 MUST send a <response> with | |||
| a 403 status code (Section 4.5). If an invalid conferenceid is | a 407 status code (Section 4.5). If an invalid conferenceid is | |||
| specified, the MS MUST send a <response> with a 404 status code. | specified, the MS MUST send 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 cannot be understood or processed by the | optional. If a parameter is not supported by the MS for the | |||
| MS for the external dialog language, the MS MUST send a <response> | external dialog language, the MS MUST send a <response> with a 427 | |||
| with a 425 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 may 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 418 status code | and the MS MUST send a <response> with a 400 status code | |||
| (Section 4.5). If the prepareddialogid and dialogid attributes are | (Section 4.5). If the prepareddialogid and dialogid attributes are | |||
| specified, it is also a syntax error and the MS MUST send a | specified, it is also a syntax error and the MS MUST send a | |||
| <response> with a 418 status code. The type and fetchtimeout | <response> with a 400 status code. The type and fetchtimeout | |||
| attributes are only relevant when a dialog is specified as an | attributes are only relevant when a 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, it is | |||
| RECOMMENDED that the configuration is explicitly specified using | RECOMMENDED that the configuration is explicitly specified using | |||
| <stream> elements. If no <stream> elements are specified, then the | <stream> elements. If no <stream> elements are specified, then the | |||
| default media configuration is that defined for the connection or | default media configuration 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]) or | (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) then | |||
| (d) if the media stream configuration is not supported by the MS, | the MS MUST send a <response> with a 411 status code (Section 4.5). | |||
| then the MS MUST send a <response> with a 413 status code | If the media stream configuration is not supported by the MS, then | |||
| (Section 4.5). | the MS MUST send a <response> with a 428 status code (Section 4.5). | |||
| This specification allows multiple, simultaneous dialogs to be | This specification allows multiple, simultaneous dialogs to be | |||
| started on the same connection or conference. It is RECOMMENDED the | started on the same connection or conference. It is RECOMMENDED the | |||
| MS support the following cases: | MS support the following cases: | |||
| 1. different media streams used in different dialogs; e.g. audio | 1. different media streams used in different dialogs; e.g. audio | |||
| only on one dialog and video only on another dialog | only on one dialog and video only on another dialog | |||
| 2. the same media stream received by different dialogs | 2. the same media stream received by different dialogs | |||
| 3. use of implicit mixing (where appropriate) when the same type of | 3. use of implicit mixing (where appropriate) when the same type of | |||
| media stream is sent from different dialogs | media stream is sent from different dialogs | |||
| If the MS does not support starting another dialog on the same | If the MS does not support starting another dialog on the same | |||
| connection or conference it MUST report an error when starting that | connection or conference it MUST send a <response> with a 432 status | |||
| dialog. | code (Section 4.5) when it receives the second 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 src="http://www.example.com/getpin.wav"/> | <media loc="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| <subscribe> | <subscribe> | |||
| <dmtfsub matchmode="all"/> | <dmtfsub matchmode="all"/> | |||
| </subscribe> | </subscribe> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In this example, the dialog is started on a conference where only | In this example, the dialog is started on a conference where only | |||
| skipping to change at page 23, line 43 ¶ | skipping to change at page 24, line 4 ¶ | |||
| 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 a <dtmfsub> subscription. It MAY support other | |||
| dialog subscriptions. If the MS does not support a requested | dialog subscriptions (using elements and attributes from a foreign | |||
| subscription, it MUST send a <response> with a 412 status code | namespace). | |||
| (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 24, line 40 ¶ | skipping to change at page 25, line 9 ¶ | |||
| DTMF notifications are delivered in the <dtmfnotify> element | DTMF notifications are delivered in the <dtmfnotify> element | |||
| (Section 4.2.5.2). | (Section 4.2.5.2). | |||
| For example, the AS wishes to subscribe to DTMF key press matching a | For example, the AS wishes to subscribe to DTMF key press matching a | |||
| runtime control: | runtime control: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart dialogid="d3" connectionid="connection1"> | <dialogstart dialogid="d3" connectionid="connection1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/getpin.wav"/> | <media loc="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey="2" rewkey="3"/> | <control ffkey="2" rewkey="3"/> | |||
| </dialog> | </dialog> | |||
| <subscribe> | <subscribe> | |||
| <dmtfnotify matchmode="control"/> | <dmtfnotify matchmode="control"/> | |||
| </subscribe> | </subscribe> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| Each time a '2' or '3' DTMF input is received, the MS sends a | Each time a '2' or '3' DTMF input is received, the MS sends a | |||
| skipping to change at page 25, line 31 ¶ | skipping to change at page 25, line 48 ¶ | |||
| 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. | |||
| The <stream> element has the following child element: | The <stream> element has the following sequence of child elements: | |||
| <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 | ||||
| stream in the conference mix (Section 4.2.2.2.2). The element is | ||||
| 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> | have the value of "video", then the MS MUST ignored the <region> and | |||
| element. | <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> | |||
| <record maxtime="384000s"/> | <record maxtime="384000s"/> | |||
| skipping to change at page 26, line 24 ¶ | skipping to change at page 26, line 41 ¶ | |||
| </mscivr> | </mscivr> | |||
| Using the <region> element, the dialog can be started on a conference | Using the <region> element, the dialog can be started on a conference | |||
| mixer so that the video output from the dialog is directed to a | mixer so that the video output from the dialog is directed to a | |||
| specific region within a video layout. For example: | specific region within a video layout. For example: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart conferenceid="conference1"> | <dialogstart conferenceid="conference1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/presentation.3gp"/> | <media loc="http://www.example.com/presentation.3gp"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| <stream media="video" direction="sendonly"> | <stream media="video" direction="sendonly"> | |||
| <region>r1</region> | <region>r1</region> | |||
| </stream> | </stream> | |||
| </mscivr> | </mscivr> | |||
| 4.2.2.2.1. <region> | 4.2.2.2.1. <region> | |||
| The <region> element is used to specify the region within a video | The <region> element is used to specify the region within a video | |||
| layout where a video media stream is displayed. | layout where a video media stream is displayed. | |||
| The <region> element has no attributes and its content model | The <region> element has no attributes and its content model | |||
| specifies the name of the region layout. | specifies the name of the region layout. | |||
| If the region name is invalid, then the MS MUST report a 416 status | If the region name is invalid, then the MS MUST report a 416 status | |||
| code (Section 4.5) in the response to the request element containing | code (Section 4.5) in the response to the request element containing | |||
| the <region> element. | the <region> element. | |||
| 4.2.2.2.2. <priority> | ||||
| The <priority> element is used to explicitly specify the priority of | ||||
| the dialog for presentation in a conference mix. | ||||
| The <priority> element has no attributes and its content model | ||||
| specifies a positive integer (see Section 4.6.5). The lower the | ||||
| 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. The MS MUST | dialogid: string identifying the dialog to terminate. If the | |||
| send a response with a 402 status code (Section 4.5) if the | specified dialog identifier is invalid, the MS MUST send a | |||
| specified dialog identifier is invalid. The attribute is | response 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 without report information. A value of false | notification (Section 4.2.5.1)without report information. A value | |||
| indicates that the dialog terminates after the current iteration | of false indicates that the dialog terminates after the current | |||
| and the MS MUST send a dialogexit notification with report | iteration and the MS MUST send a dialogexit notification with | |||
| information. The attribute is optional. The default value is | report information. The attribute is optional. The default value | |||
| false. | 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 26 ¶ | skipping to change at page 29, line 4 ¶ | |||
| 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. | |||
| For example, a response when a dialog was prepared successfully: | For example, a response when a dialog was prepared 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="d5"/> | <response status="200" dialogid="d5"/> | |||
| </mscivr> | </mscivr> | |||
| The response if dialog preparation failed due to an unsupported | The response if dialog preparation failed due to an unsupported | |||
| dialog language: | dialog language: | |||
| <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="409" dialogid="d5" | <response status="421" dialogid="d5" | |||
| reason="Unsupported dialog language: application/voicexml+xml"/> | reason="Unsupported dialog language: application/voicexml+xml"/> | |||
| </mscivr> | </mscivr> | |||
| In this example a <dialogterminate> request does not specify a | In this example a <dialogterminate> request does not specify a | |||
| dialogid: | dialogid: | |||
| <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/> | <dialogterminate/> | |||
| </mscivr> | </mscivr> | |||
| The response status indicates a 409 (attribute required) error status | The response status indicates a 400 (Syntax error) status code and | |||
| code and dialogid attribute has an empty string value: | dialogid attribute has an empty string value: | |||
| <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="408" dialogid="" | <response status="400" dialogid="" | |||
| reason="Attribute required: dialogid"/> | reason="Attribute required: dialogid"/> | |||
| </mscivr> | </mscivr> | |||
| 4.2.5. <event> | 4.2.5. <event> | |||
| When a dialog generates a notification event, the MS sends the event | When a dialog generates a notification event, the MS sends the event | |||
| using an <event> element. | using an <event> element. | |||
| The <event> element has the following attributes: | The <event> element has the following attributes: | |||
| skipping to change at page 30, line 30 ¶ | skipping to change at page 31, line 11 ¶ | |||
| For example, an active <dialog> exits normally the MS sends a | For example, an active <dialog> exits normally the MS sends a | |||
| dialogexit <event> reporting information: | dialogexit <event> reporting 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"> | |||
| <event dialogid="d6"/> | <event dialogid="d6"/> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <collectinfo dtmf="1234" termmode="match"/> | <collectinfo dtmf="1234" termmode="match"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | ||||
| 4.2.5.2. <dtmfnotify> | 4.2.5.2. <dtmfnotify> | |||
| The <dtmfnotify> element provide a notification of DTMF input | The <dtmfnotify> element provide a notification of DTMF input | |||
| received during the active dialog as requested by a <dtmfsub> | received during the active dialog as requested by a <dtmfsub> | |||
| subscription (Section 4.2.2.1). | subscription (Section 4.2.2.1). | |||
| The <dtmfnotify> element has the following attributes: | The <dtmfnotify> element has the following attributes: | |||
| matchmode: indicates the matching mode specified in the subscription | matchmode: indicates the matching mode specified in the subscription | |||
| skipping to change at page 33, line 46 ¶ | skipping to change at page 34, line 31 ¶ | |||
| <prompt>: <promptinfo> (see Section 4.3.2.1) with at least the | <prompt>: <promptinfo> (see Section 4.3.2.1) with at least the | |||
| termmode attribute specified. | termmode attribute specified. | |||
| <control>: <controlinfo> (see Section 4.3.2.2) if any runtime | <control>: <controlinfo> (see Section 4.3.2.2) if any runtime | |||
| controls are matched. | controls are matched. | |||
| <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 | |||
| recording, type and termmode attributes 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 may choose to support only 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 34, line 34 ¶ | skipping to change at page 35, line 22 ¶ | |||
| then there is no limit on the duration of the dialog. The | then there is no limit on the duration of the dialog. The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| The repeatDur attribute takes priority over the repeatCount attribute | The repeatDur attribute takes priority over the repeatCount attribute | |||
| in determining maximum duration of the dialog. See 'repeatCount' and | in determining maximum duration of the dialog. See 'repeatCount' and | |||
| 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further | 'repeatDur' in SMIL ([W3C.REC-SMIL2-20051213]) for further | |||
| information. In the situation where a dialog is repeated more than | information. In the situation where a dialog is repeated more than | |||
| once, only the results of operations in the last dialog iteration are | once, only the results of operations in the last dialog iteration are | |||
| reported. | reported. | |||
| The <dialog> element has the following sequence of child elements: | The <dialog> element has the following sequence of child elements (at | |||
| least one, any order): | ||||
| <prompt>: defines media resources to play in sequence (see | <prompt>: defines media resources to play in sequence (see | |||
| Section 4.3.1.1). The element is optional. | Section 4.3.1.1). The element is optional. | |||
| <control>: defines how DTMF is used for runtime controls (see | <control>: defines how DTMF is used for runtime controls (see | |||
| Section 4.3.1.2). The element is optional. | Section 4.3.1.2). The element is optional. | |||
| <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. | |||
| The MS MUST send a <response> with a 418 status code (Section 4.5) if | Although the behavior when both <collect> and <record> elements are | |||
| no child element is specified or a <control> element is specified but | specified in a request is not defined in this control package, the MS | |||
| not a <prompt> element. Although the behavior when both <collect> | MAY support this configuration. If the MS does not support this | |||
| and <record> elements are specified is not defined in this control | configuration, the MS MUST send a <response> with a 433 status code. | |||
| package, the MS MAY support this configuration. If the MS does not | ||||
| support this configuration, the MS MUST send a <response> with a 418 | ||||
| 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 36, line 7 ¶ | skipping to change at page 36, line 37 ¶ | |||
| increments the counter by one. If the value of the repeatCount | increments the counter by one. If the value of the repeatCount | |||
| attribute is greater than zero and the counter is equal to the | attribute is greater than zero and the counter is equal to the | |||
| value of the repeatCount attribute, then the MS terminates dialog | value of the repeatCount attribute, then the MS terminates dialog | |||
| execution and the sends a dialogexit (with a status of 1) | execution and the sends a dialogexit (with a status of 1) | |||
| reporting operation information collected in the last dialog | reporting operation information collected in the last dialog | |||
| execution cycle only. Otherwise, another dialog execution cycle | execution cycle only. Otherwise, another dialog execution cycle | |||
| is initiated. | is initiated. | |||
| 4.3.1.1. <prompt> | 4.3.1.1. <prompt> | |||
| The <prompt> element specifies a sequence of media resources to play. | The <prompt> element specifies a sequence of media resources to play | |||
| back in document order. | ||||
| A <prompt> element has the following attributes: | A <prompt> element has the following attributes: | |||
| xml:base: A string declaring the base URI from which relative URIs | xml:base: A string declaring the base URI from which relative URIs | |||
| in child elements are resolved prior to fetching. A valid value | in child elements are resolved prior to fetching. A valid value | |||
| is a URI (see Section 4.6.9). The attribute is optional. There | is a URI (see Section 4.6.9). The attribute is optional. There | |||
| is no default value. | is no default value. | |||
| bargein: Indicates whether user input stops prompt playback unless | bargein: Indicates whether user input stops prompt playback unless | |||
| the input is associated with a specified runtime <control> | the input is associated with a specified runtime <control> | |||
| operation (input matching control operations never interrupts | operation (input matching control operations never interrupts | |||
| prompt playback). A valid value is a boolean (see Section 4.6.1). | prompt playback). A valid value is a boolean (see Section 4.6.1). | |||
| A value of true indicates that bargein is permitted and prompt | A value of true indicates that bargein is permitted and prompt | |||
| playback is stopped. A value of false indicates that bargein is | playback is stopped. A value of false indicates that bargein is | |||
| not permitted: user input does not terminate prompt playback. The | not permitted: user input does not terminate prompt playback. The | |||
| attribute is optional. The default value is true. | attribute is optional. The default value is true. | |||
| The <prompt> element has the following child elements (any order, | The <prompt> element has the following child elements (at least one, | |||
| multiple occurrences of each element permitted): | any order, multiple occurrences of elements permitted): | |||
| <media>: media resource (see Section 4.3.1.1.1) to play. The | <media>: specifies a media resource (see Section 4.3.1.5) to play. | |||
| 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.2) 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.3) to | <dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to | |||
| play. The element is optional. | play. The element is optional. | |||
| If no child element is specified, then the MS MUST send a <response> | <par>: specifies media resources to play in parallel (see | |||
| with a 418 status code (Section 4.5). | Section 4.3.1.1.3). The element is optional. | |||
| If the MS does not support the configuration required for prompt | ||||
| playback to the output media streams, the MS MUST send 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. | ||||
| 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 each <media>, <variable> | 1. The MS initiates prompt playback playing its child elements | |||
| and <dtmf> in document order. | (<media>, <variable>, <dtmf> and <par>) one after another in | |||
| document order. | ||||
| 2. If any error (including fetching and rendering errors) occurs | 2. If any error (including fetching and rendering errors) occurs | |||
| during prompt execution, then the MS terminates playback and | during prompt execution, then the MS terminates playback and | |||
| reports its error status to the dialog container (see | reports its error status to the dialog container (see | |||
| Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | |||
| termmode attribute is set to stopped and any additional | termmode attribute is set to stopped and any additional | |||
| information is set. | information is set. | |||
| 3. If DTMF input is received and the value of the bargein attribute | 3. If DTMF input is received and the value of the bargein attribute | |||
| is true, then the MS terminates prompt playback and reports its | is true, then the MS terminates prompt playback and reports its | |||
| skipping to change at page 37, line 23 ¶ | skipping to change at page 38, line 11 ¶ | |||
| Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | |||
| termmode attribute is set to stopped and any additional | termmode attribute is set to stopped and any additional | |||
| information is set. | information is set. | |||
| 5. If prompt playback completes successfully, then the MS reports | 5. If prompt playback completes successfully, then the MS reports | |||
| its execution status to the dialog container (see Section 4.3) | its execution status to the dialog container (see Section 4.3) | |||
| with a <promptinfo> (see Section 4.3.2.1) where the termmode | with a <promptinfo> (see Section 4.3.2.1) where the termmode | |||
| attribute is set to completed and any additional information is | attribute is set to completed and any additional information is | |||
| set. | set. | |||
| 4.3.1.1.1. <media> | 4.3.1.1.1. <variable> | |||
| The <media> element specifies a media resource to play. | ||||
| A <media> element has the following attributes: | ||||
| src: specifies the location of the media resource. A valid value is | ||||
| a URI (see Section 4.6.9). If the URI scheme is unknown or | ||||
| unsupported, the MS MUST send a <response> with a 415 status code | ||||
| (Section 4.5). If the resource cannot be retrieved, the MS MUST | ||||
| send a <response> with a 410 status code. If the format of the | ||||
| media resource is not supported, the MS MUST send a <response> | ||||
| with a 419 status code. The attribute is mandatory. | ||||
| type: specifies the type of the media resource indicated in the | ||||
| 'src' attribute. The MS MAY use the value to assist the remote | ||||
| source in selecting the appropriate resource type (e.g. with HTTP | ||||
| 'accept' header) and to determine how the resource is to be | ||||
| processed if the protocol does not provide an authoritative MIME | ||||
| media type for the returned resource. The value may include | ||||
| additional parameters for guiding playback; for example, [RFC4281] | ||||
| defines a 'codec' parameter for 'bucket' media types like video/ | ||||
| 3gpp. A valid value is a MIME media type (see Section 4.6.10). | ||||
| The attribute is optional. There is no default value. | ||||
| fetchtimeout: the maximum interval to wait when fetching a media | ||||
| resource. A valid value is a Time Designation (see | ||||
| Section 4.6.7). If the resource cannot be fetched within the | ||||
| maximum interval, the MS MUST send a <response> with a 417 status | ||||
| code (Section 4.5). The attribute is optional. The default value | ||||
| is 30s. | ||||
| soundLevel: playback soundLevel (volume) for the media resource. A | ||||
| valid value is a percentage (see Section 4.6.4). The value | ||||
| indicates increase or decrease relative to the original recorded | ||||
| volume of the media. A value of 100% (the default) plays the | ||||
| media at its recorded volume, a value of 200% will play the media | ||||
| twice recorded volume, 50% at half its recorded volume, a value of | ||||
| 0% will play the media silently, and so on. See 'soundLevel' in | ||||
| SMIL ([W3C.REC-SMIL2-20051213]) for further information. The | ||||
| attribute is optional. The default value is 100%. | ||||
| clipBegin: offset from start of media resource to begin playing. A | ||||
| valid value is a Time Designation (see Section 4.6.7). The offset | ||||
| is measured in normal media playback time from the beginning of | ||||
| the media resource. If the clipBegin offset is after the end of | ||||
| media (or the clipEnd offset), no media is played. See | ||||
| 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further | ||||
| information. The attribute is optional. The default value is 0s. | ||||
| clipEnd: offset from start of media resource to end playing. A | ||||
| valid value is a Time Designation (see Section 4.6.7). The offset | ||||
| is measured in normal media playback time from the beginning 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 | ||||
| clipEnd, then no media is played. See 'clipEnd' in SMIL | ||||
| ([W3C.REC-SMIL2-20051213]) for further information. The attribute | ||||
| is optional. There is no default value. | ||||
| The <media> element has no children. | ||||
| 4.3.1.1.2. <variable> | ||||
| The <variable> element specifies variable announcements using | The <variable> element specifies variable announcements using | |||
| predefined media resources. Each variable has at least a type (e.g. | predefined media resources. Each variable has at least a type (e.g. | |||
| date) and a value (e.g. 2008-02-25). The value is rendered according | date) and a value (e.g. 2008-02-25). The value is rendered according | |||
| to the variable type (e.g. 25th February 2008) as well as other | to the variable type (e.g. 25th February 2008) as well as other | |||
| defined attributes. The precise mechanism for generating variable | defined attributes. The precise mechanism for generating variable | |||
| announcements (including the location of associated media resources) | announcements (including the location of associated media resources) | |||
| is implementation specific. | is implementation specific. | |||
| A <variable> element has the following attributes: | A <variable> element has the following attributes: | |||
| skipping to change at page 39, line 44 ¶ | skipping to change at page 39, line 18 ¶ | |||
| type=digits Supported formats: "gen" (general digit string), "crn" | type=digits Supported formats: "gen" (general digit string), "crn" | |||
| (cardinal), "ord" (ordinal) | (cardinal), "ord" (ordinal) | |||
| 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 may map the <variable> into one or more audio media | |||
| resources. | resources. | |||
| If a <variable> element configuration is not supported by the MS, the | If a <variable> element configuration is not supported by the MS, the | |||
| MS MUST send a <response> with a 421 status code (Section 4.5). | 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 may 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 src="nfs://voicebase/en/male/25th.wav"/> | <media loc="nfs://voicebase/en/male/25th.wav"/> | |||
| <media src="nfs://voicebase/en/male/of.wav"/> | <media loc="nfs://voicebase/en/male/of.wav"/> | |||
| <media src="nfs://voicebase/en/male/february.wav"/> | <media loc="nfs://voicebase/en/male/february.wav"/> | |||
| <media src="nfs://voicebase/en/male/2000.wav"/> | <media loc="nfs://voicebase/en/male/2000.wav"/> | |||
| <media src="nfs://voicebase/en/male/and.wav"/> | <media loc="nfs://voicebase/en/male/and.wav"/> | |||
| <media src="nfs://voicebase/en/male/8.wav"/> | <media loc="nfs://voicebase/en/male/8.wav"/> | |||
| 4.3.1.1.3. <dtmf> | 4.3.1.1.2. <dtmf> | |||
| The <dtmf> element specifies a sequence of DTMF tones for output. | The <dtmf> element specifies a sequence of DTMF tones for output. | |||
| DTMF tones could be generated using <media> resources where the | DTMF tones could be generated using <media> resources where the | |||
| output is transported as RTP audio packets. However, <media> | output is transported as RTP audio packets. However, <media> | |||
| resources are not sufficient for cases where DTMF tones are to be | resources are not sufficient for cases where DTMF tones are to be | |||
| transported as DTMF RTP ([RFC4733]) or in event packages. | transported as DTMF RTP ([RFC4733]) or in event packages. | |||
| A <dtmf> element has the following attributes: | A <dtmf> element has the following attributes: | |||
| skipping to change at page 40, line 51 ¶ | skipping to change at page 40, line 27 ¶ | |||
| 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). Implementations may round the value if they | |||
| only support discrete durations. The attribute is optional. The | only support 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 MUST send | |||
| a <response> with a 422 status code (Section 4.5). | a <response> with a 426 status code (Section 4.5). | |||
| 4.3.1.1.3. <par> | ||||
| The <par> element allows media resources to be played in parallel. | ||||
| Each of its child elements specify a media resource (or a sequence of | ||||
| media resources using the <seq> element). When playback of the <par> | ||||
| element is initiated, the MS begins playback of all its child | ||||
| elements at the same time. This element is modeled after the <par> | ||||
| element in SMIL ([W3C.REC-SMIL2-20051213]). | ||||
| The <par> element has the following attributes: | ||||
| endsync: indicates when playback of the element is complete. Valid | ||||
| values are: "first" - indicates that the element is complete when | ||||
| any child element reports that it is complete; "last" - indicates | ||||
| it is complete when every child elements are complete. The | ||||
| attribute is optional. The default value is "last". | ||||
| If the value is "first", then playback of other child element is | ||||
| stopped when one child element reports it is complete. | ||||
| The <par> element has the following child elements (at least one, any | ||||
| order, multiple occurrences of each element permitted): | ||||
| <seq>: specifies a sequence of media resources to play in a parallel | ||||
| with other <par> child elements (see Section 4.3.1.1.3.1). The | ||||
| element is optional. | ||||
| <media>: specifies a media resource (see Section 4.3.1.5) to play. | ||||
| The element is optional. | ||||
| <variable>: specifies a variable media announcement (see | ||||
| 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 | ||||
| play. The element is optional. | ||||
| It is RECOMMENDED that the MS implementation at least supports | ||||
| playback different media (e.g. audio and video) in parallel where | ||||
| 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 | ||||
| playing parallel. For example, pause and resume controls cause all | ||||
| child elements to be paused and resumed respectively. | ||||
| If the <par> element is stopped by the prompt container (e.g. bargein | ||||
| or dialog termination), then playback of all child elements is | ||||
| stopped. The playback duration (Section 4.3.2.1) reported for the | ||||
| <par> element is the duration of parallel playback, not the | ||||
| cumulative duration of each child element played in parallel. | ||||
| For example, a request to playback audio and video media in parallel: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="c1"> | ||||
| <dialog> | ||||
| <prompt> | ||||
| <par> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/media/comments.wav"/> | ||||
| <media type="video/3gpp;codecs='s263'" | ||||
| loc="http://www.example.com/media/camera.3gp"/ | ||||
| </par> | ||||
| </prompt> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| When the <prompt> element is executed, it begins playback of its | ||||
| child element in document order sequence. In this case, there is | ||||
| only one child element, a <par> element itself containing audio and | ||||
| video <media> child element. Consequently playback of both audio and | ||||
| video media resources is initiated at the same time. Since the | ||||
| endsync attribute is not specified, the default value "last" applies. | ||||
| The <par> element playback is complete when the media resource with | ||||
| the longest duration is complete. | ||||
| 4.3.1.1.3.1. <seq> | ||||
| The <seq> element specifies media resources to be played back in | ||||
| sequence. This allows a sequence of media resources to be played at | ||||
| the same time as other children of a <par> element are played in | ||||
| parallel. For example, a sequence of audio resources while a video | ||||
| resource is played in parallel. This element is modeled after the | ||||
| <seq> element in SMIL ([W3C.REC-SMIL2-20051213]). | ||||
| The <seq> element has no attributes. | ||||
| The <seq> element has the following child elements (at least one, any | ||||
| order, multiple occurrences of each element permitted): | ||||
| <media>: specifies a media resource (see Section 4.3.1.5) to play. | ||||
| The element is optional. | ||||
| <variable>: specifies a variable media announcement (see | ||||
| 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 | ||||
| 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 | ||||
| the sequence are complete. If the <seq> element is stopped by the | ||||
| <par> container, then playback of the current child element is | ||||
| stopped (remaining child elements in the sequence are not played). | ||||
| For example, a request to play a sequence of audio resources in | ||||
| parallel with a video media: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="c1"> | ||||
| <dialog> | ||||
| <prompt> | ||||
| <par endsync="first"> | ||||
| <seq> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/media/date.wav"/> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/media/intro.wav"/> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/media/main.wav"/> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/media/end.wav"/> | ||||
| </seq> | ||||
| <media type="video/3gpp;codecs='s263'" | ||||
| loc="rtsp://www.example.com/media/camera.3gp"/ | ||||
| </par> | ||||
| </prompt> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| When the <prompt> element is executed, it begins playback of the | ||||
| <par> element containing a <seq> element and a video <media> element. | ||||
| The <seq> element itself contains a sequence of audio <media> | ||||
| elements. Consequently playback of the video media resource is | ||||
| initiated at the same time as playback of the sequence of the audio | ||||
| media resources is initiated. Each audio resource is played back | ||||
| after the previous one completes. Since the endsync attribute is set | ||||
| to "first", the <par> element playback is complete when either all | ||||
| the audio resources in <seq> have been played to completion or the | ||||
| video <media> is complete, whichever occurs first. | ||||
| 4.3.1.2. <control> | 4.3.1.2. <control> | |||
| The <control> element defines how DTMF input is mapped to runtime | The <control> element defines how DTMF input is mapped to runtime | |||
| controls, including prompt playback controls. | controls, including prompt playback controls. | |||
| DTMF input matching these controls MUST NOT cause prompt playback to | DTMF input matching these controls MUST NOT cause prompt playback to | |||
| interrupted (i.e. no prompt bargein), but causes the appropriate | interrupted (i.e. no prompt bargein), but causes the appropriate | |||
| operation to be applied; for examples, speeding up prompt playback. | operation to be applied; for examples, speeding up prompt playback. | |||
| skipping to change at page 43, line 5 ¶ | 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 423 status code (Section 4.5). | MUST send 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 DTMF | 2. Runtime controls are active only during prompt playback (if no | |||
| input matches any specified keys (for example the ffkey), then | <prompt> element is specified, then runtime controls are | |||
| the appropriate operation is applied immediately. If a seek | ignored). If DTMF input matches any specified keys (for example | |||
| operation (ffkey, rwkey) attempts to go beyond the beginning or | the ffkey), then the appropriate operation is applied | |||
| end of the prompt queue, then it is automatically truncated to | immediately. If a seek operation (ffkey, rwkey) attempts to go | |||
| the prompt beginning or end respectively. If the pause operation | beyond the beginning or end of the prompt queue, then it is | |||
| attempts to pause output when it is already paused, then the | automatically truncated to the prompt beginning or end | |||
| operation is ignored. If the resume operation attempts to resume | respectively. If the pause operation attempts to pause output | |||
| when the prompts are not paused, then the operation is ignored. | when it is already paused, then the operation is ignored. If the | |||
| If a volume operations attempts to go beyond the minimum or | resume operation attempts to resume when the prompts are not | |||
| maximum volume supported by the platform, then the operation is | paused, then the operation is ignored. If a volume operations | |||
| ignored. | attempts to go beyond the minimum or maximum volume supported by | |||
| the platform, then the operation is ignored. | ||||
| 3. If DTMF control subscription has been specified for the dialog, | 3. If DTMF control subscription has been specified for the dialog, | |||
| then each DTMF match of a control operation is reported in a | then each DTMF match of a control operation is reported in a | |||
| <dtmfnotify> notification event (Section 4.2.5.2). | <dtmfnotify> notification event (Section 4.2.5.2). | |||
| 4. When the dialog exits, all control matches are reported in a | 4. When the dialog exits, all control matches are reported in a | |||
| <controlinfo> element (Section 4.3.2.2). | <controlinfo> element (Section 4.3.2.2). | |||
| 4.3.1.3. <collect> | 4.3.1.3. <collect> | |||
| skipping to change at page 45, line 48 ¶ | 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 | |||
| unknown or unsupported, the MS MUST send a <response> with a 415 | unsupported, the MS MUST send a <response> with a 420 status code | |||
| status code (Section 4.5). If the resource cannot be retrieved, | (Section 4.5). If the resource cannot be retrieved within the | |||
| the MS MUST send a <response> with a 410 status code. If the | timeout interval, the MS MUST send a <response> with a 409 status | |||
| grammar format is not supported, the MS MUST send a <response> | code. If the grammar format is not supported, the MS MUST send a | |||
| with a 420 status code. The attribute is optional. There is no | <response> with a 424 status code. The attribute is optional. | |||
| 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. The MS MAY use the value to | |||
| assist the remote source in selecting the appropriate resource | assist the remote source in selecting the appropriate resource | |||
| type (e.g. with HTTP 'accept' header) and to determine how the | type (e.g. with HTTP 'accept' header) and to determine how the | |||
| document is processed if the protocol does not provide an | document is processed if the protocol does not provide an | |||
| authoritative MIME media type for the returned resource. A valid | authoritative MIME media type for the returned resource. A valid | |||
| value is a MIME media type (see Section 4.6.10). 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). If the resource cannot be fetched within the | Section 4.6.7). The attribute is optional. The default value is | |||
| maximum interval, the MS MUST send a <response> with a 417 status | 30s. | |||
| code (Section 4.5). The attribute is optional. The default value | ||||
| is 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 420 status code (Section 4.5). | MS MUST send 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 47, line 49 ¶ | skipping to change at page 50, line 12 ¶ | |||
| The same grammar could also be referenced externally (and take | The same grammar could also be referenced externally (and take | |||
| advantage of HTTP caching): | advantage of HTTP caching): | |||
| <collect cleardigitbuffer="false" timeout="20s"> | <collect cleardigitbuffer="false" timeout="20s"> | |||
| <grammar type=""application/srgs+xml" | <grammar type=""application/srgs+xml" | |||
| src="http://example.org/pin.grxml"/> | src="http://example.org/pin.grxml"/> | |||
| </collect> | </collect> | |||
| 4.3.1.4. <record> | 4.3.1.4. <record> | |||
| The <record> element defines 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: | |||
| dest: specifies the location where recorded data is to be stored. | ||||
| The MS MUST have uploaded the recorded data to this location as | ||||
| soon as possible after recording is complete. A valid value is a | ||||
| URI (see Section 4.6.9). If the URI scheme is unknown or | ||||
| unsupported, the MS MUST send a <response> with a 415 status code | ||||
| (Section 4.5). If The attribute is optional. The MS SHOULD | ||||
| support the inclusion of authentication information in the URI if | ||||
| the URI scheme supports it (e.g. basic access authentication in | ||||
| HTTP). The MS MAY support more advanced authentication | ||||
| mechanisms. If the dest attribute not specified, the MS MUST | ||||
| provide a local recording location (reporting the local URI in the | ||||
| recording attribute of in <recordinfo> Section 4.3.2.4); the | ||||
| recording MUST be available from this location until the | ||||
| connection or conference associated with the dialog on the MS | ||||
| terminates. | ||||
| type: specifies the type of the recording format. The type value | ||||
| may include additional parameters for guiding recording; for | ||||
| example, [RFC4281] defines a 'codec' parameter for 'bucket' media | ||||
| types like video/3gpp. A valid value is a MIME media type (see | ||||
| Section 4.6.10). If the specified recording format is not | ||||
| supported, the MS MUST send a <response> with a 424 status code | ||||
| (Section 4.5). The attribute is optional. There is no default | ||||
| value (recording format is MS implementation-dependent if a value | ||||
| is not specified). | ||||
| 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 can be used to | |||
| initiate the recording operation. A valid value is a boolean (see | initiate the recording operation. A valid value is a boolean (see | |||
| Section 4.6.1). A value of true indicates recording may be | Section 4.6.1). A value of true indicates the MS MAY initiate | |||
| initiated using voice activity detection. A value of false | recording using voice activity detection. A value of false | |||
| indicates that recording must not be initiated using voice | indicates that the MS MUST NOT initiate recording using voice | |||
| activity detection. The attribute is optional. The default value | activity detection. The attribute is optional. The default value | |||
| is true. | is true. | |||
| vadfinal: Control whether voice activity detection can be used to | vadfinal: Control whether voice activity detection can be 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 recording may be | (see Section 4.6.1). A value of true indicates the MS MAY | |||
| terminated using voice activity detection. A value of false | terminate recording using voice activity detection. A value of | |||
| indicates that recording must not be terminated using voice | false indicates that the MS MUST NOT terminate recording using | |||
| activity detection. The attribute is optional. The default value | voice activity detection. The attribute is optional. The default | |||
| is true. | value is true. | |||
| 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 | |||
| skipping to change at page 49, line 28 ¶ | skipping to change at page 51, line 12 ¶ | |||
| 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 end | |||
| of speech. This interval is not part of the recording itself. | of speech. This interval is not part of the recording itself. | |||
| This parameter is ignored if the vadfinal attribute has the value | This parameter is ignored if the vadfinal attribute has the value | |||
| false. A valid value is a Time Designation (see Section 4.6.7). | false. A valid value is a Time Designation (see Section 4.6.7). | |||
| The attribute is optional. The default value is 5s. | 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 should be appended or not to | |||
| the recording location if a resource already exists. A valid | a recording location if a resource already exists. A valid value | |||
| value is a boolean (see Section 4.6.1). A value of true indicates | is a boolean (see Section 4.6.1). A value of true indicates that | |||
| that recorded data is appended to the existing resource at the | recorded data is appended to the existing resource at a recording | |||
| recording location. A value of false indicates that recorded data | location. A value of false indicates that recorded data is to | |||
| is to overwrite the existing resource. The attribute is optional. | overwrite the existing resource. The attribute is optional. The | |||
| The default value is false. | default value is false. | |||
| The <record> element has no child elements. | The <record> element has the following child element (0 or more | |||
| occurrences): | ||||
| Note that an MS MAY support uploading recorded data to the recording | <media>: specifies the location and type of the media resource for | |||
| location at the same time the recording operation takes place. Such | uploading recorded data (see Section 4.3.1.5). The MS MUST have | |||
| uploaded the recorded data to this resource as soon as possible | ||||
| after recording is complete. The element is optional. | ||||
| If multiple <media> elements are specified, then media input is to be | ||||
| recorded in parallel to multiple resource locations. | ||||
| If no <media> child element is specified, the MS MUST provide a | ||||
| recording location where the recording format is implementation- | ||||
| specific. The recording location and format are reported in | ||||
| <recordinfo> (Section 4.3.2.4) when the dialog terminates. The | ||||
| recording MUST be available from this location until the connection | ||||
| or conference associated with the dialog on the MS terminates. | ||||
| If the MS does not support the configuration required for recording | ||||
| from the input media streams to one or more <media> elements, the MS | ||||
| MUST send a <response> with a 423 status code (Section 4.5). It is | ||||
| RECOMMENDED that the MS implementation at least supports recording | ||||
| 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 | ||||
| locations at the same time the recording operation takes place. Such | ||||
| implementations should be aware of the requirements of certain | implementations should 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 | |||
| skipping to change at page 50, line 32 ¶ | skipping to change at page 52, line 40 ¶ | |||
| recording operation is initiated when voice activity is detected. | recording operation is initiated when voice activity is detected. | |||
| 6. When the recording operation is initiated, a timer is started for | 6. When the recording operation is initiated, a timer is started for | |||
| the value of the maxtime attribute (maximum duration of the | the value of the maxtime attribute (maximum duration of the | |||
| recording). If the timer expires before the recording operation | recording). If the timer expires before the recording operation | |||
| is complete, then the MS terminates recording execution and | is complete, then the MS terminates recording execution and | |||
| reports the execution status to the dialog container with | reports the execution status to the dialog container with | |||
| <recordinfo> (see Section 4.3.2.4) where the termmode attribute | <recordinfo> (see Section 4.3.2.4) where the termmode attribute | |||
| set to maxtime. | set to maxtime. | |||
| 7. During the record operation user media input is recording in the | 7. During the record operation input media streams are recording to | |||
| format specified by the value of the type attribute. If the dest | a location and format specified in one or more <media> child | |||
| attribute is specified, then recorded input is sent to that | elements. If no <media> child element is specified, the MS | |||
| location. Otherwise, MS uses an internal location. | records input to an implementation-specific location and format. | |||
| 8. If the dtmfterm attribute has the value true and DTMF input is | 8. If the dtmfterm attribute has the value true and DTMF input is | |||
| detected during the record operation, then the MS terminates | detected during the record operation, then the MS terminates | |||
| recording and and its status is reported to the dialog container | recording and its status is reported to the dialog container with | |||
| with a <recordinfo> (see Section 4.3.2.4) where the termmode | a <recordinfo> (see Section 4.3.2.4) where the termmode attribute | |||
| attribute is set to dtmf. | is set to dtmf. | |||
| 9. If vadfinal attribute has the value true, then the MS terminates | 9. If vadfinal attribute has the value true, then the MS terminates | |||
| a recording operation when a period of silence, with the duration | the recording operation when a period of silence, with the | |||
| specified by the value of the finalsilence attribute, is | duration specified by the value of the finalsilence attribute, is | |||
| detected. This period of silence is not part of the final | detected. This period of silence is not part of the final | |||
| recording. The status is reported to the dialog container with a | recording. The status is reported to the dialog container with a | |||
| <recordinfo> (see Section 4.3.2.4) where the termmode attribute | <recordinfo> (see Section 4.3.2.4) where the termmode attribute | |||
| is set to finalsilence. | is set to finalsilence. | |||
| For example, a request to record audio and video input to separate | ||||
| locations: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="c1"> | ||||
| <dialog> | ||||
| <record maxtime="30s" vadinitial="false" vadfinal="false"> | ||||
| <media type="audio/x-wav" | ||||
| loc="http://www.example.com/upload/audio.wav"/> | ||||
| <media type="video/3gpp;codecs='s263'" | ||||
| loc="http://www.example.com/upload/video.3gp"/> | ||||
| </record> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| When the <record> element is executed, it immediately begins | ||||
| recording of the audio and video (since vadinitial is false) where | ||||
| the destination locations are specified in the <media> child | ||||
| elements. Recording is completed when the duration reaches 30s or | ||||
| the connection is terminated. | ||||
| 4.3.1.5. <media> | ||||
| 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 | ||||
| case, the resource is retrieved and in the recording case, recording | ||||
| data is uploaded to the resource location. | ||||
| A <media> element has the following attributes: | ||||
| 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 | ||||
| authentication information in the URI if the URI scheme supports | ||||
| it (e.g. basic access authentication in HTTP). The MS MAY support | ||||
| more advanced authentication mechanisms. If the URI scheme is not | ||||
| supported by the MS, the MS MUST send a <response> with a 420 | ||||
| status code (Section 4.5). If the resource is to be retrieved but | ||||
| the MS cannot retrieve it within the timeout interval, the MS MUST | ||||
| send a <response> with a 409 status code. If the format of the | ||||
| media resource is not supported, the MS MUST send a <response> | ||||
| with a 429 status code. The attribute is mandatory. | ||||
| type: specifies the type of the media resource indicated in the ref | ||||
| attribute. A valid value is a MIME media type (see | ||||
| Section 4.6.10). The value can include additional parameters | ||||
| (e.g. [RFC4281]) to guide the MS in using the media resource. If | ||||
| the resource is retrieved from the location, the MS MAY use the | ||||
| value to assist the remote source in selecting the appropriate | ||||
| resource type (e.g. with HTTP 'accept' header) and to determine | ||||
| how the resource is to be processed if the protocol does not | ||||
| provide an authoritative MIME media type for the returned resource | ||||
| If data is to be uploaded to the resource location, the MS MAY use | ||||
| the parameters to determine which media streams are to be used; | ||||
| for example, using a 'codec' parameter for 'bucket' media types | ||||
| like video/3gpp. The attribute is optional. There is no default | ||||
| value. | ||||
| fetchtimeout: the maximum interval to wait when fetching a media | ||||
| resource. A valid value is a Time Designation (see | ||||
| Section 4.6.7). The attribute is optional. The default value is | ||||
| 30s. | ||||
| soundLevel: playback soundLevel (volume) for the media resource. A | ||||
| valid value is a percentage (see Section 4.6.4). The value | ||||
| indicates increase or decrease relative to the original recorded | ||||
| volume of the media. A value of 100% (the default) plays the | ||||
| media at its recorded volume, a value of 200% will play the media | ||||
| twice recorded volume, 50% at half its recorded volume, a value of | ||||
| 0% will play the media silently, and so on. See 'soundLevel' in | ||||
| SMIL ([W3C.REC-SMIL2-20051213]) for further information. The | ||||
| attribute is optional. The default value is 100%. | ||||
| clipBegin: offset from start of media resource to begin playback. A | ||||
| valid value is a Time Designation (see Section 4.6.7). The offset | ||||
| is measured in normal media playback time from the beginning of | ||||
| the media resource. If the clipBegin offset is after the end of | ||||
| media (or the clipEnd offset), no media is played. See | ||||
| 'clipBegin' in SMIL ([W3C.REC-SMIL2-20051213]) for further | ||||
| information. The attribute is optional. The default value is 0s. | ||||
| clipEnd: offset from start of media resource to end playback. A | ||||
| valid value is a Time Designation (see Section 4.6.7). The offset | ||||
| is measured in normal media playback time from the beginning 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 | ||||
| clipEnd, then no media is played. See 'clipEnd' in SMIL | ||||
| ([W3C.REC-SMIL2-20051213]) for further information. The attribute | ||||
| is optional. There is no default value. | ||||
| The fetchtimeout, soundLevel, clipBegin and clipEnd attributes are | ||||
| only relevant in the playback use case. The MS SHOULD ignore these | ||||
| attributes when using the <media> for recording. | ||||
| 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> | |||
| The <promptinfo> element reports the information about prompt | The <promptinfo> element reports the information about prompt | |||
| execution. It has the following attributes: | execution. It has the following attributes: | |||
| skipping to change at page 52, line 17 ¶ | skipping to change at page 56, line 26 ¶ | |||
| 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 the information about record | The <recordinfo> element reports information about record execution. | |||
| execution. | ||||
| The <recordinfo> element has the following attributes: | The <recordinfo> element has the following attributes: | |||
| recording: references the location to which media is recorded. A | termmode: indicates how recording was terminated. Valid values are: | |||
| valid value is a URI (see Section 4.6.9). The attribute is | 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The | |||
| optional. There is no default value. | attribute is mandatory. | |||
| type: indicates the format of the recording. A valid value is a | ||||
| MIME media type (see Section 4.6.10). The attribute is optional. | ||||
| There is no default value. | ||||
| 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. | |||
| size: indicates the size of the recording in bytes. A valid value | The <recordinfo> element has the following child element (0 or more | |||
| is a non-negative integer (see Section 4.6.4). The attribute is | occurrences): | |||
| optional. There is no default value. | ||||
| termmode: indicates how recording was terminated. Valid values are: | <mediainfo>: indicates information about a recorded media resource | |||
| 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The | (see Section 4.3.2.4.1). The element is optional. | |||
| attribute is mandatory. | ||||
| The <recordinfo> element has no child elements. | When the record operation is successful, the MS SHOULD specify the | |||
| same number of <mediainfo> child elements as recorded media | ||||
| destinations in <record> (Section 4.3.1.4). | ||||
| 4.3.2.4.1. <mediainfo> | ||||
| The <mediainfo> element reports information about a recorded media | ||||
| resource. | ||||
| The <mediainfo> element has the following attributes: | ||||
| loc: indicates the location of the media resource. A valid value is | ||||
| a URI (see Section 4.6.9). The attribute is mandatory. | ||||
| type: indicates the format of the media resource. A valid value is | ||||
| a MIME media type (see Section 4.6.10). The attribute is | ||||
| mandatory. | ||||
| size: indicates the size of the media resource in bytes. A valid | ||||
| value is a non-negative integer (see Section 4.6.4). The | ||||
| 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 may 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 | |||
| skipping to change at page 53, line 35 ¶ | 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 402 status code (Section 4.5) if the | MUST send 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. | |||
| When the MS receives a <audit> request, it MUST reply with a | When the MS receives an <audit> request, it MUST reply with a | |||
| <auditresponse> element (Section 4.4.2). If the request is | <auditresponse> element (Section 4.4.2) which includes a mandatory | |||
| successful, <auditresponse> contain (depending on attribute values) a | attribute describing the status in terms of a numeric code. Response | |||
| <capabilities> element (Section 4.4.2.2) reporting package | status codes are defined in Section 4.5. If the request is | |||
| successful, the <auditresponse> contains (depending on attribute | ||||
| 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. | managed dialog information. If the MS is not able to process the | |||
| request and carry out the audit operation, the audit request has | ||||
| failed and the MS MUST indicate the class of failure using an | ||||
| appropriate 4xx response code. Unless an error response code is | ||||
| mandated for a specific class of error within this section, | ||||
| implementations follow Section 4.5 in determining the appropriate | ||||
| status code for the 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 55, line 12 ¶ | skipping to change at page 59, line 45 ¶ | |||
| <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> | <mimetype>application/srgs+xml</mimetype> | |||
| </grammartypes> | </grammartypes> | |||
| <recordtypes> | <recordtypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <mediatypes> | <prompttypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </mediatypes> | </prompttypes> | |||
| <variables> | <variables> | |||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | <variabletype type="date" desc="value formatted as YYYYMMDD"> | |||
| <format desc="month year day">mdy</format> | <format desc="month year day">mdy</format> | |||
| <format desc="year month day">ymd</format> | <format desc="year month day">ymd</format> | |||
| <format desc="day month year">dmy</format> | <format desc="day month year">dmy</format> | |||
| <format desc="day month">dm</format> | <format desc="day month">dm</format> | |||
| </variabletype> | </variabletype> | |||
| </variables> | </variables> | |||
| <maxpreparedduration>600s</maxpreparedduration> | <maxpreparedduration>600s</maxpreparedduration> | |||
| <maxrecordduration>1800s</maxrecordduration> | <maxrecordduration>1800s</maxrecordduration> | |||
| skipping to change at page 56, line 46 ¶ | skipping to change at page 61, line 35 ¶ | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| 4.4.2.1.1. <codec> | 4.4.2.1.1. <codec> | |||
| The <codec> element describes a codec on the MS. The element is | The <codec> element describes a codec on the MS. The element is | |||
| modeled on the <codec> element in the XCON conference information | modeled on the <codec> element in the XCON conference information | |||
| data model ([I-D.ietf-xcon-common-data-model]) but allows addition | data model ([I-D.ietf-xcon-common-data-model]) but allows addition | |||
| information (e.g. rate, speed, etc) to be specified. | information (e.g. rate, speed, etc) to be specified. | |||
| The <codecs> element has no attributes. | The <codec> element has no attributes. | |||
| The <codecs> element has the following sequence of child elements: | The <codec> element has the following sequence of child elements: | |||
| <subtype>: element describing the codec's name. The possible values | <subtype>: element describing the codec's name. The possible values | |||
| of this element are the values of the 'subtype' column of the RTP | of this element are the values of the 'subtype' column of the RTP | |||
| Payload Format media types per [RFC4855] defined in IANA ([IANA]). | Payload Format media types per [RFC4855] defined in IANA ([IANA]). | |||
| The element is mandatory. | The element is mandatory. | |||
| <params>: element (Section 4.2.6) describing additional information | <params>: element (Section 4.2.6) describing additional information | |||
| about the codec. This package is agnostic to the names and values | about the codec. This package is agnostic to the names and values | |||
| of the codec parameters supported by an implementation. The | of the codec parameters supported by an implementation. The | |||
| element is optional. | element is optional. | |||
| skipping to change at page 57, line 39 ¶ | skipping to change at page 62, line 26 ¶ | |||
| The <capabilities> element has the following sequence of child | The <capabilities> element has the following sequence of child | |||
| elements: | elements: | |||
| <dialoglanguages>: element (Section 4.4.2.2.1) describing additional | <dialoglanguages>: element (Section 4.4.2.2.1) describing additional | |||
| dialog languages supported by the MS. The element is mandatory. | dialog languages supported by the MS. The element is mandatory. | |||
| <grammartypes>: element (Section 4.4.2.2.2) describing supported | <grammartypes>: element (Section 4.4.2.2.2) describing supported | |||
| <grammar> (Section 4.3.1.3.1) format types. The element is | <grammar> (Section 4.3.1.3.1) format types. The element is | |||
| mandatory. | mandatory. | |||
| <recordtypes>: element (Section 4.4.2.2.3) describing supported | <recordtypes>: element (Section 4.4.2.2.3) describing <media> | |||
| <record> (Section 4.3.1.4) format types. The element is | (Section 4.3.1.5) format types supported for <record> | |||
| mandatory. | (Section 4.3.1.4). The element is mandatory. | |||
| <mediatypes>: element (Section 4.4.2.2.4) describing supported | <prompttypes>: element (Section 4.4.2.2.4) describing supported | |||
| <media> (Section 4.3.1.1.1) format types. The element is | <media> (Section 4.3.1.5) format types for playback within a | |||
| mandatory. | <prompt> (Section 4.3.1.1). The element is mandatory. | |||
| <variables>: element (Section 4.4.2.2.5) describing supported types | <variables>: element (Section 4.4.2.2.5) describing supported types | |||
| and formats for the <variable> element (Section 4.4.2.2.5). The | and formats for the <variable> element (Section 4.4.2.2.5). The | |||
| element is mandatory. | element is mandatory. | |||
| <maxpreparedduration>: element (Section 4.4.2.2.6) describing the | <maxpreparedduration>: element (Section 4.4.2.2.6) describing the | |||
| supported maximum duration for a prepared dialog following a | supported maximum duration for a prepared dialog following a | |||
| <dialogprepare> (Section 4.2.1) request. The element is | <dialogprepare> (Section 4.2.1) request. The element is | |||
| mandatory. | mandatory. | |||
| skipping to change at page 59, line 13 ¶ | skipping to change at page 63, line 13 ¶ | |||
| 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> | <mimetype>application/srgs+xml</mimetype> | |||
| </grammartypes> | </grammartypes> | |||
| <recordtypes> | <recordtypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <mediatypes> | <prompttypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </mediatypes> | </prompttypes> | |||
| <variables/> | <variables/> | |||
| <maxpreparedduration>30s</maxpreparedduration> | <maxpreparedduration>30s</maxpreparedduration> | |||
| <maxrecordduration>60s</maxrecordduration> | <maxrecordduration>60s</maxrecordduration> | |||
| <codecs> | <codecs> | |||
| <codec> | <codec> | |||
| <subtype>H.263</subtype> | <subtype>H.263</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>H.264</subtype> | <subtype>H.264</subtype> | |||
| </codec> | </codec> | |||
| skipping to change at page 60, line 26 ¶ | skipping to change at page 64, line 26 ¶ | |||
| 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. | |||
| 4.4.2.2.3. <recordtypes> | 4.4.2.2.3. <recordtypes> | |||
| The <recordtypes> element provides information about <record> format | The <recordtypes> element provides information about media resource | |||
| types supported by the package (Section 4.3.1.4). | format types of <record> supported by the package (Section 4.3.1.4). | |||
| The <recordtypes> element has no attributes. | The <recordtypes> element has no attributes. | |||
| The <recordtypes> element has the following sequence of child | The <recordtypes> 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 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. | |||
| 4.4.2.2.4. <mediatypes> | 4.4.2.2.4. <prompttypes> | |||
| The <mediatypes> element provides information about <media> format | The <prompttypes> element provides information about media resource | |||
| types supported by the package (Section 4.3.1.1.1). | format types of <prompt> supported by the package (Section 4.3.1.1). | |||
| The <mediatypes> element has no attributes. | The <prompttypes> element has no attributes. | |||
| The <mediatypes> element has the following sequence of child elements | The <prompttypes> element has the following sequence of child | |||
| (0 or more occurrences): | elements (0 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. | |||
| 4.4.2.2.5. <variables> | 4.4.2.2.5. <variables> | |||
| The <variables> element provides information about types and formats | The <variables> element provides information about types and formats | |||
| for the <variable> element (Section 4.4.2.2.5) supported by the | for the <variable> element (Section 4.4.2.2.5) supported by the | |||
| package. | package. | |||
| skipping to change at page 63, line 36 ¶ | skipping to change at page 67, line 36 ¶ | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </dialogaudit> | </dialogaudit> | |||
| 4.5. Response Status Codes | 4.5. Response Status Codes | |||
| The following status codes for dialog management (Section 4.2.4) and | This section describes the response codes in Table 1 for the status | |||
| audit (Section 4.4.2) responses are defined: | attribute of dialog management <response> (Section 4.2.4) and audit | |||
| <auditresponse> (Section 4.4.2) responses. The MS MUST support these | ||||
| status response codes. The MS MAY support other response codes. The | ||||
| AS MUST treat any responses it does not recognize as being equivalent | ||||
| to the x00 response code for all classes. For example, if an AS | ||||
| receives an unrecognized response code of 499, it can safely assume | ||||
| that there was something wrong with its request and treat the | ||||
| response as if it had received a 400 (Syntax error) response code. | ||||
| +-----------+-------------------------------------------------------+ | 4xx responses are definite failure responses from a particular MS. | |||
| | code | description | | The reason attribute in the response SHOULD identify the failure in | |||
| +-----------+-------------------------------------------------------+ | more detail, for example, "Mandatory attribute missing: src in media | |||
| | 200 | OK | | element" for a 400 (Syntax error) response code. | |||
| | | | | ||||
| | 401 | dialogid already exists | | ||||
| | | | | ||||
| | 402 | dialogid does not exist | | ||||
| | | | | ||||
| | 403 | connectionid does not exist | | ||||
| | | | | ||||
| | 404 | conferenceid does not exist | | ||||
| | | | | ||||
| | 405 | Unknown or unsupported element | | ||||
| | 406 | Element required | | ||||
| | | | | ||||
| | 407 | Unknown or unsupported attribute | | ||||
| | | | | ||||
| | 408 | Attribute required | | ||||
| | | | | ||||
| | 409 | Dialog language not supported | | ||||
| | | | | ||||
| | 410 | Retrieving resource failed | | ||||
| | | | | ||||
| | 411 | Invalid attribute value | | ||||
| | | | | ||||
| | 412 | Subscription not supported | | ||||
| | | | | ||||
| | 413 | Invalid stream configuration | | ||||
| | | | | ||||
| | 414 | Dialog execution canceled | | ||||
| | | | | ||||
| | 415 | Unsupported URI scheme | | ||||
| | | | | ||||
| | 416 | Invalid region identifier | | ||||
| | | | | ||||
| | 417 | Resource cannot be retrieved within timeout interval | | ||||
| | | | | ||||
| | 418 | Syntax constraint violation | | ||||
| | | | | ||||
| | 419 | Media format not supported | | ||||
| | | | | ||||
| | 420 | Grammar format not supported | | ||||
| | | | | ||||
| | 421 | Variable announcement not supported | | ||||
| | | | | ||||
| | 422 | DTMF tone not supported | | ||||
| | | | | ||||
| | 423 | Control keys with same value | | ||||
| | | | | ||||
| | 424 | Recording format not supported | | ||||
| | | | | ||||
| | 425 | Unsupported param parameter | | ||||
| | | | | ||||
| | 426 | Unsupported foreign namespace attribute or element | | ||||
| | | | | ||||
| | 499 | Other error | | ||||
| +-----------+-------------------------------------------------------+ | ||||
| Table 1: status codes | The AS SHOULD NOT retry the same request without modification (for | |||
| example, correcting a syntax error or changing the connectionid to | ||||
| use one available on the MS). However, the same request to a | ||||
| different MS might be successful; for example, if another MS supports | ||||
| a capability required in the request. | ||||
| The MS MAY define other status codes. | 4xx failure responses can be grouped into three classes: failure due | |||
| to a syntax error in the request (400); failure due to an error | ||||
| executing the request on the MS (405-419); and failure due to the | ||||
| request requiring a capability not supported by the MS (420-439). | ||||
| In cases where more than one request code could be reported for a | ||||
| failure, the MS SHOULD use the most specific error code of the | ||||
| failure class for the detected error. For example, if the MS detects | ||||
| that the dialogid in the request is invalid, then it uses a 406 | ||||
| status code. However, if the MS merely detects that an execution | ||||
| error occurred, then 419 is used. | ||||
| +------+---------------+-----------------------+--------------------+ | ||||
| | Code | Summary | Description | Informational: AS | | ||||
| | | | | Possible Recovery | | ||||
| | | | | Action | | ||||
| +------+---------------+-----------------------+--------------------+ | ||||
| | 200 | OK | request has succeeded | | | ||||
| | | | | | | ||||
| | 400 | Syntax error | request is | Change the request | | ||||
| | | | syntactically | so that it is | | ||||
| | | | invalid: it is not | syntactically | | ||||
| | | | valid with respect to | valid. | | ||||
| | | | the XML schema | | | ||||
| | | | specified in | | | ||||
| | | | Section 5 or it | | | ||||
| | | | violates a | | | ||||
| | | | co-occurrence | | | ||||
| | | | constraint for a | | | ||||
| | | | request element | | | ||||
| | | | defined in Section 4. | | | ||||
| | | | | | | ||||
| | 401 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 402 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 403 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 404 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 405 | dialogid | request uses a | Send an <audit> | | ||||
| | | already | dialogid identifier | request | | ||||
| | | exists | for a new dialog | (Section 4.4.1) | | ||||
| | | | which is already used | requesting the | | ||||
| | | | by another dialog on | list of dialog | | ||||
| | | | the MS (see | identifiers | | ||||
| | | | Section 4.2). | already used by | | ||||
| | | | | the MS and then | | ||||
| | | | | use a dialog | | ||||
| | | | | identifier which | | ||||
| | | | | is not listed. | | ||||
| | | | | | | ||||
| | 406 | dialogid does | request uses a | Send an <audit> | | ||||
| | | not exist | dialogid identifier | request | | ||||
| | | | for an dialog which | (Section 4.4.1) | | ||||
| | | | does not exist on the | requesting the | | ||||
| | | | MS (see Section 4.2). | list of dialog | | ||||
| | | | | identifiers | | ||||
| | | | | already used by | | ||||
| | | | | the MS and then | | ||||
| | | | | use one of the | | ||||
| | | | | listed dialog | | ||||
| | | | | identifiers. | | ||||
| | | | | | | ||||
| | 407 | connectionid | request uses a | Use another method | | ||||
| | | does not | connectionid | to determine which | | ||||
| | | exist | identifier for a | connections are | | ||||
| | | | connection which does | available on the | | ||||
| | | | not exist on the MS. | MS. | | ||||
| | | | | | | ||||
| | 408 | conferenceid | request uses a | Use another method | | ||||
| | | does not | conferenceid | to determine which | | ||||
| | | exist | identifier for a | conferences are | | ||||
| | | | conference which does | available on the | | ||||
| | | | not exist on the MS. | MS. | | ||||
| | | | | | | ||||
| | 409 | Resource | request use a URI to | Check that the | | ||||
| | | cannot be | reference an external | resource URI is | | ||||
| | | retrieved | resource (e.g. | valid, can be | | ||||
| | | | dialog, media or | reached from the | | ||||
| | | | grammar) which cannot | MS, and that the | | ||||
| | | | be retrieved within | appropriate | | ||||
| | | | the timeout interval | authentication is | | ||||
| | | | | used. | | ||||
| | | | | | | ||||
| | 410 | Dialog | request to prepare or | | | ||||
| | | execution | start a dialog which | | | ||||
| | | canceled | has been terminated | | | ||||
| | | | by a | | | ||||
| | | | <dialogterminate/> | | | ||||
| | | | request (see | | | ||||
| | | | Section 4.2) | | | ||||
| | | | | | | ||||
| | 411 | Incompatible | request specifies a | Change the media | | ||||
| | | stream | media stream | stream | | ||||
| | | configuration | configuration which | configuration to | | ||||
| | | | is in conflict with | match the | | ||||
| | | | itself, or the | capabilities of | | ||||
| | | | connection or | the connection or | | ||||
| | | | conference | conference | | ||||
| | | | capabilities (see | | | ||||
| | | | Section 4.2.2) | | | ||||
| | | | | | | ||||
| | 412 | Media stream | request specifies an | Check the media | | ||||
| | | not available | operation for which a | stream capability | | ||||
| | | | media stream is not | of the connection | | ||||
| | | | available. For | or conference and | | ||||
| | | | example, playing a | use an operation | | ||||
| | | | video media resource | which only uses | | ||||
| | | | on an connection or | these capabilities | | ||||
| | | | conference without | | | ||||
| | | | video streams. | | | ||||
| | | | | | | ||||
| | 413 | Control keys | the request contains | Use different keys | | ||||
| | | with same | a <control> element | for the different | | ||||
| | | value | (Section 4.3.1.2) | control | | ||||
| | | | where some keys have | operations. | | ||||
| | | | the same value | | | ||||
| | | | | | | ||||
| | 414 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 415 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 416 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 417 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 418 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | 419 | Other | requested operation | | | ||||
| | | execution | cannot be executed by | | | ||||
| | | error | the MS. | | | ||||
| | | | | | | ||||
| | 420 | Unsupported | request specifies a | Use a URI scheme | | ||||
| | | URI scheme | URI whose scheme is | which is | | ||||
| | | | not supported by the | supported. | | ||||
| | | | MS | | | ||||
| | | | | | | ||||
| | 421 | Unsupported | request references an | Send an <audit> | | ||||
| | | dialog | external dialog | request | | ||||
| | | language | language not | (Section 4.4.1) | | ||||
| | | | supported by the MS | requesting the MS | | ||||
| | | | | capabilities and | | ||||
| | | | | then use one of | | ||||
| | | | | the listed dialog | | ||||
| | | | | languages. | | ||||
| | | | | | | ||||
| | 422 | Unsupported | request references a | Send an <audit> | | ||||
| | | playback | media resource for | request | | ||||
| | | format | playback whose format | (Section 4.4.1) | | ||||
| | | | is not supported by | requesting the MS | | ||||
| | | | the MS | capabilities and | | ||||
| | | | | then use one of | | ||||
| | | | | the listed | | ||||
| | | | | playback media | | ||||
| | | | | formats. | | ||||
| | | | | | | ||||
| | 423 | Unsupported | request references a | Send an <audit> | | ||||
| | | record format | media resource for | request | | ||||
| | | | recording whose | (Section 4.4.1) | | ||||
| | | | format is not | requesting the MS | | ||||
| | | | supported by the MS | capabilities and | | ||||
| | | | | then use one of | | ||||
| | | | | the listed record | | ||||
| | | | | media formats. | | ||||
| | | | | | | ||||
| | 424 | Unsupported | request references a | Send an <audit> | | ||||
| | | grammar | grammar whose format | request | | ||||
| | | format | is not supported by | (Section 4.4.1) | | ||||
| | | | the MS | requesting the MS | | ||||
| | | | | capabilities and | | ||||
| | | | | then use one of | | ||||
| | | | | the listed grammar | | ||||
| | | | | types. | | ||||
| | | | | | | ||||
| | 425 | Unsupported | request contains a | Send an <audit> | | ||||
| | | variable | prompt <variable> | request | | ||||
| | | configuration | element | (Section 4.4.1) | | ||||
| | | | (Section 4.3.1.1.1) | requesting the MS | | ||||
| | | | not supported by the | capabilities and | | ||||
| | | | MS | then use one of | | ||||
| | | | | the listed | | ||||
| | | | | variable types. | | ||||
| | | | | | | ||||
| | 426 | Unsupported | request contains a | | | ||||
| | | DTMF | prompt <dtmf> element | | | ||||
| | | configuration | (Section 4.3.1.1.2) | | | ||||
| | | | not supported by the | | | ||||
| | | | MS | | | ||||
| | | | | | | ||||
| | 427 | Unsupported | request contains a | | | ||||
| | | parameter | <param> element | | | ||||
| | | | (Section 4.2.6.1) not | | | ||||
| | | | supported by the MS | | | ||||
| | | | | | | ||||
| | 428 | Unsupported | request contains a | | | ||||
| | | media stream | <stream> element | | | ||||
| | | configuration | (Section 4.2.2.2) | | | ||||
| | | | whose configuration | | | ||||
| | | | is not supported by | | | ||||
| | | | the MS. | | | ||||
| | | | | | | ||||
| | 429 | Unsupported | request contains a | | | ||||
| | | playback | <prompt> element | | | ||||
| | | configuration | (Section 4.3.1.1) | | | ||||
| | | | which the MS is | | | ||||
| | | | unable to play on the | | | ||||
| | | | available output | | | ||||
| | | | media streams | | | ||||
| | | | | | | ||||
| | 430 | Unsupported | request contains a | | | ||||
| | | record | <record> element | | | ||||
| | | configuration | (Section 4.3.1.1) | | | ||||
| | | | which the MS is | | | ||||
| | | | unable to record with | | | ||||
| | | | on the available | | | ||||
| | | | input media streams | | | ||||
| | | | | | | ||||
| | 431 | Unsupported | the request contains | | | ||||
| | | foreign | attributes or | | | ||||
| | | namespace | elements from another | | | ||||
| | | attribute or | namespace which the | | | ||||
| | | element | MS does not support | | | ||||
| | 432 | Unsupported | the request tries to | | | ||||
| | | multiple | start another dialog | | | ||||
| | | dialog | on the same | | | ||||
| | | capability | conference or | | | ||||
| | | | connection where a | | | ||||
| | | | dialog is already | | | ||||
| | | | running | | | ||||
| | | | | | | ||||
| | 433 | Unsupported | the request contains | | | ||||
| | | collect and | <collect> and | | | ||||
| | | record | <record> elements and | | | ||||
| | | capability | the MS does support | | | ||||
| | | | these operations | | | ||||
| | | | simultaneously | | | ||||
| | | | | | | ||||
| | 434 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 435 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 436 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 437 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 438 | Reserved for | | | | ||||
| | | future use | | | | ||||
| | | | | | | ||||
| | 439 | Other | request requires | | | ||||
| | | unsupported | another capability | | | ||||
| | | capability | not supported by the | | | ||||
| | | | MS | | | ||||
| +------+---------------+-----------------------+--------------------+ | ||||
| Table 1: status codes | ||||
| 4.6. Type Definitions | 4.6. Type Definitions | |||
| This section defines types referenced in attribute definitions. | This section defines types referenced in attribute and element | |||
| definitions. | ||||
| 4.6.1. Boolean | 4.6.1. Boolean | |||
| The value space of boolean is the set {true, false}. | The value space of boolean is the set {true, false}. | |||
| 4.6.2. DTMFChar | 4.6.2. DTMFChar | |||
| A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, | A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, | |||
| 7, 8, 9, #, *, A, B, C, D}. | 7, 8, 9, #, *, A, B, C, D}. | |||
| skipping to change at page 67, 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 (20081003) | IETF MediaCtrl IVR 1.0 (20081103) | |||
| 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 74, line 29 ¶ | skipping to change at page 83, line 29 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="collectinfo" type="collectinfoType" /> | <xsd:element name="collectinfo" type="collectinfoType" /> | |||
| <!-- recordinfo --> | <!-- recordinfo --> | |||
| <xsd:complexType name="recordinfoType"> | <xsd:complexType name="recordinfoType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="recording" type="xsd:anyURI" /> | <xsd:sequence> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | <xsd:element ref="mediainfo" minOccurs="0" | |||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="duration" | <xsd:attribute name="duration" | |||
| type="xsd:nonNegativeInteger" /> | type="xsd:nonNegativeInteger" /> | |||
| <xsd:attribute name="size" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="termmode" | <xsd:attribute name="termmode" | |||
| type="record_termmode.datatype" use="required" /> | type="record_termmode.datatype" use="required" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="recordinfo" type="recordinfoType" /> | <xsd:element name="recordinfo" type="recordinfoType" /> | |||
| <!-- mediainfo --> | ||||
| <xsd:complexType name="mediainfoType"> | ||||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="loc" type="xsd:anyURI" | ||||
| use="required" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" | ||||
| use="required"/> | ||||
| <xsd:attribute name="size" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="mediainfo" type="mediainfoType" /> | ||||
| <!-- subscribe --> | <!-- subscribe --> | |||
| <xsd:complexType name="subscribeType"> | <xsd:complexType name="subscribeType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="dtmfsub" minOccurs="0" | <xsd:element ref="dtmfsub" 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" /> | |||
| skipping to change at page 76, line 21 ¶ | skipping to change at page 85, line 38 ¶ | |||
| <xsd:element name="param" type="paramType" /> | <xsd:element name="param" type="paramType" /> | |||
| <!-- stream --> | <!-- stream --> | |||
| <xsd:complexType name="streamType"> | <xsd:complexType name="streamType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="region" minOccurs="0" | <xsd:element ref="region" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="priority" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="media" type="media.datatype" | <xsd:attribute name="media" type="media.datatype" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="label" type="label.datatype" /> | <xsd:attribute name="label" type="label.datatype" /> | |||
| <xsd:attribute name="direction" | <xsd:attribute name="direction" | |||
| type="direction.datatype" default="sendrecv" /> | type="direction.datatype" default="sendrecv" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| skipping to change at page 76, line 32 ¶ | skipping to change at page 86, line 4 ¶ | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="media" type="media.datatype" | <xsd:attribute name="media" type="media.datatype" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="label" type="label.datatype" /> | <xsd:attribute name="label" type="label.datatype" /> | |||
| <xsd:attribute name="direction" | <xsd:attribute name="direction" | |||
| type="direction.datatype" default="sendrecv" /> | type="direction.datatype" default="sendrecv" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="stream" type="streamType" /> | <xsd:element name="stream" type="streamType" /> | |||
| <!-- region --> | <!-- region --> | |||
| <xsd:simpleType name="regionType"> | <xsd:simpleType name="regionType"> | |||
| <xsd:restriction base="xsd:NMTOKEN"/> | <xsd:restriction base="xsd:NMTOKEN"/> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:element name="region" type="regionType" /> | <xsd:element name="region" type="regionType" /> | |||
| <!-- priority --> | ||||
| <xsd:simpleType name="priorityType"> | ||||
| <xsd:restriction base="xsd:positiveInteger" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:element name="priority" type="priorityType" /> | ||||
| <!-- dialog --> | <!-- dialog --> | |||
| <xsd:complexType name="dialogType"> | <xsd:complexType name="dialogType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="prompt" minOccurs="0" | <xsd:element ref="prompt" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="control" minOccurs="0" | <xsd:element ref="control" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| skipping to change at page 77, line 25 ¶ | skipping to change at page 87, line 4 ¶ | |||
| type="xsd:nonNegativeInteger" default="1" /> | type="xsd:nonNegativeInteger" default="1" /> | |||
| <xsd:attribute name="repeatDur" | <xsd:attribute name="repeatDur" | |||
| type="timedesignation.datatype" /> | type="timedesignation.datatype" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dialog" type="dialogType" /> | <xsd:element name="dialog" type="dialogType" /> | |||
| <!-- prompt --> | <!-- prompt --> | |||
| <xsd:complexType name="promptType"> | <xsd:complexType name="promptType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |||
| <xsd:element ref="media" /> | <xsd:element ref="media" /> | |||
| <xsd:element ref="variable" /> | <xsd:element ref="variable" /> | |||
| <xsd:element ref="dtmf" /> | <xsd:element ref="dtmf" /> | |||
| <xsd:element ref="par" /> | ||||
| <xsd:any namespace="##other" | <xsd:any namespace="##other" | |||
| processContents="lax" /> | processContents="lax" /> | |||
| </xsd:choice> | </xsd:choice> | |||
| <xsd:attribute ref="xml:base" /> | <xsd:attribute ref="xml:base" /> | |||
| <xsd:attribute name="bargein" type="boolean.datatype" | <xsd:attribute name="bargein" type="boolean.datatype" | |||
| default="true" /> | default="true" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="prompt" type="promptType" /> | <xsd:element name="prompt" type="promptType" /> | |||
| <!-- media --> | <!-- media --> | |||
| <xsd:complexType name="mediaType"> | <xsd:complexType name="mediaType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="src" type="xsd:anyURI" | <xsd:attribute name="loc" type="xsd:anyURI" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | <xsd:attribute name="type" type="mime.datatype" /> | |||
| <xsd:attribute name="fetchtimeout" | <xsd:attribute name="fetchtimeout" | |||
| type="timedesignation.datatype" default="30s" /> | type="timedesignation.datatype" default="30s" /> | |||
| <xsd:attribute name="soundLevel" | <xsd:attribute name="soundLevel" | |||
| type="percentage.datatype" default="100%" /> | type="percentage.datatype" default="100%" /> | |||
| <xsd:attribute name="clipBegin" | <xsd:attribute name="clipBegin" | |||
| type="timedesignation.datatype" default="0s" /> | type="timedesignation.datatype" default="0s" /> | |||
| <xsd:attribute name="clipEnd" | <xsd:attribute name="clipEnd" | |||
| type="timedesignation.datatype"/> | type="timedesignation.datatype"/> | |||
| skipping to change at page 79, line 4 ¶ | skipping to change at page 88, line 30 ¶ | |||
| <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" /> | |||
| <xsd:attribute name="duration" | <xsd:attribute name="duration" | |||
| type="timedesignation.datatype" default="100ms" /> | type="timedesignation.datatype" default="100ms" /> | |||
| <xsd:attribute name="interval" | <xsd:attribute name="interval" | |||
| type="timedesignation.datatype" default="100ms" /> | type="timedesignation.datatype" default="100ms" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dtmf" type="dtmfType" /> | <xsd:element name="dtmf" type="dtmfType" /> | |||
| <!-- par --> | ||||
| <xsd:complexType name="parType"> | ||||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | ||||
| <xsd:element ref="media" /> | ||||
| <xsd:element ref="variable" /> | ||||
| <xsd:element ref="dtmf" /> | ||||
| <xsd:element ref="seq" /> | ||||
| <xsd:any namespace="##other" | ||||
| processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="par" type="parType" /> | ||||
| <!-- seq --> | ||||
| <xsd:complexType name="seqType"> | ||||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | ||||
| <xsd:element ref="media" /> | ||||
| <xsd:element ref="variable" /> | ||||
| <xsd:element ref="dtmf" /> | ||||
| <xsd:any namespace="##other" | ||||
| processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="seq" type="seqType" /> | ||||
| <!-- control --> | <!-- control --> | |||
| <xsd:complexType name="controlType"> | <xsd:complexType name="controlType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="skipinterval" | <xsd:attribute name="skipinterval" | |||
| type="timedesignation.datatype" default="6s" /> | type="timedesignation.datatype" default="6s" /> | |||
| <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="pauseinterval" | <xsd:attribute name="pauseinterval" | |||
| skipping to change at page 81, line 6 ¶ | skipping to change at page 91, line 22 ¶ | |||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:anyAttribute namespace="##other" processContents="lax" /> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="grammar" type="grammarType" /> | <xsd:element name="grammar" type="grammarType" /> | |||
| <!-- record --> | <!-- record --> | |||
| <xsd:complexType name="recordType"> | <xsd:complexType name="recordType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:element ref="media" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="timeout" | <xsd:attribute name="timeout" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="dest" type="xsd:anyURI" /> | ||||
| <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="true" /> | |||
| <xsd:attribute name="vadfinal" | <xsd:attribute name="vadfinal" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="true" /> | |||
| <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" /> | |||
| skipping to change at page 82, line 44 ¶ | skipping to change at page 93, line 14 ¶ | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="subtype" minOccurs="1" | <xsd:element ref="subtype" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="params" minOccurs="0" | <xsd:element ref="params" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="name" type="xsd:string" /> | ||||
| <xsd:attribute name="policy" type="policy.datatype" /> | ||||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="codec" type="codecType" /> | <xsd:element name="codec" type="codecType" /> | |||
| <!-- subtype --> | <!-- subtype --> | |||
| <xsd:simpleType name="subtypeType"> | <xsd:simpleType name="subtypeType"> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:restriction base="xsd:string" /> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:element name="subtype" type="subtypeType" /> | <xsd:element name="subtype" type="subtypeType" /> | |||
| <!-- codecs --> | <!-- codecs --> | |||
| <xsd:complexType name="codecsType"> | <xsd:complexType name="codecsType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| skipping to change at page 86, line 34 ¶ | skipping to change at page 97, line 4 ¶ | |||
| <xsd:element name="variabletype" type="variabletypeType" /> | <xsd:element name="variabletype" type="variabletypeType" /> | |||
| <xsd:complexType name="formatType" mixed="true"> | <xsd:complexType name="formatType" mixed="true"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <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="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 88, line 26 ¶ | skipping to change at page 98, line 42 ¶ | |||
| <xsd:enumeration value="true" /> | <xsd:enumeration value="true" /> | |||
| <xsd:enumeration value="false" /> | <xsd:enumeration value="false" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="gender.datatype"> | <xsd:simpleType name="gender.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="female" /> | <xsd:enumeration value="female" /> | |||
| <xsd:enumeration value="male" /> | <xsd:enumeration value="male" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="policy.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="allowed" /> | ||||
| <xsd:enumeration value="disallowed" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="state.datatype"> | <xsd:simpleType name="state.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="preparing" /> | <xsd:enumeration value="preparing" /> | |||
| <xsd:enumeration value="prepared" /> | <xsd:enumeration value="prepared" /> | |||
| <xsd:enumeration value="starting" /> | <xsd:enumeration value="starting" /> | |||
| <xsd:enumeration value="started" /> | <xsd:enumeration value="started" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="status.datatype"> | <xsd:simpleType name="status.datatype"> | |||
| <xsd:restriction base="xsd:positiveInteger"> | <xsd:restriction base="xsd:positiveInteger"> | |||
| skipping to change at page 92, line 15 ¶ | skipping to change at page 102, line 15 ¶ | |||
| 6.1.2. IVR dialog fails to start | 6.1.2. IVR dialog fails to start | |||
| An IVR dialog fails to start due to an unknown dialog language. The | An IVR dialog fails to start due to an unknown dialog language. The | |||
| <response> is reported in a framework 200 message. | <response> is reported in a framework 200 message. | |||
| Application Server (AS) Media Server (MS) | Application Server (AS) Media Server (MS) | |||
| | | | | | | |||
| | (1) CONTROL: <dialogstart> | | | (1) CONTROL: <dialogstart> | | |||
| | ----------------------------------------> | | | ----------------------------------------> | | |||
| | | | | | | |||
| | (2) 200: <response status="409"/> | | | (2) 200: <response status="421"/> | | |||
| | <---------------------------------------- | | | <---------------------------------------- | | |||
| | | | | | | |||
| 6.1.3. Preparing and starting an IVR dialog | 6.1.3. Preparing and starting an IVR dialog | |||
| An IVR dialog is prepared and started successfully, and then the | An IVR dialog is prepared and started successfully, and then the | |||
| dialog exits normally. | dialog exits normally. | |||
| Application Server (AS) Media Server (MS) | Application Server (AS) Media Server (MS) | |||
| | | | | | | |||
| skipping to change at page 95, line 9 ¶ | skipping to change at page 105, line 9 ¶ | |||
| 6.2.1. Playing announcements | 6.2.1. Playing announcements | |||
| This example prepares an announcement composed of two prompts where | This example prepares an announcement composed of two prompts where | |||
| the dialog repeatCount set to 2. | the dialog repeatCount set to 2. | |||
| <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 repeatCount="2"> | <dialog repeatCount="2"> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/media/Number_09.wav"/> | <media loc="http://www.example.com/media/Number_09.wav"/> | |||
| <media src="http://www.example.com/media/Number_11.wav"/> | <media loc="http://www.example.com/media/Number_11.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogprepare> | </dialogprepare> | |||
| </mscivr> | </mscivr> | |||
| If the dialog is prepared successfully, a <response> is returned with | If the dialog is prepared successfully, a <response> is returned with | |||
| status 200 and a dialog identifier assigned by the MS: | status 200 and a dialog identifier assigned by the MS: | |||
| <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="vxi78"/> | <response status="200" dialogid="vxi78"/> | |||
| skipping to change at page 96, line 9 ¶ | skipping to change at page 106, line 9 ¶ | |||
| 6.2.2. Prompt and collect | 6.2.2. Prompt and collect | |||
| In this example, a prompt is played and then the MS waits for 30s for | In this example, a prompt is played and then the MS waits for 30s for | |||
| a two digit sequence: | a two digit sequence: | |||
| <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="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect timeout="30s" maxdigits="2"/> | <collect timeout="30s" maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If no user input is collected within 30s, then following notification | If no user input is collected within 30s, then following notification | |||
| event would be returned: | event would be returned: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| skipping to change at page 97, line 9 ¶ | skipping to change at page 107, line 9 ¶ | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| /mscivr> | /mscivr> | |||
| And finally in this example, one of the input parameters is invalid: | And finally in this example, one of the input parameters is invalid: | |||
| <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="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| <dialog repeatCount="two"> | <dialog repeatCount="two"> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect cleardigitbuffer="true" bargein="true" | <collect cleardigitbuffer="true" bargein="true" | |||
| timeout="4s" interdigittimeout="2s" | timeout="4s" interdigittimeout="2s" | |||
| termtimeout="0s maxdigits="2"/> | termtimeout="0s" maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| The error is reported in the response: | The error is reported in the 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="411" dialogid="vxi82" | <response status="400" dialogid="vxi82" | |||
| reason="repeatCount value invalid: two"/> | reason="repeatCount attribute value invalid: two"/> | |||
| </mscivr> | </mscivr> | |||
| 6.2.3. Prompt and record | 6.2.3. Prompt and record | |||
| In this example, the user is prompted, then their input is recorded | In this example, the user is prompted, then their input is recorded | |||
| for a maximum of 30 seconds. | for a maximum of 30 seconds. | |||
| <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="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/media/sayname.wav"/> | <media loc="http://www.example.com/media/sayname.wav"/> | |||
| </prompt> | </prompt> | |||
| <record dtmfterm="false" maxtime="30s" beep="true"/> | <record dtmfterm="false" maxtime="30s" beep="true"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If successful and the recording is terminated by DTMF, the following | If successful and the recording is terminated by DTMF, the following | |||
| is returned in a dialogexit <event>: | is returned in a 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="vxi83"> | <event dialogid="vxi83"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <recordinfo recording="http://www.example.com/recording1.wav" | <recordinfo termmode="dtmf"> | |||
| termmode="dtmf"/> | <mediainfo type="audio/x-wav" | |||
| loc="http://www.example.com/recording1.wav"/> | ||||
| </recordinfo> | ||||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 6.2.4. Runtime controls | 6.2.4. Runtime controls | |||
| In this example, a prompt is played with collect and runtime controls | In this example, a prompt is played with collect and runtime controls | |||
| are activated. | are activated. | |||
| <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="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| <dialog> | <dialog> | |||
| <prompt bargein="true"> | <prompt bargein="true"> | |||
| <media src="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey=5" rwkey="6" speedupkey="3" | <control ffkey=5" rwkey="6" speedupkey="3" | |||
| speeddnkey="4"/> | speeddnkey="4"/> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| Once the dialog is active, the user can press keys 3, 4, 5 and 6 to | Once the dialog is active, the user can press keys 3, 4, 5 and 6 to | |||
| execute runtime controls on the prompt queue. The keys do not cause | execute runtime controls on the prompt queue. The keys do not cause | |||
| skipping to change at page 100, line 31 ¶ | skipping to change at page 111, line 10 ¶ | |||
| how <collect> support DTMF collection. | 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 src="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect timeout="30s" maxdigits="4"/> | <collect timeout="30s" maxdigits="4"/> | |||
| <ex:listen maxtimeout="30s" > | <ex:listen maxtimeout="30s" > | |||
| <ex:grammar src="http://example.org/pin.grxml"/> | <ex:grammar src="http://example.org/pin.grxml"/> | |||
| </ex:listen> | </ex:listen> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In the <mscivr> root element, the xmlns:ex attribute declares that | In the <mscivr> root element, the xmlns:ex attribute declares that | |||
| "ex" is associated with the foreign namespace URI "http// | "ex" is associated with the foreign namespace URI | |||
| www.example.com/mediactrl/extensions/1". The <ex:listen>, its | "http://www.example.com/mediactrl/extensions/1". The <ex:listen>, | |||
| attributes and child elements are associated with this namespace. | its attributes and child elements are associated with this namespace. | |||
| This <listen> could be defined so that it activates an SRGS grammar | This <listen> could be defined so that it activates an SRGS grammar | |||
| and listens for user input matching the grammar in a similar manner | and listens for user input matching the grammar in a similar manner | |||
| to DTMF collection. | to DTMF collection. | |||
| 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 426 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="426" 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 may provide 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" | |||
| skipping to change at page 103, line 8 ¶ | skipping to change at page 114, line 8 ¶ | |||
| how such dialogs are managed across multiple control channels. This | how such dialogs are managed across multiple control channels. This | |||
| includes which channels are used to deliver dialog event | includes which channels are used to deliver dialog event | |||
| notifications, and whether channels are permitted to originate | notifications, and whether channels are permitted to originate | |||
| requests managing a dialog which was not created through that channel | requests managing a dialog which was not created through that channel | |||
| (e.g. a dialog has been prepared or started via channel X and a | (e.g. a dialog has been prepared or started via channel X and a | |||
| request to terminate the dialog originates from channel Y). | request to terminate the dialog originates from channel Y). | |||
| 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 -02 and -01 versions. | ||||
| o corrected typos. | ||||
| o Section 3: Aligned Control Package definitions with requirements | ||||
| in Section 8 of the Control Framework. | ||||
| o Section 4.2.2.2: Added <priority> child element to <stream> | ||||
| element (alignment with mixer package). | ||||
| o Following October Interim meeting discussion on response codes, | ||||
| generally clarified usage of error status codes, modified some | ||||
| codes and re-organized the response codes section (Section 4.5) | ||||
| with more guidance and details. | ||||
| o Section 4.3.1.5: Following October Interim meeting request for | ||||
| parallel playback and record, created a generalized version of | ||||
| <media> used for both playback and record. The 'src' attribute is | ||||
| renamed to 'loc'. Updated <prompt> and <record> definitions as | ||||
| described below. | ||||
| o Sections 4.3.1.1/4.3.1.1.4: <prompt>: Added <par> child element to | ||||
| allow parallel playback of separate media resources. The <par> | ||||
| element has a <seq> child element to allow a sequence of media | ||||
| resources to be played at the same time as other resources are | ||||
| played in parallel. | ||||
| o Sections 4.3.1.4/4.3.1.4.1: <record>: Removed 'dest' and 'type' | ||||
| attributes. Added <media> child elements to support parallel | ||||
| recording to separate media resource locations. | ||||
| o Sections 4.3.2.4/4.3.2.4.1: <recordinfo>: Removed 'dest', 'type' | ||||
| and 'size' attribute. Added <mediainfo> child elements with | ||||
| 'loc', 'type' and 'size' attributes. | ||||
| o Section 4.4.2.2.4: Renamed <mediatypes> to <prompttypes> to | ||||
| clarify distinction with <recordtypes>. | ||||
| o Sections 4.3.1.4: <record>: Clarified RFC2119 language around | ||||
| vadinitial and vadfinal behavior. | ||||
| o Updated schema. Removed some element-specific syntactic | ||||
| constraint statements which are already covered in the schema. | ||||
| o 4.3.1: occurrence of <control> without a <prompt> no longer | ||||
| treated as a syntax error - instead runtime controls are simply | ||||
| ignored. | ||||
| o | ||||
| The following are the major changes between the -01 and -00 versions. | The following are the major changes between the -01 and -00 versions. | |||
| o 7: Updated security section referencing control framework security | o 7: Updated security section referencing control framework security | |||
| and adding policy requirement to address dialog resource | and adding policy requirement to address dialog resource | |||
| management over multiple channels. | management over multiple channels. | |||
| o corrected typos and example errors | o corrected typos and example errors | |||
| o 4.2: [IVR-200] Added state machine for dialog lifecycle. | o 4.2: [IVR-200] Added state machine for dialog lifecycle. | |||
| skipping to change at page 105, line 12 ¶ | skipping to change at page 117, line 13 ¶ | |||
| conflict with control key values (423), unsupported recording | conflict with control key values (423), unsupported recording | |||
| format (424). | format (424). | |||
| o Generally, replaced 'it is an error ...' language with RFC2119 | o Generally, replaced 'it is an error ...' language with RFC2119 | |||
| language, making error codes more explicit. | language, making error codes more explicit. | |||
| o 4.3.1: Clarified that an MS MAY support <record> and <collect> | o 4.3.1: Clarified that an MS MAY support <record> and <collect> | |||
| elements co-occurring in a <dialog> element, but the MS MUST send | elements co-occurring in a <dialog> element, but the MS MUST send | |||
| an error response if they are not supported. Clarified that MS | an error response if they are not supported. Clarified that MS | |||
| MUST send an error response if <control> is specified without a | MUST send an error response if <control> is specified without a | |||
| &l;prompt> element. | <prompt> element. | |||
| o 4.2.5.2: clarified that the timestamp in <dtmfnotify> is that of | o 4.2.5.2: clarified that the timestamp in <dtmfnotify> is that of | |||
| the last DTMF in a matching input sequence. | the last DTMF in a matching input sequence. | |||
| o References: more references now normative. | o References: more references now normative. | |||
| o 4.3: Replaced passive voice language with active voice language in | o 4.3: Replaced passive voice language with active voice language in | |||
| the description of execution models. | the description of execution models. | |||
| o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is | o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is | |||
| skipping to change at page 106, line 9 ¶ | skipping to change at page 118, line 10 ¶ | |||
| playback of the media ends. | playback of the media ends. | |||
| o 4.3.1: Clarified that when there are multiple iterations of a | o 4.3.1: Clarified that when there are multiple iterations of a | |||
| dialog (using repeatCount attribute) only the results of the last | dialog (using repeatCount attribute) only the results of the last | |||
| dialog iteration are reported. | dialog iteration are reported. | |||
| o 4.4.2.2: Added ability to audit <variable> capability, as well as | o 4.4.2.2: Added ability to audit <variable> capability, as well as | |||
| maximum duration of prepared dialogs and of recordings. | maximum duration of prepared dialogs and of recordings. | |||
| o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in | o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in | |||
| <dialog> and how &llt;prompt> reports its status. | <dialog> and how <prompt> reports its status. | |||
| o 4: Changed handling of unsupported foreign namespace elements and | o 4: Changed handling of unsupported foreign namespace elements and | |||
| attributes. The MS send a 426 error response if it encounters | attributes. The MS send a 426 error response if it encounters | |||
| foreign elements and attributes it does not support. | foreign elements and attributes it does not support. | |||
| The following are the major changes between the -00 of this work | The following are the major changes between the -00 of this work | |||
| group item draft and the individual submission -05 version. | group item draft and the individual submission -05 version. | |||
| o [IVR01] When the MS sends a notification event in a CONTROL, the | o [IVR01] When the MS sends a notification event in a CONTROL, the | |||
| AS sends mandatory 200 response (no extended transaction). | AS sends mandatory 200 response (no extended transaction). | |||
| skipping to change at page 112, line 11 ¶ | skipping to change at page 124, line 11 ¶ | |||
| 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 from Radvision provided valuable support and | |||
| contributions to the early versions of this document. | contributions to the 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 and Mary | Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary | |||
| Barnes who provided valuable feedback, input and text to this | Barnes and Steve Buko who provided valuable feedback, input and text | |||
| 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 of Radisys, Gene | |||
| Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve | Shtirmer of Intel, Dave Burke of Google, Dan York of Voxeo and Steve | |||
| Buko of Dialogic for expert reviews of this work. | Buko of Dialogic for expert reviews of this work. | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.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-04 (work in | draft-ietf-mediactrl-sip-control-framework-06 (work in | |||
| progress), August 2008. | progress), October 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 114, line 39 ¶ | skipping to change at page 126, 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] | |||
| Bulterman, D., Jansen, J., Zucker, D., Layaida, N., | Grassel, G., Jansen, J., Zucker, D., Bulterman, D., | |||
| Michel, T., Mullender, S., Koivisto, A., and G. Grassel, | Layaida, N., Michel, T., Mullender, S., and A. Koivisto, | |||
| "Synchronized Multimedia Integration Language (SMIL 2.1)", | "Synchronized Multimedia Integration Language (SMIL 2.1)", | |||
| World Wide Web Consortium Recommendation REC-SMIL2- | World Wide Web Consortium Recommendation REC-SMIL2- | |||
| 20051213, December 2005, | 20051213, December 2005, | |||
| <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | |||
| [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | |||
| and F. Yergeau, "Extensible Markup Language (XML) 1.0 | and F. Yergeau, "Extensible Markup Language (XML) 1.0 | |||
| (Third Edition)", W3C Recommendation, February 2004. | (Third Edition)", W3C Recommendation, February 2004. | |||
| [XMLSchema:Part2] | [XMLSchema:Part2] | |||
| skipping to change at page 115, line 14 ¶ | skipping to change at page 127, line 14 ¶ | |||
| 12.2. Informative References | 12.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., and R. Even, | Novo, O., Camarillo, G., Morgan, D., Even, R., and J. | |||
| "Conference Information Data Model for Centralized | Urpalainen, "Conference Information Data Model for | |||
| Conferencing (XCON)", draft-ietf-xcon-common-data-model-11 | Centralized Conferencing (XCON)", | |||
| (work in progress), June 2008. | draft-ietf-xcon-common-data-model-12 (work in progress), | |||
| October 2008. | ||||
| [IANA] "IANA registry for RTP Payload Types", | [IANA] "IANA registry for RTP Payload Types", | |||
| <http://www.iana.org/assignments/rtp-parameters>. | <http://www.iana.org/assignments/rtp-parameters>. | |||
| [MIME.mediatypes] | [MIME.mediatypes] | |||
| "IANA registry for MIME Media Types", | "IANA registry for MIME Media Types", | |||
| <http://www.iana.org/assignments/media-types/>. | <http://www.iana.org/assignments/media-types/>. | |||
| [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session | [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session | |||
| Markup Language (MSML)", draft-saleem-msml-07 (work in | Markup Language (MSML)", draft-saleem-msml-07 (work in | |||
| End of changes. 167 change blocks. | ||||
| 535 lines changed or deleted | 1117 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/ | ||||