| < draft-ietf-mediactrl-ivr-control-package-00.txt | draft-ietf-mediactrl-ivr-control-package-01.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: December 12, 2008 Rain Willow Communications | Expires: April 10, 2009 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| Avaya | Avaya | |||
| June 10, 2008 | October 7, 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-00 | draft-ietf-mediactrl-ivr-control-package-01 | |||
| 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 December 12, 2008. | This Internet-Draft will expire on April 10, 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 | |||
| elements for preparing, starting and terminating dialog interactions, | request elements for preparing, starting and terminating dialog | |||
| as well as associated responses and notifications. While other | interactions, as well as associated responses and notifications. | |||
| dialog types can be used, this package defines a specific IVR dialog | Dialog interactions are specified in a dialog language. This package | |||
| type supporting prompt playback, runtime controls, DTMF collect and | defines a lightweight IVR dialog language (supporting prompt | |||
| media recording. The package also defines elements for auditing | playback, runtime controls, DTMF collect and media recording) and | |||
| package capabilities and dialogs. | allows other dialog languages to be used. The package also defines | |||
| elements for auditing package capabilities and IVR dialogs. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 7 | 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 | |||
| 3. Control Package Definition . . . . . . . . . . . . . . . . . 8 | 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 | |||
| 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 8 | 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 | |||
| 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8 | 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 | |||
| 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 9 | 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 9 | 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 | |||
| 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9 | 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 11 | 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 11 | 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 13 | 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 | |||
| 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 14 | 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 18 | |||
| 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 16 | 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 20 | |||
| 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 19 | 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 23 | |||
| 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 19 | 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 24 | |||
| 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 20 | 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 25 | |||
| 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 21 | 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 26 | |||
| 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 22 | 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 26 | |||
| 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 23 | 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 24 | 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 25 | 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 26 | 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 30 | |||
| 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 26 | 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 27 | 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 28 | 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 30 | 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.3.1.1.1. <media> . . . . . . . . . . . . . . . . . . . 31 | 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 36 | |||
| 4.3.1.1.2. <variable> . . . . . . . . . . . . . . . . . 32 | 4.3.1.1.1. <media> . . . . . . . . . . . . . . . . . . . 37 | |||
| 4.3.1.1.3. <dtmf> . . . . . . . . . . . . . . . . . . . 34 | 4.3.1.1.2. <variable> . . . . . . . . . . . . . . . . . 38 | |||
| 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 35 | 4.3.1.1.3. <dtmf> . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 37 | 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 41 | |||
| 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 39 | 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 43 | |||
| 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 45 | ||||
| 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 41 | 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 47 | |||
| 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 44 | 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 51 | |||
| 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 44 | 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 51 | |||
| 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 44 | 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 51 | |||
| 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 45 | 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 51 | |||
| 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 45 | 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 51 | |||
| 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 45 | 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 52 | |||
| 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 46 | 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 52 | |||
| 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 46 | 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 48 | 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 54 | |||
| 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 49 | 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 56 | |||
| 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 50 | 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 56 | |||
| 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 50 | 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 57 | |||
| 4.4.2.2.1. <dialogtypes> . . . . . . . . . . . . . . . . 52 | 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 59 | |||
| 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 52 | 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 60 | |||
| 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 52 | 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 60 | |||
| 4.4.2.2.4. <mediatypes> . . . . . . . . . . . . . . . . 52 | 4.4.2.2.4. <mediatypes> . . . . . . . . . . . . . . . . 60 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 53 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 53 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 61 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 54 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 62 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 55 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 62 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 58 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 62 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 81 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 62 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 81 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 63 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 81 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 65 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 82 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 67 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 82 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 83 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 91 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 84 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 91 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 84 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 92 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 85 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 92 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 87 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 93 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 88 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 94 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 88 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 94 | |||
| 6.3. Other Dialog types . . . . . . . . . . . . . . . . . . . 89 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 95 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 91 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 97 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 92 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 98 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 92 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 98 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 92 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 99 | |||
| 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 92 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 100 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 93 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 102 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 99 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 103 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 100 | 8.1. Control Package Registration . . . . . . . . . . . . . . 103 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 101 | 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 103 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 101 | 8.3. Mime Type Registration . . . . . . . . . . . . . . . . . 103 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 101 | 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 104 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 104 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 112 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 105 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 113 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 114 | ||||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 114 | ||||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 115 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 117 | ||||
| Intellectual Property and Copyright Statements . . . . . . . . . 118 | ||||
| 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 | |||
| Control Package. A Control Package is an explicit usage of the | Control Package. A Control Package is an explicit usage of the | |||
| Control Framework for a particular interaction set. This document | Control Framework for a particular interaction set. This document | |||
| defines a Control Package for Interactive Voice Response (IVR) | defines a Control Package for Interactive Voice Response (IVR) | |||
| dialogs on media connections and conferences. The term 'IVR' is used | dialogs on media connections and conferences. The term 'dialog' in | |||
| in its inclusive sense, allowing media other than voice for dialog | this document refers to an IVR dialog and is completely unrelated to | |||
| interaction. | the notion of a SIP dialog. The term 'IVR' is used in its inclusive | |||
| sense, allowing media other than voice for dialog interaction. | ||||
| The package defines dialog management elements for preparing, | The package defines dialog management request elements for preparing, | |||
| starting and terminating dialog interactions, as well as associated | starting and terminating dialog interactions, as well as associated | |||
| responses and notifications. While other dialog types can be used, | responses and notifications. Dialog interactions are specified using | |||
| this package defines a specific IVR dialog type supporting prompt | a dialog language where the language specifies a well-defined syntax | |||
| playback, runtime controls, DTMF collect and media recording. The | and semantics for permitted operations (play a prompt, record input | |||
| package also defines elements for auditing package capabilities and | from the user, etc). This package defines a own lightweight IVR | |||
| dialog language (supporting prompt playback, runtime controls, DTMF | ||||
| collect and media recording) and allows other dialog languages to be | ||||
| used. These dialog languages are specified inside dialog management | ||||
| elements for preparing and starting dialog interactions. The package | ||||
| also defines elements for auditing package capabilities and IVR | ||||
| dialogs. | dialogs. | |||
| This package has been designed to satisfy the IETF MediaCtrl | This package has been designed to satisfy the IETF MediaCtrl | |||
| requirements ([RFC5167]) by building upon two major approaches to IVR | requirements ([RFC5167]) by building upon two major approaches to IVR | |||
| dialog design. These approaches address a wide range of IVR use | dialog design. These approaches address a wide range of IVR use | |||
| cases and are used in many applications which are extensively | cases and are used in many applications which are extensively | |||
| deployed today. | deployed today. | |||
| First, the package is designed to provide the major IVR functionality | First, the package is designed to provide the major IVR functionality | |||
| of SIP Media Server languages such as netann ([RFC4240]), MSCML | of SIP Media Server languages such as netann ([RFC4240]), MSCML | |||
| skipping to change at page 5, line 12 ¶ | skipping to change at page 6, line 18 ¶ | |||
| providing a set of basic independent primitive elements (such as | providing a set of basic independent primitive elements (such as | |||
| prompt, collect, record and runtime controls) which can be re-used in | prompt, collect, record and runtime controls) which can be re-used in | |||
| different dialog languages. | different dialog languages. | |||
| By reusing and building upon design patterns from these approaches to | By reusing and building upon design patterns from these approaches to | |||
| IVR languages, this package is intended to provide a foundation which | IVR languages, this package is intended to provide a foundation which | |||
| is familiar to current IVR developers and sufficient for most IVR | is familiar to current IVR developers and sufficient for most IVR | |||
| applications, as well as a path to other languages which address more | applications, as well as a path to other languages which address more | |||
| advanced applications. | advanced applications. | |||
| This package defines an IVR dialog type. The scope of this dialog | This control package defines a lightweight IVR dialog language. The | |||
| type is the following IVR functionality: | scope of this dialog language is the following IVR functionality: | |||
| o playing one or more media resources as a prompt to the user | o playing one or more media resources as a prompt to the user | |||
| o runtime controls (including VCR controls like speed and volume) | o runtime controls (including VCR controls like speed and volume) | |||
| o collecting DTMF input from the user according to a grammar | o collecting DTMF input from the user according to a grammar | |||
| o recording user media input | o recording user media input | |||
| Out of scope for this dialog type are more advanced functions | Out of scope for this dialog language are more advanced functions | |||
| including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), | including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), | |||
| VoiceXML, fax and media transformation. Such functionality may be | VoiceXML, fax and media transformation. Such functionality may be | |||
| addressed by other dialog types used with this package, extension to | addressed by other dialog languages (such as VoiceXML) used with this | |||
| this package or other packages. | package, extensions to this package (addition of foreign elements or | |||
| attributes from another namespace) or other control packages. | ||||
| The functionality of this package is defined by messages, containing | The functionality of this package is defined by messages, containing | |||
| XML [XML] elements, transported using the Media Control Channel | XML [XML] elements, transported using the Media Control Channel | |||
| Framework. The XML elements can be divided into three types: dialog | Framework. The XML elements can be divided into three types: dialog | |||
| management elements; a dialog element which defines the specific IVR | management elements; a dialog element which defines a lightweight IVR | |||
| operations carried within dialog management elements; and finally, | dialog language used with dialog management elements; and finally, | |||
| elements for auditing package capabilities as well as dialogs managed | elements for auditing package capabilities as well as dialogs managed | |||
| by the package. | by the package. | |||
| Dialog management elements are designed to manage the general | Dialog management elements are designed to manage the general | |||
| lifecycle of a dialog. Elements are provided for preparing a dialog, | lifecycle of a dialog. Elements are provided for preparing a dialog, | |||
| starting the dialog on a conference or connection, and terminating | starting the dialog on a conference or connection, and terminating | |||
| execution of a dialog. Each of these elements is contained in a | execution of a dialog. Each of these elements is contained in a | |||
| Media Control Channel Framework CONTROL message sent to the media | Media Control Channel Framework CONTROL message sent to the media | |||
| server. When the appropriate action has been executed, the media | server. When the appropriate action has been executed, the media | |||
| server sends a REPORT message (or a 200 response to the CONTROL if it | server sends a REPORT message (or a 200 response to the CONTROL if it | |||
| skipping to change at page 6, line 10 ¶ | skipping to change at page 7, line 17 ¶ | |||
| event notifications in a framework CONTROL message. This package | event notifications in a framework CONTROL message. This package | |||
| defines two event notifications: a DTMF event indicating the DTMF | defines two event notifications: a DTMF event indicating the DTMF | |||
| activity; and a dialogexit event indicating that the dialog has | activity; and a dialogexit event indicating that the dialog has | |||
| exited. If the dialog has executed successful, the dialogexit event | exited. If the dialog has executed successful, the dialogexit event | |||
| includes information collected during the dialog. If an error occurs | includes information collected during the dialog. If an error occurs | |||
| during execution (e.g. a media resource failed to play, no recording | during execution (e.g. a media resource failed to play, no recording | |||
| resource available, etc), then error information is reported in the | resource available, etc), then error information is reported in the | |||
| dialogexit event. Once a dialogexit event is sent, the dialog | dialogexit event. Once a dialogexit event is sent, the dialog | |||
| lifecycle is terminated. | lifecycle is terminated. | |||
| Specific dialog types are referenced or contained within dialog | The dialog management elements for preparing and starting a dialog | |||
| management elements for preparing and starting dialogs. While other | specify the dialog using a dialog language. A dialog language has | |||
| dialog types defined elsewhere can be used, this package defines a | well-defined syntax and semantics for defined dialog operations. | |||
| IVR dialog type which contains child elements for playing prompts to | Typically dialog languages are written in XML where the root element | |||
| the user, specifying runtime controls, collecting DTMF input from the | has a designated XML namespace and, when used as standalone | |||
| user and recording media input from the user. The child elements can | documents, have an associated MIME media type. For example, VoiceXML | |||
| co-occur in this dialog type so as to provide 'play announcement', | is an XML dialog language with the root element <vxml> with the | |||
| designated namespace 'http://www.w3.org/2001/vxml' and standalone | ||||
| documents are associated with the MIME media type 'application/ | ||||
| vxml+xml' ([RFC4267]). | ||||
| This control package defines its own lightweight IVR dialog language. | ||||
| The language has a root element (<dialog>) with the same designated | ||||
| namespace as used for other elements defined in this package (see | ||||
| Section 8.2). The root element contains child elements for playing | ||||
| prompts to the user, specifying runtime controls, collecting DTMF | ||||
| input from the user and recording media input from the user. The | ||||
| child elements can co-occur so as to provide 'play announcement', | ||||
| 'prompt and collect' as well as 'prompt and record' functionality. | 'prompt and collect' as well as 'prompt and record' functionality. | |||
| The document is organized as follows. Section 3 descibes how this | The dialog management elements for preparing and starting a dialog | |||
| can specify the dialog language either by including inline a fragment | ||||
| with the root element or by referencing an external dialog document. | ||||
| The dialog language defined in this package is specified inline. | ||||
| Other dialog languages, such as VoiceXML, can be used by referencing | ||||
| an external dialog document. | ||||
| The document is organized as follows. Section 3 describes how this | ||||
| control package fulfills the requirements for a Media Control Channel | control package fulfills the requirements for a Media Control Channel | |||
| Framework control package. Section 4 describes the syntax and | Framework control package. Section 4 describes the syntax and | |||
| semantics of defined elements, including dialog management | semantics of defined elements, including dialog management | |||
| (Section 4.2), the IVR dialog element (Section 4.3) and audit | (Section 4.2), the IVR dialog element (Section 4.3) and audit | |||
| elements (Section 4.4). Section 5 describes an XML schema for these | elements (Section 4.4). Section 5 describes an XML schema for these | |||
| elements and provides extensibility by allowing attributes and | elements and provides extensibility by allowing attributes and | |||
| elements from other namespaces. Section 6 provides examples of | elements from other namespaces. Section 6 provides examples of | |||
| package usage. | package usage. | |||
| 2. Conventions and Terminology | 2. Conventions and Terminology | |||
| In this document, BCP 14 [RFC2119] defines the key words "MUST", | In this document, BCP 14 [RFC2119] defines the key words "MUST", | |||
| "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | |||
| "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | |||
| addition, BCP 15 indicates requirement levels for compliant | addition, BCP 15 indicates requirement levels for compliant | |||
| implementations. | implementations. | |||
| The following additional terms are defined for use in this document: | The following additional terms are defined for use in this document: | |||
| Dialog: A dialog performs media interaction with a user. A dialog | Dialog: A dialog performs media interaction with a user following | |||
| is specified as inline XML, or via a URI reference to an external | the concept of an IVR (Interactive Voice Response) dialog (this | |||
| XML document type. Traditional IVR dialogs typically feature | sense of 'dialog' is completely unrelated to a SIP dialog). A | |||
| capabilities such as playing audio prompts, collecting DTMF input | dialog is specified as inline XML, or via a URI reference to an | |||
| and recording audio input from the user. More inclusive | external dialog document. Traditional IVR dialogs typically | |||
| definitions may include support for other media types, runtime | feature capabilities such as playing audio prompts, collecting | |||
| controls, synthesized speech, recording and playback of video, | DTMF input and recording audio input from the user. More | |||
| recognition of spoken input, and mixed initiative conversations. | inclusive definitions may include support for other media types, | |||
| runtime controls, synthesized speech, recording and playback of | ||||
| video, recognition of spoken input, and mixed initiative | ||||
| conversations. | ||||
| Application server: A SIP [RFC3261] application server (AS) hosts | Application server: A SIP [RFC3261] application server (AS) hosts | |||
| and executes services such as interactive media and conferencing | and executes services such as interactive media and conferencing | |||
| in an operator's network. An AS influences and impacts the SIP | in an operator's network. An AS influences and impacts the SIP | |||
| session, in particular by terminating SIP sessions on a media | session, in particular by terminating SIP sessions on a media | |||
| server, which is under its control. | server, which is under its control. | |||
| Media Server: A media server (MS) processes media streams on behalf | Media Server: A media server (MS) processes media streams on behalf | |||
| of an AS by offering functionality such as interactive media, | of an AS by offering functionality such as interactive media, | |||
| conferencing, and transcoding to the end user. Interactive media | conferencing, and transcoding to the end user. Interactive media | |||
| skipping to change at page 8, line 28 ¶ | skipping to change at page 10, line 28 ¶ | |||
| 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. | |||
| 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 reponse 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. 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 Framework Server in | |||
| receiving requests from, and sending responses to, the AS (operating | receiving requests from, and sending responses to, the AS (operating | |||
| as Control Framework Client). Dialog management requests and | as Control Framework Client). Dialog management requests and | |||
| responses are defined in Section 4.2. Audit requests and responses | responses are defined in Section 4.2. Audit requests and responses | |||
| are defined in Section 4.4. dialog management and audit responses are | are defined in Section 4.4. dialog management and audit responses are | |||
| carried in a framework 200 response or REPORT message bodies. This | carried in a framework 200 response or REPORT message bodies. This | |||
| skipping to change at page 10, line 17 ¶ | skipping to change at page 12, line 17 ¶ | |||
| is a <auditresponse> element (Section 4.4.2). | is a <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 messages | |||
| and an audit response in a REPORT message (or a 200 reponse to the | and an audit response in a REPORT message (or a 200 response to the | |||
| CONTROL if it can execute the audit in time). | CONTROL if it can execute the audit in time). | |||
| 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. | |||
| 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. | |||
| skipping to change at page 11, line 22 ¶ | skipping to change at page 13, line 22 ¶ | |||
| 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). The XML schema supports extensibility by allowing | |||
| attributes and elements from other namespaces. Implementations MAY | attributes and elements from other namespaces. Implementations MAY | |||
| support attributes and elements from other namespaces. If an | support attributes and elements from other (foreign) namespaces. If | |||
| implementation encounters attributes or elements from another | an MS implementation receives a <mscivr> element containing | |||
| namespace which it does not understand, it MUST ignore them and | attributes or elements from another namespace which it does not | |||
| continue processing. | support, the MS MUST send a 426 response (Section 4.5). | |||
| Extensible attributes and elements are not described in this section. | Attributes and elements from foreign namespaces are not described in | |||
| In all other cases where there is a difference in constraints between | this section. In all other cases where there is a difference in | |||
| the XML schema and the textual description of elements in this | constraints between the XML schema and the textual description of | |||
| section, the textual definition takes priority. | elements in this section, the textual definition takes priority. | |||
| Some elements in this control package contain attributes whose value | ||||
| is a URI. These elements include: <dialogprepare> (Section 4.2.1), | ||||
| <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.1.1), <grammar> | ||||
| (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 | ||||
| RECOMMENDED that the MS support one or more schemes using | ||||
| communication protocols suitable for fetching resources (e.g. HTTP). | ||||
| Usage examples are provided in Section 6. | Usage examples are provided in Section 6. | |||
| 4.1. <mscivr> | 4.1. <mscivr> | |||
| The <mscivr> element has the following attributes (in addition to | The <mscivr> element has the following attributes (in addition to | |||
| standard XML namspace attributes such as xmlns): | standard XML namespace attributes such as xmlns): | |||
| version: a string specifying the mscivr package version. The value | version: a string specifying the mscivr package version. The value | |||
| is fixed as '1.0' for this version of the package. The attribute | is fixed as '1.0' for this version of the package. The attribute | |||
| is mandatory. | is mandatory. | |||
| The <mscivr> element has the following defined child elements, only | The <mscivr> element has the following defined child elements, only | |||
| one of which can occur: | one of which can occur: | |||
| 1. dialog management elements defined in Section 4.2: | 1. dialog management elements defined in Section 4.2: | |||
| skipping to change at page 12, line 31 ¶ | skipping to change at page 14, line 36 ¶ | |||
| <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 src="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </mscivr> | </mscivr> | |||
| and a response from the MS that the dialog started sucessfully: | and a response from the MS that the dialog started successfully: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <response status="200" dialogid="d1"/> | <response status="200" dialogid="d1"/> | |||
| </mscivr> | </mscivr> | |||
| and finally a notification from the MS indicating that the dialog | and finally a notification from the MS indicating that the dialog | |||
| exited upon completion of playing the prompt: | exited upon completion of playing the prompt: | |||
| <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"> | |||
| skipping to change at page 13, line 17 ¶ | skipping to change at page 15, line 17 ¶ | |||
| 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 dialog on a connection or conference | <dialogstart>: start a (prepared) dialog on a connection or | |||
| conference | ||||
| <dialogterminate>: terminate an IVR dialog | ||||
| The MS MUST support the IVR dialog type defined in Section 4.3. The | <dialogterminate>: terminate a dialog | |||
| MS MAY support other dialog types. | ||||
| 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). 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 carry out the requested dialog operation, it is an | MS is not able to process the request and carry out the dialog | |||
| error and the MS MUST indicate the error in the status code of the | operation, it is an error and the MS MUST indicate the error in the | |||
| response. | status code of the response. Both general error codes (e.g. syntax | |||
| errors such as missing elements or attributes) as well as request- | ||||
| specific status codes (e.g. invalid connectionid) are defined in | ||||
| Section 4.5 | ||||
| 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). The MS MUST | are specified in an <event> element (Section 4.2.5). | |||
| always send a dialog exit notification (Section 4.2.5.1) when the | ||||
| dialog exits, including when runtime errors occur. The MS MUST send | ||||
| DTMF subscription notifications (Section 4.2.5.2) when they occur | ||||
| during the dialog. | ||||
| The MS MUST adhere to the following life cycle for dialog. Each | +---------+ | |||
| dialog has the following state machine: | | IDLE | | |||
| +---------+ | ||||
| | | | ||||
| | | | ||||
| <dialogprepare>/| |<dialogstart>/ | ||||
| | | | ||||
| +---------+ | | +---------+ | ||||
| +-----<--| |<--------+ +------------>| |+------>-+ | ||||
| | +-<----|PREPARING| |STARTING | | | ||||
| | | | | ----------->| |---->--+ | | ||||
| | | +---------+ / +---------+ | | | ||||
| | | | / | | | | ||||
| | | |/200 response / /200 response| | | | ||||
| | | | / | | | | ||||
| | | | / | | | | ||||
| | | | / | | | | ||||
| V V v /<dialogstart>/ v | | | ||||
| | | +---------+ / +---------+ | | | ||||
| | | | |--------+ +----| | | | | ||||
| | | |PREPARED |---------+ | | STARTED | | | | ||||
| | | | | | +--->| | | | | ||||
| | | | |--------+| <dialogterminate>/| | | | | ||||
| | | +---------+ || 200 response +---------+ | | | ||||
| | | || | | | | ||||
| | | /dialogexit notification|| | | | | ||||
| | | (timeout) || | | | | ||||
| | | || | | | | ||||
| | | || | | | | ||||
| | | || | | | | ||||
| | | ||<dialogterminate>/ | | | | ||||
| | | || 200 response | | | | ||||
| | | || |/dialogexit | | | ||||
| | | || | notification | | | ||||
| | | || | | | | ||||
| | | || | | | | ||||
| | | vv | | | | ||||
| | | /ERROR response +-----------+ | | | | ||||
| | +---------------------->| |<----------+ /ERROR response| | | ||||
| +------------------------>|TERMINATED |<---------------------------+ | | ||||
| <dialogterminate>/ | |<-----------------------------+ | ||||
| 414 response +-----------+ <dialogterminate>/414 response | ||||
| Figure 1: Dialog Lifecycle | ||||
| The MS implementation MUST adhere to the dialog lifecycle shown in | ||||
| 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. If an error occurs the | PREPARING: the dialog is being prepared. The dialog is assigned a | |||
| 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. | response indicating the error type. If the dialog is terminated | |||
| before preparation is complete, the dialog transitions to the | ||||
| PREPARED: the dialog has been successfully prepared and has a valid | TERMINATED state and the MS MUST send a 414 response (Section 4.5) | |||
| dialog identifier. The MS MUST send a response indicating the | for the prepare request. | |||
| prepare operation was successful. If the duration the dialog | ||||
| remains in the PREPARED state exceeds the maximum preparation | ||||
| duration, the dialog transitions to the TERMINATED state and the | ||||
| MS MUST send a dialogexit notification with an error status code | ||||
| (Section 4.5). A maximum preparation duration of 30s is | ||||
| RECOMMENDED. | ||||
| STARTING: the dialog is being started. If an error occurs the | PREPARED: the dialog has been successfully prepared and the MS MUST | |||
| send a response indicating the prepare operation was successful. | ||||
| If the dialog is then terminated, the dialog transitions to the | ||||
| TERMINATED state. If the duration the dialog remains in the | ||||
| PREPARED state exceeds the maximum preparation duration, 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. | dialogexit notification with an error status code (Section 4.5). | |||
| A maximum preparation duration of 30s is RECOMMENDED. | ||||
| STARTING: the dialog is being started. If the dialog has not | ||||
| already been prepared, it is first prepared and assigned a valid | ||||
| dialog identifier (see below). If an error occurs the dialog | ||||
| transitions to the TERMINATED state and the MS MUST send a | ||||
| response indicating the error type. If the dialog is terminated, | ||||
| the dialog transitions to the TERMINATED state and the MS MUST a | ||||
| 414 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 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, the MS MUST send a dialogexit notification | When the dialog exits (due to normal termination, an error or a | |||
| terminate request), the MS MUST send a dialogexit notification | ||||
| event and the dialog transitions to the TERMINATED state. | event and the dialog transitions to the TERMINATED state. | |||
| TERMINATED: the dialog is terminated and its dialogid is no longer | TERMINATED: the dialog is terminated and its dialog identifier is no | |||
| valid. Dialog notifications MUST NOT be sent for this dialog. | longer valid. Dialog notifications MUST NOT be sent for this | |||
| dialog. | ||||
| It is an error to prepare or start a dialog with the same dialogid as | Each dialog has a valid identifier until it transitions to a | |||
| that of a dialog on the MS which is in the state PREPARING, PREPARED, | TERMINATED state. The dialog identifier is assigned by the MS unless | |||
| STARTING or STARTED: the MS MUST send a response with a status code | the <dialogprepare> or <dialogstart> request already specifies a | |||
| 401. Once a dialog is in a TERMINATED state, its dialogid can be | identifier (dialogid) which is not associated with any other dialog | |||
| reused. | 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. | ||||
| [Editors note: IVR-200. Would this description benefit from a state | The identifier is used to reference the dialog in subsequent | |||
| machine diagram?] | requests, responses and notifications. In a <dialogstart> request, | |||
| the dialog identifier can be specified in the prepareddialogid | ||||
| attribute indicating the prepared dialog to start. In | ||||
| <dialogterminate> and <audit> requests, the dialog identifier is | ||||
| specified in the dialogid attribute, indicating which dialog is to be | ||||
| terminated or audited respectively. If these requests specify a | ||||
| dialog identifier already associated with another dialog, the MS MUST | ||||
| send a response with a 401 status code (Section 4.5) and the same | ||||
| dialogid as in the request. The MS MUST specify a dialog identifier | ||||
| in notifications associated with the dialog. The MS MUST specify a | ||||
| dialog identifier in responses unless it is a response to a | ||||
| <dialogterminate> request without any dialog identifier specified. | ||||
| For a given dialog, the <dialogprepare> or <dialogstart> request | ||||
| elements specify the dialog content to execute either by including | ||||
| inline a <dialog> element (the dialog language defined in this | ||||
| package, see Section 4.3) or by referencing an external dialog | ||||
| document (a dialog language defined outside this package). When | ||||
| referencing an external dialog document, the request element contains | ||||
| a URI reference to the remote document (specifying the dialog | ||||
| definition) and, optionally, a type attribute indicating the MIME | ||||
| media type associated with the dialog document. Consequently, the | ||||
| dialog language associated with a dialog on the MS is identified | ||||
| either inline by a <dialog> child element or by a src attribute | ||||
| referencing a document containing the dialog language. The MS MUST | ||||
| support inline the IVR dialog language defined in Section 4.3. The | ||||
| MS MAY support other dialog languages by reference. | ||||
| 4.2.1. <dialogprepare> | 4.2.1. <dialogprepare> | |||
| The <dialogprepare> request is sent to the MS to request preparation | The <dialogprepare> request is sent to the MS to request preparation | |||
| of a dialog. Dialog preparation consists of (a) retrieving external | of a dialog. Dialog preparation consists of (a) retrieving external | |||
| dialog document and resources (if required), and (b) validating the | dialog document and resources (if required), and (b) validating the | |||
| 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). It is an | prepare. A valid value is a URI (see Section 4.6.9). If the URI | |||
| error if the document cannot be retrieved or processed (e.g. URI | scheme is unknown or unsupported, the MS MUST send a <response> | |||
| protocol not supported). The attribute is optional. There is no | with a 415 status code (Section 4.5). If the document cannot be | |||
| default value. | retrieved, the MS MUST send a <response> with a 410 status code. | |||
| If the document contains a type of dialog which the MS does not | ||||
| supported, the MS MUST send a <response> with a 409 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. The MS MAY use the value to assist the | in the 'src' attribute. A valid value is a MIME media type (see | |||
| remote source in selecting the appropriate resource type (e.g. | Section 4.6.10). The MS MAY use the value to assist the remote | |||
| with HTTP 'accept' header) and to determine how the document is to | source in selecting the appropriate resource type (e.g. with HTTP | |||
| be processed. A valid value is a MIME type (see Section 4.6.10). | 'accept' header) and to determine how the document is to be | |||
| The attribute is optional. The default value is the mime type | processed if the protocol does not provide an authoritative MIME | |||
| "application/msc-ivr+xml" (Section 8.3) associated with the IVR | media type for the returned resource. The attribute is optional. | |||
| dialog type (Section 4.3). | ||||
| fetchtimeout: the maximum interval to wait when fetching an external | fetchtimeout: the maximum interval to wait when fetching an external | |||
| dialog document. A valid value is a Time Designation (see | dialog document. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). If the external document cannot be fetched within | |||
| 30s. | 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. | ||||
| dialogid: string indicating a unique name for the dialog. It is an | dialogid: string indicating a unique name for the dialog. If a | |||
| error if a dialog with the same name already exists on the MS. If | dialog with the same name already exists on the MS, the MS MUST | |||
| this attribute is not specified, the MS MUST create a unique name | send a <response> with a 401 status code (Section 4.5). If this | |||
| for the dialog. The value is used in subsequent references to the | attribute is not specified, the MS MUST create a unique name for | |||
| dialog (e.g. as dialogid in a <response>). The attribute is | the dialog (see Section 4.2 for dialog identifier assignment). | |||
| 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.1) 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 as a child | The dialog to prepare can either be specified inline with a <dialog> | |||
| element or externally using the src attribute (but not both). It is | child element or externally (for dialog languages defined outside | |||
| an error if both an inline <dialog> element and a src attribute are | this specification) using the src attribute. It is a syntax error if | |||
| specified. The type and fetchtimeout attributes are only relevant | both an inline <dialog> element element and a src attribute are | |||
| when a dialog is specified as an external document. | specified and the MS MUST send a <response> with a 418 status code | |||
| (Section 4.5). The type and fetchtimeout attributes are only | ||||
| 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 src="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 | ||||
| VoiceXML dialog document located externally: | ||||
| In this example, a request to prepare a dialog type located | ||||
| externally with a specified 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"> | |||
| <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 types other than the IVR dialog type is | Since MS support for dialog languages other than the IVR dialog | |||
| optional, if the MS does not support the dialog type, it MUST send a | language defined in this package is optional, if the MS does not | |||
| response with the status code 409 (dialog type not supported). | support the dialog language it would send a response with the status | |||
| code 409 (Section 4.5). | ||||
| 4.2.2. <dialogstart> | 4.2.2. <dialogstart> | |||
| The <dialogstart> element is sent to the MS to start a dialog. If | The <dialogstart> element is sent to the MS to start a dialog. If | |||
| the dialog has not been prepared, the dialog is prepared (retrieving | the dialog has not been prepared, the dialog is prepared (retrieving | |||
| an external document and resources if necessary, and the dialog | an external document and resources if necessary, and the dialog | |||
| document validated syntactically and semantically). Media processors | document validated syntactically and semantically). Media processors | |||
| (e.g. DTMF and prompt queue) are activated and associated with the | (e.g. DTMF and prompt queue) are activated and associated with the | |||
| specified connection or conference. | specified connection or conference. | |||
| The <dialogstart> element has the following attributes: | The <dialogstart> element has the following attributes: | |||
| src: specifies the location of an external dialog document to start. | src: specifies the location of an external dialog document to start. | |||
| A valid value is a URI (see Section 4.6.9). It is an error if the | A valid value is a URI (see Section 4.6.9). If the URI scheme is | |||
| document cannot be retrieved or processed (e.g. URI protocol not | unknown or unsupported, the MS MUST send a <response> with a 415 | |||
| supported). The attribute is optional. There is no default | status code (Section 4.5). If the document cannot be retrieved, | |||
| value. | the MS MUST send a <response> with a 410 status code. If the | |||
| document contains a type of dialog which the MS does not | ||||
| supported, the MS MUST send a <response> with a 409 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. The MS MAY use the value to assist the | in the 'src' attribute. A valid value is a MIME media type (see | |||
| remote source in selecting the appropriate resource type (e.g. | Section 4.6.10). The MS MAY use the value to assist the remote | |||
| with HTTP 'accept' header) and to determine how the document is to | source in selecting the appropriate resource type (e.g. with HTTP | |||
| be processed. A valid value is a MIME type (see Section 4.6.10). | 'accept' header) and to determine how the document is to be | |||
| The attribute is optional. The default value is the mime type | processed if the protocol does not provide an authoritative MIME | |||
| "application/msc-ivr+xml" (Section 8.3) associated with the IVR | media type for the returned resource. The attribute is optional. | |||
| dialog type (Section 4.3). | ||||
| fetchtimeout: the maximum interval to wait when fetching an external | fetchtimeout: the maximum interval to wait when fetching an external | |||
| dialog document. A valid value is a Time Designation (see | dialog document. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). If the external document cannot be fetched within | |||
| 30s. | 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. | ||||
| dialogid: string indicating a unique name for the dialog. It is an | dialogid: string indicating a unique name for the dialog. If a | |||
| error if a dialog with the same name already exists on the MS. If | 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 | ||||
| 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. | is specified, the MS MUST create a unique name for the dialog (see | |||
| The value is used in subsequent references to the dialog (e.g. as | Section 4.2 for dialog identifier assignment). The attribute is | |||
| dialogid in a <response>). The attribute is optional. There is | optional. There is no default value. | |||
| no default value. | ||||
| prepareddialogid: string identifying a dialog previously prepared | prepareddialogid: string identifying a dialog previously prepared | |||
| using a dialogprepare request. The attribute is optional. There | using a dialogprepare (Section 4.2.1) request. If neither the | |||
| is no default value. | dialogid attribute nor the prepareddialogid attribute is | |||
| specified, the MS MUST create a unique name for the dialog (see | ||||
| Section 4.2 for dialog identifier assignment). The attribute is | ||||
| optional. There is no default value. | ||||
| connectionid: string identifying the SIP dialog connection on which | connectionid: string identifying the SIP dialog connection on which | |||
| this dialog is to be started (see Section 17.1 of | this dialog 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. | |||
| 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. It is an error to specify both connectionid and | specified. If both connectionid and conferenceid attributes are | |||
| conferenceid attributes or neither. | 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). | ||||
| 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. | the MS at the time the <dialogstart> request is executed. If an | |||
| invalid connectionid is specified, the MS MUST send a <response> with | ||||
| a 403 status code (Section 4.5). If an invalid conferenceid is | ||||
| specified, the MS MUST send a <response> with a 404 status code. | ||||
| The <dialogstart> element has the following sequence of child | The <dialogstart> element has the following sequence of child | |||
| elements: | elements: | |||
| <dialog>: specifies the IVR dialog (Section 4.3.1) 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 | |||
| types defined outside this specification. The element is | languages defined outside this specification. The element is | |||
| optional. | optional. If a parameter cannot be understood or processed by the | |||
| MS for the external dialog language, the MS MUST send a <response> | ||||
| with a 425 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 on a connection or conference can be specified | The dialog to start can be specified either (a) inline with a | |||
| either inline, or externally, or reference a previously prepared | <dialog> child element, or (b) externally using the src attribute | |||
| dialog. Exactly one of the src attribute, the prepareddialogid or a | (for dialog languages defined outside this specification), or (c) | |||
| <dialog> child element MUST be specified. If the prepareddialogid is | reference a previously prepared dialog using the prepareddialogid | |||
| specified, it is an error to specify the src attribute, the dialogid | attribute. If exactly one of the src attribute, the prepareddialogid | |||
| attribute or a dialog type child element. If the src attribute is | or a <dialog> child element is not specified, it is a syntax error | |||
| specified, it is an error to specify the prepareddialogid attribute, | and the MS MUST send a <response> with a 418 status code | |||
| or a dialog type child element. If a <dialog> child element is | (Section 4.5). If the prepareddialogid and dialogid attributes are | |||
| specified, it is an error to specify the src attribute or the | specified, it is also a syntax error and the MS MUST send a | |||
| prepareddialogid attribute. The type and fetchtimeout attributes are | <response> with a 418 status code. The type and fetchtimeout | |||
| only relevant when a dialog is specified as an external document. | attributes are only relevant when a dialog is specified as an | |||
| 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. | |||
| It is an error if a <stream> element is in conflict with (a) another | If a <stream> element is in conflict with (a) another <stream> | |||
| <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]) or | |||
| (d) if the media stream configuration is not supported by the MS. If | (d) if the media stream configuration is not supported by the MS, | |||
| the MS does not support a requested <stream> configuration, it MUST | then the MS MUST send a <response> with a 413 status code | |||
| response with a <response> with a 413 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 report an error when starting that | |||
| dialog. | dialog. | |||
| [Editors Note: IVR-201. If the conference mixer package supports | ||||
| video layout regions, then we need a mechanism to specify that the | ||||
| dialog is to be started on a specific region of the conference.] | ||||
| 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 notificatons: | 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 src="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| <subscribe> | <subscribe> | |||
| <dmtfnotify 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 | |||
| 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> | |||
| skipping to change at page 19, line 40 ¶ | skipping to change at page 24, line 6 ¶ | |||
| 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 occurences): | (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. If the MS does not support a requested | |||
| subscription, it MUST send a <response> with a 412 status code. | subscription, it MUST send a <response> with a 412 status code | |||
| (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 keypresses received during the | values are: "all" - notify all DTMF key presses received during | |||
| dialog; "collect" - notify only DTMF input matched by the collect | the dialog; "collect" - notify only DTMF input matched by the | |||
| operation (Section 4.3.1.3); and "control" - notify only DTMF | collect operation (Section 4.3.1.3); and "control" - notify only | |||
| input matched by the runtime control operation (Section 4.3.1.2). | DTMF input matched by the runtime control operation | |||
| The attribute is optional. The default value is "all". | (Section 4.3.1.2). The attribute is optional. The default value | |||
| is "all". | ||||
| The <dtmfsub> element has no child elements. | The <dtmfsub> element has no child elements. | |||
| 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 keypress 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 src="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey="2" rewkey="3"/> | <control ffkey="2" rewkey="3"/> | |||
| </dialog> | </dialog> | |||
| skipping to change at page 20, line 46 ¶ | skipping to change at page 25, line 14 ¶ | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d3"> | <event dialogid="d3"> | |||
| <dtmfnotify matchmode="collect" dtmf="2" | <dtmfnotify matchmode="collect" dtmf="2" | |||
| timestamp="2008-05-12T12:13:14Z"/> | timestamp="2008-05-12T12:13:14Z"/> | |||
| /event> | /event> | |||
| </mscivr> | </mscivr> | |||
| 4.2.2.2. <stream> | 4.2.2.2. <stream> | |||
| the <stream> element has the following attributes: | The <stream> element has the following attributes: | |||
| media: a string indicating the type of media associated with the | media: a string indicating the type of media associated with the | |||
| stream. It is strongly RECOMMENDED that the following values are | stream. It is strongly RECOMMENDED that the following values are | |||
| used for common types of media: "audio" for audio media, and | used for common types of media: "audio" for audio media, and | |||
| "video" for video media. The attribute is mandatory. | "video" for video media. The attribute is mandatory. | |||
| label: a string indicating the SDP label associated with a media | label: a string indicating the SDP label associated with a media | |||
| stream ([RFC4574]). The attribute is optional. | stream ([RFC4574]). The attribute is optional. | |||
| direction: a string indicating the direction of the media flow | direction: a string indicating the direction of the media flow | |||
| between a dialog and its end point conference or connection. | between a dialog and its end point conference or connection. | |||
| Defined values are: "sendrecv" (media can be sent and received), | Defined values are: "sendrecv" (media can be sent and received), | |||
| "sendonly" (media can only be sent), "recvonly" (media can only be | "sendonly" (media can only be sent), "recvonly" (media can only be | |||
| received) and "inactive" (stream is not to be used). The default | received) and "inactive" (stream is not to be used). The default | |||
| value is "sendrecv". The attribute is optional. | value is "sendrecv". The attribute is optional. | |||
| the <stream> element has no child elements. | The <stream> element has the following child element: | |||
| <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 | ||||
| element is optional. | ||||
| If conferenceid is not specified or if the "media" attribute does not | ||||
| have the value of "video", then the MS MUST ignored the <region> | ||||
| element. | ||||
| 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"/> | |||
| </dialog> | </dialog> | |||
| <stream media="audio" label="camaudio" direction="inactive"/> | <stream media="audio" label="camaudio" direction="inactive"/> | |||
| <stream media="video" label="camvideo" direction="inactive"/> | <stream media="video" label="camvideo" direction="inactive"/> | |||
| <stream media="audio" label="useraudio" direction="recvonly"/> | <stream media="audio" label="useraudio" direction="recvonly"/> | |||
| <stream media="video" label="uservideo" direction="recvonly"/> | <stream media="video" label="uservideo" direction="recvonly"/> | |||
| </mscivr> | </mscivr> | |||
| 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 | ||||
| specific region within a video layout. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart conferenceid="conference1"> | ||||
| <dialog> | ||||
| <prompt> | ||||
| <media src="http://www.example.com/presentation.3gp"/> | ||||
| </prompt> | ||||
| </dialog> | ||||
| <stream media="video" direction="sendonly"> | ||||
| <region>r1</region> | ||||
| </stream> | ||||
| </mscivr> | ||||
| 4.2.2.2.1. <region> | ||||
| The <region> element is used to specify the region within a video | ||||
| layout where a video media stream is displayed. | ||||
| The <region> element has no attributes and its content model | ||||
| specifies the name of the region layout. | ||||
| 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 | ||||
| the <region> element. | ||||
| 4.2.3. <dialogterminate> | 4.2.3. <dialogterminate> | |||
| A dialog that has been successfully prepared or started can be | A dialog can be terminated by sending a <dialogterminate> request | |||
| 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. It is an | dialogid: string identifying the dialog to terminate. The MS MUST | |||
| error if the dialog identifier is not valid. The attribute is | send a response with a 402 status code (Section 4.5) if the | |||
| specified dialog identifier is invalid. The attribute is | ||||
| mandatory. | mandatory. | |||
| immediate: indicates whether the dialog is to be terminated | immediate: indicates whether a dialog in the STARTED state is to be | |||
| immediately or not. A valid value is a boolean (see | terminated immediately or not (in other states, termination is | |||
| 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 a dialogexit notification without | terminated immediately and the MS MUST send a dialogexit | |||
| report information MUST be sent. A value of false indicates that | notification without report information. A value of false | |||
| the dialog terminates after the current iteration and the MS MUST | indicates that the dialog terminates after the current iteration | |||
| send a dialogexit notification with report information. The | and the MS MUST send a dialogexit notification with report | |||
| attribute is optional. The default value is false. | information. The attribute is optional. The default value is | |||
| false. | ||||
| When an MS receives a <dialogterminate> request, the dialog MUST be | ||||
| in a PREPARED, STARTING or STARTED states; otherwise, the MS MUST | ||||
| send a response with the status code 402. If it is in a PREPARED | ||||
| state, then it transitions immediately to the TERMINATED state. If | ||||
| it is in STARTING state, then any further starting (or preparation) | ||||
| of the dialog is canceled, the dialog transitions to the TERMINATED | ||||
| state and the MS MUST send a response with the status code 414 for | ||||
| the dialogstart request. If the dialog is in a STARTED state, then | ||||
| the dialog is terminated according to the value of the immediate | ||||
| attribute. | ||||
| 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 stopped | element (Section 4.2.4), reporting whether the dialog was terminated | |||
| successful or not. | successful or not. | |||
| For example, immediately terminating a dialog with dialogid "d4": | For example, immediately terminating a STARTED dialog with dialogid | |||
| "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"/> | |||
| </mscivr> | </mscivr> | |||
| If the dialog is terminated successfully, then the response to the | If the dialog is terminated successfully, then the response to the | |||
| dialogterminate request would be: | dialogterminate request would be: | |||
| <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="d4"/> | <response status="200" dialogid="d4"/> | |||
| <dialogterminate dialogid="d4" immediate="true"/> | ||||
| </mscivr> | </mscivr> | |||
| 4.2.4. <response> | 4.2.4. <response> | |||
| Responses to dialog management requests are specified with a | Responses to dialog management requests are specified with a | |||
| <response> element. | <response> element. | |||
| The <response> element has following attributes: | The <response> element has following attributes: | |||
| status: numeric code indicating the response status. Valid values | status: numeric code indicating the response status. Valid values | |||
| skipping to change at page 23, line 22 ¶ | skipping to change at page 28, line 29 ¶ | |||
| [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 type: | 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="409" dialogid="d5" | |||
| reason="Unsupported dialog type: 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 error (attribute required) and | The response status indicates a 409 (attribute required) error status | |||
| dialogid attribute has an empty string value: | code and 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="408" 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. | |||
| skipping to change at page 24, line 14 ¶ | skipping to change at page 29, line 21 ¶ | |||
| dialogid: string identifying the dialog which generated the event. | dialogid: string identifying the dialog which generated the event. | |||
| The attribute is mandatory. | The attribute is mandatory. | |||
| The <event> element has the following child elements, only one of | The <event> element has the following child elements, only one of | |||
| which can occur: | which can occur: | |||
| <dialogexit>: indicates that the dialog has exited | <dialogexit>: indicates that the dialog has exited | |||
| (Section 4.2.5.1). | (Section 4.2.5.1). | |||
| <dtmfnotify>: indicates that a DTMF key press occured | <dtmfnotify>: indicates that a DTMF key press occurred | |||
| (Section 4.2.5.2). | (Section 4.2.5.2). | |||
| 4.2.5.1. <dialogexit> | 4.2.5.1. <dialogexit> | |||
| The <dialogexit> event indicates that a prepared or active dialog has | The <dialogexit> event indicates that a prepared or active dialog has | |||
| exited because it is complete, has been terminated, or because an | exited because it is complete, has been terminated, or because an | |||
| error occurred during execution (for example, a media resource cannot | error occurred during execution (for example, a media resource cannot | |||
| be played). This event MUST be sent by the MS when the dialog exits. | be played). This event MUST be sent by the MS when the dialog exits. | |||
| The <dialogexit> element has the following attributes: | The <dialogexit> element has the following attributes: | |||
| skipping to change at page 25, line 11 ¶ | skipping to change at page 30, line 17 ¶ | |||
| <controlinfo>: reports information (Section 4.3.2.2) about the | <controlinfo>: reports information (Section 4.3.2.2) about the | |||
| control execution in an IVR <dialog>. The element is optional. | control execution in an IVR <dialog>. The element is optional. | |||
| <collectinfo>: reports information (Section 4.3.2.3) about the | <collectinfo>: reports information (Section 4.3.2.3) about the | |||
| collect execution in an IVR <dialog>. The element is optional. | collect execution in an IVR <dialog>. The element is optional. | |||
| <recordinfo>: reports information (Section 4.3.2.4) about the record | <recordinfo>: reports information (Section 4.3.2.4) about the record | |||
| execution in an IVR <dialog>. The element is optional. | execution in an IVR <dialog>. The element is optional. | |||
| <params>: reports exit parameters (Section 4.2.6) for a dialog type | <params>: reports exit parameters (Section 4.2.6) for a dialog | |||
| defined outside this specification. The element is optional. | language defined outside this specification. The element is | |||
| optional. | ||||
| 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> | |||
| 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 | |||
| request. Valid values are: "all" - all DTMF keypresses notified; | request. Valid values are: "all" - all DTMF key presses notified | |||
| "collect" - only DTMF input matched by the collect operation | individually; "collect" - only DTMF input matched by the collect | |||
| notified; and "control" - only DTMF input matched by the control | operation notified; and "control" - only DTMF input matched by the | |||
| operation notified. The attribute is optional. The default value | control operation notified. The attribute is optional. The | |||
| is "all". | default value is "all". | |||
| dtmf: DTMF keypress received. A valid value is a DTMF string (see | dtmf: DTMF key presses received according to the matchmode. A valid | |||
| Section 4.6.3) with no space between characters. The attribute is | value is a DTMF string (see Section 4.6.3) with no space between | |||
| mandatory. | characters. The attribute is mandatory. | |||
| timestamp: indicates the time (on the MS) at which the key press | timestamp: indicates the time (on the MS) at which the last key | |||
| occured. A valid value is a dateTime expression (Section 4.6.12). | press occurred according to the matchmode. A valid value is a | |||
| The attribute is mandatory. | dateTime expression (Section 4.6.12). The attribute is mandatory. | |||
| For example, a notification of a DTMF matched during the collect | For example, a notification of DTMF input matched during the collect | |||
| operation: | operation: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d3"> | <event dialogid="d3"> | |||
| <dtmfnotify matchmode="collect" dtmf="3" | <dtmfnotify matchmode="collect" dtmf="3123" | |||
| timestamp="2008-05-12T12:13:14Z"/> | timestamp="2008-05-12T12:13:14Z"/> | |||
| /event> | /event> | |||
| </mscivr> | </mscivr> | |||
| 4.2.6. <params> | 4.2.6. <params> | |||
| The <params> element is a container for <param> elements | The <params> element is a container for <param> elements | |||
| (Section 4.2.6.1). | (Section 4.2.6.1). | |||
| The <params> element has no attributes, but the following child | The <params> element has no attributes, but the following child | |||
| elements are defined (0 or more): | elements are defined (0 or more): | |||
| <param>: specifies a parameter name and value (Section 4.2.6.1). | <param>: specifies a parameter name and value (Section 4.2.6.1). | |||
| For example, usage with a dialog type defined outside this | For example, usage with a dialog language defined outside this | |||
| specification to send additional parameters into the dialog: | specification to send additional parameters into the dialog: | |||
| <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 type="application/x-dialog" | <dialogstart type="application/x-dialog" | |||
| src="nfs://nas01/dialog4" connectionid="c1"> | src="nfs://nas01/dialog4" connectionid="c1"> | |||
| <params> | <params> | |||
| <param name="mode">playannouncement</param> | <param name="mode">playannouncement</param> | |||
| <param name="prompt1">nfs://nas01/media1.3gp"</param> | <param name="prompt1">nfs://nas01/media1.3gp</param> | |||
| <param name="prompt2">nfs://nas01/media2.3gp"</param> | <param name="prompt2">nfs://nas01/media2.3gp</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| 4.2.6.1. <param> | 4.2.6.1. <param> | |||
| The <param> element describes a parameter name and value. | The <param> element describes a parameter name and value. | |||
| The <param> element has the following attributes: | The <param> element has the following attributes: | |||
| name: a string indicating the name of the parameter. The attribute | name: a string indicating the name of the parameter. The attribute | |||
| is mandatory. | is mandatory. | |||
| type: specifies a mimetype of the parameter value. A valid value is | type: specifies a type indicating how the inline value of the | |||
| a MIME type (see Section 4.6.10). The attribute is optional. | parameter is to be interpreted. A valid value is a MIME media | |||
| There is no default value. | type (see Section 4.6.10). The attribute is optional. The | |||
| default value is "text/plain". | ||||
| valuetype: a string indicating the type of the parameter value. The | ||||
| attribute is optional. The default value is a string type. | ||||
| If the MS supports parameters, it MUST support the string valuetype | ||||
| and MAY support other parameter valuetypes (e.g. base64Binary for | ||||
| inline binary data, such as a media recording). | ||||
| The <param> element content model is the value of the parameter. | The <param> element content model is the value of the parameter. | |||
| Note that a value which contains XML characters (e.g. "<") needs to | ||||
| be escaped following standard XML conventions. | ||||
| For example, usage with a dialog type defined outside this | For example, usage with a dialog language defined outside this | |||
| specification to receive parameters from the dialog when it exits: | specification to receive parameters from the dialog when it exits: | |||
| <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"> | |||
| <params> | <params> | |||
| <param name="mode">recording</param> | <param name="mode">recording</param> | |||
| <param name="recording1" mimetype="audio/x-wav" | <param name="recording1" type="audio/x-wav"> | |||
| valuetype="base64Binary"> | ||||
| R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV | <![CDATA[ | |||
| R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV | ||||
| ]]> | ||||
| </param> | </param> | |||
| </params> | </params> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 4.3. IVR Dialog Elements | 4.3. IVR Dialog Elements | |||
| This section describes the IVR dialog type. The MS MUST support this | This section describes the IVR dialog language defined as part of | |||
| dialog type. | this specification. The MS MUST support this dialog language. | |||
| The <dialog> element is an execution container for operations of | The <dialog> element is an execution container for operations of | |||
| playing prompts (Section 4.3.1.1), runtime controls | playing prompts (Section 4.3.1.1), runtime controls | |||
| (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording | (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3),and recording | |||
| user input (Section 4.3.1.4. Results of the dialog execution | user input (Section 4.3.1.4. Results of the dialog execution | |||
| (Section 4.3.2) are reported in a dialogexit notification event. | (Section 4.3.2) are reported in a dialogexit notification event. | |||
| Using these elements, three common dialog models are supported: | Using these elements, three common dialog models are supported: | |||
| playannouncements: only a <prompt> element is specified in the | playannouncements: only a <prompt> element is specified in the | |||
| skipping to change at page 28, line 12 ¶ | skipping to change at page 33, line 20 ¶ | |||
| initiated. If no prompt element is specified, DTMF collection is | initiated. If no prompt element is specified, DTMF collection is | |||
| initiated immediately. | initiated immediately. | |||
| promptandrecord: a <record> element is specified and, optionally, a | promptandrecord: a <record> element is specified and, optionally, a | |||
| <prompt> element. If a <prompt> element is specified and bargein | <prompt> element. If a <prompt> element is specified and bargein | |||
| is enabled, playing of the prompt is terminated when bargein | is enabled, playing of the prompt is terminated when bargein | |||
| occurs, and recording is initiated; otherwise, the prompt is | occurs, and recording is initiated; otherwise, the prompt is | |||
| played to completion before recording is initiated. If no prompt | played to completion before recording is initiated. If no prompt | |||
| element is specified, recording is initiated immediately. | element is specified, recording is initiated immediately. | |||
| In addition, this dialog type supports runtime ('VCR') controls | In addition, this dialog language supports runtime ('VCR') controls | |||
| enabling a user to control prompt playback using DTMF. | enabling a user to control prompt playback using DTMF. | |||
| Each of the core elements - <prompt>, <control>, <collect> and | Each of the core elements - <prompt>, <control>, <collect> and | |||
| <record> - are specified so that their execution and reporting is | <record> - are specified so that their execution and reporting is | |||
| largely self-contained. This facilitates their re-use in other | largely self-contained. This facilitates their re-use in other | |||
| dialog container elements. Note that DTMF and bargein behavior | dialog container elements. Note that DTMF and bargein behavior | |||
| affects multiple elements and is addressed in the relevant element | affects multiple elements and is addressed in the relevant element | |||
| definitions. | definitions. | |||
| Execution results are reported in the <dialogexit> notification event | Execution results are reported in the <dialogexit> notification event | |||
| skipping to change at page 29, line 21 ¶ | skipping to change at page 34, line 30 ¶ | |||
| The attribute is optional. The default value is 1. | The attribute is optional. The default value is 1. | |||
| repeatDur: maximum duration for dialog execution. A valid value is | repeatDur: maximum duration for dialog execution. A valid value is | |||
| a Time Designation (see Section 4.6.7). If no value is specified, | a Time Designation (see Section 4.6.7). If no value is specified, | |||
| then there is no limit on the duration of the dialog. The | then there is no limit on the duration of the dialog. The | |||
| attribute is optional. There is no default value. | attribute is optional. There is no default value. | |||
| 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. | information. In the situation where a dialog is repeated more than | |||
| once, only the results of operations in the last dialog iteration are | ||||
| reported. | ||||
| The <dialog> element has the following sequence of child elements: | The <dialog> element has the following sequence of child elements: | |||
| <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. | |||
| It is an error if no child element is specified. The behavior is not | The MS MUST send a <response> with a 418 status code (Section 4.5) if | |||
| defined if both <collect> and <record> are specified. | no child element is specified or a <control> element is specified but | |||
| not a <prompt> element. Although the behavior when both <collect> | ||||
| and <record> elements are specified is not defined in this control | ||||
| 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 IVR dialog has the following execution model after initialization | The MS has the following execution model for the IVR dialog after | |||
| (initialization errors are reported in the response): | initialization (initialization errors are reported by the MS in the | |||
| response): | ||||
| 1. If an error occurs during execution, then the dialog terminates | 1. If an error occurs during execution, then the MS terminates the | |||
| and the error is reported 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. | |||
| 2. A counter is initialized to 0. | 2. The MS initializes a counter to 0. | |||
| 3. A duration timer is started for the value of the repeatDur | 3. The MS starts a duration timer for the value of the repeatDur | |||
| attribute. If the timer expires before the dialog is complete, | attribute. If the timer expires before the dialog is complete, | |||
| then dialog is terminated and the dialogexit status attribute is | then the MS terminates the dialog and sends a dialogexit whose | |||
| set to 3 (see Section 4.2.5.1). The dialogexit MAY report | status attribute is set to 3 (see Section 4.2.5.1). The MS MAY | |||
| information gathered in the last execution cycle (if any). | report information in the dialogexit gathered in the last | |||
| execution cycle (if any). | ||||
| 4. A dialog execution cycle is initiated. Each cycle executes the | 4. The MS initiates a dialog execution cycle. Each cycle executes | |||
| operations associated with the child elements of the dialog. If | the operations associated with the child elements of the dialog. | |||
| subscriptions are specified for the dialog, then a notification | If a <prompt> element is specified, then execute the element's | |||
| event is sent when the specified event occurs. If a child | prompt playing operation and activate any controls (if the | |||
| element reports an execution error, dialog execution is | <control> element is specified). If no <prompt> is specified or | |||
| terminated (other child element operations are stopped) and the | when a specified <prompt> terminates, then start the collect | |||
| dialogexit status event sent, reporting any information gathered. | operation or the record operation if the <collect> or <record> | |||
| elements respectively are specified. If subscriptions are | ||||
| specified for the dialog, then the MS sends a notification event | ||||
| when the specified event occurs. If execution of a child element | ||||
| results in an error, the MS terminates dialog execution (and | ||||
| stops other child element operations) and the MS sends a | ||||
| dialogexit status event, reporting any information gathered. | ||||
| 5. If the dialog execution cycle completes successfully, then the | 5. If the dialog execution cycle completes successfully, then the MS | |||
| counter is incremented 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 dialog execution is | value of the repeatCount attribute, then the MS terminates dialog | |||
| terminated and the dialogexit (with a status of 1) reports | execution and the sends a dialogexit (with a status of 1) | |||
| operation information collected in the dialog execution cycle. | reporting operation information collected in the last dialog | |||
| Otherwise, another dialog execution cycle is initiated. | execution cycle only. Otherwise, another dialog execution cycle | |||
| is initiated. | ||||
| 4.3.1.1. <prompt> | 4.3.1.1. <prompt> | |||
| The <prompt> element specifies a sequence of media resources to play. | The <prompt> element specifies a sequence of media resources to play. | |||
| 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 assocated 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 (any order, | |||
| multiple occurrences of each element permitted): | multiple occurrences of each element permitted): | |||
| <media>: media resource (see Section 4.3.1.1.1) to play. The | <media>: media resource (see Section 4.3.1.1.1) to play. The | |||
| element is optional. | 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.2) 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.3) to | |||
| play. The element is optional. | play. The element is optional. | |||
| It is an error if no child element is specified. | If no child element is specified, then the MS MUST send a <response> | |||
| with a 418 status code (Section 4.5). | ||||
| Prompt playing has the following execution model upon initialization: | The MS has the following execution model for prompt playing after | |||
| initialization: | ||||
| 1. Prompt playback is initiated playing each <media>, <variable> and | 1. The MS initiates prompt playback playing each <media>, <variable> | |||
| <dtmf> in document order. | and <dtmf> in document order. | |||
| 2. If an error (including fetching errors) occurs during execution, | 2. If any error (including fetching and rendering errors) occurs | |||
| then playback terminates and the error is reported to the dialog | during prompt execution, then the MS terminates playback and | |||
| container. The <promptinfo> termmode attribute is set to stopped | reports its error status to the dialog container (see | |||
| (see Section 4.3.2.1) and any additional information is set. | Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | |||
| termmode attribute is set to stopped and any additional | ||||
| information is set. | ||||
| 3. If the dialog container signals a bargein event and the value of | 3. If DTMF input is received and the value of the bargein attribute | |||
| the bargein attribute is true, then prompt playback is terminated | is true, then the MS terminates prompt playback and reports its | |||
| and the <promptinfo> termmode attribute is set to bargein (see | execution status to the dialog container (see Section 4.3) with a | |||
| Section 4.3.2.1) and any additional information is set. | <promptinfo> (see Section 4.3.2.1) where the termmode attribute | |||
| is set to bargein and any additional information is set. | ||||
| 4. If prompt playback is stopped by the dialog container, then | 4. If prompt playback is stopped by the dialog container, then the | |||
| <promptinfo> termmode attribute is set to stopped (see | MS reports its execution status to the dialog container (see | |||
| Section 4.3.2.1). | Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the | |||
| termmode attribute is set to stopped and any additional | ||||
| information is set. | ||||
| 5. If prompt playback completes successfully, <promptinfo> termmode | 5. If prompt playback completes successfully, then the MS reports | |||
| attribute set to completed (see Section 4.3.2.1) and any | its execution status to the dialog container (see Section 4.3) | |||
| additional information is set. This completion status is of this | with a <promptinfo> (see Section 4.3.2.1) where the termmode | |||
| element reported to the dialog. | attribute is set to completed and any additional information is | |||
| set. | ||||
| 4.3.1.1.1. <media> | 4.3.1.1.1. <media> | |||
| The <media> element specifies a media resource to play. | The <media> element specifies a media resource to play. | |||
| A <media> element has the following attributes: | A <media> element has the following attributes: | |||
| src: specifies the location of the media resource. A valid value is | src: specifies the location of the media resource. A valid value is | |||
| a URI (see Section 4.6.9). The attribute is mandatory. | a URI (see Section 4.6.9). 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 | type: specifies the type of the media resource indicated in the | |||
| 'src' attribute. The MS MAY use the value to assist the remote | 'src' attribute. 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 resource is to be | |||
| processed. The value may include additional parameters for | processed if the protocol does not provide an authoritative MIME | |||
| guiding playback; for example, [RFC4281] defines a 'codec' | media type for the returned resource. The value may include | |||
| parameter for 'bucket' media types like video/3gpp. A valid value | additional parameters for guiding playback; for example, [RFC4281] | |||
| is a MIME type (see Section 4.6.10). The attribute is optional. | defines a 'codec' parameter for 'bucket' media types like video/ | |||
| There is no default value. | 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 | fetchtimeout: the maximum interval to wait when fetching a media | |||
| resource. A valid value is a Time Designation (see | resource. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). If the resource cannot be fetched within the | |||
| 30s. | 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 | soundLevel: playback soundLevel (volume) for the media resource. A | |||
| valid value is a percentage (see Section 4.6.4). The value | valid value is a percentage (see Section 4.6.4). The value | |||
| indicates increase or decrease relative to the original recorded | indicates increase or decrease relative to the original recorded | |||
| volume of the media. A value of 100% (the default) plays the | volume of the media. A value of 100% (the default) plays the | |||
| media at its recorded volume, a value of 200% will play the media | 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 | twice recorded volume, 50% at half its recorded volume, a value of | |||
| 0% will play the media silently, and so on. See 'soundLevel' in | 0% will play the media silently, and so on. See 'soundLevel' in | |||
| SMIL ([W3C.REC-SMIL2-20051213]) for further information. The | SMIL ([W3C.REC-SMIL2-20051213]) for further information. The | |||
| attribute is optional. The default value is 100%. | attribute is optional. The default value is 100%. | |||
| clipBegin: offset from start of media resource to begin playing. A | clipBegin: offset from start of media resource to begin playing. A | |||
| valid value is a Time Designation (see Section 4.6.7). The offset | valid value is a Time Designation (see Section 4.6.7). The offset | |||
| is measured in normal media playback time from the beginning of | is measured in normal media playback time from the beginning of | |||
| the media resource. If the clipBegin offset is after the end of | the media resource. If the clipBegin offset is after the end of | |||
| media, no media is played. See 'clipBegin' in SMIL | 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 | ([W3C.REC-SMIL2-20051213]) for further information. The attribute | |||
| is optional. The default value is 0s. | is optional. There is no default value. | |||
| The <media> element has no children. | The <media> element has no children. | |||
| It is an error if the media resource cannot be fetched (e.g. fetch | ||||
| timeout occurs) or played (e.g. unsupported format). | ||||
| 4.3.1.1.2. <variable> | 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. | |||
| skipping to change at page 33, line 34 ¶ | skipping to change at page 39, line 34 ¶ | |||
| formats are supported by an implementation. However it is | formats are supported by an implementation. However it is | |||
| RECOMMENDED that an implementation support the following type/format | RECOMMENDED that an implementation support the following type/format | |||
| combinations: | combinations: | |||
| type=date Supported formats: "mdy" (month day year), "ymd" (year | type=date Supported formats: "mdy" (month day year), "ymd" (year | |||
| month day), "dym" (day month year), "dm" (day month) | month day), "dym" (day month year), "dm" (day month) | |||
| type=time Supported formats: "t12" (12 hour format with am/pm), | type=time Supported formats: "t12" (12 hour format with am/pm), | |||
| "t24" (24 hour format) | "t24" (24 hour format) | |||
| type=digits Supported formats: "gen" (XXX), "ndn" (XXX), "crn" | type=digits Supported formats: "gen" (general digit string), "crn" | |||
| (cardinal), "ord" (ordinal) | (cardinal), "ord" (ordinal) | |||
| [Editors Note: IVR-202. What do 'gen' and 'ndn' format mean for | ||||
| digits? Terms defined in MSCML. ] | ||||
| 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. | |||
| It is an error if a <variable> element cannot be rendered | If a <variable> element configuration is not supported by the MS, the | |||
| successfully on the MS implementation. | MS MUST send a <response> with a 421 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 src="nfs://voicebase/en/male/25th.wav"/> | |||
| <media src="nfs://voicebase/en/male/of.wav"/> | <media src="nfs://voicebase/en/male/of.wav"/> | |||
| <media src="nfs://voicebase/en/male/february.wav"/> | <media src="nfs://voicebase/en/male/february.wav"/> | |||
| <media src="nfs://voicebase/en/male/2000.wav"/> | <media src="nfs://voicebase/en/male/2000.wav"/> | |||
| skipping to change at page 35, line 5 ¶ | skipping to change at page 40, line 50 ¶ | |||
| default value is 100ms. | default value is 100ms. | |||
| interval: specifies the duration of a silence interval following | interval: specifies the duration of a silence interval following | |||
| each generated DTMF tone. A valid value is a time designation | each generated DTMF tone. A valid value is a time designation | |||
| (see Section 4.6.7). Implementations may round the value if they | (see Section 4.6.7). 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. | |||
| It is an error if a <dtmf> element cannot be processed successfully. | If a <dtmf> element configuration is not supported, the MS MUST send | |||
| a <response> with a 422 status code (Section 4.5). | ||||
| 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 36, line 52 ¶ | skipping to change at page 42, line 52 ¶ | |||
| Character (see Section 4.6.2). The attribute is optional. There | Character (see Section 4.6.2). The attribute is optional. There | |||
| is no default value. | is no default value. | |||
| 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. | |||
| It is an error if any control key is specified with the same value | If the same DTMF is specified in more than one DTMF key control | |||
| except that the pausekey and resumekey may have the same value. | attribute - except the pausekey and resumekey attributes - the MS | |||
| MUST send a <response> with a 423 status code (Section 4.5). | ||||
| Runtime control has the following execution model upon | The MS has the following execution model for runtime control after | |||
| initialization: | initialization: | |||
| 1. If an error occurs during execution, then runtime control | 1. If an error occurs during execution, then the MS terminates | |||
| terminates and the error is reported to the dialog container. | runtime control and the error is reported to the dialog | |||
| Controls executed successfully before the error MAY be reported | container. The MS MAY report controls executed successfully | |||
| 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 DTMF | |||
| input matches any specified keys (for example the ffkey), then | input matches any specified keys (for example the ffkey), then | |||
| the appropriate operation is applied immediately. If a seek | the appropriate operation is applied immediately. If a seek | |||
| operation (ffkey, rwkey) attempts to go beyond the beginning or | operation (ffkey, rwkey) attempts to go beyond the beginning or | |||
| end of the prompt queue, then it is automatically truncated to | end of the prompt queue, then it is automatically truncated to | |||
| the prompt beginning or end respectively. If the pause operation | the prompt beginning or end respectively. If the pause operation | |||
| attempts to pause output when it is already paused, then the | attempts to pause output when it is already paused, then the | |||
| operation is ignored. If the resume operation attempts to resume | operation is ignored. If the resume operation attempts to resume | |||
| when the prompts are not paused, then the operation is ignored. | when the prompts are not paused, then the operation is ignored. | |||
| If a volume operations attempts to go beyond the minimum or | If a volume operations attempts to go beyond the minimum or | |||
| maximum volume supported by the platform, then the operation is | maximum volume supported by the platform, then the operation is | |||
| ignored. | 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 evemt (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> | |||
| The <collect> element defines how DTMF input is collected. | The <collect> element defines how DTMF input is collected. | |||
| The <collect> element has the following attributes: | The <collect> element has the following attributes: | |||
| skipping to change at page 38, line 41 ¶ | skipping to change at page 44, line 41 ¶ | |||
| The <collect> element has the following child elements: | The <collect> element has the following child elements: | |||
| <grammar>: indicates a custom grammar format (see | <grammar>: indicates a custom grammar format (see | |||
| Section 4.3.1.3.1). The element is optional. | Section 4.3.1.3.1). The element is optional. | |||
| The custom grammar takes priority over the internal grammar. If a | The custom grammar takes priority over the internal grammar. If a | |||
| <grammar> element is specified, the MS MUST use it for DTMF | <grammar> element is specified, the MS MUST use it for DTMF | |||
| collection. | collection. | |||
| DTMF collection has the following execution model upon | The MS has the following execution model for DTMF collection after | |||
| initialization: | initialization: | |||
| 1. The DTMF collection buffer MUST NOT receive DTMF input matching | 1. The DTMF collection buffer MUST NOT receive DTMF input matching | |||
| <control> operations (see Section 4.3.1.2). | <control> operations (see Section 4.3.1.2). | |||
| 2. If an error occurs during execution, then collection terminates | 2. If an error occurs during execution, then the MS terminates | |||
| and the error is reported to the dialog container. DTMF | collection and reports the error to the dialog container (see | |||
| collected before the error MAY be reported in <collectinfo> (see | Section 4.3). The MS may report DTMF collected before the error | |||
| Section 4.3.2.3). | in <collectinfo> (see Section 4.3.2.3). | |||
| 3. The digit buffer is cleared if the value of the cleardigitbuffer | 3. The MS clears the digit buffer if the value of the | |||
| attribute is true. | cleardigitbuffer attribute is true. | |||
| 4. A timer with the duration of the value of the timeout attribute | 4. The MS activates a timer with the duration of the value of the | |||
| is activated. If the timer expires before DTMF input collection | timeout attribute. If the timer expires before DTMF input | |||
| begins, then collection execution terminates, the <collectinfo> | collection begins, then collection execution terminates, the | |||
| (see Section 4.3.2.3) has the termmode attribute set to noinput | <collectinfo> (see Section 4.3.2.3) has the termmode attribute | |||
| and the execution status reported to the dialog container. | set to noinput and the execution status reported to the dialog | |||
| container. | ||||
| 5. If DTMF collect input matches the value of the escapekey | 5. If DTMF collect input matches the value of the escapekey | |||
| attribute, then the timer is canceled and DTMF collection is re- | attribute, then the MS cancels the timer and re-initializes DTMF | |||
| initialized. | collection. | |||
| 6. Other DTMF collect input is matched to the grammar. Valid DTMF | 6. Other DTMF collect input is matched to the grammar. Valid DTMF | |||
| patterns are either a simple digit string where the maximum | patterns are either a simple digit string where the maximum | |||
| length is determined by the maxdigits attribute and may be | length is determined by the maxdigits attribute and may be | |||
| terminated by the character in the termchar attribute; or a | terminated by the character in the termchar attribute; or a | |||
| custom DTMF grammar specified with the <grammar> element. The | custom DTMF grammar specified with the <grammar> element. The | |||
| attributes interdigittimeout and termtimeout control interdigit | attributes interdigittimeout and termtimeout control interdigit | |||
| timeout and the terminating timeout respectively. | timeout and the terminating timeout respectively. | |||
| 7. If the collect input completely matches the grammar, the timer is | 7. If the collect input completely matches the grammar, the timer is | |||
| canceled, collection execution terminates and the execution | canceled, the MS terminates collection execution and reports | |||
| status is reported to the dialog container with <collectinfo> | execution status to the dialog container with <collectinfo> (see | |||
| (see Section 4.3.2.3) where the termmode attribute set to match. | Section 4.3.2.3) where the termmode attribute set to match. | |||
| 8. If the collect input does not match the grammar, the timer is | 8. If the collect input does not match the grammar, the MS cancels | |||
| canceled, collection execution terminates and execution status is | the timer, terminates collection execution and reports execution | |||
| reported to the dialog container with a <collectinfo> (see | status to the dialog container with a <collectinfo> (see | |||
| Section 4.3.2.3) where the termmode attribute set to nomatch. | Section 4.3.2.3) where the termmode attribute set to nomatch. | |||
| 4.3.1.3.1. <grammar> | 4.3.1.3.1. <grammar> | |||
| 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). The attribute is | valid value is a URI (see Section 4.6.9). If the URI scheme is | |||
| optional. There is no default value. | 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 | ||||
| grammar format is not supported, the MS MUST send a <response> | ||||
| with a 420 status code. The attribute is optional. 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. A valid value is a MIME type (see | document is processed if the protocol does not provide an | |||
| Section 4.6.10). The attribute is optional. There is no default | authoritative MIME media type for the returned resource. A valid | |||
| value. | 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 grammar | fetchtimeout: the maximum interval to wait when fetching a grammar | |||
| resource. A valid value is a Time Designation (see | resource. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). If the resource cannot be fetched within the | |||
| 30s. | 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. | ||||
| 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. | 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). | ||||
| It is an error if a grammar format is specified which is not | ||||
| supported by the MS. | ||||
| 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 42, line 5 ¶ | skipping to change at page 48, line 5 ¶ | |||
| <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 defines how media input is recorded. | |||
| The <record> element has the following attributes: | The <record> element has the following attributes: | |||
| timeout: indicates the time to wait for user input to begin. A | dest: specifies the location where recorded data is to be stored. | |||
| valid value is a Time Designation (see Section 4.6.7). The | The MS MUST have uploaded the recorded data to this location as | |||
| attribute is optional. The default value is 5s. | 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 | type: specifies the type of the recording format. The type value | |||
| may include additional parameters for guiding recording; for | may include additional parameters for guiding recording; for | |||
| example, [RFC4281] defines a 'codec' parameter for 'bucket' media | example, [RFC4281] defines a 'codec' parameter for 'bucket' media | |||
| types like video/3gpp. A valid value is a MIME type (see | 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 | Section 4.6.10). If the specified recording format is not | |||
| value (recording format is MS-specific). | 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). | ||||
| dest: specifies the location where recorded data is to be stored. | timeout: indicates the time to wait for user input to begin. A | |||
| The MS uploads the recorded data to this location during or after | valid value is a Time Designation (see Section 4.6.7). The | |||
| the recording operation. A valid value is a URI (see | attribute is optional. The default value is 5s. | |||
| Section 4.6.9). The attribute is optional. If not specified, the | ||||
| MS MUST use a local recording location (reported in <recordinfo> | ||||
| Section 4.3.2.4); this recording is available until the connection | ||||
| or conference associated with the dialog terminates. | ||||
| 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 recording may be | |||
| initiated using voice activity detection. A value of false | initiated using voice activity detection. A value of false | |||
| indicates that recording must not be initiated using voice | indicates that recording must not be initiated 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 | |||
| skipping to change at page 43, line 16 ¶ | skipping to change at page 49, line 27 ¶ | |||
| to initiation of the recording operation. A valid value is a | to initiation of the recording operation. A valid value is a | |||
| boolean (see Section 4.6.1). The attribute is optional. The | boolean (see Section 4.6.1). The attribute is optional. The | |||
| default value is false. | default value is false. | |||
| finalsilence: indicates the interval of silence that indicates end | finalsilence: indicates the interval of silence that indicates 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. | |||
| It is an error if a dest attribute is specified where the MS does not | append: indicates whether recorded data should be appended or not to | |||
| understand the URI protocol, cannot locate the URI, or cannot send | the recording location if a resource already exists. A valid | |||
| recorded data successfully to the location. | value is a boolean (see Section 4.6.1). A value of true indicates | |||
| that recorded data is appended to the existing resource at the | ||||
| recording location. A value of false indicates that recorded data | ||||
| is to overwrite the existing resource. The attribute is optional. | ||||
| The default value is false. | ||||
| The <record> element has no child elements. | The <record> element has no child elements. | |||
| Recording has the following execution model upon initialization: | Note that an MS MAY support uploading recorded data to the recording | |||
| location at the same time the recording operation takes place. Such | ||||
| implementations should be aware of the requirements of certain | ||||
| recording formats (e.g. WAV) for metadata at the beginning of the | ||||
| uploaded file, that the finalsilence interval is not part of the | ||||
| recording and how these requirements interact with the URI scheme. | ||||
| 1. If an error occurs during execution, then record execution | The MS has the following execution model for recording after | |||
| terminates and the error is reported to the dialog container. | initialization: | |||
| Data recorded before the error MAY be reported in <recordinfo> | ||||
| (see Section 4.3.2.4). | 1. If an error occurs during execution (e.g. authentication or | |||
| communication error when trying to upload to a recording | ||||
| location), then the MS terminates record execution and reports | ||||
| the error to the dialog container (see Section 4.3). The MS MAY | ||||
| report data recorded before the error in <recordinfo> (see | ||||
| Section 4.3.2.4). | ||||
| 2. If DTMF input (not matching a <control> operation) is received | 2. If DTMF input (not matching a <control> operation) is received | |||
| during prompt playback and the prompt bargein attribute is set to | during prompt playback and the prompt bargein attribute is set to | |||
| true, then record execution is activated. Otherwise, it is | true, then the MS activates the record execution. Otherwise, the | |||
| activated after the completion of prompt playback. | MS activates it after the completion of prompt playback. | |||
| 3. If a beep attribute with the value of true is specified, then a | 3. If a beep attribute with the value of true is specified, then the | |||
| beep tone is played. | MS plays a beep tone. | |||
| 4. A timer with the duration of the value of the timeout attribute | 4. The MS activates a timer with the duration of the value of the | |||
| is activated. If the timer expires before the recording | timeout attribute. If the timer expires before the recording | |||
| operation begins, then recording execution terminates and the | operation begins, then the MS terminates the recording execution | |||
| status is reported to dialog container with <recordinfo> (see | and reports the status to dialog container with <recordinfo> (see | |||
| Section 4.3.2.4) where the termmode attribute is set to noinput. | Section 4.3.2.4) where the termmode attribute is set to noinput. | |||
| 5. Initiation of the recording operation depends on the value of the | 5. Initiation of the recording operation depends on the value of the | |||
| vadinitial attribute. If vadinitial has the value false, then | vadinitial attribute. If vadinitial has the value false, then | |||
| the recording operation is initiated immediately. Otherwise, the | the recording operation is initiated immediately. Otherwise, the | |||
| recording operations is initiated when voice activity is | recording operation is initiated when voice activity is detected. | |||
| 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 recording execution terminates and the | is complete, then the MS terminates recording execution and | |||
| dialogexit result contains a <recordinfo> (see Section 4.3.2.4) | reports the execution status to the dialog container with | |||
| with the termmode attribute set to maxtime. | <recordinfo> (see Section 4.3.2.4) where the termmode attribute | |||
| set to maxtime. | ||||
| 7. During the record operation user media input is recording in the | 7. During the record operation user media input is recording in the | |||
| format specified by the value of the type attribute. If the dest | format specified by the value of the type attribute. If the dest | |||
| attribute is specified, then recorded input is sent to that | attribute is specified, then recorded input is sent to that | |||
| location. Otherwise, MS uses an internal location. | location. Otherwise, MS uses an internal location. | |||
| 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 recording | detected during the record operation, then the MS terminates | |||
| terminates and and status is reported to the dialog container | recording and and its status is reported to the dialog container | |||
| with a <recordinfo> (see Section 4.3.2.4) where the termmode | with a <recordinfo> (see Section 4.3.2.4) where the termmode | |||
| attribute is set to dtmf. | attribute is set to dtmf. | |||
| 9. If vadfinal attribute has the value true, then the recording | 9. If vadfinal attribute has the value true, then the MS terminates | |||
| operation is terminated when a period of silence, with the | a recording operation when a period of silence, with the duration | |||
| duration specified by the value of the finalsilence attribute, is | 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. | |||
| 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). | |||
| skipping to change at page 45, line 49 ¶ | skipping to change at page 52, line 27 ¶ | |||
| The <recordinfo> element reports the information about record | The <recordinfo> element reports the 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 | recording: references the location to which media is recorded. A | |||
| valid value is a URI (see Section 4.6.9). The attribute is | valid value is a URI (see Section 4.6.9). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| type: indicates the format of the recording. A valid value is a | type: indicates the format of the recording. A valid value is a | |||
| MIME type (see Section 4.6.10). The attribute is optional. There | MIME media type (see Section 4.6.10). The attribute is optional. | |||
| is no default value. | 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 | size: indicates the size of the recording in bytes. A valid value | |||
| is a non-negative integer (see Section 4.6.4). The attribute is | is a non-negative integer (see Section 4.6.4). The attribute is | |||
| optional. There is no default value. | optional. There is no default value. | |||
| termmode: indicates how recording was terminated. Valid values are: | termmode: indicates how recording was terminated. Valid values are: | |||
| skipping to change at page 46, line 26 ¶ | skipping to change at page 52, line 51 ¶ | |||
| The <recordinfo> element has no child elements. | The <recordinfo> element has no child elements. | |||
| 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 informaton to create request elements using supported | use this information to create request elements using supported | |||
| capabilities and, in the case of codecs, to negotiate an appropriate | capabilities and, in the case of codecs, to negotiate an appropriate | |||
| SDP for a user agent's connection. Second, auditing enables | SDP for a user agent's connection. Second, auditing enables | |||
| discovery of the existence and status of dialogs currently managed by | discovery of the existence and status of dialogs currently managed by | |||
| the package on the MS. This allows one AS to take over management of | the package on the MS. This allows one AS to take over management of | |||
| the dialogs when the AS which initiated the dialogs fails or is no | the dialogs when the AS which initiated the dialogs fails or is no | |||
| longer available. | longer available. | |||
| 4.4.1. <audit> | 4.4.1. <audit> | |||
| The <audit> request element is sent to the MS to request information | The <audit> request element is sent to the MS to request information | |||
| about the capabilities of, and dialogs currently managed with, this | about the capabilities of, and dialogs currently managed with, this | |||
| control package. Capabilities include supported dialog types, | control package. Capabilities include supported dialog languages, | |||
| grammar formats, record and media types as well as codecs. Dialog | grammar formats, record and media types as well as codecs. Dialog | |||
| information includes the status of managed dialogs as well as codecs. | information includes the status of managed dialogs as well as codecs. | |||
| The <audit> element has the following attributes: | The <audit> element has the following attributes: | |||
| capabilities: indicates whether package capabilities are to be | capabilities: indicates whether package capabilities are to be | |||
| audited. A valid value is a boolean (see Section 4.6.1). A value | audited. A valid value is a boolean (see Section 4.6.1). A value | |||
| of true indicates that capability information is to be reported. | of true indicates that capability information is to be reported. | |||
| A value of false indicates that capability information is not to | A value of false indicates that capability information is not to | |||
| be reported. The attribute is optional. The default value is | be reported. The attribute is optional. The default value is | |||
| 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. It is an | dialogid: string identifying a specific dialog to audit. The MS | |||
| error if the dialogid attribute is specified and the dialog | MUST send a response with a 402 status code (Section 4.5) if the | |||
| identifier is not valid. The attribute is optional. There is no | specified dialog identifier is invalid. The attribute is | |||
| 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 a <audit> request, it MUST reply with a | |||
| <auditresponse> element (Section 4.4.2). If the request is | <auditresponse> element (Section 4.4.2). If the request is | |||
| successful, <auditresponse> contain (depending on atrribute values) a | successful, <auditresponse> contain (depending on attribute values) a | |||
| <capabilities> element (Section 4.4.2.2) reporting package | <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. | |||
| 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> | |||
| skipping to change at page 48, line 33 ¶ | skipping to change at page 55, line 5 ¶ | |||
| <dialogs> element (Section 4.4.2.3) describing information about | <dialogs> element (Section 4.4.2.3) describing information about | |||
| managed dialogs. The element is optional. | managed dialogs. The element is optional. | |||
| For example, a successful response to a <audit> request requesting | For example, a successful response to a <audit> request requesting | |||
| capabilities and dialogs information: | capabilities and dialogs information: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <auditresponse status="200"> | <auditresponse status="200"> | |||
| <capabilities> | <capabilities> | |||
| <dialogtypes> | <dialoglanguages> | |||
| <mimetype>application/msc-ivr+xml</mimetype> | <mimetype>application/voicexml+xml</mimetype> | |||
| </dialogtypes> | </dialoglanguages> | |||
| <grammartypes> | <grammartypes> | |||
| <mimetype>application/srgs+xml</mimetype> | <mimetype>application/srgs+xml</mimetype> | |||
| </grammartypes> | </grammartypes> | |||
| <recordtypes> | <recordtypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>application/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <mediatypes> | <mediatypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>application/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </mediatypes> | </mediatypes> | |||
| <variables> | ||||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | ||||
| <format desc="month year day">mdy</format> | ||||
| <format desc="year month day">ymd</format> | ||||
| <format desc="day month year">dmy</format> | ||||
| <format desc="day month">dm</format> | ||||
| </variabletype> | ||||
| </variables> | ||||
| <maxpreparedduration>600s</maxpreparedduration> | ||||
| <maxrecordduration>1800s</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> | |||
| <codec> | <codec> | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| skipping to change at page 49, line 41 ¶ | skipping to change at page 56, line 23 ¶ | |||
| </auditresponse> | </auditresponse> | |||
| </mscivr> | </mscivr> | |||
| 4.4.2.1. <codecs> | 4.4.2.1. <codecs> | |||
| The <codecs> provides audit information about codecs. | The <codecs> provides audit information about codecs. | |||
| The <codecs> element has no attributes. | The <codecs> element has no attributes. | |||
| The <codecs> element has the following sequence of child elements (0 | The <codecs> element has the following sequence of child elements (0 | |||
| or more occurences): | or more occurrences): | |||
| <codec>: audit information for a codec (Section 4.4.2.1.1). The | <codec>: audit information for a codec (Section 4.4.2.1.1). The | |||
| element is optional. | element is optional. | |||
| For example, a fragment describing two codecs: | For example, a fragment describing two codecs: | |||
| <codecs> | <codecs> | |||
| <codec> | <codec> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </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 | |||
| defined in the XCON conference information data model | modeled on the <codec> element in the XCON conference information | |||
| ([I-D.ietf-xcon-common-data-model]). | data model ([I-D.ietf-xcon-common-data-model]) but allows addition | |||
| information (e.g. rate, speed, etc) to be specified. | ||||
| Note that additional information about the codec can be provided | The <codecs> element has no attributes. | |||
| through schema extensibility (see Section 5). | ||||
| [Editors Note: IVR-203. Do we need to define additional information? | The <codecs> element has the following sequence of child elements: | |||
| specific (rate, speed, etc) or generic using <params>?] | ||||
| <subtype>: element describing the codec's name. The possible values | ||||
| of this element are the values of the 'subtype' column of the RTP | ||||
| Payload Format media types per [RFC4855] defined in IANA ([IANA]). | ||||
| The element is mandatory. | ||||
| <params>: element (Section 4.2.6) describing additional information | ||||
| about the codec. This package is agnostic to the names and values | ||||
| of the codec parameters supported by an implementation. The | ||||
| element is optional. | ||||
| For example, a fragment with a <codec> element describing the H.263 | For example, a fragment with a <codec> element describing the H.263 | |||
| codec: | codec: | |||
| <codec> | <codec> | |||
| <subtype>H.263</subtype> | <subtype>H.263</subtype> | |||
| </codec> | </codec> | |||
| 4.4.2.2. <capabilities> | 4.4.2.2. <capabilities> | |||
| The <capabilities> element provides audit information about package | The <capabilities> element provides audit information about package | |||
| capabilities. | capabilities. | |||
| The <capabilities> element has no attributes. | The <capabilities> element has no attributes. | |||
| The <capabilities> element has the following sequence of child | The <capabilities> element has the following sequence of child | |||
| elements: | elements: | |||
| <dialogtypes>: element (Section 4.4.2.2.1) describing supported | <dialoglanguages>: element (Section 4.4.2.2.1) describing additional | |||
| dialog types. 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 supported | |||
| <record> (Section 4.3.1.4) format types. The element is | <record> (Section 4.3.1.4) format types. The element is | |||
| mandatory. | mandatory. | |||
| <mediatypes>: element (Section 4.4.2.2.4) describing supported | <mediatypes>: 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.1.1) format types. The element is | |||
| mandatory. | mandatory. | |||
| <variables>: element (Section 4.4.2.2.5) describing supported types | ||||
| and formats for the <variable> element (Section 4.4.2.2.5). The | ||||
| element is mandatory. | ||||
| <maxpreparedduration>: element (Section 4.4.2.2.6) describing the | ||||
| supported maximum duration for a prepared dialog following a | ||||
| <dialogprepare> (Section 4.2.1) request. The element is | ||||
| mandatory. | ||||
| <maxrecordduration>: element (Section 4.4.2.2.7) describing the | ||||
| supported maximum duration for a recording <record> | ||||
| Section 4.3.1.4) request. The element is mandatory. | ||||
| <codecs>: element (Section 4.4.2.1) describing codecs available to | <codecs>: element (Section 4.4.2.1) describing codecs available to | |||
| the package. The element is mandatory. | the package. The element is mandatory. | |||
| For example, a fragment describing capabilities: | For example, a fragment describing capabilities: | |||
| <capabilities> | <capabilities> | |||
| <dialogtypes> | <dialoglanguages> | |||
| <mimetype>application/msc-ivr+xml</mimetype> | ||||
| <mimetype>application/voicexml+xml</mimetype> | <mimetype>application/voicexml+xml</mimetype> | |||
| </dialogtypes> | </dialoglanguages> | |||
| <grammartypes> | <grammartypes> | |||
| <mimetype>application/srgs+xml</mimetype> | <mimetype>application/srgs+xml</mimetype> | |||
| </grammartypes> | </grammartypes> | |||
| <recordtypes> | <recordtypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>application/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <mediatypes> | <mediatypes> | |||
| <mimetype>application/x-wav</mimetype> | <mimetype>application/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </mediatypes> | </mediatypes> | |||
| <variables/> | ||||
| <maxpreparedduration>30s</maxpreparedduration> | ||||
| <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> | |||
| <codec> | <codec> | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </capabilities> | </capabilities> | |||
| 4.4.2.2.1. <dialogtypes> | 4.4.2.2.1. <dialoglanguages> | |||
| The <dialogtypes> element provides information about dialog types | The <dialoglanguages> element provides information about additional | |||
| supported by the package. The MS MUST include the mandatory dialog | dialog languages supported by the package. Dialog languages are | |||
| type for this package, "application/msc-ivr+xml" (Section 8.3) | identified by their associated MIME media types. The MS MUST NOT | |||
| associated with the IVR dialog type (Section 4.3). | include the mandatory dialog language for this package (Section 4.3). | |||
| The <dialogtypes> element has no attributes. | The <dialoglanguages> element has no attributes. | |||
| The <dialogtypes> element has the following sequence of child | The <dialoglanguages> element has the following sequence of child | |||
| elements (1 or more occurences): | elements (0 or more occurrences): | |||
| <mimetype>: element whose content model describes a mime type | <mimetype>: element whose content model describes a MIME media type | |||
| (Section 4.6.10). The element is optional. | (Section 4.6.10) associated with a supported dialog language. The | |||
| element is optional. | ||||
| 4.4.2.2.2. <grammartypes> | 4.4.2.2.2. <grammartypes> | |||
| The <grammartypes> element provides information about <grammar> | The <grammartypes> element provides information about <grammar> | |||
| format types supported by the package. The MS MUST include the | format types supported by the package. The MS MUST include the | |||
| mandatory SRGS format type, "application/srgs+xml" | mandatory SRGS format type, "application/srgs+xml" | |||
| (Section 4.3.1.3.1). | (Section 4.3.1.3.1). | |||
| The <grammartypes> element has no attributes. | The <grammartypes> element has no attributes. | |||
| The <grammartypes> element has the following sequence of child | The <grammartypes> element has the following sequence of child | |||
| elements (1 or more occurences): | 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 <record> format | |||
| types supported by the package (Section 4.3.1.4). | types 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 occurences): | 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. <mediatypes> | |||
| The <mediatypes> element provides information about <media> format | The <mediatypes> element provides information about <media> format | |||
| types supported by the package (Section 4.3.1.1.1). | types supported by the package (Section 4.3.1.1.1). | |||
| The <mediatypes> element has no attributes. | The <mediatypes> element has no attributes. | |||
| The <mediatypes> element has the following sequence of child elements | The <mediatypes> element has the following sequence of child elements | |||
| (0 or more occurences): | (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> | ||||
| The <variables> element provides information about types and formats | ||||
| for the <variable> element (Section 4.4.2.2.5) supported by the | ||||
| package. | ||||
| The <variables> element has no attributes. | ||||
| The <variables> element has the following sequence of child elements | ||||
| (0 or more occurrences): | ||||
| <variabletype>: element describing the formats support for a given | ||||
| type (Section 4.4.2.2.5.1). The element is optional. | ||||
| For example, a fragment describing support for <variable> with a | ||||
| "date" type in some common formats. | ||||
| <variables> | ||||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | ||||
| <format desc="month year day">mdy</format> | ||||
| <format desc="year month day">ymd</format> | ||||
| <format desc="day month year">dmy</format> | ||||
| <format desc="day month">dm</format> | ||||
| </variabletype> | ||||
| </variables> | ||||
| 4.4.2.2.5.1. <variabletype> | ||||
| The <variabletype> element describes the formats supported for | ||||
| <variable> supported type. | ||||
| The <variabletype> element has the following attributes: | ||||
| type: indicates a supported value associated with the type attribute | ||||
| of <variable> element.The attribute is manadatory. | ||||
| desc: a string providing some textual description of the type and | ||||
| format. The attribute is optional. | ||||
| The <variabletype> element has the following sequence of child | ||||
| elements (0 or more occurrences): | ||||
| <format>: element with a desc attribute (optional description) and a | ||||
| content model describing a supported format in the <variable> | ||||
| format attribute. The element is optional. | ||||
| 4.4.2.2.6. <maxpreparedduration> | ||||
| The <maxpreparedduration> element describes the maximum duration for | ||||
| a dialog to remain in the prepared state (Section 4.2) following a | ||||
| <dialogprepare> (Section 4.2.1) request. | ||||
| The <maxpreparedduration> element has no attributes. | ||||
| The <maxpreparedduration> element has a content model describing the | ||||
| maximum prepared dialog duration as a time designation | ||||
| (Section 4.6.7). | ||||
| 4.4.2.2.7. <maxrecordduration> | ||||
| The <maxrecordduration> element describes the maximum recording | ||||
| duration for <record> Section 4.3.1.4) request supported by the MS. | ||||
| The <maxrecordduration> element has no attributes. | ||||
| The <maxrecordduration> element has a content model describing the | ||||
| maximum duration of recording as a time designation (Section 4.6.7). | ||||
| 4.4.2.3. <dialogs> | 4.4.2.3. <dialogs> | |||
| The <dialogs> element provides audit information about dialogs. | The <dialogs> element provides audit information about dialogs. | |||
| The <dialogs> element has no attributes. | The <dialogs> element has no attributes. | |||
| The <dialogs> element has the following sequence of child elements (0 | The <dialogs> element has the following sequence of child elements (0 | |||
| or more occurences): | or more occurrences): | |||
| <dialogaudit>: audit information for a dialog (Section 4.4.2.3.1). | <dialogaudit>: audit information for a dialog (Section 4.4.2.3.1). | |||
| The element is optional. | The element is optional. | |||
| 4.4.2.3.1. <dialogaudit> | 4.4.2.3.1. <dialogaudit> | |||
| The <dialogaudit> element has the following attributes: | The <dialogaudit> element has the following attributes: | |||
| dialogid: string identifying the dialog. The attribute is | dialogid: string identifying the dialog. The attribute is | |||
| mandatory. | mandatory. | |||
| skipping to change at page 55, line 19 ¶ | skipping to change at page 64, line 4 ¶ | |||
| | | | | | | | | |||
| | 401 | dialogid already exists | | | 401 | dialogid already exists | | |||
| | | | | | | | | |||
| | 402 | dialogid does not exist | | | 402 | dialogid does not exist | | |||
| | | | | | | | | |||
| | 403 | connectionid does not exist | | | 403 | connectionid does not exist | | |||
| | | | | | | | | |||
| | 404 | conferenceid does not exist | | | 404 | conferenceid does not exist | | |||
| | | | | | | | | |||
| | 405 | Unknown or unsupported element | | | 405 | Unknown or unsupported element | | |||
| | | | | ||||
| | 406 | Element required | | | 406 | Element required | | |||
| | | | | | | | | |||
| | 407 | Unknown or unsupported attribute | | | 407 | Unknown or unsupported attribute | | |||
| | | | | | | | | |||
| | 408 | Attribute required | | | 408 | Attribute required | | |||
| | | | | | | | | |||
| | 409 | dialog type not supported | | | 409 | Dialog language not supported | | |||
| | | | | | | | | |||
| | 410 | Retrieving resource failed | | | 410 | Retrieving resource failed | | |||
| | | | | | | | | |||
| | 411 | Invalid attribute value | | | 411 | Invalid attribute value | | |||
| | | | | | | | | |||
| | 412 | subscription not supported | | | 412 | Subscription not supported | | |||
| | | | | | | | | |||
| | 413 | invalid stream configuration | | | 413 | Invalid stream configuration | | |||
| | | | | | | | | |||
| | 414 | dialog execution cancelled | | | 414 | Dialog execution canceled | | |||
| | | | | | | | | |||
| | 499 | other error | | | 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 | Table 1: status codes | |||
| The MS MAY define other status codes. | The MS MAY define other 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 definitions. | |||
| skipping to change at page 56, line 46 ¶ | skipping to change at page 66, line 9 ¶ | |||
| 4.6.8. Percentage | 4.6.8. Percentage | |||
| A percentage consists of a Positive Integer followed by "%". | A percentage consists of a Positive Integer followed by "%". | |||
| Examples include: "100%", "500%" and "10%". | Examples include: "100%", "500%" and "10%". | |||
| 4.6.9. URI | 4.6.9. URI | |||
| Uniform Resource Indicator as defined in [RFC3986]. | Uniform Resource Indicator as defined in [RFC3986]. | |||
| 4.6.10. mimetype | 4.6.10. MIME Media Type | |||
| A string formated as a IANA mimetype. | A string formated as a IANA MIME media type ([MIME.mediatypes]). | |||
| 4.6.11. Language Identifier | 4.6.11. Language Identifier | |||
| A language identifier labels information content as being of a | A language identifier labels information content as being of a | |||
| particular human language variant. Following the XML specification | particular human language variant. Following the XML specification | |||
| for language identification [XML], a legal language identifier is | for language identification [XML], a legal language identifier is | |||
| identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code | identified by a RFC4646 ([RFC4646]) and RFC4647 ([RFC4647]) code | |||
| where the language code is required and a country code or other | where the language code is required and a country code or other | |||
| subtag identifier is optional. | subtag identifier is optional. | |||
| skipping to change at page 58, line 22 ¶ | skipping to change at page 67, line 22 ¶ | |||
| is extensible: elements allow attributes and child elements from | is extensible: elements allow attributes and child elements from | |||
| other namespaces. Elements from outside this package's namespace can | other namespaces. Elements from outside this package's namespace can | |||
| occur after elements defined in this package. | occur after elements defined in this package. | |||
| The schema is dependent upon the schema (framework.xsd) defined in | The schema is dependent upon the schema (framework.xsd) defined in | |||
| Section 17.1 of the Control Framework | Section 17.1 of the Control Framework | |||
| [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent | [I-D.ietf-mediactrl-sip-control-framework]. It is also dependent | |||
| upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. | upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g. | |||
| xml:base). | xml:base). | |||
| <?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 (20080610) | IETF MediaCtrl IVR 1.0 (20081003) | |||
| 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:annotation> | ||||
| <!-- | </xsd:documentation> | |||
| ############################################################# | </xsd:annotation> | |||
| SCHEMA IMPORTS | <!-- | |||
| ############################################################# | ||||
| ############################################################# | SCHEMA IMPORTS | |||
| --> | ||||
| <xsd:import namespace="http://www.w3.org/XML/1998/namespace" | ############################################################# | |||
| schemaLocation="xml.xsd"> | --> | |||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| This import brings in the XML attributes for | ||||
| xml:base, xml:lang, etc | ||||
| See http://www.w3.org/2001/xml.xsd for latest version | <xsd:import namespace="http://www.w3.org/XML/1998/namespace" | |||
| </xsd:documentation> | schemaLocation="xml.xsd"> | |||
| </xsd:annotation> | <xsd:annotation> | |||
| </xsd:import> | <xsd:documentation> | |||
| This import brings in the XML attributes for | ||||
| xml:base, xml:lang, etc | ||||
| <xsd:import | See http://www.w3.org/2001/xml.xsd for latest version | |||
| namespace="urn:ietf:params:xml:ns:control:framework-attributes" | </xsd:documentation> | |||
| schemaLocation="framework.xsd"> | </xsd:annotation> | |||
| <xsd:annotation> | </xsd:import> | |||
| <xsd:documentation> | ||||
| This import brings in the framework attributes for | ||||
| conferenceid and connectionid. | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| </xsd:import> | ||||
| <!-- | <xsd:import | |||
| ##################################################### | namespace="urn:ietf:params:xml:ns:control:framework-attributes" | |||
| schemaLocation="framework.xsd"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| This import brings in the framework attributes for | ||||
| conferenceid and connectionid. | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| </xsd:import> | ||||
| Extensible core type | <!-- | |||
| ##################################################### | ||||
| ##################################################### | Extensible core type | |||
| --> | ||||
| <xsd:complexType name="Tcore"> | ##################################################### | |||
| <xsd:annotation> | --> | |||
| <xsd:documentation> | ||||
| This type is extended by other component types to | ||||
| allow elements and attributes from other namespaces | ||||
| to be added. | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| <!-- | <xsd:complexType name="Tcore"> | |||
| ##################################################### | <xsd:annotation> | |||
| TOP LEVEL ELEMENT: mscivr | <xsd:documentation> | |||
| This type is extended by other component types to | ||||
| allow elements and attributes from other namespaces | ||||
| to be added. | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| ##################################################### | <!-- | |||
| --> | ##################################################### | |||
| <xsd:complexType name="mscivrType"> | TOP LEVEL ELEMENT: mscivr | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:choice> | ||||
| <xsd:element ref="dialogprepare" /> | ||||
| <xsd:element ref="dialogstart" /> | ||||
| <xsd:element ref="dialogterminate" /> | ||||
| <xsd:element ref="response" /> | ||||
| <xsd:element ref="event" /> | ||||
| <xsd:element ref="audit" /> | ||||
| <xsd:element ref="auditresponse" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="version" type="version.datatype" | ||||
| use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="mscivr" type="mscivrType" /> | ##################################################### | |||
| --> | ||||
| <!-- | <xsd:complexType name="mscivrType"> | |||
| ##################################################### | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:choice> | ||||
| <xsd:element ref="dialogprepare" /> | ||||
| <xsd:element ref="dialogstart" /> | ||||
| <xsd:element ref="dialogterminate" /> | ||||
| <xsd:element ref="response" /> | ||||
| <xsd:element ref="event" /> | ||||
| <xsd:element ref="audit" /> | ||||
| <xsd:element ref="auditresponse" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="version" type="version.datatype" | ||||
| use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| DIALOG MANAGEMENT TYPES | <xsd:element name="mscivr" type="mscivrType" /> | |||
| ##################################################### | <!-- | |||
| --> | ##################################################### | |||
| <!-- dialogprepare --> | DIALOG MANAGEMENT TYPES | |||
| <xsd:complexType name="dialogprepareType"> | ##################################################### | |||
| <xsd:complexContent> | --> | |||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dialog" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | <!-- dialogprepare --> | |||
| <xsd:attribute name="src" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" | ||||
| default="application/msc-ivr+xml" /> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogprepare" type="dialogprepareType" /> | <xsd:complexType name="dialogprepareType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dialog" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <!-- dialogstart --> | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="src" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype"/> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dialogstartType"> | <xsd:element name="dialogprepare" type="dialogprepareType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dialog" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="subscribe" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="params" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="stream" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="src" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" /> | ||||
| <xsd:attribute name="prepareddialogid" | ||||
| type="dialogid.datatype" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogstart" type="dialogstartType" /> | <!-- dialogstart --> | |||
| <!-- dialogterminate --> | <xsd:complexType name="dialogstartType"> | |||
| <xsd:complexType name="dialogterminateType"> | <xsd:complexContent> | |||
| <xsd:complexContent> | <xsd:extension base="Tcore"> | |||
| <xsd:extension base="Tcore"> | <xsd:sequence> | |||
| <xsd:attribute name="dialogid" | <xsd:element ref="dialog" minOccurs="0" | |||
| type="dialogid.datatype" use="required" /> | maxOccurs="1" /> | |||
| <xsd:attribute name="immediate" | <xsd:element ref="subscribe" minOccurs="0" | |||
| type="boolean.datatype" default="false" /> | maxOccurs="1" /> | |||
| </xsd:extension> | <xsd:element ref="params" minOccurs="0" | |||
| </xsd:complexContent> | maxOccurs="1" /> | |||
| </xsd:complexType> | <xsd:element ref="stream" minOccurs="0" | |||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="src" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype"/> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" /> | ||||
| <xsd:attribute name="prepareddialogid" | ||||
| type="dialogid.datatype" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogterminate" type="dialogterminateType" /> | <xsd:element name="dialogstart" type="dialogstartType" /> | |||
| <!-- response --> | <!-- dialogterminate --> | |||
| <xsd:complexType name="dialogterminateType"> | ||||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| <xsd:attribute name="immediate" | ||||
| type="boolean.datatype" default="false" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="responseType"> | <xsd:element name="dialogterminate" type="dialogterminateType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="status" type="status.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="response" type="responseType" /> | <!-- response --> | |||
| <!-- event --> | <xsd:complexType name="responseType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="status" type="status.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="eventType"> | <xsd:element name="response" type="responseType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:choice> | ||||
| <xsd:element ref="dialogexit" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="dtmfnotify" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | <!-- event --> | |||
| </xsd:complexType> | ||||
| <xsd:element name="event" type="eventType" /> | <xsd:complexType name="eventType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:choice> | ||||
| <xsd:element ref="dialogexit" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="dtmfnotify" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:choice> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| <!-- dialogexit--> | </xsd:complexContent> | |||
| </xsd:complexType> | ||||
| <xsd:complexType name="dialogexitType"> | <xsd:element name="event" type="eventType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="promptinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="controlinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="collectinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="recordinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="params" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="status" | ||||
| type="xsd:positiveInteger" use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogexit" type="dialogexitType" /> | <!-- dialogexit--> | |||
| <!-- dtmfnotify--> | <xsd:complexType name="dialogexitType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="promptinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="controlinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="collectinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="recordinfo" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="params" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="status" | ||||
| type="xsd:nonNegativeInteger" use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dtmfnotifyType"> | <xsd:element name="dialogexit" type="dialogexitType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="matchmode" | ||||
| type="matchmode.datatype" default="all" /> | ||||
| <xsd:attribute name="dtmf" type="dtmfstring.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="timestamp" type="xsd:dateTime" | ||||
| use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dtmfnotify" type="dtmfnotifyType" /> | ||||
| <!-- promptinfo --> | <!-- dtmfnotify--> | |||
| <xsd:complexType name="promptinfoType"> | <xsd:complexType name="dtmfnotifyType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="duration" | <xsd:attribute name="matchmode" | |||
| type="xsd:nonNegativeInteger" /> | type="matchmode.datatype" default="all" /> | |||
| <xsd:attribute name="termmode" | <xsd:attribute name="dtmf" type="dtmfstring.datatype" | |||
| type="prompt_termmode.datatype" use="required" /> | use="required" /> | |||
| </xsd:extension> | <xsd:attribute name="timestamp" type="xsd:dateTime" | |||
| </xsd:complexContent> | use="required" /> | |||
| </xsd:complexType> | </xsd:extension> | |||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dtmfnotify" type="dtmfnotifyType" /> | ||||
| <xsd:element name="promptinfo" type="promptinfoType" /> | <!-- promptinfo --> | |||
| <!-- controlinfo --> | <xsd:complexType name="promptinfoType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="duration" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="termmode" | ||||
| type="prompt_termmode.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="controlinfoType"> | <xsd:element name="promptinfo" type="promptinfoType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="controlmatch" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="controlinfo" type="controlinfoType" /> | <!-- controlinfo --> | |||
| <!-- controlmatch --> | <xsd:complexType name="controlinfoType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="controlmatch" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="controlmatchType"> | <xsd:element name="controlinfo" type="controlinfoType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="dtmf" | ||||
| type="dtmfstring.datatype" /> | ||||
| <xsd:attribute name="timestamp" type="xsd:dateTime" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | <!-- controlmatch --> | |||
| <xsd:element name="controlmatch" type="controlmatchType" /> | <xsd:complexType name="controlmatchType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="dtmf" | ||||
| type="dtmfstring.datatype" /> | ||||
| <xsd:attribute name="timestamp" type="xsd:dateTime" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| <!-- collectinfo --> | </xsd:complexType> | |||
| <xsd:complexType name="collectinfoType"> | <xsd:element name="controlmatch" type="controlmatchType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="dtmf" | ||||
| type="dtmfstring.datatype" /> | ||||
| <xsd:attribute name="termmode" | ||||
| type="collect_termmode.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="collectinfo" type="collectinfoType" /> | <!-- collectinfo --> | |||
| <!-- recordinfo --> | <xsd:complexType name="collectinfoType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="dtmf" | ||||
| type="dtmfstring.datatype" /> | ||||
| <xsd:attribute name="termmode" | ||||
| type="collect_termmode.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="recordinfoType"> | <xsd:element name="collectinfo" type="collectinfoType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="recording" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="duration" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="size" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="termmode" | ||||
| type="record_termmode.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="recordinfo" type="recordinfoType" /> | <!-- recordinfo --> | |||
| <!-- subscribe --> | <xsd:complexType name="recordinfoType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="recording" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="duration" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="size" | ||||
| type="xsd:nonNegativeInteger" /> | ||||
| <xsd:attribute name="termmode" | ||||
| type="record_termmode.datatype" use="required" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="subscribeType"> | <xsd:element name="recordinfo" type="recordinfoType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dtmfsub" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="subscribe" type="subscribeType" /> | <!-- subscribe --> | |||
| <!-- dtmfsub --> | <xsd:complexType name="subscribeType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dtmfsub" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dtmfsubType"> | <xsd:element name="subscribe" type="subscribeType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="matchmode" | ||||
| type="matchmode.datatype" default="all" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dtmfsub" type="dtmfsubType" /> | <!-- dtmfsub --> | |||
| <!-- params --> | <xsd:complexType name="dtmfsubType"> | |||
| <xsd:complexType name="paramsType"> | <xsd:complexContent> | |||
| <xsd:complexContent> | <xsd:extension base="Tcore"> | |||
| <xsd:extension base="Tcore"> | <xsd:attribute name="matchmode" | |||
| <xsd:sequence> | type="matchmode.datatype" default="all" /> | |||
| <xsd:element ref="param" minOccurs="0" | </xsd:extension> | |||
| maxOccurs="unbounded" /> | </xsd:complexContent> | |||
| <xsd:any namespace="##other" minOccurs="0" | </xsd:complexType> | |||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="params" type="paramsType" /> | <xsd:element name="dtmfsub" type="dtmfsubType" /> | |||
| <!-- param --> | <!-- params --> | |||
| <!-- doesn't extend tCore since its content model is mixed --> | <xsd:complexType name="paramsType"> | |||
| <xsd:complexType name="paramType" mixed="true"> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="param" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="name" type="xsd:string" use="required" /> | </xsd:extension> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | </xsd:complexContent> | |||
| <xsd:attribute name="valuetype" type="valuetype.datatype" | </xsd:complexType> | |||
| default="string" /> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="param" type="paramType" /> | <xsd:element name="params" type="paramsType" /> | |||
| <!-- stream --> | <!-- param --> | |||
| <!-- doesn't extend tCore since its content model is mixed --> | ||||
| <xsd:complexType name="paramType" mixed="true"> | ||||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="name" type="xsd:string" use="required" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" default="text/plain"/> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="streamType"> | <xsd:element name="param" type="paramType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="media" type="media.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="label" type="label.datatype" /> | ||||
| <xsd:attribute name="direction" | ||||
| type="direction.datatype" default="sendrecv" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="stream" type="streamType" /> | <!-- stream --> | |||
| <!-- dialog --> | <xsd:complexType name="streamType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="region" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="media" type="media.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="label" type="label.datatype" /> | ||||
| <xsd:attribute name="direction" | ||||
| type="direction.datatype" default="sendrecv" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dialogType"> | <xsd:element name="stream" type="streamType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="prompt" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="control" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="collect" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="record" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="repeatCount" | ||||
| type="xsd:nonNegativeInteger" default="1" /> | ||||
| <xsd:attribute name="repeatDur" | ||||
| type="timedesignation.datatype" /> | ||||
| </xsd:extension> | <!-- region --> | |||
| </xsd:complexContent> | <xsd:simpleType name="regionType"> | |||
| </xsd:complexType> | <xsd:restriction base="xsd:NMTOKEN"/> | |||
| </xsd:simpleType> | ||||
| <xsd:element name="dialog" type="dialogType" /> | <xsd:element name="region" type="regionType" /> | |||
| <!-- prompt --> | <!-- dialog --> | |||
| <xsd:complexType name="promptType"> | <xsd:complexType name="dialogType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | <xsd:sequence> | |||
| <xsd:element ref="media" /> | <xsd:element ref="prompt" minOccurs="0" | |||
| <xsd:element ref="variable" /> | maxOccurs="1" /> | |||
| <xsd:element ref="dtmf" /> | <xsd:element ref="control" minOccurs="0" | |||
| <xsd:any namespace="##other" | maxOccurs="1" /> | |||
| processContents="lax" /> | <xsd:element ref="collect" minOccurs="0" | |||
| </xsd:choice> | maxOccurs="1" /> | |||
| <xsd:attribute ref="xml:base" /> | <xsd:element ref="record" minOccurs="0" | |||
| <xsd:attribute name="bargein" type="boolean.datatype" | maxOccurs="1" /> | |||
| default="true" /> | <xsd:any namespace="##other" minOccurs="0" | |||
| </xsd:extension> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:complexContent> | </xsd:sequence> | |||
| </xsd:complexType> | <xsd:attribute name="repeatCount" | |||
| type="xsd:nonNegativeInteger" default="1" /> | ||||
| <xsd:attribute name="repeatDur" | ||||
| type="timedesignation.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="prompt" type="promptType" /> | <xsd:element name="dialog" type="dialogType" /> | |||
| <!-- media --> | <!-- prompt --> | |||
| <xsd:complexType name="mediaType"> | <xsd:complexType name="promptType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="src" type="xsd:anyURI" | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |||
| use="required" /> | <xsd:element ref="media" /> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | <xsd:element ref="variable" /> | |||
| <xsd:attribute name="fetchtimeout" | <xsd:element ref="dtmf" /> | |||
| type="timedesignation.datatype" default="30s" /> | <xsd:any namespace="##other" | |||
| <xsd:attribute name="soundLevel" | processContents="lax" /> | |||
| type="percentage.datatype" default="100%" /> | </xsd:choice> | |||
| <xsd:attribute name="clipBegin" | <xsd:attribute ref="xml:base" /> | |||
| type="timedesignation.datatype" default="0s" /> | <xsd:attribute name="bargein" type="boolean.datatype" | |||
| </xsd:extension> | default="true" /> | |||
| </xsd:complexContent> | </xsd:extension> | |||
| </xsd:complexType> | </xsd:complexContent> | |||
| </xsd:complexType> | ||||
| <xsd:element name="media" type="mediaType" /> | <xsd:element name="prompt" type="promptType" /> | |||
| <!-- variable --> | ||||
| <xsd:complexType name="variableType"> | <!-- media --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="value" type="xsd:string" | ||||
| use="required" /> | ||||
| <xsd:attribute name="type" type="xsd:string" | ||||
| use="required" /> | ||||
| <xsd:attribute name="format" type="xsd:string" /> | ||||
| <xsd:attribute name="gender" type="gender.datatype" /> | ||||
| <xsd:attribute ref="xml:lang" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="variable" type="variableType" /> | <xsd:complexType name="mediaType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="src" type="xsd:anyURI" | ||||
| use="required" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:attribute name="soundLevel" | ||||
| type="percentage.datatype" default="100%" /> | ||||
| <xsd:attribute name="clipBegin" | ||||
| type="timedesignation.datatype" default="0s" /> | ||||
| <xsd:attribute name="clipEnd" | ||||
| type="timedesignation.datatype"/> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- dtmf --> | <xsd:element name="media" type="mediaType" /> | |||
| <xsd:complexType name="dtmfType"> | <!-- variable --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="digits" | ||||
| type="dtmfstring.datatype" use="required" /> | ||||
| <xsd:attribute name="level" type="xsd:integer" | ||||
| default="-6" /> | ||||
| <xsd:attribute name="duration" | ||||
| type="timedesignation.datatype" default="100ms" /> | ||||
| <xsd:attribute name="interval" | ||||
| type="timedesignation.datatype" default="100ms" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dtmf" type="dtmfType" /> | <xsd:complexType name="variableType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="value" type="xsd:string" | ||||
| use="required" /> | ||||
| <xsd:attribute name="type" type="xsd:string" | ||||
| use="required" /> | ||||
| <xsd:attribute name="format" type="xsd:string" /> | ||||
| <xsd:attribute name="gender" type="gender.datatype" /> | ||||
| <xsd:attribute ref="xml:lang" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- control --> | <xsd:element name="variable" type="variableType" /> | |||
| <xsd:complexType name="controlType"> | <!-- dtmf --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="skipinterval" | ||||
| type="timedesignation.datatype" default="6s" /> | ||||
| <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="pauseinterval" | ||||
| type="timedesignation.datatype" default="10s" /> | ||||
| <xsd:attribute name="pausekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="resumekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="volumeinterval" | ||||
| type="percentage.datatype" default="10%" /> | ||||
| <xsd:attribute name="volupkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="voldnkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="speedinterval" | ||||
| type="percentage.datatype" default="10%" /> | ||||
| <xsd:attribute name="speedupkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="speeddnkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="gotostartkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="gotoendkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="external" | ||||
| type="dtmfstring.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="control" type="controlType" /> | <xsd:complexType name="dtmfType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="digits" | ||||
| type="dtmfstring.datatype" use="required" /> | ||||
| <xsd:attribute name="level" type="xsd:integer" | ||||
| default="-6" /> | ||||
| <xsd:attribute name="duration" | ||||
| type="timedesignation.datatype" default="100ms" /> | ||||
| <xsd:attribute name="interval" | ||||
| type="timedesignation.datatype" default="100ms" /> | ||||
| <!-- collect --> | </xsd:extension> | |||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="collectType"> | <xsd:element name="dtmf" type="dtmfType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="grammar" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="cleardigitbuffer" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="timeout" | ||||
| type="timedesignation.datatype" default="5s" /> | ||||
| <xsd:attribute name="interdigittimeout" | ||||
| type="timedesignation.datatype" default="2s" /> | ||||
| <xsd:attribute name="termtimeout" | ||||
| type="timedesignation.datatype" default="0s" /> | ||||
| <xsd:attribute name="escapekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="termchar" | ||||
| type="dtmfchar.datatype" default="#" /> | ||||
| <xsd:attribute name="maxdigits" | ||||
| type="xsd:positiveInteger" default="5" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="collect" type="collectType" /> | <!-- control --> | |||
| <!-- grammar --> | <xsd:complexType name="controlType"> | |||
| <!-- doesn't extend tCore since its content model is mixed --> | <xsd:complexContent> | |||
| <xsd:complexType name="grammarType" mixed="true"> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="skipinterval" | ||||
| type="timedesignation.datatype" default="6s" /> | ||||
| <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="pauseinterval" | ||||
| type="timedesignation.datatype" default="10s" /> | ||||
| <xsd:attribute name="pausekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="resumekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="volumeinterval" | ||||
| type="percentage.datatype" default="10%" /> | ||||
| <xsd:attribute name="volupkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="voldnkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="speedinterval" | ||||
| type="percentage.datatype" default="10%" /> | ||||
| <xsd:attribute name="speedupkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="speeddnkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="gotostartkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="gotoendkey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="external" | ||||
| type="dtmfstring.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="control" type="controlType" /> | ||||
| <!-- collect --> | ||||
| <xsd:complexType name="collectType"> | ||||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="grammar" 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="src" type="xsd:anyURI" /> | <xsd:attribute name="cleardigitbuffer" | |||
| <xsd:attribute name="type" type="mime.datatype" /> | type="boolean.datatype" default="true" /> | |||
| <xsd:attribute name="fetchtimeout" | <xsd:attribute name="timeout" | |||
| type="timedesignation.datatype" default="30s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:attribute name="interdigittimeout" | |||
| </xsd:complexType> | type="timedesignation.datatype" default="2s" /> | |||
| <xsd:attribute name="termtimeout" | ||||
| type="timedesignation.datatype" default="0s" /> | ||||
| <xsd:attribute name="escapekey" | ||||
| type="dtmfchar.datatype" /> | ||||
| <xsd:attribute name="termchar" | ||||
| type="dtmfchar.datatype" default="#" /> | ||||
| <xsd:attribute name="maxdigits" | ||||
| type="xsd:positiveInteger" default="5" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="grammar" type="grammarType" /> | <xsd:element name="collect" type="collectType" /> | |||
| <!-- record --> | <!-- grammar --> | |||
| <!-- doesn't extend tCore since its content model is mixed --> | ||||
| <xsd:complexType name="grammarType" mixed="true"> | ||||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="src" type="xsd:anyURI" /> | ||||
| <xsd:attribute name="type" type="mime.datatype" /> | ||||
| <xsd:attribute name="fetchtimeout" | ||||
| type="timedesignation.datatype" default="30s" /> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="recordType"> | <xsd:element name="grammar" type="grammarType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="timeout" | ||||
| 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" | ||||
| default="false" /> | ||||
| <xsd:attribute name="vadinitial" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="vadfinal" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="dtmfterm" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="maxtime" | ||||
| type="timedesignation.datatype" default="15s" /> | ||||
| <xsd:attribute name="finalsilence" | <!-- record --> | |||
| type="timedesignation.datatype" default="5s" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="record" type="recordType" /> | <xsd:complexType name="recordType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:attribute name="timeout" | ||||
| 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" | ||||
| default="false" /> | ||||
| <xsd:attribute name="vadinitial" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="vadfinal" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="dtmfterm" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="maxtime" | ||||
| type="timedesignation.datatype" default="15s" /> | ||||
| <xsd:attribute name="finalsilence" | ||||
| type="timedesignation.datatype" default="5s" /> | ||||
| <xsd:attribute name="append" type="boolean.datatype" | ||||
| default="false" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- | <xsd:element name="record" type="recordType" /> | |||
| ##################################################### | ||||
| AUDIT TYPES | <!-- | |||
| ##################################################### | ||||
| ##################################################### | AUDIT TYPES | |||
| --> | ||||
| <!-- audit --> | ##################################################### | |||
| --> | ||||
| <xsd:complexType name="auditType"> | <!-- audit --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | <xsd:complexType name="auditType"> | |||
| <xsd:attribute name="capabilities" | <xsd:complexContent> | |||
| type="boolean.datatype" default="true" /> | <xsd:extension base="Tcore"> | |||
| <xsd:attribute name="dialogs" type="boolean.datatype" | <xsd:attribute name="capabilities" | |||
| default="true" /> | type="boolean.datatype" default="true" /> | |||
| <xsd:attribute name="dialogs" | ||||
| type="boolean.datatype" default="true" /> | ||||
| <xsd:attribute name="dialogid" | <xsd:attribute name="dialogid" | |||
| type="dialogid.datatype" /> | type="dialogid.datatype"/> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | ||||
| <xsd:element name="audit" type="auditType" /> | </xsd:complexType> | |||
| <!-- auditresponse --> | <xsd:element name="audit" type="auditType" /> | |||
| <xsd:complexType name="auditresponseType"> | <!-- auditresponse --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="capabilities" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="dialogs" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="status" type="status.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="auditresponse" type="auditresponseType" /> | <xsd:complexType name="auditresponseType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="capabilities" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="dialogs" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="status" type="status.datatype" | ||||
| use="required" /> | ||||
| <xsd:attribute name="reason" type="xsd:string" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- codec --> | <xsd:element name="auditresponse" type="auditresponseType" /> | |||
| <xsd:complexType name="codecType"> | <!-- codec --> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="subtype" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="name" type="xsd:string" /> | ||||
| <xsd:attribute name="policy" type="policy.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="codec" type="codecType" /> | <xsd:complexType name="codecType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="subtype" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="params" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="name" type="xsd:string" /> | ||||
| <xsd:attribute name="policy" type="policy.datatype" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- subtype --> | <xsd:element name="codec" type="codecType" /> | |||
| <xsd:simpleType name="subtypeType"> | <!-- subtype --> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:simpleType name="subtypeType"> | |||
| </xsd:simpleType> | <xsd:restriction base="xsd:string" /> | |||
| </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> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="codec" minOccurs="0" | <xsd:element ref="codec" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| </xsd:complexContent> | <xsd:element name="codecs" type="codecsType" /> | |||
| </xsd:complexType> | ||||
| <xsd:element name="codecs" type="codecsType" /> | <!-- capabilities --> | |||
| <!-- capabilities --> | <xsd:complexType name="capabilitiesType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dialoglanguages" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="grammartypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="recordtypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="mediatypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="variables" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="maxpreparedduration" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="maxrecordduration" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="codecs" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="capabilitiesType"> | <xsd:element name="capabilities" type="capabilitiesType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="dialogtypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="grammartypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="recordtypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="mediatypes" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:element ref="codecs" minOccurs="1" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="capabilities" type="capabilitiesType" /> | <!-- mimetype --> | |||
| <!-- mimetype --> | <xsd:element name="mimetype" type="mime.datatype" /> | |||
| <xsd:element name="mimetype" type="mime.datatype" /> | <!-- dialoglanguages --> | |||
| <!-- dialogtypes --> | <xsd:complexType name="dialoglanguagesType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="mimetype" minOccurs="0" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dialogtypesType"> | <xsd:element name="dialoglanguages" type="dialoglanguagesType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="mimetype" minOccurs="1" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | <!-- grammartypes --> | |||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogtypes" type="dialogtypesType" /> | <xsd:complexType name="grammartypesType"> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="mimetype" minOccurs="1" | ||||
| maxOccurs="unbounded" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <!-- grammartypes --> | <xsd:element name="grammartypes" type="grammartypesType" /> | |||
| <!-- recordtypes --> | ||||
| <xsd:complexType name="grammartypesType"> | <xsd:complexType name="recordtypesType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="mimetype" minOccurs="1" | <xsd:element ref="mimetype" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="grammartypes" type="grammartypesType" /> | <xsd:element name="recordtypes" type="recordtypesType" /> | |||
| <!-- recordtypes --> | <!-- mediatypes --> | |||
| <xsd:complexType name="recordtypesType"> | <xsd:complexType name="mediatypesType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="mimetype" minOccurs="0" | <xsd:element ref="mimetype" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="recordtypes" type="recordtypesType" /> | <xsd:element name="mediatypes" type="mediatypesType" /> | |||
| <!-- mediatypes --> | <!-- variables --> | |||
| <xsd:complexType name="mediatypesType"> | <xsd:complexType name="variablesType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="mimetype" minOccurs="0" | <xsd:element ref="variabletype" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | ||||
| <xsd:element name="mediatypes" type="mediatypesType" /> | </xsd:complexType> | |||
| <!-- dialogs --> | <xsd:element name="variables" type="variablesType" /> | |||
| <xsd:complexType name="dialogsType"> | <xsd:complexType name="variabletypeType"> | |||
| <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="format" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | <xsd:attribute name="type" type="xsd:string" use="required" /> | |||
| </xsd:complexContent> | <xsd:attribute name="desc" type="xsd:string"/> | |||
| </xsd:complexType> | </xsd:extension> | |||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:element name="dialogs" type="dialogsType" /> | <xsd:element name="variabletype" type="variabletypeType" /> | |||
| <!-- dialogaudit --> | <xsd:complexType name="formatType" mixed="true"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="desc" type="xsd:string" /> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | ||||
| </xsd:complexType> | ||||
| <xsd:complexType name="dialogauditType"> | <xsd:element name="format" type="formatType" /> | |||
| <xsd:complexContent> | ||||
| <xsd:extension base="Tcore"> | ||||
| <xsd:sequence> | ||||
| <xsd:element ref="codecs" minOccurs="0" | ||||
| maxOccurs="1" /> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| <xsd:attribute name="state" type="state.datatype" | ||||
| use="required" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | <!-- maxpreparedduration --> | |||
| <xsd:element name="dialogaudit" type="dialogauditType" /> | <xsd:element name="maxpreparedduration" | |||
| type="timedesignation.datatype"/> | ||||
| <!-- | <!-- maxrecordduration --> | |||
| #################################################### | ||||
| DATATYPES | <xsd:element name="maxrecordduration" | |||
| type="timedesignation.datatype"/> | ||||
| #################################################### | <!-- dialogs --> | |||
| --> | ||||
| <xsd:simpleType name="version.datatype"> | <xsd:complexType name="dialogsType"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:complexContent> | |||
| <xsd:enumeration value="1.0" /> | <xsd:extension base="Tcore"> | |||
| </xsd:restriction> | <xsd:sequence> | |||
| </xsd:simpleType> | <xsd:element ref="dialogaudit" minOccurs="0" | |||
| <xsd:simpleType name="mime.datatype"> | maxOccurs="unbounded" /> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:any namespace="##other" minOccurs="0" | |||
| </xsd:simpleType> | maxOccurs="unbounded" processContents="lax" /> | |||
| <xsd:simpleType name="dialogid.datatype"> | </xsd:sequence> | |||
| <xsd:restriction base="xsd:string" /> | </xsd:extension> | |||
| </xsd:simpleType> | </xsd:complexContent> | |||
| <xsd:simpleType name="boolean.datatype"> | </xsd:complexType> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="true" /> | ||||
| <xsd:enumeration value="false" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="valuetype.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="gender.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="female" /> | ||||
| <xsd:enumeration value="male" /> | ||||
| </xsd:restriction> | ||||
| </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:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="preparing" /> | ||||
| <xsd:enumeration value="prepared" /> | ||||
| <xsd:enumeration value="starting" /> | ||||
| <xsd:enumeration value="started" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="status.datatype"> | ||||
| <xsd:restriction base="xsd:positiveInteger"> | ||||
| <xsd:pattern value="[0-9][0-9][0-9]" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="media.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="label.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="direction.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="sendrecv" /> | ||||
| <xsd:enumeration value="sendonly" /> | ||||
| <xsd:enumeration value="recvonly" /> | ||||
| <xsd:enumeration value="inactive" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="timedesignation.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| Time designation following Time in CSS2 | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="(\+)?([0-9]*\.)?[0-9]+(ms|s)" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="dtmfchar.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| DTMF character [0-9#*A-D] | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="[0-9#*A-D]" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="dtmfstring.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| DTMF sequence [0-9#*A-D] | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="([0-9#*A-D])+" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="percentage.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| whole integer followed by '%' | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="([0-9])+%" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="prompt_termmode.datatype"> | <xsd:element name="dialogs" type="dialogsType" /> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="completed" /> | ||||
| <xsd:enumeration value="maxduration" /> | ||||
| <xsd:enumeration value="bargein" /> | ||||
| <xsd:enumeration value="stopped" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="collect_termmode.datatype"> | <!-- dialogaudit --> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="match" /> | ||||
| <xsd:enumeration value="noinput" /> | ||||
| <xsd:enumeration value="nomatch" /> | ||||
| <xsd:enumeration value="stopped" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="record_termmode.datatype"> | <xsd:complexType name="dialogauditType"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:complexContent> | |||
| <xsd:enumeration value="noinput" /> | <xsd:extension base="Tcore"> | |||
| <xsd:enumeration value="dtmf" /> | <xsd:sequence> | |||
| <xsd:enumeration value="maxtime" /> | <xsd:element ref="codecs" minOccurs="0" | |||
| <xsd:enumeration value="finalsilence" /> | maxOccurs="1" /> | |||
| <xsd:enumeration value="stopped" /> | <xsd:any namespace="##other" minOccurs="0" | |||
| </xsd:restriction> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:simpleType> | </xsd:sequence> | |||
| <xsd:attribute name="dialogid" | ||||
| type="dialogid.datatype" use="required" /> | ||||
| <xsd:attribute name="state" type="state.datatype" | ||||
| use="required" /> | ||||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | ||||
| </xsd:extension> | ||||
| </xsd:complexContent> | ||||
| </xsd:complexType> | ||||
| <xsd:simpleType name="matchmode.datatype"> | <xsd:element name="dialogaudit" type="dialogauditType" /> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="all" /> | ||||
| <xsd:enumeration value="collect" /> | ||||
| <xsd:enumeration value="control" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| </xsd:schema> | <!-- | |||
| #################################################### | ||||
| DATATYPES | ||||
| #################################################### | ||||
| --> | ||||
| <xsd:simpleType name="version.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="1.0" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="mime.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="dialogid.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="boolean.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="true" /> | ||||
| <xsd:enumeration value="false" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="gender.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="female" /> | ||||
| <xsd:enumeration value="male" /> | ||||
| </xsd:restriction> | ||||
| </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:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="preparing" /> | ||||
| <xsd:enumeration value="prepared" /> | ||||
| <xsd:enumeration value="starting" /> | ||||
| <xsd:enumeration value="started" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="status.datatype"> | ||||
| <xsd:restriction base="xsd:positiveInteger"> | ||||
| <xsd:pattern value="[0-9][0-9][0-9]" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="media.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="label.datatype"> | ||||
| <xsd:restriction base="xsd:string" /> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="direction.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="sendrecv" /> | ||||
| <xsd:enumeration value="sendonly" /> | ||||
| <xsd:enumeration value="recvonly" /> | ||||
| <xsd:enumeration value="inactive" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="timedesignation.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| Time designation following Time in CSS2 | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="(\+)?([0-9]*\.)?[0-9]+(ms|s)" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="dtmfchar.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| DTMF character [0-9#*A-D] | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="[0-9#*A-D]" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="dtmfstring.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| DTMF sequence [0-9#*A-D] | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="([0-9#*A-D])+" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="percentage.datatype"> | ||||
| <xsd:annotation> | ||||
| <xsd:documentation> | ||||
| whole integer followed by '%' | ||||
| </xsd:documentation> | ||||
| </xsd:annotation> | ||||
| <xsd:restriction base="xsd:string"> | ||||
| <xsd:pattern value="([0-9])+%" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="prompt_termmode.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="completed" /> | ||||
| <xsd:enumeration value="bargein" /> | ||||
| <xsd:enumeration value="stopped" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="collect_termmode.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="match" /> | ||||
| <xsd:enumeration value="noinput" /> | ||||
| <xsd:enumeration value="nomatch" /> | ||||
| <xsd:enumeration value="stopped" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="record_termmode.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="noinput" /> | ||||
| <xsd:enumeration value="dtmf" /> | ||||
| <xsd:enumeration value="maxtime" /> | ||||
| <xsd:enumeration value="finalsilence" /> | ||||
| <xsd:enumeration value="stopped" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| <xsd:simpleType name="matchmode.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="all" /> | ||||
| <xsd:enumeration value="collect" /> | ||||
| <xsd:enumeration value="control" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| </xsd:schema> | ||||
| 6. Examples | 6. Examples | |||
| This section provides examples of the IVR Control package. | This section provides examples of the IVR Control package. | |||
| 6.1. AS-MS Dialog Interaction Examples | 6.1. AS-MS Dialog Interaction Examples | |||
| The following example assume a control channel has been established | The following example assume a control channel has been established | |||
| and synced as described in the Media Control Channel Framework | and synced as described in the Media Control Channel Framework | |||
| ([I-D.ietf-mediactrl-sip-control-framework]). | ([I-D.ietf-mediactrl-sip-control-framework]). | |||
| skipping to change at page 82, line 7 ¶ | skipping to change at page 92, line 7 ¶ | |||
| | (5) CONTROL: <event ... /> | | | (5) CONTROL: <event ... /> | | |||
| | | | | | | |||
| | <---------------------------------------- | | | <---------------------------------------- | | |||
| | | | | | | |||
| | (6) 200 | | | (6) 200 | | |||
| | ----------------------------------------> | | | ----------------------------------------> | | |||
| | | | | | | |||
| 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 type. The | An IVR dialog fails to start due to an unknown dialog language. The | |||
| <sreponse> 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="409"/> | | |||
| | <---------------------------------------- | | | <---------------------------------------- | | |||
| | | | | | | |||
| skipping to change at page 84, line 47 ¶ | skipping to change at page 94, line 47 ¶ | |||
| 6.2. IVR Dialog Examples | 6.2. IVR Dialog Examples | |||
| The following examples show how <dialog> is used with | The following examples show how <dialog> is used with | |||
| <dialogprepare>, <dialogstart> and <event> elements to play prompts, | <dialogprepare>, <dialogstart> and <event> elements to play prompts, | |||
| set runtime controls, collect DTMF input and record user input. | set runtime controls, collect DTMF input and record user input. | |||
| The examples do not specify all messages between the AS and MS. | The examples do not specify all messages between the AS and MS. | |||
| 6.2.1. Playing announcements | 6.2.1. Playing announcements | |||
| This example prepares an announcement composed of two prompts. | This example prepares an announcement composed of two prompts where | |||
| 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> | <dialog repeatCount="2"> | |||
| <prompt> | <prompt> | |||
| <media src="http://www.example.com/media/Number_09.wav"/> | <media src="http://www.example.com/media/Number_09.wav"/> | |||
| <media src="http://www.example.com/media/Number_11.wav"/> | <media src="http://www.example.com/media/Number_11.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogprepare> | </dialogprepare> | |||
| </mscivr> | </mscivr> | |||
| If the dialog is prepared successfully, a <response> with status 200 | If the dialog is prepared successfully, a <response> is returned with | |||
| is returned: | 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"/> | |||
| </mscivr> | </mscivr> | |||
| The prepared dialog is then started on a conference playing the | The prepared dialog is then started on a conference playing the | |||
| prompts twice: | prompts twice: | |||
| <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 prepareddialogid="vxi78" conferenceid="conference11"/> | <dialogstart prepareddialogid="vxi78" conferenceid="conference11"/> | |||
| </mscivr> | </mscivr> | |||
| In the case of a successful dialog, the output is provided in | In the case of a successful dialog, the output is provided in | |||
| <event>; for example | <event>; 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"> | |||
| <event dialogid="vxi78"> | <event dialogid="vxi78"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <promptinfo termmode="completed"/> | <promptinfo termmode="completed" duration="24000"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 6.2.2. Prompt and collect | 6.2.2. Prompt and collect | |||
| This example plays no prompts and just waits for DTMF input from the | In this example, a prompt is played and then the MS waits for 30s for | |||
| user: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | ||||
| <dialog> | ||||
| <collect/> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| If the dialog is successful, then dialogexit <event> contains the | ||||
| dtmf collected in its result parameter: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <event dialogid="vxi80"> | ||||
| <dialogexit status="1"> | ||||
| <collectinfo dtmf="12345" termmode="match"/> | ||||
| </dialogexit> | ||||
| </event> | ||||
| /mscivr> | ||||
| In this example, a prompt is played and then we wait for 3 hours 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 src="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect timeout="1080s" maxdigits="2"/> | <collect timeout="30s" maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If no user input is collected within 3 hours, then following would be | If no user input is collected within 30s, then following notification | |||
| 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"> | |||
| <event dialogid="vxi81"> | <event dialogid="vxi81"> | |||
| <dialogexit status="1" > | <dialogexit status="1" > | |||
| <collectinfo termmode="noinput"/> | <collectinfo termmode="noinput"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| The collect operation can be specified without a prompt. Here the MS | ||||
| just waits for DTMF input from the user: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | ||||
| <dialog> | ||||
| <collect/> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| If the dialog is successful, then dialogexit <event> contains the | ||||
| dtmf collected in its result parameter: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <event dialogid="vxi80"> | ||||
| <dialogexit status="1"> | ||||
| <collectinfo dtmf="12345" termmode="match"/> | ||||
| </dialogexit> | ||||
| </event> | ||||
| /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 src="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" | |||
| skipping to change at page 88, line 19 ¶ | skipping to change at page 98, line 19 ¶ | |||
| 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 src="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey=5" rwkey="6" speedupkey="3" | <control ffkey=5" rwkey="6" speedupkey="3" | |||
| speeddownkey="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 | |||
| bargein to occur. If the user presses any other key, then the prompt | bargein to occur. If the user presses any other key, then the prompt | |||
| is interrupted and DTMF collect begins. Note that runtime controls | is interrupted and DTMF collect begins. Note that runtime controls | |||
| are not active during the collect operation. | are not active during the collect operation. | |||
| skipping to change at page 89, line 27 ¶ | skipping to change at page 99, line 27 ¶ | |||
| notification event would be sent: | notification event would be sent: | |||
| <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="vxi81"> | <event dialogid="vxi81"> | |||
| <dtmfnotify matchmode="collect" dtmf="12" | <dtmfnotify matchmode="collect" dtmf="12" | |||
| timestamp="2008-05-12T12:13:14Z"/> | timestamp="2008-05-12T12:13:14Z"/> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| If no user input was provided, or the input did not match the | If no user input was provided, or the input did not match the | |||
| grammar, the dialgo would continue to loop until terminated (or an | grammar, the dialog would continue to loop until terminated (or an | |||
| error occured). | error occurred). | |||
| 6.3. Other Dialog types | 6.3. Other Dialog Languages | |||
| The following example requests that a VoiceXML dialog is started: | The following example requests that a VoiceXML dialog is started: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart dialogid="d2" type="application/voicexml+xml" | <dialogstart dialogid="d2" type="application/voicexml+xml" | |||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"> | fetchtimeout="15s"> | |||
| <params> | <params> | |||
| <param name="prompt1">nfs://nas01/media1.3gp"</param> | <param name="prompt1">nfs://nas01/media1.3gp"</param> | |||
| <param name="prompt2">nfs://nas01/media2.3gp"</param> | <param name="prompt2">nfs://nas01/media2.3gp"</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If the MS does not support this dialog type, rhen the response would | If the MS does not support this dialog language, then the response | |||
| have the status code 409. However, if it does support the VoiceXML | would have the status code 409 (Section 4.5). However, if it does | |||
| dialog type, it would respond with a 200 status, activate the | support the VoiceXML dialog language, it would respond with a 200 | |||
| VoiceXML dialog and may make the <params> available in the VoiceXML | status, activate the VoiceXML dialog and make the <params> available | |||
| script through the "connection.ccxml.values" object. | in the VoiceXML script through the "connection.ccxml.values" object. | |||
| When the VoiceXML dialog exits, exit parameters may be specified on | When the VoiceXML dialog exits, exit namelist parameters are | |||
| the dialogexit event: | specified using <params> in the dialogexit event: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d2"> | <event dialogid="d2"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <params> | <params> | |||
| <param name="username">peter</param> | <param name="username">peter</param> | |||
| <param name="pin">1234</param> | <param name="pin">1234</param> | |||
| </params> | </params> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 6.4. Foreign Namespace Attributes and Elements | ||||
| An MS may support attributes and elements from foreign namespaces | ||||
| within the <mscivr> element. For example, it may support a <listen> | ||||
| element (in a foreign namespace) for speech recognition by analogy to | ||||
| how <collect> support DTMF collection. | ||||
| In the following example, a prompt and collect request is extended | ||||
| with a <listen> element: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | ||||
| xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | ||||
| <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | ||||
| <dialog> | ||||
| <prompt> | ||||
| <media src="http://www.example.com/prompt1.wav"/> | ||||
| </prompt> | ||||
| <collect timeout="30s" maxdigits="4"/> | ||||
| <ex:listen maxtimeout="30s" > | ||||
| <ex:grammar src="http://example.org/pin.grxml"/> | ||||
| </ex:listen> | ||||
| </dialog> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In the <mscivr> root element, the xmlns:ex attribute declares that | ||||
| "ex" is associated with the foreign namespace URI "http// | ||||
| www.example.com/mediactrl/extensions/1". The <ex:listen>, its | ||||
| attributes and child elements are associated with this namespace. | ||||
| This <listen> could be defined so that it activates an SRGS grammar | ||||
| and listens for user input matching the grammar in a similar manner | ||||
| to DTMF collection. | ||||
| If an MS receives this request but does not support the <listen> | ||||
| element, then it would send a 426 response: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <response status="426" dialogid="d560" | ||||
| reason="unsupported foreign listen element"/> | ||||
| </mscivr> | ||||
| If the MS does support this foreign element, it would send a 200 | ||||
| response and start the dialog with speech recognition. When the | ||||
| dialog exits, it may provide information about the <listen> execution | ||||
| within <dialogexit>, again using elements in a foreign namespace such | ||||
| as <listeninfo> below: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr" | ||||
| xmlns:ex="http://www.example.com/mediactrl/extensions/1"> | ||||
| <event dialogid="d560"> | ||||
| <dialogexit status="1"> | ||||
| <ex:listeninfo speech="1 2 3 4" termmode="match"/> | ||||
| </dialogexit> | ||||
| </event> | ||||
| </mscivr> | ||||
| Note that in reply the AS must send a Control Framework 200 response | ||||
| even though the notification event contains an element in a foreign | ||||
| namespace which it may not understand. | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| As this control package uses XML markup, implementation MUST address | As this control package processes XML markup, implementations MUST | |||
| the security considerations of [RFC3023]. | address the security considerations of [RFC3023]. | |||
| As a Control Package of the Media Control Channel Framework, | ||||
| security, confidentiality and integrity of messages transported over | ||||
| the control channel MUST be addressed as described in Section 11 of | ||||
| the Media Control channel Framework | ||||
| ([I-D.ietf-mediactrl-sip-control-framework]), including Session | ||||
| Establishment, Transport Level Protection and Control Channel Policy | ||||
| Management. | ||||
| The Media Control Channel Framework permits additional policy | ||||
| management, including resource access and control channel usage, to | ||||
| be specified at the control package level beyond that specified for | ||||
| the Media Control Channel Framework (see Section 11.3 of | ||||
| [I-D.ietf-mediactrl-sip-control-framework]). | ||||
| Since creation of IVR dialogs is associated with media processing | ||||
| resources (e.g. DTMF detectors, media playback and recording, etc) | ||||
| on the MS, policy management for this control package MUST address | ||||
| how such dialogs are managed across multiple control channels. This | ||||
| includes which channels are used to deliver dialog event | ||||
| notifications, and whether channels are permitted to originate | ||||
| 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 | ||||
| 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 | |||
| skipping to change at page 93, line 9 ¶ | skipping to change at page 104, line 9 ¶ | |||
| 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 -01 and -00 versions. | ||||
| o 7: Updated security section referencing control framework security | ||||
| and adding policy requirement to address dialog resource | ||||
| management over multiple channels. | ||||
| o corrected typos and example errors | ||||
| o 4.2: [IVR-200] Added state machine for dialog lifecycle. | ||||
| o 4.2: clarified dialog identifier assignment and use, including MS | ||||
| assignment of dialogid in <dialogprepare> and <dialogstart>. | ||||
| o 4.2/4.2.3: clarified <dialogterminate> behavior when dialog is not | ||||
| in a STARTED state. | ||||
| o 1/4.2: Clarified concept of dialog language and replaced | ||||
| references to 'dialog types' with dialog languages. Replaced | ||||
| 'dialogtypes' with 'dialoglanguages' in auditing. Clarified that | ||||
| IVR <dialog> is inline and other supported dialog languages are | ||||
| specified by reference. Removed default type values for | ||||
| <dialogprepare> and <dialogstart>. | ||||
| o 4.4.2.2.1: clarified that the inline dialog language (<dialog>) | ||||
| must not be listed as an additional supported dialog language. | ||||
| o 4.2.2.2: [IVR-201] Added <region> element to <stream> so that | ||||
| dialog video output can be directed to a specific region a | ||||
| conference video layout. | ||||
| o 4.3.1.1.2:[IVR-202]: removed ndn format and clarified gen format | ||||
| for digits. | ||||
| o 4.4.2.1.1:[IVR-203]: added <params> to <codec> to allow additional | ||||
| codec information to be specified. | ||||
| o 4.5: added error status code for unsupported URI (415), invalid | ||||
| region identifier (416), fetchtimeout exceeded (417), syntactic | ||||
| constraint violation (418), unsupported media format (419), | ||||
| unsupported grammar format (420), unsupported variable | ||||
| announcement (421), unsupported DTMF tone generation (422), | ||||
| conflict with control key values (423), unsupported recording | ||||
| format (424). | ||||
| o Generally, replaced 'it is an error ...' language with RFC2119 | ||||
| language, making error codes more explicit. | ||||
| 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 | ||||
| an error response if they are not supported. Clarified that MS | ||||
| MUST send an error response if <control> is specified without a | ||||
| &l;prompt> element. | ||||
| o 4.2.5.2: clarified that the timestamp in <dtmfnotify> is that of | ||||
| the last DTMF in a matching input sequence. | ||||
| o References: more references now normative. | ||||
| o 4.3: Replaced passive voice language with active voice language in | ||||
| the description of execution models. | ||||
| o 1/2: Clarified that the term 'dialog' refers to IVR dialog and is | ||||
| completely unrelated to the term 'SIP dialog'. | ||||
| o 4: Added clarification that elements with URI attributes are | ||||
| recommended to support one or more communication protocols | ||||
| suitable for fetching resources. | ||||
| o 4.3.1.4: <record> clarified MS MAY support upload of recording | ||||
| data during recording, and that upload errors (e.g. authentication | ||||
| failures, communication errors, etc) are execution errors. Added | ||||
| 'append' attribute to control behavior when a recorded resource | ||||
| already exists at the recording location. | ||||
| o 4.2.2: Clarified that an error is reported if <dialogstart> with | ||||
| <params> contains parameters which the MS cannot process for the | ||||
| given dialog language. | ||||
| o 4.2.6.1: <param> removed 'valuetype' attribute and clarified that | ||||
| the type attribute indicates the MIME media type associated with | ||||
| the inline value. | ||||
| o 4.3.1.4: Added append attribute to <record> to control whether | ||||
| recordings are appended or not to the recording location resource. | ||||
| o 4.3.1.1.1: Added clipEnd attribute to <media> to control when | ||||
| playback of the media ends. | ||||
| o 4.3.1: Clarified that when there are multiple iterations of a | ||||
| dialog (using repeatCount attribute) only the results of the last | ||||
| dialog iteration are reported. | ||||
| o 4.4.2.2: Added ability to audit <variable> capability, as well as | ||||
| maximum duration of prepared dialogs and of recordings. | ||||
| o 4.3.1/4.3.1.1: Clarified the sequence of dialog operations in | ||||
| <dialog> and how &llt;prompt> reports its status. | ||||
| o 4: Changed handling of unsupported foreign namespace elements and | ||||
| attributes. The MS send a 426 error response if it encounters | ||||
| 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). | |||
| o [IVR23] Added a top-level container element, <mscivr>, with | o [IVR23] Added a top-level container element, <mscivr>, with | |||
| version attribute. | version attribute. | |||
| o Removed term 'basic' in title, description, elements and IANA | o Removed term 'basic' in title, description, elements and IANA | |||
| skipping to change at page 93, line 34 ¶ | skipping to change at page 106, line 40 ¶ | |||
| o [IVR15] Updated and simplified XML schema. Ordering of child | o [IVR15] Updated and simplified XML schema. Ordering of child | |||
| elements is significant. | elements is significant. | |||
| o [IVR06] Removed 'volume' and 'offset' from prompt element. Added | o [IVR06] Removed 'volume' and 'offset' from prompt element. Added | |||
| 'soundLevel' and 'clipBegin' to media element. | 'soundLevel' and 'clipBegin' to media element. | |||
| o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. | o [IVR17]/[IVR06] Removed 'iterations' and 'duration' from prompt. | |||
| Added 'repeatCount' and 'repeatDur' to dialog element. | Added 'repeatCount' and 'repeatDur' to dialog element. | |||
| o Moved VCR commands from <collect> into separate <control> element. | o Moved VCR commands from <collect> into separate <control> element. | |||
| Defined controlinfo element to report rumtime control match | Defined controlinfo element to report runtime control match | |||
| information. | information. | |||
| o [IVR05] Added <subscribe> to <dialogstart> where AS can subscribe | o [IVR05] Added <subscribe> to <dialogstart> where AS can subscribe | |||
| to DTMF keypresses (all, control match only, collect match only). | to DTMF key presses (all, control match only, collect match only). | |||
| Extended <event> to support associated notification. | Extended <event> to support associated notification. | |||
| o Moved definition of <stream> into a separate section. | o Moved definition of <stream> into a separate section. | |||
| o [IVR21] Added audit capability: auditing of package capabilities | o [IVR21] Added audit capability: auditing of package capabilities | |||
| and managed dialogs | and managed dialogs | |||
| o [IVR21] Explicitly stated that an error must be reported if the | o [IVR21] Explicitly stated that an error must be reported if the | |||
| connection or conference referenced in a <dialogstart> is not | connection or conference referenced in a <dialogstart> is not | |||
| available at the time the request is processed on the MS. | available at the time the request is processed on the MS. | |||
| o Clarified that the <variable> rendering mechanism is MS | o Clarified that the <variable> rendering mechanism is MS | |||
| implementation specific. | implementation specific. | |||
| o [IVR09]/[IVR10] Clarified <variable> attribute definitions and | o [IVR09]/[IVR10] Clarified <variable> attribute definitions and | |||
| added 'gender' attrribute. | added 'gender' attribute. | |||
| o [IVR16] Clarified that info must be reported in dialogexit, if the | o [IVR16] Clarified that info must be reported in dialogexit, if the | |||
| correpsonding element is specified in a <dialog>. For example, if | corresponding element is specified in a <dialog>. For example, if | |||
| <prompt> is specified, then <promptinfo> must be specified if the | <prompt> is specified, then <promptinfo> must be specified if the | |||
| dialog terminates normally. | dialog terminates normally. | |||
| o [IVR18] Added 'inactive' value for direction attribute of | o [IVR18] Added 'inactive' value for direction attribute of | |||
| <stream>. | <stream>. | |||
| o [IVR19] Clarified case of <dialogstart> on connection/conference | o [IVR19] Clarified case of <dialogstart> on connection/conference | |||
| with multiple streams of the same type: recommended to be set | with multiple streams of the same type: recommended to be set | |||
| explcitly with <stream>s. | explicitly with <stream>s. | |||
| o [IVR02] Clarified that multiple dialogs may started simultaneously | o [IVR02] Clarified that multiple dialogs may started simultaneously | |||
| on the same connection or conference. | on the same connection or conference. | |||
| o [IVR20] Added maximum duration (10 minutes) for a dialog to remain | o [IVR20] Added maximum duration (10 minutes) for a dialog to remain | |||
| in the PREPARED state. | in the PREPARED state. | |||
| o Added <params> in <dialogstart> and <dialogexit> for input/output | o Added <params> in <dialogstart> and <dialogexit> for input/output | |||
| in other dialog types | in other dialog types | |||
| skipping to change at page 97, line 47 ¶ | skipping to change at page 111, line 4 ¶ | |||
| o added <stream> element as child of <dialogstart> | o added <stream> element as child of <dialogstart> | |||
| o removed 'type' attribute from <dialogprepare> and <dialogstart> | o removed 'type' attribute from <dialogprepare> and <dialogstart> | |||
| o added dialogid attribute to <dialogprepare> and <dialogstart> | o added dialogid attribute to <dialogprepare> and <dialogstart> | |||
| o removed template "Sample Implementation" section | o removed template "Sample Implementation" section | |||
| o renamed <namelist> to <data> | o renamed <namelist> to <data> | |||
| o re-organized so that template details after general package | o re-organized so that template details after general package | |||
| framework and element description. | framework and element description. | |||
| The following are the primary changes between the -01 of the draft | The following are the primary changes between the -01 of the draft | |||
| and the -00 version. | and the -00 version. | |||
| o Removed requirement for VoiceXML dialog support | o Removed requirement for VoiceXML dialog support | |||
| o Added requirement for template dialog support | o Added requirement for template dialog support | |||
| 10. Contributors | 10. Contributors | |||
| Asher Shiratzky from Radvision provided valuable support and | Asher Shiratzky 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 and Diego Besprosvan who | Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary | |||
| provided valuable feedback, input and text to this document. | Barnes who provided valuable feedback, input and text 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] | ||||
| Boulton, C., Melanchuk, T., and S. McGlashan, "Media | ||||
| Control Channel Framework", | ||||
| draft-ietf-mediactrl-sip-control-framework-04 (work in | ||||
| progress), August 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 | ||||
| Types", RFC 3023, January 2001. | ||||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | ||||
| Resource Identifier (URI): Generic Syntax", STD 66, | ||||
| RFC 3986, January 2005. | ||||
| [RFC4574] Levin, O. and G. Camarillo, "The Session Description | ||||
| Protocol (SDP) Label Attribute", RFC 4574, August 2006. | ||||
| [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying | ||||
| Languages", BCP 47, RFC 4646, September 2006. | ||||
| [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | ||||
| BCP 47, RFC 4647, September 2006. | ||||
| [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | ||||
| Specification Version 1.0", W3C Recommendation, | ||||
| March 2004. | ||||
| [W3C.REC-SMIL2-20051213] | ||||
| Bulterman, D., Jansen, J., Zucker, D., Layaida, N., | ||||
| Michel, T., Mullender, S., Koivisto, A., and G. Grassel, | ||||
| "Synchronized Multimedia Integration Language (SMIL 2.1)", | ||||
| World Wide Web Consortium Recommendation REC-SMIL2- | ||||
| 20051213, December 2005, | ||||
| <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | ||||
| [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | ||||
| and F. Yergeau, "Extensible Markup Language (XML) 1.0 | ||||
| (Third Edition)", W3C Recommendation, February 2004. | ||||
| [XMLSchema:Part2] | ||||
| Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | ||||
| Second Edition", W3C Recommendation, October 2004. | ||||
| 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.1] "Gateway control protocol: Version 3", ITU-T | ||||
| Recommendation H.248.1. | ||||
| [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-mediactrl-sip-control-framework] | ||||
| Boulton, C., Melanchuk, T., and S. McGlashan, "Media | ||||
| Control Channel Framework", | ||||
| draft-ietf-mediactrl-sip-control-framework-02 (work in | ||||
| progress), April 2008. | ||||
| [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., and R. Even, | |||
| "Conference Information Data Model for Centralized | "Conference Information Data Model for Centralized | |||
| Conferencing (XCON)", draft-ietf-xcon-common-data-model-10 | Conferencing (XCON)", draft-ietf-xcon-common-data-model-11 | |||
| (work in progress), March 2008. | (work in progress), June 2008. | |||
| [IANA] "IANA registry for RTP Payload Types", | ||||
| <http://www.iana.org/assignments/rtp-parameters>. | ||||
| [MIME.mediatypes] | ||||
| "IANA registry for MIME 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-06 (work in | Markup Language (MSML)", draft-saleem-msml-07 (work in | |||
| progress), February 2008. | progress), August 2008. | |||
| [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio | [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio | |||
| Package", RFC 2897, August 2000. | Package", RFC 2897, August 2000. | |||
| [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | ||||
| Types", RFC 3023, January 2001. | ||||
| [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
| A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
| Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
| June 2002. | June 2002. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | ||||
| Resource Identifier (URI): Generic Syntax", STD 66, | ||||
| RFC 3986, January 2005. | ||||
| [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network | [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network | |||
| Media Services with SIP", RFC 4240, December 2005. | Media Services with SIP", RFC 4240, December 2005. | |||
| [RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media | ||||
| Types: application/voicexml+xml, application/ssml+xml, | ||||
| application/srgs, application/srgs+xml, application/ | ||||
| ccxml+xml, and application/pls+xml", RFC 4267, | ||||
| November 2005. | ||||
| [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs | [RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs | |||
| Parameter for "Bucket" Media Types", RFC 4281, | Parameter for "Bucket" Media Types", RFC 4281, | |||
| November 2005. | November 2005. | |||
| [RFC4574] Levin, O. and G. Camarillo, "The Session Description | ||||
| Protocol (SDP) Label Attribute", RFC 4574, August 2006. | ||||
| [RFC4646] Phillips, A. and M. Davis, "Tags for Identifying | ||||
| Languages", BCP 47, RFC 4646, September 2006. | ||||
| [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | ||||
| BCP 47, RFC 4647, September 2006. | ||||
| [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol | [RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol | |||
| (SIP) Event Package for Key Press Stimulus (KPML)", | (SIP) Event Package for Key Press Stimulus (KPML)", | |||
| RFC 4730, November 2006. | RFC 4730, November 2006. | |||
| [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF | [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF | |||
| Digits, Telephony Tones, and Telephony Signals", RFC 4733, | Digits, Telephony Tones, and Telephony Signals", RFC 4733, | |||
| December 2006. | December 2006. | |||
| [RFC4855] Casner, S., "Media Type Registration of RTP Payload | ||||
| Formats", RFC 4855, February 2007. | ||||
| [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server | [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server | |||
| Control Markup Language (MSCML) and Protocol", RFC 5022, | Control Markup Language (MSCML) and Protocol", RFC 5022, | |||
| September 2007. | September 2007. | |||
| [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol | [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol | |||
| Requirements", RFC 5167, March 2008. | Requirements", RFC 5167, March 2008. | |||
| [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | ||||
| Specification Version 1.0", W3C Recommendation, | ||||
| March 2004. | ||||
| [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., | [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., | |||
| Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | |||
| and S. Tryphonas, "Voice Extensible Markup Language | and S. Tryphonas, "Voice Extensible Markup Language | |||
| (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | |||
| [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | |||
| Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | |||
| A., Porter, B., and K. Rehor, "Voice Extensible Markup | A., Porter, B., and K. Rehor, "Voice Extensible Markup | |||
| Language (VoiceXML) Version 2.1", W3C Recommendation, | Language (VoiceXML) Version 2.1", W3C Recommendation, | |||
| June 2007. | June 2007. | |||
| [W3C.REC-SMIL2-20051213] | ||||
| Michel, T., Mullender, S., Jansen, J., Koivisto, A., | ||||
| Zucker, D., Grassel, G., Bulterman, D., and N. Layaida, | ||||
| "Synchronized Multimedia Integration Language (SMIL 2.1)", | ||||
| World Wide Web Consortium Recommendation REC-SMIL2- | ||||
| 20051213, December 2005, | ||||
| <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | ||||
| [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | ||||
| and F. Yergeau, "Extensible Markup Language (XML) 1.0 | ||||
| (Third Edition)", W3C Recommendation, February 2004. | ||||
| [XMLSchema:Part2] | ||||
| Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | ||||
| Second Edition", W3C Recommendation, October 2004. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Scott McGlashan | Scott McGlashan | |||
| Hewlett-Packard | Hewlett-Packard | |||
| Gustav III:s boulevard 36 | Gustav III:s boulevard 36 | |||
| SE-16985 Stockholm, Sweden | SE-16985 Stockholm, Sweden | |||
| Email: scott.mcglashan@hp.com | Email: scott.mcglashan@hp.com | |||
| Tim Melanchuk | Tim Melanchuk | |||
| End of changes. 379 change blocks. | ||||
| 1484 lines changed or deleted | 2115 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/ | ||||