| < draft-ietf-mediactrl-ivr-control-package-08.txt | draft-ietf-mediactrl-ivr-control-package-09.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: August 29, 2010 Rain Willow Communications | Expires: May 15, 2011 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| NS-Technologies | NS-Technologies | |||
| February 25, 2010 | November 11, 2010 | |||
| An Interactive Voice Response (IVR) Control Package for the Media | An Interactive Voice Response (IVR) Control Package for the Media | |||
| Control Channel Framework | Control Channel Framework | |||
| draft-ietf-mediactrl-ivr-control-package-08 | draft-ietf-mediactrl-ivr-control-package-09 | |||
| Abstract | Abstract | |||
| This document defines a Media Control Channel Framework Package for | This document defines a Media Control Channel Framework Package for | |||
| Interactive Voice Response (IVR) dialog interaction on media | Interactive Voice Response (IVR) dialog interaction on media | |||
| connections and conferences. The package defines dialog management | connections and conferences. The package defines dialog management | |||
| request elements for preparing, starting and terminating dialog | request elements for preparing, starting and terminating dialog | |||
| interactions, as well as associated responses and notifications. | interactions, as well as associated responses and notifications. | |||
| Dialog interactions are specified in a dialog language. This package | Dialog interactions are specified in a dialog language. This package | |||
| defines a lightweight IVR dialog language (supporting prompt | defines a lightweight IVR dialog language (supporting prompt | |||
| playback, runtime controls, DTMF collect and media recording) and | playback, runtime controls, Dual-Tone Multi-Frequency (DTMF) | |||
| allows other dialog languages to be used. The package also defines | collection and media recording) and allows other dialog languages to | |||
| elements for auditing package capabilities and IVR dialogs. | be used. The package also defines elements for auditing package | |||
| capabilities and IVR dialogs. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and 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). Note that other groups may also distribute | |||
| other groups may also distribute working documents as Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| 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 | This Internet-Draft will expire on May 15, 2011. | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | ||||
| http://www.ietf.org/shadow.html. | ||||
| This Internet-Draft will expire on August 29, 2010. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the BSD License. | described in the Simplified BSD License. | |||
| This document may contain material from IETF Documents or IETF | This document may contain material from IETF Documents or IETF | |||
| Contributions published or made publicly available before November | Contributions published or made publicly available before November | |||
| 10, 2008. The person(s) controlling the copyright in some of this | 10, 2008. The person(s) controlling the copyright in some of this | |||
| material may not have granted the IETF Trust the right to allow | material may not have granted the IETF Trust the right to allow | |||
| modifications of such material outside the IETF Standards Process. | modifications of such material outside the IETF Standards Process. | |||
| Without obtaining an adequate license from the person(s) controlling | Without obtaining an adequate license from the person(s) controlling | |||
| the copyright in such materials, this document may not be modified | the copyright in such materials, this document may not be modified | |||
| outside the IETF Standards Process, and derivative works of it may | outside the IETF Standards Process, and derivative works of it may | |||
| not be created outside the IETF Standards Process, except to format | not be created outside the IETF Standards Process, except to format | |||
| it for publication as an RFC or to translate it into languages other | it for publication as an RFC or to translate it into languages other | |||
| than English. | than English. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 9 | 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 10 | |||
| 3. Control Package Definition . . . . . . . . . . . . . . . . . 10 | 3. Control Package Definition . . . . . . . . . . . . . . . . . 11 | |||
| 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 10 | 3.1. Control Package Name . . . . . . . . . . . . . . . . . . 11 | |||
| 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 10 | 3.2. Framework Message Usage . . . . . . . . . . . . . . . . . 11 | |||
| 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 11 | 3.3. Common XML Support . . . . . . . . . . . . . . . . . . . 12 | |||
| 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 11 | 3.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . 12 | |||
| 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 11 | 3.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 12 | |||
| 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 3.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 12 | 3.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 13 | 4. Element Definitions . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 13 | 4.1. <mscivr> . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 15 | 4.2. Dialog Management Elements . . . . . . . . . . . . . . . 16 | |||
| 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 18 | 4.2.1. <dialogprepare> . . . . . . . . . . . . . . . . . . . 19 | |||
| 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 21 | 4.2.2. <dialogstart> . . . . . . . . . . . . . . . . . . . . 22 | |||
| 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 24 | 4.2.2.1. <subscribe> . . . . . . . . . . . . . . . . . . . 25 | |||
| 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 25 | 4.2.2.1.1. <dtmfsub> . . . . . . . . . . . . . . . . . . 26 | |||
| 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 26 | 4.2.2.2. <stream> . . . . . . . . . . . . . . . . . . . . 27 | |||
| 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 27 | 4.2.2.2.1. <region> . . . . . . . . . . . . . . . . . . 28 | |||
| 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 27 | 4.2.2.2.2. <priority> . . . . . . . . . . . . . . . . . 28 | |||
| 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 28 | 4.2.3. <dialogterminate> . . . . . . . . . . . . . . . . . . 29 | |||
| 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 28 | 4.2.4. <response> . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 30 | 4.2.5. <event> . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 30 | 4.2.5.1. <dialogexit> . . . . . . . . . . . . . . . . . . 31 | |||
| 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 32 | 4.2.5.2. <dtmfnotify> . . . . . . . . . . . . . . . . . . 33 | |||
| 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 32 | 4.2.6. <params> . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 33 | 4.2.6.1. <param> . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 34 | 4.3. IVR Dialog Elements . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 35 | 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 38 | 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 39 | 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 40 | |||
| 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 41 | 4.3.1.1.1.1. Date type . . . . . . . . . . . . . . . . 41 | |||
| 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 42 | 4.3.1.1.1.2. Time type . . . . . . . . . . . . . . . . 42 | |||
| 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 43 | 4.3.1.1.1.3. Digits type . . . . . . . . . . . . . . . 43 | |||
| 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 45 | 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 43 | |||
| 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 48 | 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 44 | |||
| 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 50 | 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 46 | |||
| 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 52 | 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 47 | |||
| 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 56 | 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 50 | |||
| 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 57 | 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 53 | |||
| 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 58 | 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 54 | |||
| 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 58 | 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 58 | |||
| 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 58 | 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 60 | |||
| 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 58 | 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 60 | |||
| 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 59 | 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 60 | |||
| 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 59 | 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 60 | |||
| 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 60 | 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 60 | |||
| 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 60 | 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 61 | 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 63 | 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 64 | 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 64 | 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 66 | 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 67 | 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 66 | |||
| 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 67 | 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 67 | |||
| 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 67 | 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 68 | |||
| 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 68 | 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 69 | |||
| 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 68 | 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 69 | |||
| 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 69 | 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 69 | |||
| 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 69 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 70 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 69 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 70 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 69 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 71 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 70 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 71 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 76 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 71 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 78 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 71 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 105 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 72 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 78 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 105 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 81 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 106 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 108 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 106 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 108 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 107 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 108 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 109 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 108 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 109 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 109 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 110 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 111 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 111 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 112 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 111 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 113 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 112 | |||
| 6.2.6. Dialog repetition until DTMF collection complete . . 113 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 114 | |||
| 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 114 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 115 | |||
| 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 115 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 116 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 117 | 6.2.6. Dialog repetition until DTMF collection complete . . 116 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 120 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 117 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 120 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 118 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 120 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 120 | |||
| 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 121 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 123 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 123 | ||||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 123 | ||||
| 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 124 | ||||
| 8.4. MIME Media Type Registration for | 8.4. MIME Media Type Registration for | |||
| 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 121 | 'application/msc-ivr+xml' . . . . . . . . . . . . . . . . 124 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 123 | 8.5. IVR Prompt Variable Type Registration Information . . . . 125 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 137 | 9. Using VoiceXML as a dialog language . . . . . . . . . . . . . 127 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 138 | 10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 135 | |||
| 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 139 | 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 151 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 147 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 152 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 147 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 153 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 148 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 153 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 154 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 150 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 157 | |||
| 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 Channel Framework - an equivalent term for | |||
| the Media Control Channel 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 'dialog' in | dialogs on media connections and conferences. The term 'dialog' in | |||
| this document refers to an IVR dialog and is completely unrelated to | this document refers to an IVR dialog and is completely unrelated to | |||
| the notion of a SIP dialog. The term 'IVR' is used in its inclusive | the notion of a SIP dialog. The term 'IVR' is used in its inclusive | |||
| sense, allowing media other than voice for dialog interaction. | sense, allowing media other than voice for dialog interaction. | |||
| The package defines dialog management request elements for preparing, | The package defines dialog management request elements for preparing, | |||
| starting and terminating dialog interactions, as well as associated | starting and terminating dialog interactions, as well as associated | |||
| responses and notifications. Dialog interactions are specified using | responses and notifications. Dialog interactions are specified using | |||
| a dialog language where the language specifies a well-defined syntax | a dialog language where the language specifies a well-defined syntax | |||
| and semantics for permitted operations (play a prompt, record input | and semantics for permitted operations (play a prompt, record input | |||
| from the user, etc). This package defines a lightweight IVR dialog | from the user, etc). This package defines a lightweight IVR dialog | |||
| language (supporting prompt playback, runtime controls, DTMF collect | language (supporting prompt playback, runtime controls, DTMF | |||
| and media recording) and allows other dialog languages to be used. | collection and media recording) and allows other dialog languages to | |||
| These dialog languages are specified inside dialog management | be used. These dialog languages are specified inside dialog | |||
| elements for preparing and starting dialog interactions. The package | management elements for preparing and starting dialog interactions. | |||
| also defines elements for auditing package capabilities and IVR | The package also defines elements for auditing package capabilities | |||
| dialogs. | and IVR dialogs. | |||
| This package has been designed to satisfy IVR requirements documented | This package has been designed to satisfy IVR requirements documented | |||
| in the Media Server Control Protocol Requirements document | in the Media Server Control Protocol Requirements document | |||
| ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. | ([RFC5167]); more specifically REQ-MCP-28, REQ-MCP-29 and REQ-MCP-30. | |||
| It achieves this by building upon two major approaches to IVR dialog | It achieves this by building upon two major approaches to IVR dialog | |||
| design. These approaches address a wide range of IVR use cases and | design. These approaches address a wide range of IVR use cases and | |||
| are used in many applications which are extensively deployed today. | are used in many applications which are extensively deployed today. | |||
| First, the package is designed to provide the major IVR functionality | First, the package is designed to provide the major IVR functionality | |||
| of SIP Media Server languages such as netann ([RFC4240]), MSCML | of SIP Media Server languages such as netann ([RFC4240]), MSCML | |||
| ([RFC5022]) and MSML ([RFC5707]) which themselves build upon more | ([RFC5022]) and MSML ([RFC5707]) which themselves build upon more | |||
| traditional non-SIP languages ([H.248.9], [RFC2897]). A key | traditional non-SIP languages ([H.248.9], [RFC2897]). A key | |||
| differentiator is that this package provides IVR functionality using | differentiator is that this package provides IVR functionality using | |||
| the Media Control Channel Framework. | the Channel Framework. | |||
| Second, its design is aligned with key concepts of the web model as | Second, its design is aligned with key concepts of the web model as | |||
| defined in W3C Voice Browser languages. The key dialog management | defined in W3C Voice Browser languages. The key dialog management | |||
| mechanism is closely aligned with CCXML ([CCXML10]). The dialog | mechanism is closely aligned with CCXML ([CCXML10]). The dialog | |||
| functionality defined in this package can be largely seen as a subset | functionality defined in this package can be largely seen as a subset | |||
| of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, | of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, | |||
| DTMF collection and media recording features are incorporated, but | DTMF collection and media recording features are incorporated, but | |||
| not any advanced VoiceXML constructs (such as <form>, its | not any advanced VoiceXML constructs (such as <form>, its | |||
| interpretation algorithm, or a dynamic data model). As W3C develops | interpretation algorithm, or a dynamic data model). As W3C develops | |||
| VoiceXML 3.0 ([VXML30]), we expect to see further alignment, | VoiceXML 3.0 ([VXML30]), we expect to see further alignment, | |||
| skipping to change at page 9, line 9 ¶ | skipping to change at page 9, line 10 ¶ | |||
| 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. Section 7 describes important security considerations | package usage. Section 7 describes important security considerations | |||
| for use of this control package. Section 8 provides information on | for use of this control package. Section 8 provides information on | |||
| IANA registration of this control package, including its name, XML | IANA registration of this control package, including its name, XML | |||
| namespace and MIME media type. Finally, Section 12 provides | namespace and MIME media type. It also establishes a registry for | |||
| additional information on using VoiceXML when supported as an | prompt variables. Finally, Section 9 provides additional information | |||
| external dialog language. | on using VoiceXML when supported as an external dialog language. | |||
| 2. Conventions and Terminology | 2. Conventions and Terminology | |||
| In this document, BCP 14 [RFC2119] defines the key words "MUST", | In this document, BCP 14 [RFC2119] defines the key words "MUST", | |||
| "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | |||
| "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In | |||
| addition, BCP 15 indicates requirement levels for compliant | addition, BCP 15 indicates requirement levels for compliant | |||
| implementations. | implementations. | |||
| The following additional terms are defined for use in this document: | The following additional terms are defined for use in this document: | |||
| skipping to change at page 11, line 15 ¶ | skipping to change at page 11, line 15 ¶ | |||
| 3. Control Package Definition | 3. Control Package Definition | |||
| This section fulfills the mandatory requirement for information that | This section fulfills the mandatory requirement for information that | |||
| MUST be specified during the definition of a Control Framework | MUST be specified during the definition of a Control Framework | |||
| Package, as detailed in Section 8 of | Package, as detailed in Section 8 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]. | [I-D.ietf-mediactrl-sip-control-framework]. | |||
| 3.1. Control Package Name | 3.1. Control Package Name | |||
| The Control Framework requires a Control Package to specify and | The Control Framework requires a Control Package to specify and | |||
| register a unique name and version. | register a unique name. | |||
| The name and version of this Control Package is "msc-ivr/1.0" (Media | The name of this Control Package is "msc-ivr/1.0" (Media Server | |||
| Server Control - Interactive Voice Response - version 1.0). Its IANA | Control - Interactive Voice Response - version 1.0). Its IANA | |||
| registration is specified in Section 8.1. | registration is specified in Section 8.1. | |||
| Since this is the initial ("1.0") version of the control package, | Since this is the initial ("1.0") version of the control package, | |||
| there are no backwards compatibility issues to address. | there are no backwards compatibility issues to address. | |||
| 3.2. Framework Message Usage | 3.2. Framework Message Usage | |||
| The Control Framework requires a Control Package to explicitly detail | The Control Framework requires a Control Package to explicitly detail | |||
| the control messages that can be used as well as provide an | the control messages that can be used as well as provide an | |||
| indication of directionality between entities. This will include | indication of directionality between entities. This will include | |||
| skipping to change at page 14, line 40 ¶ | skipping to change at page 14, line 40 ¶ | |||
| The XML schema supports extensibility by allowing attributes and | The XML schema supports extensibility by allowing attributes and | |||
| elements from other namespaces. Implementations MAY support | elements from other namespaces. Implementations MAY support | |||
| additional capabilities by means of attributes and elements from | additional capabilities by means of attributes and elements from | |||
| other (foreign) namespaces. Attributes and elements from foreign | other (foreign) namespaces. Attributes and elements from foreign | |||
| namespaces are not described in this section. | namespaces are not described in this section. | |||
| Some elements in this control package contain attributes whose value | Some elements in this control package contain attributes whose value | |||
| is a URI. These elements include: <dialogprepare> (Section 4.2.1), | is a URI. These elements include: <dialogprepare> (Section 4.2.1), | |||
| <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.5), <grammar> | <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.5), <grammar> | |||
| (Section 4.3.1.3.1), and <record> (Section 4.3.1.4). The MS MUST | (Section 4.3.1.3.1), and <record> (Section 4.3.1.4). The MS MUST | |||
| support one or more schemes using communication protocols suitable | support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) protocol schemes | |||
| for fetching resources (e.g. HTTP). | for fetching and uploading resources and the MS MAY support other | |||
| schemes. | ||||
| Some elements in this control package contain attributes whose value | ||||
| is descriptive text. Since the descriptive text is for diagnostic | ||||
| use only, and is neither a protocol element nor intended for user | ||||
| display, the descriptive text does not require a language indicator | ||||
| such as a language tag ([RFC2277]) and thus does not carry one. | ||||
| These comprise: the reason attribute on <response> (Section 4.2.4), | ||||
| <dialogexit> (Section 4.2.5.1) and <auditresponse> (Section 4.4.2); | ||||
| desc attribute on <variabletype> and <format> (Section 4.4.2.2.5.1). | ||||
| Usage examples are provided in Section 6. | Usage examples are provided in Section 6. | |||
| 4.1. <mscivr> | 4.1. <mscivr> | |||
| The <mscivr> element has the following attributes (in addition to | The <mscivr> element has the following attributes (in addition to | |||
| standard XML namespace attributes such as xmlns): | standard XML namespace attributes such as xmlns): | |||
| version: a string specifying the mscivr package version. The value | version: a string specifying the mscivr package version. The value | |||
| is fixed as '1.0' for this version of the package. The attribute | is fixed as '1.0' for this version of the package. The attribute | |||
| skipping to change at page 20, line 6 ¶ | skipping to change at page 20, line 6 ¶ | |||
| an inline <dialog> element, and (b) validating the dialog document | an inline <dialog> element, and (b) validating the dialog document | |||
| syntactically and semantically. | syntactically and semantically. | |||
| A prepared dialog is executed when the MS receives a <dialogstart> | A prepared dialog is executed when the MS receives a <dialogstart> | |||
| request referencing the prepared dialog identifier (see | request referencing the prepared dialog identifier (see | |||
| Section 4.2.2). | Section 4.2.2). | |||
| The <dialogprepare> element has the following attributes: | The <dialogprepare> element has the following attributes: | |||
| src: specifies the location of an external dialog document to | src: specifies the location of an external dialog document to | |||
| prepare. A valid value is a URI (see Section 4.6.9) including | prepare. A valid value is a URI (see Section 4.6.9). The MS MUST | |||
| authentication information if defined by the URI scheme (e.g. | support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and | |||
| basic access authentication in HTTP). If the URI scheme is | the MS MAY support other schemes. If the URI scheme is | |||
| unsupported, the MS sends a <response> with a 420 status code | unsupported, the MS sends a <response> with a 420 status code | |||
| (Section 4.5). If the document cannot be retrieved within the | (Section 4.5). If the document cannot be retrieved within the | |||
| timeout interval, the MS sends a <response> with a 409 status | timeout interval, the MS sends a <response> with a 409 status | |||
| code. If the document contains a type of dialog language which | code. If the document contains a type of dialog language which | |||
| the MS does not supported, the MS sends a <response> with a 421 | the MS does not supported, the MS sends a <response> with a 421 | |||
| status code. The attribute is optional. There is no default | status code. The attribute is optional. There is no default | |||
| value. | value. | |||
| type: specifies the type of the external dialog document indicated | type: specifies the type of the external dialog document indicated | |||
| in the 'src' attribute. A valid value is a MIME media type (see | in the 'src' attribute. A valid value is a MIME media type (see | |||
| skipping to change at page 21, line 47 ¶ | skipping to change at page 21, line 47 ¶ | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogprepare dialogid="d2" type="application/voicexml+xml" | <dialogprepare dialogid="d2" type="application/voicexml+xml" | |||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"/> | fetchtimeout="15s"/> | |||
| </mscivr> | </mscivr> | |||
| Since MS support for dialog languages other than the IVR dialog | Since MS support for dialog languages other than the IVR dialog | |||
| language defined in this package is optional, if the MS does not | language defined in this package is optional, if the MS does not | |||
| support the dialog language it would send a response with the status | support the dialog language it would send a response with the status | |||
| code 409 (Section 4.5). Further information on using VoiceXML can be | code 421 (Section 4.5). Further information on using VoiceXML can be | |||
| found in Section 12. | found in Section 9. | |||
| 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 | |||
| external document and/or external resources referenced within | external document and/or external resources referenced within | |||
| <dialog> element, and the dialog document validated syntactically and | <dialog> element, and the dialog document validated syntactically and | |||
| semantically). Media processors (e.g. DTMF and prompt queue) are | semantically). Media processors (e.g. DTMF and prompt queue) are | |||
| activated and associated with the specified connection or conference. | activated and associated with the specified connection or conference. | |||
| The <dialogstart> element has the following attributes: | The <dialogstart> element has the following attributes: | |||
| src: specifies the location of an external dialog document to start. | src: specifies the location of an external dialog document to start. | |||
| A valid value is a URI (see Section 4.6.9) including | A valid value is a URI (see Section 4.6.9). The MS MUST support | |||
| authentication information if defined by the URI scheme (e.g. | both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY | |||
| basic access authentication in HTTP). If the URI scheme is | support other schemes. If the URI scheme is unsupported, the MS | |||
| unsupported, the MS sends a <response> with a 420 status code | sends a <response> with a 420 status code (Section 4.5). If the | |||
| (Section 4.5). If the document cannot be retrieved with the | document cannot be retrieved with the timeout interval, the MS | |||
| timeout interval, the MS sends a <response> with a 409 status | sends a <response> with a 409 status code. If the document | |||
| code. If the document contains a type of dialog language which | contains a type of dialog language which the MS does not | |||
| the MS does not supported, the MS sends a <response> with a 421 | supported, the MS sends a <response> with a 421 status code. The | |||
| status code. The attribute is optional. There is no default | attribute is optional. There is no default value. | |||
| value. | ||||
| type: specifies the type of the external dialog document indicated | type: specifies the type of the external dialog document indicated | |||
| in the 'src' attribute. A valid value is a MIME media type (see | in the 'src' attribute. A valid value is a MIME media type (see | |||
| Section 4.6.10). If the URI scheme used in the src attribute | Section 4.6.10). If the URI scheme used in the src attribute | |||
| defines a mechanism for establishing the authoratitive MIME media | defines a mechanism for establishing the authoratitive MIME media | |||
| type of the media resource, the value returned by that mechanism | type of the media resource, the value returned by that mechanism | |||
| takes precedence over this attribute. The attribute is optional. | takes precedence over this attribute. The attribute is optional. | |||
| There is no default value. | There is no default value. | |||
| maxage: Used to set the max-age value of the Cache-Control header in | maxage: Used to set the max-age value of the Cache-Control header in | |||
| skipping to change at page 25, line 19 ¶ | skipping to change at page 25, line 19 ¶ | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart connectionid="connection1"> | <dialogstart connectionid="connection1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/getpin.wav"/> | <media loc="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| <subscribe> | <subscribe> | |||
| <dmtfsub matchmode="all"/> | <dtmfsub matchmode="all"/> | |||
| </subscribe> | </subscribe> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In this example, the dialog is started on a conference where the | In this example, the dialog is started on a conference where the | |||
| conference only receives an audio media stream from the dialog: | conference only receives an audio media stream from 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 conferenceid="conference1"> | <dialogstart conferenceid="conference1"> | |||
| <dialog> | <dialog> | |||
| <record maxtime="384000s"/> | <record maxtime="384000s"/> | |||
| </dialog> | </dialog> | |||
| <stream media="audio" direction="recvonly"/> | <stream media="audio" direction="recvonly"/> | |||
| </dialogstart> | ||||
| </mscivr> | </mscivr> | |||
| 4.2.2.1. <subscribe> | 4.2.2.1. <subscribe> | |||
| The <subscribe> element allows the AS to subscribe to, and be | The <subscribe> element allows the AS to subscribe to, and be | |||
| notified of, specific events which occur during execution of the | notified of, specific events which occur during execution of the | |||
| dialog. Notifications of dialog events are delivered using the | dialog. Notifications of dialog events are delivered using the | |||
| <event> element (see Section 4.2.5). | <event> element (see Section 4.2.5). | |||
| The <subscribe> element has no attributes. | The <subscribe> element has no attributes. | |||
| skipping to change at page 26, line 38 ¶ | skipping to change at page 26, line 39 ¶ | |||
| For example, the AS wishes to subscribe to DTMF key press matching a | For example, the AS wishes to subscribe to DTMF key press matching a | |||
| runtime control: | runtime control: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart dialogid="d3" connectionid="connection1"> | <dialogstart dialogid="d3" connectionid="connection1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/getpin.wav"/> | <media loc="http://www.example.com/getpin.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey="2" rewkey="3"/> | <control ffkey="2" rwkey="3"/> | |||
| </dialog> | </dialog> | |||
| <subscribe> | <subscribe> | |||
| <dmtfsub matchmode="control"/> | <dtmfsub matchmode="control"/> | |||
| </subscribe> | </subscribe> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| Each time a '2' or '3' DTMF input is received, the MS sends a | Each time a '2' or '3' DTMF input is received, the MS sends a | |||
| notification event: | notification event: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d3"> | <event dialogid="d3"> | |||
| <dtmfnotify matchmode="collect" dtmf="2" | <dtmfnotify matchmode="collect" dtmf="2" | |||
| 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. The following values MUST be used for common types of | stream. A valid value is a MIME type-name as defined in Section | |||
| media: "audio" for audio media, and "video" for video media. The | 4.2 of [RFC4288]. The following values MUST be used for common | |||
| types of media: "audio" for audio media, and "video" for video | ||||
| media. See IANA ([IANA]) for registered MIME type names. The | ||||
| attribute is mandatory. | attribute is mandatory. | |||
| label: a string indicating the SDP label associated with a media | label: a string indicating the SDP label associated with a media | |||
| stream ([RFC4574]). The attribute is optional. | stream ([RFC4574]). The attribute is optional. | |||
| direction: a string indicating the direction of the media flow | direction: a string indicating the direction of the media flow | |||
| relative to the endpoint conference or connection. Defined values | relative to the endpoint conference or connection. Defined values | |||
| are: "sendrecv" (the endpoint can send media to, and receive media | are: "sendrecv" (the endpoint can send media to, and receive media | |||
| from, the dialog), "sendonly" (the endpoint can only send media to | from, the dialog), "sendonly" (the endpoint can only send media to | |||
| the dialog), "recvonly" (the endpoint can only receive media from | the dialog), "recvonly" (the endpoint can only receive media from | |||
| the dialog) and "inactive" (stream is not to be used). The | the dialog) and "inactive" (stream is not to be used). The | |||
| default value is "sendrecv". The attribute is optional. | default value is "sendrecv". The attribute is optional. | |||
| The <stream> element has the following sequence of child elements: | The <stream> element has the following sequence of child elements: | |||
| <region>: an element to specify the region within a mixer video | <region>: an element to specify the area within a mixer video layout | |||
| layout where a media stream is displayed (Section 4.2.2.2.1). The | where a media stream is displayed (Section 4.2.2.2.1). The | |||
| element is optional. | element is optional. | |||
| <priority>: an element to configure priority associated with the | <priority>: an element to configure priority associated with the | |||
| stream in the conference mix (Section 4.2.2.2.2). The element is | stream in the conference mix (Section 4.2.2.2.2). The element is | |||
| optional. | optional. | |||
| If conferenceid is not specified or if the "media" attribute does not | If conferenceid is not specified or if the "media" attribute does not | |||
| have the value of "video", then the MS ignores the <region> and | have the value of "video", then the MS ignores the <region> and | |||
| <priority> elements. | <priority> elements. | |||
| skipping to change at page 28, line 14 ¶ | skipping to change at page 28, line 14 ¶ | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart connectionid="connection1"> | <dialogstart connectionid="connection1"> | |||
| <dialog> | <dialog> | |||
| <record maxtime="384000s"/> | <record maxtime="384000s"/> | |||
| </dialog> | </dialog> | |||
| <stream media="audio" label="camaudio" direction="inactive"/> | <stream media="audio" label="camaudio" direction="inactive"/> | |||
| <stream media="video" label="camvideo" direction="inactive"/> | <stream media="video" label="camvideo" direction="inactive"/> | |||
| <stream media="audio" label="useraudio" direction="sendonly"/> | <stream media="audio" label="useraudio" direction="sendonly"/> | |||
| <stream media="video" label="uservideo" direction="sendonly"/> | <stream media="video" label="uservideo" direction="sendonly"/> | |||
| </dialogstart> | ||||
| </mscivr> | </mscivr> | |||
| Using the <region> element, the dialog can be started on a conference | Using the <region> element, the dialog can be started on a conference | |||
| mixer so that the video output from the dialog is directed to a | mixer so that the video output from the dialog is directed to a | |||
| specific region within a video layout. For example: | specific area within a video layout. For example: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart conferenceid="conference1"> | <dialogstart conferenceid="conference1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/presentation.3gp"/> | <media loc="http://www.example.com/presentation.3gp"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| <stream media="video" direction="recvonly"> | <stream media="video" direction="recvonly"> | |||
| <region>1</region> | <region>1</region> | |||
| </stream> | </stream> | |||
| </dialogstart> | ||||
| </mscivr> | </mscivr> | |||
| 4.2.2.2.1. <region> | 4.2.2.2.1. <region> | |||
| The <region> element is used to specify the region within a video | The <region> element is used to specify a named area within a | |||
| layout where a video media stream is displayed. | presentation layout where a video media stream is displayed. The MS | |||
| could, for example, play video media into an area of a video layout | ||||
| where the layout and its named regions are specified using the Mixer | ||||
| Control Package ([I-D.ietf-mediactrl-mixer-control-package]). | ||||
| The <region> element has no attributes and its content model | The <region> element has no attributes and its content model | |||
| specifies the name of the region layout. | specifies the name of the region. | |||
| If the region name is invalid, then the MS reports a 416 status code | If the region name is invalid, then the MS reports a 416 status code | |||
| (Section 4.5) in the response to the request element containing the | (Section 4.5) in the response to the request element containing the | |||
| <region> element. | <region> element. | |||
| 4.2.2.2.2. <priority> | 4.2.2.2.2. <priority> | |||
| The <priority> element is used to explicitly specify the priority of | The <priority> element is used to explicitly specify the priority of | |||
| the dialog for presentation in a conference mix. | the dialog for presentation in a conference mix. | |||
| skipping to change at page 30, line 51 ¶ | skipping to change at page 31, line 10 ¶ | |||
| </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 400 (Syntax error) status code and | The response status indicates a 400 (Syntax error) status code and | |||
| dialogid attribute has an empty string value: | the 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="400" dialogid="" | <response status="400" dialogid=" " | |||
| reason="Attribute required: dialogid"/> | reason="Attribute required: dialogid"/> | |||
| </mscivr> | </mscivr> | |||
| 4.2.5. <event> | 4.2.5. <event> | |||
| When a dialog generates a notification event, the MS sends the event | When a dialog generates a notification event, the MS sends the event | |||
| using an <event> element. | using an <event> element. | |||
| The <event> element has the following attributes: | The <event> element has the following attributes: | |||
| skipping to change at page 32, line 11 ¶ | skipping to change at page 32, line 16 ¶ | |||
| 2 indicates the dialog terminated because the connection or | 2 indicates the dialog terminated because the connection or | |||
| conference associated with the dialog has terminated. | conference associated with the dialog has terminated. | |||
| 3 indicates the dialog terminated due to exceeding its maximum | 3 indicates the dialog terminated due to exceeding its maximum | |||
| duration. | duration. | |||
| 4 indicates the dialog terminated due to an execution error. | 4 indicates the dialog terminated due to an execution error. | |||
| All other valid but undefined values are reserved for future use, | All other valid but undefined values are reserved for future use, | |||
| where a standards-track RFC is required to define new status | where new status codes are assigned using the Standards Action | |||
| codes. The AS MUST treat any status code it does not recognize as | process defined in [RFC5226]. The AS MUST treat any status code | |||
| being equivalent to 4 (dialog execution error). The attribute is | it does not recognize as being equivalent to 4 (dialog execution | |||
| mandatory. | error). The attribute is mandatory. | |||
| reason: a textual description which the MS SHOULD use to provide a | reason: a textual description which the MS SHOULD use to provide a | |||
| reason for the status code; e.g. details about an error. A valid | reason for the status code; e.g. details about an error. A valid | |||
| value is a string (see Section 4.6.6). The attribute is optional. | value is a string (see Section 4.6.6). The attribute is optional. | |||
| There is no default value. | There is no default value. | |||
| The <dialogexit> element has the following sequence of child | The <dialogexit> element has the following sequence of child | |||
| elements: | elements: | |||
| <promptinfo>: report information (Section 4.3.2.1) about the prompt | <promptinfo>: report information (Section 4.3.2.1) about the prompt | |||
| skipping to change at page 32, line 44 ¶ | skipping to change at page 33, line 6 ¶ | |||
| 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 | <params>: reports exit parameters (Section 4.2.6) for a dialog | |||
| language defined outside this specification. The element is | language defined outside this specification. The element is | |||
| optional. | 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> | |||
| </mscivr> | </mscivr> | |||
| 4.2.5.2. <dtmfnotify> | 4.2.5.2. <dtmfnotify> | |||
| The <dtmfnotify> element provide a notification of DTMF input | The <dtmfnotify> element provide a notification of DTMF input | |||
| received during the active dialog as requested by a <dtmfsub> | received during the active dialog as requested by a <dtmfsub> | |||
| skipping to change at page 33, line 35 ¶ | skipping to change at page 33, line 43 ¶ | |||
| press occurred according to the matchmode. A valid value is a | press occurred according to the matchmode. A valid value is a | |||
| dateTime expression (Section 4.6.12). The attribute is mandatory. | dateTime expression (Section 4.6.12). The attribute is mandatory. | |||
| For example, a notification of DTMF input 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="3123" | <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): | |||
| skipping to change at page 34, line 30 ¶ | skipping to change at page 34, line 35 ¶ | |||
| 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 type indicating how the inline value of the | type: specifies a type indicating how the inline value of the | |||
| parameter is to be interpreted. A valid value is a MIME media | parameter is to be interpreted. A valid value is a MIME media | |||
| type (see Section 4.6.10). The attribute is optional. The | type (see Section 4.6.10). The attribute is optional. The | |||
| default value is "text/plain". | default value is "text/plain". | |||
| The <param> element content model (text and/or XML) is the value of | encoding: specifies a content-transfer-encoding schema applied to | |||
| the parameter. Values in XML format MUST use a namespace other than | the inline value of the parameter on top of the MIME media type | |||
| the one used in this specification. Note that a text value which | specified with the type attribute. A valid value is a content- | |||
| contains XML characters (e.g. "<") needs to be escaped following | transfer-encoding schema as defined by the "mechanism" token in | |||
| standard XML conventions. | Section 6.1 of [RFC2045]. The attribute is optional. There is no | |||
| default value. | ||||
| 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 language 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" type="audio/x-wav"> | <param name="recording1" type="audio/x-wav" encoding="base64"> | |||
| <![CDATA[ | ||||
| <![CDATA[ | ||||
| R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV | 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 language defined as part of | This section describes the IVR dialog language defined as part of | |||
| this specification. The MS MUST support this dialog language. | this specification. The MS MUST support this dialog language. | |||
| skipping to change at page 40, line 40 ¶ | skipping to change at page 40, line 35 ¶ | |||
| its execution status to the dialog container (see Section 4.3) | its execution status to the dialog container (see Section 4.3) | |||
| with a <promptinfo> (see Section 4.3.2.1) where the termmode | with a <promptinfo> (see Section 4.3.2.1) where the termmode | |||
| attribute is set to completed and any additional information is | attribute is set to completed and any additional information is | |||
| set. | set. | |||
| 4.3.1.1.1. <variable> | 4.3.1.1.1. <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 prompt variable type (e.g. 2008-02-25 is rendered as the date | |||
| defined attributes. The precise mechanism for generating variable | 25th February 2008). The precise mechanism for generating variable | |||
| announcements (including the location of associated media resources) | announcements (including the location of associated media resources) | |||
| is implementation specific. | is implementation specific. | |||
| A <variable> element has the following attributes: | A <variable> element has the following attributes: | |||
| value: specifies the string to be rendered. A valid value is a | type: specifies the type of prompt variable to render. This | |||
| string (see Section 4.6.6). The attribute is mandatory. | specification defines three values - date (Section 4.3.1.1.1.1), | |||
| time (Section 4.3.1.1.1.2) and digits (Section 4.3.1.1.1.3). All | ||||
| other valid but undefined values are reserved for future use, | ||||
| where new values are assigned as described in Section 8.5. A | ||||
| valid value is a string (see Section 4.6.6). The attribute is | ||||
| mandatory. | ||||
| type: specifies the type to use for rendering. A valid value is a | value: specifies a string to be rendered according to the prompt | |||
| string (see Section 4.6.6). The attribute is mandatory. | variable type. A valid value is a string (see Section 4.6.6). | |||
| The attribute is mandatory. | ||||
| format: specifies format information to use in conjunction with the | format: specifies format information which the prompt variable type | |||
| type for the rendering. A valid value is a string (see | uses to render the value attribute. A valid value is a string | |||
| Section 4.6.6). The attribute is optional. There is no default | (see Section 4.6.6). The attribute is optional. There is no | |||
| value. | default value. | |||
| gender: specifies the gender to use when rendering the variable. | gender: specifies the gender which the prompt variable type uses to | |||
| Valid values are "male" or "female". The attribute is optional. | render the value attribute. Valid values are "male" or "female". | |||
| There is no default value. | The attribute is optional. There is no default value. | |||
| xml:lang: specifies the language to use when rendering the variable. | xml:lang: specifies the language which the prompt variable type uses | |||
| A valid value is a language identifier (see Section 4.6.11). The | to render the value attribute. A valid value is a language | |||
| attribute is optional. There is no default value. | identifier (see Section 4.6.11). The attribute is optional. | |||
| There is no default value. | ||||
| The <variable> element has no children. | The <variable> element has no children. | |||
| This package is agnostic to which <variable> values, types and | ||||
| formats are supported by an implementation. If a <variable> element | ||||
| configuration specified in a request is not supported by the MS, the | ||||
| MS sends a <response> with a 425 status code (Section 4.5). | ||||
| For example, the MS could support <variable> type/format combinations | ||||
| such as: | ||||
| type=date Supported formats: "mdy" (month day year), "ymd" (year | ||||
| month day), "dym" (day month year), "dm" (day month). The value | ||||
| attribute has the format YYYY-MM-DD (4 digit year, 2 digit month, | ||||
| 2 digit day). | ||||
| type=time Supported formats: "t12" (12 hour format with am/pm), | ||||
| "t24" (24 hour format). The value attribute has the format HH:MM | ||||
| (2 digit hours, 2 digit minutes). | ||||
| type=digits Supported formats: "gen" (general digit string), "crn" | ||||
| (cardinal), "ord" (ordinal). The value attribute has the format | ||||
| of "D+" (one or more digits). | ||||
| This specification is agnostic to the type and codec of media | This specification is agnostic to the type and codec of media | |||
| resources into which variable are rendered as well as the rendering | resources into which variable are rendered as well as the rendering | |||
| mechanism itself. For example, an MS implementation supporting audio | mechanism itself. For example, an MS implementation supporting audio | |||
| rendering could map the <variable> into one or more audio media | rendering could map the <variable> into one or more audio media | |||
| resources. | resources. | |||
| Depending on the specific implementation of the <variable> rendering | This package is agnostic to which <variable> types are supported by | |||
| on the MS, execution of this element can be seen as conversion of a | an implementation. If a <variable> element configuration specified | |||
| <variable> into a list of <media> elements. For example, | in a request is not supported by the MS, the MS sends a <response> | |||
| <variable value="2008-02-25" type="date" format="dmy" | with a 425 status code (Section 4.5). | |||
| 4.3.1.1.1.1. Date type | ||||
| The date variable type provides a mechanism for dynamically rendering | ||||
| a date prompt. | ||||
| The <variable> type attribute MUST have the value "date". | ||||
| The <variable> format attribute MUST be one of the following values | ||||
| and comply with its rendering of the value attribute: | ||||
| mdy indicating that the <variable> value attribute is to be rendered | ||||
| as sequence composed of month, then day, then year. | ||||
| ymd indicating that the <variable> value attribute is to be rendered | ||||
| as sequence composed of year, then month, then day. | ||||
| dym indicating that the <variable> value attribute is to be rendered | ||||
| as sequence composed of day, then year, then month. | ||||
| dm indicating that the <variable> value attribute is to be rendered | ||||
| as sequence composed of day then month. | ||||
| The <variable> value attribute MUST comply with a lexical | ||||
| representation of date where | ||||
| yyyy '-' mm '-' dd | ||||
| as defined in Section 3.2.9 of [XMLSchema:Part2]. | ||||
| For example, | ||||
| <variable type="date" format="dmy" value="2010-11-25" | ||||
| xml:lang="en" gender="male"/> | xml:lang="en" gender="male"/> | |||
| could be transformed into audio saying "twenty-fifth of February two | describe a variable date prompt where the date can be rendered in | |||
| thousand and eight" using a list of <media> resources: | audio as "twenty-fifth of November two thousand and ten" using a list | |||
| of <media> resources: | ||||
| <media loc="nfs://voicebase/en/male/25th.wav"/> | <media loc="nfs://voicebase/en/male/25th.wav"/> | |||
| <media loc="nfs://voicebase/en/male/of.wav"/> | <media loc="nfs://voicebase/en/male/of.wav"/> | |||
| <media loc="nfs://voicebase/en/male/february.wav"/> | <media loc="nfs://voicebase/en/male/november.wav"/> | |||
| <media loc="nfs://voicebase/en/male/2000.wav"/> | <media loc="nfs://voicebase/en/male/2000.wav"/> | |||
| <media loc="nfs://voicebase/en/male/and.wav"/> | <media loc="nfs://voicebase/en/male/and.wav"/> | |||
| <media loc="nfs://voicebase/en/male/8.wav"/> | <media loc="nfs://voicebase/en/male/10.wav"/> | |||
| 4.3.1.1.1.2. Time type | ||||
| The time variable type provides a mechanism for dynamically rendering | ||||
| a time prompt. | ||||
| The <variable> type attribute MUST have the value "time". | ||||
| The <variable> format attribute MUST be one of the following values | ||||
| and comply with its rendering of the value attribute: | ||||
| t12 indicating that the <variable> value attribute is to be rendered | ||||
| as a time in traditional 12 hour format using am or pm (for | ||||
| example, "twenty five minutes past 2 pm" for "14:25"). | ||||
| t24 indicating that the <variable> value attribute is to be rendered | ||||
| as a time in 24 hour format (for example, "fourteen twenty five" | ||||
| for "14:25"). | ||||
| The <variable> value attribute MUST comply with a lexical | ||||
| representation of time where | ||||
| hh ':' mm ( ':' ss )? | ||||
| as defined in Section 3.2.8 of [XMLSchema:Part2]. | ||||
| 4.3.1.1.1.3. Digits type | ||||
| The digits variable type provides a mechanism for dynamically | ||||
| rendering a digit sequence. | ||||
| The <variable> type attribute MUST have the value "digits". | ||||
| The <variable> format attribute MUST be one of the following values | ||||
| and comply with its rendering of the value attribute: | ||||
| gen indicating that the <variable> value attribute is to be rendered | ||||
| as a general digit string (for example, "one two three" for | ||||
| "123"). | ||||
| crn indicating that the <variable> value attribute is to be rendered | ||||
| as a cardinal number (for example, "one hundred and twenty three" | ||||
| for "123"). | ||||
| ord indicating that the <variable> value attribute is to be rendered | ||||
| as an ordinal number (for example, "one hundred and twenty third" | ||||
| for "123"). | ||||
| The <variable> value attribute MUST comply with the lexical | ||||
| representation | ||||
| d+ | ||||
| i.e. one or more digits. | ||||
| 4.3.1.1.2. <dtmf> | 4.3.1.1.2. <dtmf> | |||
| The <dtmf> element specifies a sequence of DTMF tones for output. | The <dtmf> element specifies a sequence of DTMF tones for output. | |||
| DTMF tones could be generated using <media> resources where the | DTMF tones could be generated using <media> resources where the | |||
| output is transported as RTP audio packets. However, <media> | output is transported as RTP audio packets. However, <media> | |||
| resources are not sufficient for cases where DTMF tones are to be | resources are not sufficient for cases where DTMF tones are to be | |||
| transported as DTMF RTP ([RFC4733]) or in event packages. | transported as DTMF RTP ([RFC4733]) or in event packages. | |||
| skipping to change at page 43, line 46 ¶ | skipping to change at page 45, line 21 ¶ | |||
| The MS is responsible for assigning the appropriate media | The MS is responsible for assigning the appropriate media | |||
| stream(s) when more than one is available. The element is | stream(s) when more than one is available. The element is | |||
| optional. | optional. | |||
| <variable>: specifies a variable media announcement (see | <variable>: specifies a variable media announcement (see | |||
| Section 4.3.1.1.1) to play. The element is optional. | Section 4.3.1.1.1) to play. The element is optional. | |||
| <dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to | <dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to | |||
| play. The element is optional. | play. The element is optional. | |||
| If a <par> element configuration is not supported, the MS sends a | It is RECOMMENDED that a <par> element contains only one <media> | |||
| <response> with a 435 status code (Section 4.5). | element of the same media type (i.e. same type-name as defined in | |||
| Section 4.6.10). If a <par> element configuration is not supported, | ||||
| the MS sends a <response> with a 435 status code (Section 4.5). | ||||
| Runtime <control>s (Section 4.3.1.2) apply to each child element | Runtime <control>s (Section 4.3.1.2) apply to each child element | |||
| playing parallel. For example, pause and resume controls cause all | playing parallel. For example, pause and resume controls cause all | |||
| child elements to be paused and resumed respectively. | child elements to be paused and resumed respectively. | |||
| If the <par> element is stopped by the prompt container (e.g. bargein | If the <par> element is stopped by the prompt container (e.g. bargein | |||
| or dialog termination), then playback of all child elements is | or dialog termination), then playback of all child elements is | |||
| stopped. The playback duration (Section 4.3.2.1) reported for the | stopped. The playback duration (Section 4.3.2.1) reported for the | |||
| <par> element is the duration of parallel playback, not the | <par> element is the duration of parallel playback, not the | |||
| cumulative duration of each child element played in parallel. | cumulative duration of each child element played in parallel. | |||
| skipping to change at page 44, line 21 ¶ | skipping to change at page 45, line 46 ¶ | |||
| For example, a request to playback audio and video media in parallel: | For example, a request to playback audio and video media in parallel: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart connectionid="c1"> | <dialogstart connectionid="c1"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <par> | <par> | |||
| <media type="audio/x-wav" | <media type="audio/x-wav" | |||
| loc="http://www.example.com/media/comments.wav"/> | loc="http://www.example.com/media/comments.wav"/> | |||
| <media type="video/3gpp;codecs='s263'" | <media type="video/3gpp;codecs='s263'" | |||
| loc="http://www.example.com/media/camera.3gp"/ | loc="http://www.example.com/media/camera.3gp"/> | |||
| </par> | </par> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| When the <prompt> element is executed, it begins playback of its | When the <prompt> element is executed, it begins playback of its | |||
| child element in document order sequence. In this case, there is | child element in document order sequence. In this case, there is | |||
| only one child element, a <par> element itself containing audio and | only one child element, a <par> element itself containing audio and | |||
| video <media> child element. Consequently playback of both audio and | video <media> child element. Consequently playback of both audio and | |||
| video media resources is initiated at the same time. Since the | video media resources is initiated at the same time. Since the | |||
| endsync attribute is not specified, the default value "last" applies. | endsync attribute is not specified, the default value "last" applies. | |||
| The <par> element playback is complete when the media resource with | The <par> element playback is complete when the media resource with | |||
| the longest duration is complete. | the longest duration is complete. | |||
| 4.3.1.1.3.1. <seq> | 4.3.1.1.3.1. <seq> | |||
| skipping to change at page 45, line 38 ¶ | skipping to change at page 47, line 21 ¶ | |||
| <media type="audio/x-wav" | <media type="audio/x-wav" | |||
| loc="http://www.example.com/media/date.wav"/> | loc="http://www.example.com/media/date.wav"/> | |||
| <media type="audio/x-wav" | <media type="audio/x-wav" | |||
| loc="http://www.example.com/media/intro.wav"/> | loc="http://www.example.com/media/intro.wav"/> | |||
| <media type="audio/x-wav" | <media type="audio/x-wav" | |||
| loc="http://www.example.com/media/main.wav"/> | loc="http://www.example.com/media/main.wav"/> | |||
| <media type="audio/x-wav" | <media type="audio/x-wav" | |||
| loc="http://www.example.com/media/end.wav"/> | loc="http://www.example.com/media/end.wav"/> | |||
| </seq> | </seq> | |||
| <media type="video/3gpp;codecs='s263'" | <media type="video/3gpp;codecs='s263'" | |||
| loc="rtsp://www.example.com/media/camera.3gp"/ | loc="rtsp://www.example.com/media/camera.3gp"/> | |||
| </par> | </par> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| When the <prompt> element is executed, it begins playback of the | When the <prompt> element is executed, it begins playback of the | |||
| <par> element containing a <seq> element and a video <media> element. | <par> element containing a <seq> element and a video <media> element. | |||
| The <seq> element itself contains a sequence of audio <media> | The <seq> element itself contains a sequence of audio <media> | |||
| elements. Consequently playback of the video media resource is | elements. Consequently playback of the video media resource is | |||
| skipping to change at page 51, line 34 ¶ | skipping to change at page 53, line 15 ¶ | |||
| 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) including authentication | valid value is a URI (see Section 4.6.9). The MS MUST support | |||
| information if defined by the URI scheme (e.g. basic access | both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY | |||
| authentication in HTTP). If the URI scheme is unsupported, the MS | support other schemes. If the URI scheme is unsupported, the MS | |||
| sends a <response> with a 420 status code (Section 4.5). If the | sends a <response> with a 420 status code (Section 4.5). If the | |||
| resource cannot be retrieved within the timeout interval, the MS | resource cannot be retrieved within the timeout interval, the MS | |||
| sends a <response> with a 409 status code. If the grammar format | sends a <response> with a 409 status code. If the grammar format | |||
| is not supported, the MS sends a <response> with a 424 status | is not supported, the MS sends a <response> with a 424 status | |||
| code. The attribute is optional. There is no default value. | 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. A valid value is a MIME media | identified by the src attribute. A valid value is a MIME media | |||
| type (see Section 4.6.10). If the URI scheme used in the src | type (see Section 4.6.10). If the URI scheme used in the src | |||
| attribute defines a mechanism for establishing the authoratitive | attribute defines a mechanism for establishing the authoratitive | |||
| skipping to change at page 55, line 5 ¶ | skipping to change at page 56, line 5 ¶ | |||
| itself. This parameter is ignored if the vadfinal attribute has | itself. This parameter is ignored if the vadfinal attribute has | |||
| the value false. A valid value is a Time Designation (see | the value false. A valid value is a Time Designation (see | |||
| Section 4.6.7). The attribute is optional. The default value is | Section 4.6.7). The attribute is optional. The default value is | |||
| 5s. | 5s. | |||
| append: indicates whether recorded data is appended or not to a | append: indicates whether recorded data is appended or not to a | |||
| recording location if a resource already exists. A valid value is | recording location if a resource already exists. A valid value is | |||
| a boolean (see Section 4.6.1). A value of true indicates that | a boolean (see Section 4.6.1). A value of true indicates that | |||
| recorded data is appended to the existing resource at a recording | recorded data is appended to the existing resource at a recording | |||
| location. A value of false indicates that recorded data is to | location. A value of false indicates that recorded data is to | |||
| overwrite the existing resource. The attribute is optional. The | overwrite the existing resource. The mapping of the append | |||
| default value is false. | operation onto the upload protocol scheme is implementation- | |||
| specific. The attribute is optional. The default value is false. | ||||
| If either the vadinitial or vadfinal attribute is set to true and the | If either the vadinitial or vadfinal attribute is set to true and the | |||
| MS does not support VAD, the MS sends a <response> with a 434 status | MS does not support VAD, the MS sends a <response> with a 434 status | |||
| code (Section 4.5). | code (Section 4.5). | |||
| The <record> element has the following child element (0 or more | The <record> element has the following child element (0 or more | |||
| occurrences): | occurrences): | |||
| <media>: specifies the location and type of the media resource for | <media>: specifies the location and type of the media resource for | |||
| uploading recorded data (see Section 4.3.1.5). The MS uploads | uploading recorded data (see Section 4.3.1.5). The MS MUST | |||
| recorded data to this resource as soon as possible after recording | support both HTTP ([RFC2616]) and HTTPS ([RFC2818]) schemes for | |||
| is complete. The element is optional. | uploading recorded data and the MS MAY support other schemes. The | |||
| MS uploads recorded data to this resource as soon as possible | ||||
| after recording is complete. The element is optional. | ||||
| If multiple <media> elements are specified, then media input is to be | If multiple <media> elements are specified, then media input is to be | |||
| recorded in parallel to multiple resource locations. | recorded in parallel to multiple resource locations. | |||
| If no <media> child element is specified, the MS MUST provide a | If no <media> child element is specified, the MS MUST record media | |||
| recording location where the recording format is implementation- | input but the recording location and the recording format are | |||
| specific. The recording location and format are reported in | implementation-specific (e.g. the MS records audio in the WAV format | |||
| <recordinfo> (Section 4.3.2.4) when the dialog terminates. The | to a local disk accessible by HTTP). The recording location and | |||
| recording MUST be available from this location until the connection | format are reported in <recordinfo> (Section 4.3.2.4) when the dialog | |||
| or conference associated with the dialog on the MS terminates. | terminates. The recording MUST be available from this location until | |||
| the connection or conference associated with the dialog on the MS | ||||
| terminates. | ||||
| If the MS does not support the configuration required for recording | If the MS does not support the configuration required for recording | |||
| from the input media streams to one or more <media> elements and a | from the input media streams to one or more <media> elements and a | |||
| more specific error code is not defined for its child elements, the | more specific error code is not defined for its child elements, the | |||
| MS sends a <response> with a 423 status code (Section 4.5). | MS sends a <response> with a 423 status code (Section 4.5). | |||
| Note that an MS MAY support uploading recorded data to recording | Note that an MS MAY support uploading recorded data to recording | |||
| locations at the same time the recording operation takes place. Such | locations at the same time the recording operation takes place. Such | |||
| implementations need to be aware of the requirements of certain | implementations need to be aware of the requirements of certain | |||
| recording formats (e.g. WAV) for metadata at the beginning of the | recording formats (e.g. WAV) for metadata at the beginning of the | |||
| skipping to change at page 57, line 34 ¶ | skipping to change at page 58, line 39 ¶ | |||
| 4.3.1.5. <media> | 4.3.1.5. <media> | |||
| The <media> element specifies a media resource to playback from (see | The <media> element specifies a media resource to playback from (see | |||
| Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback | Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback | |||
| case, the resource is retrieved and in the recording case, recording | case, the resource is retrieved and in the recording case, recording | |||
| data is uploaded to the resource location. | data is uploaded to the resource location. | |||
| A <media> element has the following attributes: | A <media> element has the following attributes: | |||
| loc: specifies the location of the media resource. A valid value is | loc: specifies the location of the media resource. A valid value is | |||
| a URI (see Section 4.6.9) including authentication information if | a URI (see Section 4.6.9). The MS MUST support both HTTP | |||
| defined by the URI scheme (e.g. basic access authentication in | ([RFC2616]) and HTTPS ([RFC2818]) schemes and the MS MAY support | |||
| HTTP). If the URI scheme is not supported by the MS, the MS sends | other schemes. If the URI scheme is not supported by the MS, the | |||
| a <response> with a 420 status code (Section 4.5). If the | MS sends a <response> with a 420 status code (Section 4.5). If | |||
| resource is to be retrieved but the MS cannot retrieve it within | the resource is to be retrieved but the MS cannot retrieve it | |||
| the timeout interval, the MS sends a <response> with a 409 status | within the timeout interval, the MS sends a <response> with a 409 | |||
| code. If the format of the media resource is not supported, the | status code. If the format of the media resource is not | |||
| MS sends a <response> with a 429 status code. The attribute is | supported, the MS sends a <response> with a 429 status code. The | |||
| mandatory. | attribute is mandatory. | |||
| type: specifies the type of the media resource indicated in the loc | type: specifies the type of the media resource indicated in the loc | |||
| attribute. A valid value is a MIME media type (see | attribute. A valid value is a MIME media type (see | |||
| Section 4.6.10) which, depending on its definition, can include | Section 4.6.10) which, depending on its definition, can include | |||
| additional parameters (e.g. [RFC4281]). If the URI scheme used | additional parameters (e.g. [RFC4281]). If the URI scheme used | |||
| in the loc attribute defines a mechanism for establishing the | in the loc attribute defines a mechanism for establishing the | |||
| authoratitive MIME media type of the media resource, the value | authoratitive MIME media type of the media resource, the value | |||
| returned by that mechanism takes precedence over this attribute. | returned by that mechanism takes precedence over this attribute. | |||
| If additional media parameters are specified, the MS MUST use them | If additional media parameters are specified, the MS MUST use them | |||
| to determine media processing. For example, [RFC4281] defines a | to determine media processing. For example, [RFC4281] defines a | |||
| skipping to change at page 63, line 44 ¶ | skipping to change at page 65, line 4 ¶ | |||
| <prompttypes> | <prompttypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </prompttypes> | </prompttypes> | |||
| <variables> | <variables> | |||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | <variabletype type="date" desc="value formatted as YYYYMMDD"> | |||
| <format desc="month year day">mdy</format> | <format desc="month year day">mdy</format> | |||
| <format desc="year month day">ymd</format> | <format desc="year month day">ymd</format> | |||
| <format desc="day month year">dmy</format> | <format desc="day month year">dmy</format> | |||
| <format desc="day month">dm</format> | <format desc="day month">dm</format> | |||
| </variabletype> | </variabletype> | |||
| </variables> | </variables> | |||
| <maxpreparedduration>600s</maxpreparedduration> | <maxpreparedduration>600s</maxpreparedduration> | |||
| <maxrecordduration>1800s</maxrecordduration> | <maxrecordduration>1800s</maxrecordduration> | |||
| <codecs> | <codecs> | |||
| <codec> | <codec name="video"> | |||
| <subtype>H.263</subtype> | <subtype>H263</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="video"> | |||
| <subtype>H.264</subtype> | <subtype>H264</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </capabilities> | </capabilities> | |||
| <dialogs> | <dialogs> | |||
| <dialogaudit dialogid="4532" state="preparing"/> | <dialogaudit dialogid="4532" state="preparing"/> | |||
| <dialogaudit dialogid="4599" state="prepared"/> | <dialogaudit dialogid="4599" state="prepared"/> | |||
| <dialogaudit dialogid="1234" state="started" conferenceid="conf1"> | <dialogaudit dialogid="1234" state="started" conferenceid="conf1"> | |||
| <codecs> | <codecs> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </dialogaudit> | </dialogaudit> | |||
| </dialogs> | </dialogs> | |||
| </auditresponse> | </auditresponse> | |||
| </mscivr> | </mscivr> | |||
| 4.4.2.1. <codecs> | 4.4.2.1. <codecs> | |||
| skipping to change at page 65, line 6 ¶ | skipping to change at page 66, line 11 ¶ | |||
| The <codecs> element has the following sequence of child elements (0 | The <codecs> element has the following sequence of child elements (0 | |||
| or more occurrences): | 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 name="audio"> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <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 | |||
| modeled on the <codec> element in the XCON conference information | modeled on the <codec> element in the XCON conference information | |||
| data model ([I-D.ietf-xcon-common-data-model]) but allows addition | data model ([I-D.ietf-xcon-common-data-model]) but allows addition | |||
| information (e.g. rate, speed, etc) to be specified. | information (e.g. rate, speed, etc) to be specified. | |||
| The <codec> element has no attributes. | The <codec> element has the following attributes: | |||
| name: indicates the type name of the codec's media format as defined | ||||
| in IANA ([IANA]). A valid value is a "type-name" as defined in | ||||
| Section 4.2 of [RFC4288]. The attribute is manadatory. | ||||
| The <codec> element has the following sequence of child elements: | The <codec> element has the following sequence of child elements: | |||
| <subtype>: element describing the codec's name. The possible values | <subtype>: element whose content model describes the subtype of the | |||
| of this element are the values of the 'subtype' column of the RTP | codec's media format as defined in IANA ([IANA]). A valid value | |||
| Payload Format media types per [RFC4855] defined in IANA ([IANA]). | is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The | |||
| The element is mandatory. | element is mandatory. | |||
| <params>: element (Section 4.2.6) describing additional information | <params>: element (Section 4.2.6) describing additional information | |||
| about the codec. This package is agnostic to the names and values | about the codec. This package is agnostic to the names and values | |||
| of the codec parameters supported by an implementation. The | of the codec parameters supported by an implementation. The | |||
| element is optional. | element is optional. | |||
| For example, a fragment with a <codec> element describing the H.263 | For example, a fragment with a <codec> element describing the H263 | |||
| codec: | video codec: | |||
| <codec> | <codec name="video"> | |||
| <subtype>H.263</subtype> | <subtype>H263</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 | |||
| skipping to change at page 67, line 22 ¶ | skipping to change at page 68, line 22 ¶ | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </recordtypes> | </recordtypes> | |||
| <prompttypes> | <prompttypes> | |||
| <mimetype>audio/x-wav</mimetype> | <mimetype>audio/x-wav</mimetype> | |||
| <mimetype>video/3gpp</mimetype> | <mimetype>video/3gpp</mimetype> | |||
| </prompttypes> | </prompttypes> | |||
| <variables/> | <variables/> | |||
| <maxpreparedduration>30s</maxpreparedduration> | <maxpreparedduration>30s</maxpreparedduration> | |||
| <maxrecordduration>60s</maxrecordduration> | <maxrecordduration>60s</maxrecordduration> | |||
| <codecs> | <codecs> | |||
| <codec> | <codec name="video"> | |||
| <subtype>H.263</subtype> | <subtype>H263</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="video"> | |||
| <subtype>H.264</subtype> | <subtype>H264</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMA</subtype> | <subtype>PCMA</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </capabilities> | </capabilities> | |||
| 4.4.2.2.1. <dialoglanguages> | 4.4.2.2.1. <dialoglanguages> | |||
| The <dialoglanguages> element provides information about additional | The <dialoglanguages> element provides information about additional | |||
| dialog languages supported by the package. Dialog languages are | dialog languages supported by the package. Dialog languages are | |||
| identified by their associated MIME media types. The MS MUST NOT | identified by their associated MIME media types. The MS MUST NOT | |||
| skipping to change at page 69, line 8 ¶ | skipping to change at page 70, line 8 ¶ | |||
| The <prompttypes> element has the following sequence of child | The <prompttypes> element has the following sequence of child | |||
| elements (0 or more occurrences): | elements (0 or more occurrences): | |||
| <mimetype>: element whose content model describes a mime type | <mimetype>: element whose content model describes a mime type | |||
| (Section 4.6.10). The element is optional. | (Section 4.6.10). The element is optional. | |||
| 4.4.2.2.5. <variables> | 4.4.2.2.5. <variables> | |||
| The <variables> element provides information about types and formats | The <variables> element provides information about types and formats | |||
| for the <variable> element (Section 4.4.2.2.5) supported by the | for the <variable> element (Section 4.3.1.1.1) supported by the | |||
| package. | package. | |||
| The <variables> element has no attributes. | The <variables> element has no attributes. | |||
| The <variables> element has the following sequence of child elements | The <variables> element has the following sequence of child elements | |||
| (0 or more occurrences): | (0 or more occurrences): | |||
| <variabletype>: element describing the formats support for a given | <variabletype>: element describing the formats support for a given | |||
| type (Section 4.4.2.2.5.1). The element is optional. | type (Section 4.4.2.2.5.1). The element is optional. | |||
| For example, a fragment describing support for <variable> with a | For example, a fragment describing support for <variable> with a | |||
| "date" type in some common formats. | "date" type according to the formats specified in | |||
| Section 4.3.1.1.1.1. | ||||
| <variables> | <variables> | |||
| <variabletype type="date" desc="value formatted as YYYYMMDD"> | <variabletype type="date" desc="value formatted as YYYYMMDD"> | |||
| <format desc="month year day">mdy</format> | <format desc="month year day">mdy</format> | |||
| <format desc="year month day">ymd</format> | <format desc="year month day">ymd</format> | |||
| <format desc="day month year">dmy</format> | <format desc="day month year">dmy</format> | |||
| <format desc="day month">dm</format> | <format desc="day month">dm</format> | |||
| </variabletype> | </variabletype> | |||
| </variables> | </variables> | |||
| 4.4.2.2.5.1. <variabletype> | 4.4.2.2.5.1. <variabletype> | |||
| The <variabletype> element describes the formats supported for | The <variabletype> element describes the formats supported for | |||
| <variable> supported type. | <variable> supported type. | |||
| The <variabletype> element has the following attributes: | The <variabletype> element has the following attributes: | |||
| type: indicates a supported value associated with the type attribute | type: indicates a supported value associated with the type attribute | |||
| of <variable> element.The attribute is manadatory. | of <variable> element. The attribute is manadatory. | |||
| desc: a string providing some textual description of the type and | desc: a string providing some textual description of the type and | |||
| format. The attribute is optional. | format. The attribute is optional. | |||
| The <variabletype> element has the following sequence of child | The <variabletype> element has the following sequence of child | |||
| elements (0 or more occurrences): | elements (0 or more occurrences): | |||
| <format>: element with a desc attribute (optional description) and a | <format>: element with a desc attribute (optional description) and a | |||
| content model describing a supported format in the <variable> | content model describing a supported format in the <variable> | |||
| format attribute. The element is optional. | format attribute. The element is optional. | |||
| skipping to change at page 71, line 21 ¶ | skipping to change at page 72, line 21 ¶ | |||
| dialog (see Section 16.1 of | dialog (see Section 16.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. | |||
| The <dialogaudit> element has the following child element: | The <dialogaudit> element has the following child element: | |||
| <codecs> element describing codecs used in the dialog. See | <codecs> element describing codecs used in the dialog. See | |||
| Section 4.4.2.1. The element is optional. | Section 4.4.2.1. The element is optional. | |||
| For example, a fragment describing a started dialog which is using | For example, a fragment describing a started dialog which is using | |||
| PCMU and telephony-event codecs: | PCMU and telephony-event audio codecs: | |||
| <dialogaudit dialogid="1234" state="started" conferenceid="conf1"> | <dialogaudit dialogid="1234" state="started" conferenceid="conf1"> | |||
| <codecs> | <codecs> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>PCMU</subtype> | <subtype>PCMU</subtype> | |||
| </codec> | </codec> | |||
| <codec> | <codec name="audio"> | |||
| <subtype>telephone-event</subtype> | <subtype>telephone-event</subtype> | |||
| </codec> | </codec> | |||
| </codecs> | </codecs> | |||
| </dialogaudit> | </dialogaudit> | |||
| 4.5. Response Status Codes | 4.5. Response Status Codes | |||
| This section describes the response codes in Table 1 for the status | This section describes the response codes in Table 1 for the status | |||
| attribute of dialog management <response> (Section 4.2.4) and audit | attribute of dialog management <response> (Section 4.2.4) and audit | |||
| <auditresponse> (Section 4.4.2) responses. The MS MUST support the | <auditresponse> (Section 4.4.2) responses. The MS MUST support the | |||
| status response codes defined here. All other valid but undefined | status response codes defined here. All other valid but undefined | |||
| values are reserved for future use, where a standards-track RFC is | values are reserved for future use, where new status codes are | |||
| required to define new status codes. The AS MUST treat any responses | assigned using the Standards Action process defined in [RFC5226]. | |||
| it does not recognize as being equivalent to the x00 response code | The AS MUST treat any responses it does not recognize as being | |||
| for all classes. For example, if an AS receives an unrecognized | equivalent to the x00 response code for all classes. For example, if | |||
| response code of 499, it can safely assume that there was something | an AS receives an unrecognized response code of 499, it can safely | |||
| wrong with its request and treat the response as if it had received a | assume that there was something wrong with its request and treat the | |||
| 400 (Syntax error) response code. | response as if it had received a 400 (Syntax error) response code. | |||
| 4xx responses are definite failure responses from a particular MS. | 4xx responses are definite failure responses from a particular MS. | |||
| The reason attribute in the response SHOULD identify the failure in | The reason attribute in the response SHOULD identify the failure in | |||
| more detail, for example, "Mandatory attribute missing: src in media | more detail, for example, "Mandatory attribute missing: src in media | |||
| element" for a 400 (Syntax error) response code. | element" for a 400 (Syntax error) response code. | |||
| The AS SHOULD NOT retry the same request without modification (for | The AS SHOULD NOT retry the same request without modification (for | |||
| example, correcting a syntax error or changing the connectionid to | example, correcting a syntax error or changing the connectionid to | |||
| use one available on the MS). However, the same request to a | use one available on the MS). However, the same request to a | |||
| different MS might be successful; for example, if another MS supports | different MS might be successful; for example, if another MS supports | |||
| skipping to change at page 76, line 21 ¶ | skipping to change at page 77, line 21 ¶ | |||
| | 429 | Unsupported | request contains a | | | | 429 | Unsupported | request contains a | | | |||
| | | playback | <prompt> element | | | | | playback | <prompt> element | | | |||
| | | configuration | (Section 4.3.1.1) | | | | | configuration | (Section 4.3.1.1) | | | |||
| | | | which the MS is | | | | | | which the MS is | | | |||
| | | | unable to play on the | | | | | | unable to play on the | | | |||
| | | | available output | | | | | | available output | | | |||
| | | | media streams | | | | | | media streams | | | |||
| | | | | | | | | | | | | |||
| | 430 | Unsupported | request contains a | | | | 430 | Unsupported | request contains a | | | |||
| | | record | <record> element | | | | | record | <record> element | | | |||
| | | configuration | (Section 4.3.1.1) | | | | | configuration | (Section 4.3.1.4) | | | |||
| | | | which the MS is | | | | | | which the MS is | | | |||
| | | | unable to record with | | | | | | unable to record with | | | |||
| | | | on the available | | | | | | on the available | | | |||
| | | | input media streams | | | | | | input media streams | | | |||
| | | | | | | | | | | | | |||
| | 431 | Unsupported | the request contains | | | | 431 | Unsupported | the request contains | | | |||
| | | foreign | attributes or | | | | | foreign | attributes or | | | |||
| | | namespace | elements from another | | | | | namespace | elements from another | | | |||
| | | attribute or | namespace which the | | | | | attribute or | namespace which the | | | |||
| | | element | MS does not support | | | | | element | MS does not support | | | |||
| skipping to change at page 77, line 32 ¶ | skipping to change at page 78, line 32 ¶ | |||
| Table 1: status codes | Table 1: status codes | |||
| 4.6. Type Definitions | 4.6. Type Definitions | |||
| This section defines types referenced in attribute and element | This section defines types referenced in attribute and element | |||
| definitions. | definitions. | |||
| 4.6.1. Boolean | 4.6.1. Boolean | |||
| The value space of boolean is the set {true, false}. | The value space of boolean is the set {true, false, 1, 0} as defined | |||
| in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this | ||||
| definition, the concept of false can be lexically represented by the | ||||
| strings "0" and "false" and the concept of true by the strings "1" | ||||
| and "true"; implementations MUST support both styles of lexical | ||||
| representation. | ||||
| 4.6.2. DTMFChar | 4.6.2. DTMFChar | |||
| A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, | A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, | |||
| 7, 8, 9, #, *, A, B, C, D}. | 7, 8, 9, #, *, A, B, C, D}. | |||
| 4.6.3. DTMFString | 4.6.3. DTMFString | |||
| A String composed of one or more DTMFChars. | A String composed of one or more DTMFChars. | |||
| 4.6.4. Non-Negative Integer | 4.6.4. Non-Negative Integer | |||
| The value space of non-negative integer is the infinite set | The value space of non-negative integer is the infinite set | |||
| {0,1,2,...}. | {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2]. | |||
| 4.6.5. Positive Integer | 4.6.5. Positive Integer | |||
| The value space of positive integer is the infinite set {1,2,...}. | The value space of positive integer is the infinite set {1,2,...} as | |||
| defined in Section 3.3.25 of [XMLSchema:Part2]. | ||||
| 4.6.6. String | 4.6.6. String | |||
| A string in the character encoding associated with the XML element. | A string in the character encoding associated with the XML element as | |||
| defined in Section 3.2.1 of [XMLSchema:Part2]. | ||||
| 4.6.7. Time Designation | 4.6.7. Time Designation | |||
| A time designation consists of a non-negative real number followed by | A time designation consists of a non-negative real number followed by | |||
| a time unit identifier. | a time unit identifier. | |||
| The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). | The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). | |||
| Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". | Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". | |||
| skipping to change at page 78, line 30 ¶ | skipping to change at page 79, line 36 ¶ | |||
| 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. MIME Media Type | 4.6.10. MIME Media Type | |||
| A string formated as a IANA MIME media type ([MIME.mediatypes]). | A string formated as an IANA MIME media type ([MIME.mediatypes]). | |||
| The ABNF ([RFC5234]) production for the string is: | ||||
| type-name "/" subtype-name *(";" parameter-name) | ||||
| where "type-name" and "subtype-name" are defined in Section 4.2, and | ||||
| "parameter-name" in Section 4.3, of [RFC4288]. | ||||
| 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 RFC566 ([RFC5646]) and RFC4647 ([RFC4647]) code where | identified by a RFC5646 ([RFC5646]) and RFC4647 ([RFC4647]) code | |||
| the language code is required and a country code or other subtag | where the language code is required and a country code or other | |||
| identifier is optional. | subtag identifier is optional. | |||
| 4.6.12. DateTime | 4.6.12. DateTime | |||
| A string formated according to the XML schema definition of a | A string formated according to the XML schema definition of a | |||
| dateTime type ([XMLSchema:Part2]). | dateTime type ([XMLSchema:Part2]). | |||
| 5. Formal Syntax | 5. Formal Syntax | |||
| This section defines the XML schema for IVR Control Package. | This section defines the XML schema for IVR Control Package. The | |||
| schema is normative. | ||||
| The schema defines datatypes, attributes, dialog management and IVR | The schema defines datatypes, attributes, dialog management and IVR | |||
| dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In | dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In | |||
| most elements the order of child elements is significant. The schema | most elements the order of child elements is significant. The schema | |||
| 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 16.1 of the Control Framework | Section 16.1 of the Control Framework | |||
| skipping to change at page 79, line 31 ¶ | skipping to change at page 81, line 32 ¶ | |||
| <?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 (20100225) | IETF MediaCtrl IVR 1.0 (20101020) | |||
| This is the schema of the IETF MediaCtrl IVR control | This is the schema of the IETF MediaCtrl IVR control | |||
| package. | package. | |||
| The schema namespace is urn:ietf:params:xml:ns:msc-ivr | The schema namespace is urn:ietf:params:xml:ns:msc-ivr | |||
| </xsd:documentation> | </xsd:documentation> | |||
| </xsd:annotation> | </xsd:annotation> | |||
| <!-- | <!-- | |||
| skipping to change at page 83, line 16 ¶ | skipping to change at page 85, line 16 ¶ | |||
| <xsd:complexType name="dialogterminateType"> | <xsd:complexType name="dialogterminateType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="dialogid" | <xsd:attribute name="dialogid" | |||
| type="dialogid.datatype" use="required" /> | type="dialogid.datatype" use="required" /> | |||
| <xsd:attribute name="immediate" | <xsd:attribute name="immediate" | |||
| type="boolean.datatype" default="false" /> | type="xsd:boolean" default="false" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dialogterminate" type="dialogterminateType" /> | <xsd:element name="dialogterminate" type="dialogterminateType" /> | |||
| <!-- response --> | <!-- response --> | |||
| <xsd:complexType name="responseType"> | <xsd:complexType name="responseType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| skipping to change at page 89, line 7 ¶ | skipping to change at page 91, line 7 ¶ | |||
| 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="params" type="paramsType" /> | <xsd:element name="params" type="paramsType" /> | |||
| <!-- param --> | <!-- param --> | |||
| <!-- doesn't extend tCore since its content model is mixed --> | <!-- doesn't extend tCore since its content model is mixed --> | |||
| <xsd:complexType name="paramType" mixed="true"> | <xsd:complexType name="paramType" mixed="true"> | |||
| <xsd:sequence> | <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="name" type="xsd:string" use="required" /> | |||
| <xsd:attribute name="type" type="mime.datatype" default="text/plain"/> | <xsd:attribute name="type" type="mime.datatype" default="text/plain"/> | |||
| <xsd:attribute name="encoding" type="xsd:string"/> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:anyAttribute namespace="##other" processContents="lax" /> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="param" type="paramType" /> | <xsd:element name="param" type="paramType" /> | |||
| <!-- stream --> | <!-- stream --> | |||
| <xsd:complexType name="streamType"> | <xsd:complexType name="streamType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| skipping to change at page 90, line 31 ¶ | skipping to change at page 92, line 28 ¶ | |||
| <xsd:element ref="record" minOccurs="0" | <xsd:element ref="record" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="repeatCount" | <xsd:attribute name="repeatCount" | |||
| type="xsd:nonNegativeInteger" default="1" /> | type="xsd:nonNegativeInteger" default="1" /> | |||
| <xsd:attribute name="repeatDur" | <xsd:attribute name="repeatDur" | |||
| type="timedesignation.datatype" /> | type="timedesignation.datatype" /> | |||
| <xsd:attribute name="repeatUntilComplete" | <xsd:attribute name="repeatUntilComplete" | |||
| type="boolean.datatype" default="false"/> | type="xsd:boolean" default="false"/> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dialog" type="dialogType" /> | <xsd:element name="dialog" type="dialogType" /> | |||
| <!-- prompt --> | <!-- prompt --> | |||
| <xsd:complexType name="promptType"> | <xsd:complexType name="promptType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| skipping to change at page 91, line 4 ¶ | skipping to change at page 92, line 47 ¶ | |||
| <xsd:complexType name="promptType"> | <xsd:complexType name="promptType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |||
| <xsd:element ref="media" /> | <xsd:element ref="media" /> | |||
| <xsd:element ref="variable" /> | <xsd:element ref="variable" /> | |||
| <xsd:element ref="dtmf" /> | <xsd:element ref="dtmf" /> | |||
| <xsd:element ref="par" /> | <xsd:element ref="par" /> | |||
| <xsd:any namespace="##other" | <xsd:any namespace="##other" | |||
| processContents="lax" /> | processContents="lax" /> | |||
| </xsd:choice> | </xsd:choice> | |||
| <xsd:attribute ref="xml:base" /> | <xsd:attribute ref="xml:base" /> | |||
| <xsd:attribute name="bargein" type="boolean.datatype" | <xsd:attribute name="bargein" type="xsd:boolean" | |||
| default="true" /> | default="true" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="prompt" type="promptType" /> | <xsd:element name="prompt" type="promptType" /> | |||
| <!-- media --> | <!-- media --> | |||
| <xsd:complexType name="mediaType"> | <xsd:complexType name="mediaType"> | |||
| skipping to change at page 92, line 48 ¶ | skipping to change at page 94, line 44 ¶ | |||
| <!-- par --> | <!-- par --> | |||
| <xsd:complexType name="parType"> | <xsd:complexType name="parType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> | <xsd:choice minOccurs="1" maxOccurs="unbounded"> | |||
| <xsd:element ref="media" /> | <xsd:element ref="media" /> | |||
| <xsd:element ref="variable" /> | <xsd:element ref="variable" /> | |||
| <xsd:element ref="dtmf" /> | <xsd:element ref="dtmf" /> | |||
| <xsd:element ref="seq" /> | <xsd:element ref="seq" /> | |||
| <xsd:any namespace="##other" | <xsd:any namespace="##other" | |||
| processContents="lax" /> | processContents="lax" /> | |||
| </xsd:choice> | </xsd:choice> | |||
| <xsd:attribute name="endsync" type="endsync.datatype" | ||||
| default="last"/> | ||||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="par" type="parType" /> | <xsd:element name="par" type="parType" /> | |||
| <!-- seq --> | <!-- seq --> | |||
| <xsd:complexType name="seqType"> | <xsd:complexType name="seqType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| skipping to change at page 94, line 35 ¶ | skipping to change at page 96, line 35 ¶ | |||
| <xsd:complexType name="collectType"> | <xsd:complexType name="collectType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="grammar" minOccurs="0" | <xsd:element ref="grammar" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="cleardigitbuffer" | <xsd:attribute name="cleardigitbuffer" | |||
| type="boolean.datatype" default="true" /> | type="xsd:boolean" default="true" /> | |||
| <xsd:attribute name="timeout" | <xsd:attribute name="timeout" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="interdigittimeout" | <xsd:attribute name="interdigittimeout" | |||
| type="timedesignation.datatype" default="2s" /> | type="timedesignation.datatype" default="2s" /> | |||
| <xsd:attribute name="termtimeout" | <xsd:attribute name="termtimeout" | |||
| type="timedesignation.datatype" default="0s" /> | type="timedesignation.datatype" default="0s" /> | |||
| <xsd:attribute name="escapekey" | <xsd:attribute name="escapekey" | |||
| type="dtmfchar.datatype" /> | type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="termchar" | <xsd:attribute name="termchar" | |||
| type="dtmfchar.datatype" default="#" /> | type="dtmfchar.datatype" default="#" /> | |||
| skipping to change at page 95, line 35 ¶ | skipping to change at page 97, line 35 ¶ | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="media" minOccurs="0" | <xsd:element ref="media" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="timeout" | <xsd:attribute name="timeout" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="beep" type="boolean.datatype" | <xsd:attribute name="beep" type="xsd:boolean" | |||
| default="false" /> | default="false" /> | |||
| <xsd:attribute name="vadinitial" | <xsd:attribute name="vadinitial" | |||
| type="boolean.datatype" default="false" /> | type="xsd:boolean" default="false" /> | |||
| <xsd:attribute name="vadfinal" | <xsd:attribute name="vadfinal" | |||
| type="boolean.datatype" default="false" /> | type="xsd:boolean" default="false" /> | |||
| <xsd:attribute name="dtmfterm" | <xsd:attribute name="dtmfterm" | |||
| type="boolean.datatype" default="true" /> | type="xsd:boolean" default="true" /> | |||
| <xsd:attribute name="maxtime" | <xsd:attribute name="maxtime" | |||
| type="timedesignation.datatype" default="15s" /> | type="timedesignation.datatype" default="15s" /> | |||
| <xsd:attribute name="finalsilence" | <xsd:attribute name="finalsilence" | |||
| type="timedesignation.datatype" default="5s" /> | type="timedesignation.datatype" default="5s" /> | |||
| <xsd:attribute name="append" type="boolean.datatype" | <xsd:attribute name="append" type="xsd:boolean" | |||
| default="false" /> | default="false" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="record" type="recordType" /> | <xsd:element name="record" type="recordType" /> | |||
| <!-- | <!-- | |||
| ##################################################### | ##################################################### | |||
| AUDIT TYPES | AUDIT TYPES | |||
| skipping to change at page 96, line 24 ¶ | skipping to change at page 98, line 24 ¶ | |||
| <!-- audit --> | <!-- audit --> | |||
| <xsd:complexType name="auditType"> | <xsd:complexType name="auditType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="capabilities" | <xsd:attribute name="capabilities" | |||
| type="boolean.datatype" default="true" /> | type="xsd:boolean" default="true" /> | |||
| <xsd:attribute name="dialogs" | <xsd:attribute name="dialogs" | |||
| type="boolean.datatype" default="true" /> | type="xsd:boolean" 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:complexType> | |||
| <xsd:element name="audit" type="auditType" /> | <xsd:element name="audit" type="auditType" /> | |||
| <!-- auditresponse --> | <!-- auditresponse --> | |||
| skipping to change at page 97, line 24 ¶ | skipping to change at page 99, line 24 ¶ | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="subtype" minOccurs="1" | <xsd:element ref="subtype" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="params" minOccurs="0" | <xsd:element ref="params" minOccurs="0" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="name" type="xsd:string" | ||||
| use="required" /> | ||||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="codec" type="codecType" /> | <xsd:element name="codec" type="codecType" /> | |||
| <!-- subtype --> | <!-- subtype --> | |||
| <xsd:simpleType name="subtypeType"> | <xsd:simpleType name="subtypeType"> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:restriction base="xsd:string" /> | |||
| skipping to change at page 99, line 4 ¶ | skipping to change at page 101, line 7 ¶ | |||
| <xsd:element name="mimetype" type="mime.datatype" /> | <xsd:element name="mimetype" type="mime.datatype" /> | |||
| <!-- dialoglanguages --> | <!-- dialoglanguages --> | |||
| <xsd:complexType name="dialoglanguagesType"> | <xsd:complexType name="dialoglanguagesType"> | |||
| <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="dialoglanguages" type="dialoglanguagesType" /> | <xsd:element name="dialoglanguages" type="dialoglanguagesType" /> | |||
| <!-- grammartypes --> | <!-- grammartypes --> | |||
| <xsd:complexType name="grammartypesType"> | <xsd:complexType name="grammartypesType"> | |||
| <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="grammartypes" type="grammartypesType" /> | |||
| skipping to change at page 102, line 40 ¶ | skipping to change at page 104, line 43 ¶ | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="1.0" /> | <xsd:enumeration value="1.0" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="mime.datatype"> | <xsd:simpleType name="mime.datatype"> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:restriction base="xsd:string" /> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="dialogid.datatype"> | <xsd:simpleType name="dialogid.datatype"> | |||
| <xsd:restriction base="xsd:string" /> | <xsd:restriction base="xsd:string" /> | |||
| </xsd:simpleType> | </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:simpleType name="gender.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="female" /> | <xsd:enumeration value="female" /> | |||
| <xsd:enumeration value="male" /> | <xsd:enumeration value="male" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="state.datatype"> | <xsd:simpleType name="state.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="preparing" /> | <xsd:enumeration value="preparing" /> | |||
| <xsd:enumeration value="prepared" /> | <xsd:enumeration value="prepared" /> | |||
| <xsd:enumeration value="starting" /> | <xsd:enumeration value="starting" /> | |||
| <xsd:enumeration value="started" /> | <xsd:enumeration value="started" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| skipping to change at page 105, line 4 ¶ | skipping to change at page 106, line 49 ¶ | |||
| <xsd:simpleType name="record_termmode.datatype"> | <xsd:simpleType name="record_termmode.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="noinput" /> | <xsd:enumeration value="noinput" /> | |||
| <xsd:enumeration value="dtmf" /> | <xsd:enumeration value="dtmf" /> | |||
| <xsd:enumeration value="maxtime" /> | <xsd:enumeration value="maxtime" /> | |||
| <xsd:enumeration value="finalsilence" /> | <xsd:enumeration value="finalsilence" /> | |||
| <xsd:enumeration value="stopped" /> | <xsd:enumeration value="stopped" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="matchmode.datatype"> | <xsd:simpleType name="matchmode.datatype"> | |||
| <xsd:restriction base="xsd:NMTOKEN"> | <xsd:restriction base="xsd:NMTOKEN"> | |||
| <xsd:enumeration value="all" /> | <xsd:enumeration value="all" /> | |||
| <xsd:enumeration value="collect" /> | <xsd:enumeration value="collect" /> | |||
| <xsd:enumeration value="control" /> | <xsd:enumeration value="control" /> | |||
| </xsd:restriction> | </xsd:restriction> | |||
| </xsd:simpleType> | </xsd:simpleType> | |||
| <xsd:simpleType name="endsync.datatype"> | ||||
| <xsd:restriction base="xsd:NMTOKEN"> | ||||
| <xsd:enumeration value="first" /> | ||||
| <xsd:enumeration value="last" /> | ||||
| </xsd:restriction> | ||||
| </xsd:simpleType> | ||||
| </xsd:schema> | </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 111, line 48 ¶ | skipping to change at page 113, line 48 ¶ | |||
| </mscivr> | </mscivr> | |||
| If the dialog is successful, then dialogexit <event> contains the | If the dialog is successful, then dialogexit <event> contains the | |||
| dtmf collected in its result parameter: | dtmf collected in its result parameter: | |||
| <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="vxi80"> | <event dialogid="vxi80"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <collectinfo dtmf="12345" termmode="match"/> | <collectinfo dtmf="12345" termmode="match"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| /mscivr> | </mscivr> | |||
| And finally in this example, one of the input parameters is invalid: | And finally in this example, one of the input parameters is invalid: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns"> | |||
| <dialog repeatCount="two"> | <dialog repeatCount="two"> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <collect cleardigitbuffer="true" | <collect cleardigitbuffer="true" | |||
| skipping to change at page 113, line 27 ¶ | skipping to change at page 115, line 27 ¶ | |||
| 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 loc="http://www.example.com/prompt1.wav"/> | <media loc="http://www.example.com/prompt1.wav"/> | |||
| </prompt> | </prompt> | |||
| <control ffkey=5" rwkey="6" speedupkey="3" | <control ffkey="5" rwkey="6" speedupkey="3" | |||
| speeddnkey="4"/> | speeddnkey="4"/> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| Once the dialog is active, the user can press keys 3, 4, 5 and 6 to | Once the dialog is active, the user can press keys 3, 4, 5 and 6 to | |||
| execute runtime controls on the prompt queue. The keys do not cause | execute runtime controls on the prompt queue. The keys do not cause | |||
| 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. | |||
| When the dialog is completed successfully, then both control and | When the dialog is completed successfully, then both control and | |||
| collect information is reported. | collect information is reported. | |||
| <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"> | |||
| <promptinfo termmode="bargein"/> | <promptinfo termmode="bargein"/> | |||
| <collectinfo termmode="match" dtmf="14"/> | ||||
| <controlinfo> | <controlinfo> | |||
| <controlmatch dtmf="4" timestamp="2008-05-12T12:13:14Z"/> | <controlmatch dtmf="4" timestamp="2008-05-12T12:13:14Z"/> | |||
| <controlmatch dtmf="3" timestamp="2008-05-12T12:13:15Z"/> | <controlmatch dtmf="3" timestamp="2008-05-12T12:13:15Z"/> | |||
| <controlmatch dtmf="5" timestamp="2008-05-12T12:13:16Z"/> | <controlmatch dtmf="5" timestamp="2008-05-12T12:13:16Z"/> | |||
| <controlinfo> | </controlinfo> | |||
| <collectinfo termmode="match" dtmf="14"/> | ||||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| 6.2.5. Subscriptions and notifications | 6.2.5. Subscriptions and notifications | |||
| In this example, a looped dialog is started with subscription for | In this example, a looped dialog is started with subscription for | |||
| notifications each time the user input matches the collect grammar: | notifications each time the user input matches the collect grammar: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| skipping to change at page 115, line 27 ¶ | skipping to change at page 117, line 27 ¶ | |||
| </mscivr> | </mscivr> | |||
| If the user barges in on the prompt and <collect> receives DTMF input | If the user barges in on the prompt and <collect> receives DTMF input | |||
| matching the grammar, the dialog cycle is considered complete and the | matching the grammar, the dialog cycle is considered complete and the | |||
| MS returns the following: | MS returns the following: | |||
| <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"> | |||
| <promptinfo duration="3654" termmode="bargein"/> | <promptinfo duration="3654" termmode="bargein"/> | |||
| <collectinfo dtmf="1234" termmode="match"> | <collectinfo dtmf="1234" termmode="match"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| If no user input was provided, or the input did not match the | If no user input was provided, or the input did not match the | |||
| grammar, the dialog would loop for a maximum of 3 times. | grammar, the dialog would loop for a maximum of 3 times. | |||
| 6.3. Other Dialog Languages | 6.3. Other Dialog Languages | |||
| The following example requests that a VoiceXML dialog is started: | The following example requests that a VoiceXML dialog is started: | |||
| skipping to change at page 116, line 8 ¶ | skipping to change at page 118, line 8 ¶ | |||
| <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 language, then the response | If the MS does not support this dialog language, then the response | |||
| would have the status code 421 (Section 4.5). However, if it does | would have the status code 421 (Section 4.5). However, if it does | |||
| support the VoiceXML dialog language, it would respond with a 200 | support the VoiceXML dialog language, it would respond with a 200 | |||
| status, activate the VoiceXML dialog and make the <params> available | status, activate the VoiceXML dialog and make the <params> available | |||
| to the VoiceXML script as described in Section 12. | to the VoiceXML script as described in Section 9. | |||
| When the VoiceXML dialog exits, exit namelist parameters are | When the VoiceXML dialog exits, exit namelist parameters are | |||
| specified using <params> in the dialogexit event: | specified using <params> in the dialogexit event: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d2"> | <event dialogid="d2"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| <params> | <params> | |||
| <param name="username">peter</param> | <param name="username">peter</param> | |||
| <param name="pin">1234</param> | <param name="pin">1234</param> | |||
| skipping to change at page 121, line 11 ¶ | skipping to change at page 123, line 11 ¶ | |||
| when the same channel identifier is used in setting up another | when the same channel identifier is used in setting up another | |||
| control channel (see Section 4 of | control channel (see Section 4 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]). | [I-D.ietf-mediactrl-sip-control-framework]). | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This specification instructs IANA to register a new Media Control | This specification instructs IANA to register a new Media Control | |||
| Channel Framework Package, a new XML namespace, a new XML schema and | Channel Framework Package, a new XML namespace, a new XML schema and | |||
| a new MIME type. | a new MIME type. | |||
| This section further instructs IANA to create a new registry for IVR | ||||
| prompt variable types. | ||||
| 8.1. Control Package Registration | 8.1. Control Package Registration | |||
| This section registers a new Media Control Channel Framework package, | This section registers a new Media Control Channel Framework package, | |||
| per the instructions in Section 12.1 of | per the instructions in Section 12.1 of | |||
| [I-D.ietf-mediactrl-sip-control-framework]. | [I-D.ietf-mediactrl-sip-control-framework]. | |||
| Package Name: msc-ivr/1.0 | Package Name: msc-ivr/1.0 | |||
| [NOTE TO IANA/RFC-EDITOR: Please replace XXXX | [NOTE TO IANA/RFC-EDITOR: Please replace XXXX | |||
| with the RFC number for this specification.] | with the RFC number for this specification.] | |||
| Published Specification(s): RFCXXXX | Published Specification(s): RFCXXXX | |||
| skipping to change at page 124, line 5 ¶ | skipping to change at page 125, line 35 ¶ | |||
| the Media Control Channel Framework IVR package. | the Media Control Channel Framework IVR package. | |||
| Additional Information: Magic Number(s): (none) | Additional Information: Magic Number(s): (none) | |||
| File extension(s): (none) | File extension(s): (none) | |||
| Macintosh File Type Code(s): (none) | Macintosh File Type Code(s): (none) | |||
| Person & email address to contact for further information: Scott | Person & email address to contact for further information: Scott | |||
| McGlashan <smcg.stds01@mcglashan.org> | McGlashan <smcg.stds01@mcglashan.org> | |||
| Intended usage: LIMITED USE | Intended usage: LIMITED USE | |||
| Author/Change controller: The IETF | Author/Change controller: The IETF | |||
| Other information: None. | Other information: None. | |||
| 9. Change Summary | 8.5. IVR Prompt Variable Type Registration Information | |||
| This specification establishes an IVR Prompt Variable Type registry | ||||
| for Control Packages and initiates its population as follows. New | ||||
| entries in this registry must be published in an RFC (either as an | ||||
| IETF submission or RFC Editor submission), using the IANA policy | ||||
| [RFC5226] "RFC Required". | ||||
| [NOTE TO IANA/RFC-EDITOR: Please | ||||
| replace XXXX with the RFC number for this specification.] | ||||
| Variable Type Reference Control Package | ||||
| ------------- --------- --------------- | ||||
| date [RFCXXXX] msc-ivr/1.0 | ||||
| time [RFCXXXX] msc-ivr/1.0 | ||||
| digits [RFCXXXX] msc-ivr/1.0 | ||||
| The following information MUST be provided in an RFC publication in | ||||
| order to register a new Prompt Variable type: | ||||
| Variable Type: The value for the <variable> type attribute | ||||
| (Section 4.3.1.1.1). The RFC MUST specify permitted values (if | ||||
| any) for the format attribute of <variable> and how the value | ||||
| attribute is rendered for different values of the format | ||||
| attribute. The RFC MUST NOT weaken but MAY strengthen the valid | ||||
| values of <variable> attributes defined in Section 4.3.1.1.1 of | ||||
| this specification. | ||||
| Reference: The RFC number in which the variable type is registered. | ||||
| Control Package: The Control Package associated with the IVR | ||||
| variable type. | ||||
| Person and address to contact for further information: | ||||
| 9. Using VoiceXML as a dialog language | ||||
| The IVR control package allows, but does not require, the MS to | ||||
| support other dialog languages by referencing an external dialog | ||||
| document. This section provides MS implementations which support the | ||||
| VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with | ||||
| additional details about using these dialogs in this package. This | ||||
| section is normative for an MS which supports the VoiceXML dialog | ||||
| language. | ||||
| This section covers preparing (Section 9.1), starting (Section 9.2), | ||||
| terminating (Section 9.3) and exiting (Section 9.4) VoiceXML dialogs | ||||
| as well as handling VoiceXML call transfer (Section 9.5). | ||||
| 9.1. Preparing a VoiceXML dialog | ||||
| A VoiceXML dialog is prepared by sending the MS a request containing | ||||
| a <dialogprepare> element (Section 4.2.1). The type attribute is set | ||||
| to "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document which is to be prepared by the MS. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogprepare type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| The VoiceXML dialog environment uses the <dialogprepare> request as | ||||
| an opportunity to fetch and validate the initial document indicated | ||||
| by the src attribute along with any resources referenced in the | ||||
| VoiceXML document marked as prefetchable. The maxage and maxstale | ||||
| attributes, if specified, control how the initial VoiceXML document | ||||
| is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout | ||||
| attribute is not defined in VoiceXML for an initial document but the | ||||
| MS MUST support this attribute in its VoiceXML environment. | ||||
| If a <params> child element of <dialogprepare> is specified, then the | ||||
| MS MUST map the parameter information into a VoiceXML session | ||||
| variable object as described in Section 9.2.3. | ||||
| The success or failure of the VoiceXML document preparation is | ||||
| reported in the MS response. For example, if the VoiceXML document | ||||
| cannot be retrieved, then a 409 error response is returned. If the | ||||
| document is syntactically invalid according to VoiceXML, then a 400 | ||||
| response is returned. If successful, the response includes a | ||||
| dialogid attribute whose value the AS can use in <dialogstart> | ||||
| element to start the prepared dialog. | ||||
| 9.2. Starting a VoiceXML dialog | ||||
| A VoiceXML dialog is started by sending the MS a request containing a | ||||
| <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has | ||||
| already been prepared using <dialogprepare>, then the MS starts the | ||||
| dialog indicated by the prepareddialogid attribute. Otherwise, a new | ||||
| VoiceXML dialog can be started by setting the type attribute to | ||||
| "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| The maxage and maxstale attributes, if specified, control how the | ||||
| initial VoiceXML document is fetched using HTTP (see [RFC2616]). | ||||
| Note that the fetchtimeout attribute is not defined in VoiceXML for | ||||
| an initial document but the MS MUST support this attribute in its | ||||
| VoiceXML environment. Note also that support for <dtmfsub> | ||||
| subscriptions (Section 4.2.2.1.1) and their associated dialog | ||||
| notification events is not defined in VoiceXML. If such a | ||||
| subscription is specified in a <dialogstart> request, then the MS | ||||
| sends a 439 error response (see Section 4.5). | ||||
| The success or failure of starting a VoiceXML dialog is reported in | ||||
| the MS response as described in Section 4.2.2. | ||||
| When the MS starts a VoiceXML dialog, the MS MUST map session | ||||
| information into a VoiceXML session variable object. There are 3 | ||||
| types of session information: protocol information (Section 9.2.1), | ||||
| media stream information (Section 9.2.2) and parameter information | ||||
| (Section 9.2.3). | ||||
| 9.2.1. Session protocol information | ||||
| If the connectionid attribute is specified, the MS assigns protocol | ||||
| information from the SIP dialog associated with the connection to the | ||||
| following session variables in VoiceXML: | ||||
| session.connection.local.uri Evaluates to the SIP URI specified in | ||||
| the To: header of the initial INVITE | ||||
| session.connection.remote.uri Evaluates to the SIP URI specified in | ||||
| the From: header of the initial INVITE | ||||
| session.connection.originator Evaluates to the value of | ||||
| session.connection.remote (MS receives inbound connections but | ||||
| does not create outbound connections) | ||||
| session.connection.protocol.name Evaluates to "sip". Note that this | ||||
| is intended to reflect the use of SIP in general, and does not | ||||
| distinguish between whether the connection accesses the MS via SIP | ||||
| or SIPS procedures. | ||||
| session.connection.protocol.version Evaluates to "2.0". | ||||
| session.connection.redirect This array is populated by information | ||||
| contained in the History-Info ([RFC4244]) header in the initial | ||||
| INVITE or is otherwise undefined. Each entry (hi-entry) in the | ||||
| History-Info header is mapped, in the order it appeared in the | ||||
| History-Info header, into an element of the | ||||
| session.connection.redirect array. Properties of each element of | ||||
| the array are determined as follows: | ||||
| uri Set to the hi-targeted-to-uri value of the History-Info entry | ||||
| pi Set to 'true' if hi-targeted-to-uri contains a | ||||
| 'Privacy=history' parameter, or if the INVITE Privacy header | ||||
| includes 'history'; 'false' otherwise | ||||
| si Set to the value of the 'si' parameter if it exists, undefined | ||||
| otherwise | ||||
| reason Set verbatim to the value of the 'Reason' parameter of hi- | ||||
| targeted-to-uri | ||||
| session.connection.aai Evaluates to the value of a SIP header with | ||||
| the name "aai" if present; otherwise undefined. | ||||
| session.connection.protocol.sip.requesturi This is an associative | ||||
| array where the array keys and values are formed from the URI | ||||
| parameters on the SIP Request-URI of the initial INVITE. The | ||||
| array key is the URI parameter name. The corresponding array | ||||
| value is obtained by evaluating the URI parameter value as a | ||||
| string. In addition, the array's toString() function returns the | ||||
| full SIP Request-URI. | ||||
| session.connection.protocol.sip.headers This is an associative array | ||||
| where each key in the array is the non-compact name of a SIP | ||||
| header in the initial INVITE converted to lower-case (note the | ||||
| case conversion does not apply to the header value). If multiple | ||||
| header fields of the same field name are present, the values are | ||||
| combined into a single comma-separated value. Implementations | ||||
| MUST at a minimum include the Call-ID header and MAY include other | ||||
| headers. For example, | ||||
| session.connection.protocol.sip.headers["call-id"] evaluates to | ||||
| the Call-ID of the SIP dialog. | ||||
| If a conferenceid attribute is specified, then the MS populates the | ||||
| following session variables in VoiceXML: | ||||
| session.conference.name Evaluates to the value of the conferenceid | ||||
| attribute | ||||
| 9.2.2. Session media stream information | ||||
| The media streams of the connection or conference to use for the | ||||
| dialog are described in Section 4.2.2, including use of <stream> | ||||
| elements (Section 4.2.2.2) if specified. The MS maps media stream | ||||
| information into the VoiceXML session variable | ||||
| session.connection.protocol.sip.media for a connection, and | ||||
| session.conference.media for a conference. In both variables, the | ||||
| value of the variable is an array where each array element is an | ||||
| object with the following properties: | ||||
| type This required property indicates the type of the media | ||||
| associated with the stream (see Section 4.2.2.2 <stream> type | ||||
| attribute definition) | ||||
| direction This required property indicates the directionality of the | ||||
| media relative to the endpoint of the dialog (see Section 4.2.2.2 | ||||
| <stream> direction attribute definition). | ||||
| format This property is optional. If defined, the value of the | ||||
| property is an array. Each array element is an object which | ||||
| specifies information about one format of the media stream. The | ||||
| object contains at least one property called name whose value is | ||||
| the subtype name of the media format ([RFC4855]). Other | ||||
| properties may be defined with string values; these correspond to | ||||
| required and, if defined, optional parameters of the format. | ||||
| As a consequence of this definition, when a connectionid is specified | ||||
| there is an array entry in session.connection.protocol.sip.media for | ||||
| each media stream used by the VoiceXML dialog. For an example, | ||||
| consider a connection with bi-directional G.711 mu-law audio sampled | ||||
| at 8kHz where the dialog is started with | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <stream media="audio" direction="recvonly"/> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.connection.protocol.sip.media[0].type evaluates | ||||
| to "audio", session.connection.protocol.sip.media[0].direction to | ||||
| "recvonly" (i.e. the endpoint only receives media from the dialog - | ||||
| the endpoint does not send media to the dialog), and | ||||
| session.connection.protocol.sip.media[0].format[0].name evaluates to | ||||
| "PCMU" and session.connection.protocol.sip.media[0].format[0].rate | ||||
| evaluates to "8000". | ||||
| Note that the session variable is updated if the connection or | ||||
| conference media session characteristics for the VoiceXML dialog | ||||
| change (e.g. due to a SIP re-INVITE). | ||||
| 9.2.3. Session parameter information | ||||
| Parameter information is specified in the <params> child element of | ||||
| <dialogprepare> and <dialogstart> elements, where each parameter is | ||||
| specified using a <param> element. The MS maps parameter information | ||||
| into VoiceXML session variables as follows: | ||||
| session.values This is an associative array mapped to the <params> | ||||
| element. It is undefined if no <params> element is specified. If | ||||
| a <params> element is specified in both <dialogprepare> and | ||||
| <dialogstart> elements for the same dialog, then the array is | ||||
| first initialized with the <params> specified in the | ||||
| <dialogprepare> element and then updated with the <params> | ||||
| specified in the <dialogstart> element; in cases of conflict, the | ||||
| <dialogstart> parameter value take priority. Array keys and | ||||
| values are formed from <param> children of the <params> element. | ||||
| Each array key is the value of the name attribute of a <param> | ||||
| element. If the same name is used in more than one <param> | ||||
| element, then the array key is associated with the last <param> in | ||||
| document order. The corresponding value for each key is an object | ||||
| with two required properties: a "type" property evaluating to the | ||||
| value of the type attribute; and a "content" property evaluating | ||||
| to the content of the <param>. In addition, this object's | ||||
| toString() function returns the value of the "content" property as | ||||
| a string. | ||||
| For example, a VoiceXML dialog started with one parameter: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <params> | ||||
| <param name="mode">playannouncement</param> | ||||
| </params> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.values would be defined with one item in the | ||||
| array where session.values['mode'].type evaluates to "text/plain" | ||||
| (the default value), session.values['mode'].content evaluates to | ||||
| "playannouncement" and session.values['mode'].toString() also | ||||
| evaluates to "playannouncement". | ||||
| The MS sends an error response (see Section 4.2.2) if a <param> is | ||||
| not supported by the MS (e.g. the parameter type is not supported). | ||||
| 9.3. Terminating a VoiceXML dialog | ||||
| When the MS receives a request with a <dialogterminate> element | ||||
| (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. Note that if the immediate | ||||
| attribute has the value true, then the MS MUST NOT return <params> | ||||
| information when the VoiceXML dialog exits (even if the VoiceXML | ||||
| dialog provides such information) - see Section 9.4. | ||||
| If the connection or conference associated with the VoiceXML dialog | ||||
| terminates, then the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. | ||||
| 9.4. Exiting a VoiceXML dialog | ||||
| The MS sends a <dialogexit> notification event (Section 4.2.5.1) when | ||||
| the VoiceXML dialog is complete, has been terminated or because it | ||||
| exits due to an error. The <dialogexit> status attribute specifies | ||||
| the status of the VoiceXML dialog when it exits and its <params> | ||||
| child element specifies information, if any, returned from the | ||||
| VoiceXML dialog. | ||||
| A VoiceXML dialog exits when it processes a <disconnect> element, a | ||||
| <exit> element or an implicit exit according to the VoiceXML FIA. If | ||||
| the VoiceXML dialog executes a <disconnect> and then subsequently | ||||
| executes an <exit> with namelist information, the namelist | ||||
| information from the <exit> element is discarded. | ||||
| The MS reports namelist variables in the <params> element of the | ||||
| <dialogexit>. Each <param> reports on a namelist variable. The MS | ||||
| set the <param> name attribute to the name of the VoiceXML variable. | ||||
| The MS sets the <param> type attribute according to the type of the | ||||
| VoiceXML variable. The MS sets the <param> type to 'text/plain' when | ||||
| the VoiceXML variable is a simple ECMAScript value. If the VoiceXML | ||||
| variable is a recording, the MS sets the <param> type to the MIME | ||||
| media type of the recording and encodes the recorded content as CDATA | ||||
| in the <param> (see Section 4.2.6.1 for an example). If the VoiceXML | ||||
| variable is a complex ECMAScript value (e.g. object, array, etc), the | ||||
| MS sets the <param> type to 'application/json' and converts the | ||||
| variable value to its JSON value equivalent ([RFC4627]). The | ||||
| behavior resulting from specifying an ECMAScript object with circular | ||||
| references is not defined. | ||||
| If the expr attribute is specified on the VoiceXML <exit> element | ||||
| instead of the namelist attribute, the MS creates a <param> element | ||||
| with the reserved name '__exit'. If the value is an ECMAScript | ||||
| literal, the <param> type is 'text/plain' and the content is the | ||||
| literal value. If the value is a variable, the <param> type and | ||||
| content are set in the same way as a namelist variable; for example, | ||||
| an expr attribute referencing a variable with a simple ECMAScript | ||||
| value has the type 'text/plain' and the content is set to the | ||||
| ECMAScript value. To allow the AS to differentiate between a | ||||
| <dialogexit> notification event resulting from a VoiceXML | ||||
| <disconnect> from one resulting from an <exit>, the MS creates a | ||||
| <param> with the reserved name '__reason', the type 'text/plain', and | ||||
| a value of "disconnect" (without brackets) to reflect the use of | ||||
| VoiceXML's <disconnect> element, and the value of "exit" (without | ||||
| brackets) to an explicit <exit> in the VoiceXML dialog. If the | ||||
| VoiceXML session terminates for other reasons (such as encountering | ||||
| an error), this parameter MAY be omitted or take on platform-specific | ||||
| values prefixed with an underscore. | ||||
| Table 2 provides some examples of VoiceXML <exit> usage and the | ||||
| corresponding <params> element in the <dialogexit> notification | ||||
| event. It assumes the following VoiceXML variable names and values: | ||||
| userAuthorized=true, pin=1234 and errors=0. The <param> type | ||||
| attributes ('text/plain') are omitted for clarity. | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> Usage | <params> Result | | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> | <params> <param | | ||||
| | | name="__reason">exit</param> </params> | | ||||
| | | | | ||||
| | <exit expr="5"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">5</param> </params> | | ||||
| | | | | ||||
| | <exit expr="'done'"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">'done'</param> </params> | | ||||
| | | | | ||||
| | <exit | <params> <param | | ||||
| | expr="userAuthorized"> | name="__reason">exit</param> <param | | ||||
| | | name="__exit">true</param> </params> | | ||||
| | | | | ||||
| | <exit namelist="pin | <params> <param | | ||||
| | errors"> | name="__reason">exit</param> <param | | ||||
| | | name="pin">1234</param> <param | | ||||
| | | name="errors">0</param> </params> | | ||||
| +------------------------+------------------------------------------+ | ||||
| Table 2: VoiceXML <exit> mapping examples | ||||
| 9.5. Call Transfer | ||||
| While VoiceXML is at its core a dialog language, it also provides | ||||
| optional call transfer capability. It is NOT RECOMMENDED to use | ||||
| VoiceXML's call transfer capability in networks involving Application | ||||
| Servers. Rather, the AS itself can provide call routing | ||||
| functionality by taking signaling actions based on the data returned | ||||
| to it, either through VoiceXML's own data submission mechanisms or | ||||
| through the mechanism described in Section 9.4. If the MS encounters | ||||
| a VoiceXML dialog requesting call transfer capability, the MS SHOULD | ||||
| raise an error event in the VoiceXML dialog execution context: an | ||||
| error.unsupported.transfer.blind event if blind transfer is | ||||
| requested, error.unsupported.transfer.bridge if bridge transfer is | ||||
| requested, or error.unsupported.transfer.consultation if consultation | ||||
| transfer is requested. | ||||
| 10. Change Summary | ||||
| Note to RFC Editor: Please remove this whole section. | Note to RFC Editor: Please remove this whole section. | |||
| The following are the changes between the -09 and -08 versions | ||||
| (primarily addressing IESG DISCUSS, comments and nits): | ||||
| o 3.1: Aligned Control Package Name/Version with last Control | ||||
| Framework verbage. | ||||
| o 4.0: Modified communications protocol requirements so that a MS | ||||
| MUST support both HTTP and HTTPS for fetching resources and | ||||
| uploading recordings. Added statement to relevant element | ||||
| definitions. | ||||
| o 4.2.1: Corrected error code from 409 to 421 in last paragraph in | ||||
| section. | ||||
| o 4.2.1, 4.2.2, 4.3.1.3.1, 4.3.4, 4.3.5: Modified the specification | ||||
| of src and location attributes in <dialogprepare>, <dialogstart>, | ||||
| <grammar>, <record> and <media> so that there is no mention of | ||||
| authentication information in the URI (the URI RFC 3986 already | ||||
| covers this). | ||||
| o 4.0: Clarified that while some elements contain attributes whose | ||||
| value is descriptive text, this descriptive text is for diagnostic | ||||
| use only and does not require a language indicator such as a | ||||
| language tag. | ||||
| o 4.2.2.2: Clarified that the media attribute of <stream> is a MIME | ||||
| type-name with reference to RFC 4288. | ||||
| o 4.2.6.1: Added encoding attribute to <param> to allow for | ||||
| specification of content-transfer-encoding schema. Updated XML | ||||
| schema. | ||||
| o 4.2.6.1: Simplified content model of <param> to be text only. | ||||
| Updated XML schema. | ||||
| o 4.3.1.1.1, 4.4.2.2.5, 8.5: Tighten up definition of <variable> | ||||
| date, time and digits types (and <variables>) and added IANA | ||||
| instruction to establish a prompt variable type registry. | ||||
| o 4.3.1.4: Clarified that in the <record> the mapping of the append | ||||
| operation to the upload protocol scheme is implementation- | ||||
| specific. | ||||
| o 4.6.10: Clarified MIME media type format with ABNF production | ||||
| referencing RFC 4288. | ||||
| o 5: Stated that the schema is normative. | ||||
| o 5: Corrected <par> definition in XML Schema by adding 'endsync' | ||||
| attribute. | ||||
| o 5: Corrected <grammartypes> definition in XML Schema by making | ||||
| mimetype child element optional. | ||||
| o Moved VoiceXML section (Appendix A) to main body and clarified | ||||
| that it is normative for implementations supporting VoiceXML. | ||||
| Updated VoiceXML references to normative except (VoiceXML 3.0 | ||||
| which is still a Working Draft). | ||||
| o 9.2.2: Corrected example so that the subtype-name (whose value | ||||
| should be the subtype of the media format) is "PCMU" rather than | ||||
| "audio/PCMU". | ||||
| o 9.4: VoiceXML <exit> with expr attribute: clarified that if the | ||||
| value is an ECMAScript variable, the <param> type and content is | ||||
| processed in the same way as a namelist variable. | ||||
| o 4.2.2.2.1: clarified the definition of <region> as an area in a | ||||
| video layout and added a reference to the mixer package | ||||
| o 4.3.1.4: clarified sentence "If no <media> child element is | ||||
| specified, the MS MUST provide a recording location where the | ||||
| recording format is implementation- specific." | ||||
| o Introduction: Clarified that Control Framework is an equivalent | ||||
| term for the Media Control Channel Framework. Expanded DTMF | ||||
| acronym. | ||||
| o 4.2.5.1, 4.5: replaced reference to standards-tracks RFC for | ||||
| assignment of new values, with reference to using Standards Action | ||||
| process defined in RFC 5226. | ||||
| o 4.3.1.1.3: Added recommendation that a <par> element contains only | ||||
| one <media> element of the same media type (i.e. same type-name as | ||||
| defined in Section 4.6.10). | ||||
| o 4.4.2.1.1: changed <codec> to include name attribute; aligned | ||||
| definition with RFC4288; updated schema. | ||||
| o 4.6: Type definitions; added references to XML Schema datatypes | ||||
| where appropriate; changed definition of boolean to match W3C | ||||
| definition and updated boolean type in schema. | ||||
| o Typos: in 4.2.2.1, replaced "rewkey" with "rwkey" in first | ||||
| example; in 4.3.1.1.3, added closing ">" to example; in | ||||
| 4.3.1.1.3.1, added closing ">" to example; in 4.6.11, corrected | ||||
| RFC 5646 reference | ||||
| o Validated all examples against XML schema and corrected where | ||||
| necessary. | ||||
| The following are the changes between the -08 and -07 versions | The following are the changes between the -08 and -07 versions | |||
| (addressing IETF Last Call comments): | (addressing IETF Last Call comments): | |||
| o 4.2: Changed recommended maximum duration value for a prepared | o 4.2: Changed recommended maximum duration value for a prepared | |||
| dialog from 30s to 300s. | dialog from 30s to 300s. | |||
| o 4.2: Changed the dialog state machine so that when a PREPARED | o 4.2: Changed the dialog state machine so that when a PREPARED | |||
| dialog is terminated, the MS always sends a <dialogexit> | dialog is terminated, the MS always sends a <dialogexit> | |||
| notification event. | notification event. | |||
| skipping to change at page 138, line 5 ¶ | skipping to change at page 151, line 5 ¶ | |||
| 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 | 11. Contributors | |||
| Asher Shiratzky provided valuable support and contributions to the | Asher Shiratzky provided valuable support and contributions to the | |||
| early versions of this document. | early versions of this document. | |||
| The authors would like to thank the IVR design team consisting of | The authors would like to thank the IVR design team consisting of | |||
| Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary | Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary | |||
| Barnes and Steve Buko who provided valuable feedback, input and text | Barnes and Steve Buko who provided valuable feedback, input and text | |||
| to this document. | to this document. | |||
| 11. Acknowledgments | 12. Acknowledgments | |||
| The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave | The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave | |||
| Burke, Dan York, Steve Buko, Jean-Francois Bertrand and Henry Lum for | Burke, Dan York, Steve Buko, Jean-Francois Bertrand, Henry Lum and | |||
| expert reviews of this work. | Lorenzo Miniero for expert reviews of this work. | |||
| Ben Campbell carried out the RAI expert review on this specification | Ben Campbell carried out the RAI expert review on this specification | |||
| and provided a great deal of invaluable input. Donald Eastlake | and provided a great deal of invaluable input. Donald Eastlake | |||
| carried out a thorough security review. | carried out a thorough security review. | |||
| 12. Appendix A: Using VoiceXML as a dialog language | ||||
| The IVR control package allows, but does not require, the MS to | ||||
| support other dialog languages by referencing an external dialog | ||||
| document. This appendix provides MS implementations which support | ||||
| the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with | ||||
| additional details about using these dialogs in this package. | ||||
| This appendix covers preparing (Section 12.1), starting | ||||
| (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) | ||||
| VoiceXML dialogs as well as handling VoiceXML call transfer | ||||
| (Section 12.5). | ||||
| 12.1. Preparing a VoiceXML dialog | ||||
| A VoiceXML dialog is prepared by sending the MS a request containing | ||||
| a <dialogprepare> element (Section 4.2.1). The type attribute is set | ||||
| to "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document which is to be prepared by the MS. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogprepare type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| The VoiceXML dialog environment uses the <dialogprepare> request as | ||||
| an opportunity to fetch and validate the initial document indicated | ||||
| by the src attribute along with any resources referenced in the | ||||
| VoiceXML document marked as prefetchable. The maxage and maxstale | ||||
| attributes, if specified, control how the initial VoiceXML document | ||||
| is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout | ||||
| attribute is not defined in VoiceXML for an initial document but the | ||||
| MS MUST support this attribute in its VoiceXML environment. | ||||
| If a <params> child element of <dialogprepare> is specified, then the | ||||
| MS MUST map the parameter information into a VoiceXML session | ||||
| variable object as described in Section 12.2.3. | ||||
| The success or failure of the VoiceXML document preparation is | ||||
| reported in the MS response. For example, if the VoiceXML document | ||||
| cannot be retrieved, then a 409 error response is returned. If the | ||||
| document is syntactically invalid according to VoiceXML, then a 400 | ||||
| response is returned. If successful, the response includes a | ||||
| dialogid attribute whose value the AS can use in <dialogstart> | ||||
| element to start the prepared dialog. | ||||
| 12.2. Starting a VoiceXML dialog | ||||
| A VoiceXML dialog is started by sending the MS a request containing a | ||||
| <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has | ||||
| already been prepared using <dialogprepare>, then the MS starts the | ||||
| dialog indicated by the prepareddialogid attribute. Otherwise, a new | ||||
| VoiceXML dialog can be started by setting the type attribute to | ||||
| "application/voicexml+xml" and the src attribute to the URI of the | ||||
| VoiceXML document. For example: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"/> | ||||
| </mscivr> | ||||
| The maxage and maxstale attributes, if specified, control how the | ||||
| initial VoiceXML document is fetched using HTTP (see [RFC2616]). | ||||
| Note that the fetchtimeout attribute is not defined in VoiceXML for | ||||
| an initial document but the MS MUST support this attribute in its | ||||
| VoiceXML environment. Note also that support for <dtmfsub> | ||||
| subscriptions (Section 4.2.2.1.1) and their associated dialog | ||||
| notification events is not defined in VoiceXML. If such a | ||||
| subscription is specified in a <dialogstart> request, then the MS | ||||
| sends a 439 error response (see Section 4.5). | ||||
| The success or failure of starting a VoiceXML dialog is reported in | ||||
| the MS response as described in Section 4.2.2. | ||||
| When the MS starts a VoiceXML dialog, the MS MUST map session | ||||
| information into a VoiceXML session variable object. There are 3 | ||||
| types of session information: protocol information (Section 12.2.1), | ||||
| media stream information (Section 12.2.2) and parameter information | ||||
| (Section 12.2.3). | ||||
| 12.2.1. Session protocol information | ||||
| If the connectionid attribute is specified, the MS assigns protocol | ||||
| information from the SIP dialog associated with the connection to the | ||||
| following session variables in VoiceXML: | ||||
| session.connection.local.uri Evaluates to the SIP URI specified in | ||||
| the To: header of the initial INVITE | ||||
| session.connection.remote.uri Evaluates to the SIP URI specified in | ||||
| the From: header of the initial INVITE | ||||
| session.connection.originator Evaluates to the value of | ||||
| session.connection.remote (MS receives inbound connections but | ||||
| does not create outbound connections) | ||||
| session.connection.protocol.name Evaluates to "sip". Note that this | ||||
| is intended to reflect the use of SIP in general, and does not | ||||
| distinguish between whether the connection accesses the MS via SIP | ||||
| or SIPS procedures. | ||||
| session.connection.protocol.version Evaluates to "2.0". | ||||
| session.connection.redirect This array is populated by information | ||||
| contained in the History-Info ([RFC4244]) header in the initial | ||||
| INVITE or is otherwise undefined. Each entry (hi-entry) in the | ||||
| History-Info header is mapped, in the order it appeared in the | ||||
| History-Info header, into an element of the | ||||
| session.connection.redirect array. Properties of each element of | ||||
| the array are determined as follows: | ||||
| uri Set to the hi-targeted-to-uri value of the History-Info entry | ||||
| pi Set to 'true' if hi-targeted-to-uri contains a | ||||
| 'Privacy=history' parameter, or if the INVITE Privacy header | ||||
| includes 'history'; 'false' otherwise | ||||
| si Set to the value of the 'si' parameter if it exists, undefined | ||||
| otherwise | ||||
| reason Set verbatim to the value of the 'Reason' parameter of hi- | ||||
| targeted-to-uri | ||||
| session.connection.aai Evaluates to the value of a SIP header with | ||||
| the name "aai" if present; otherwise undefined. | ||||
| session.connection.protocol.sip.requesturi This is an associative | ||||
| array where the array keys and values are formed from the URI | ||||
| parameters on the SIP Request-URI of the initial INVITE. The | ||||
| array key is the URI parameter name. The corresponding array | ||||
| value is obtained by evaluating the URI parameter value as a | ||||
| string. In addition, the array's toString() function returns the | ||||
| full SIP Request-URI. | ||||
| session.connection.protocol.sip.headers This is an associative array | ||||
| where each key in the array is the non-compact name of a SIP | ||||
| header in the initial INVITE converted to lower-case (note the | ||||
| case conversion does not apply to the header value). If multiple | ||||
| header fields of the same field name are present, the values are | ||||
| combined into a single comma-separated value. Implementations | ||||
| MUST at a minimum include the Call-ID header and MAY include other | ||||
| headers. For example, | ||||
| session.connection.protocol.sip.headers["call-id"] evaluates to | ||||
| the Call-ID of the SIP dialog. | ||||
| If a conferenceid attribute is specified, then the MS populates the | ||||
| following session variables in VoiceXML: | ||||
| session.conference.name Evaluates to the value of the conferenceid | ||||
| attribute | ||||
| 12.2.2. Session media stream information | ||||
| The media streams of the connection or conference to use for the | ||||
| dialog are described in Section 4.2.2, including use of <stream> | ||||
| elements (Section 4.2.2.2) if specified. The MS maps media stream | ||||
| information into the VoiceXML session variable | ||||
| session.connection.protocol.sip.media for a connection, and | ||||
| session.conference.media for a conference. In both variables, the | ||||
| value of the variable is an array where each array element is an | ||||
| object with the following properties: | ||||
| type This required property indicates the type of the media | ||||
| associated with the stream (see Section 4.2.2.2 <stream> type | ||||
| attribute definition) | ||||
| direction This required property indicates the directionality of the | ||||
| media relative to the endpoint of the dialog (see Section 4.2.2.2 | ||||
| <stream> direction attribute definition). | ||||
| format This property is optional. If defined, the value of the | ||||
| property is an array. Each array element is an object which | ||||
| specifies information about one format of the media stream. The | ||||
| object contains at least one property called name whose value is | ||||
| the subtype of the media format ([RFC4855]). Other properties may | ||||
| be defined with string values; these correspond to required and, | ||||
| if defined, optional parameters of the format. | ||||
| As a consequence of this definition, when a connectionid is specified | ||||
| there is an array entry in session.connection.protocol.sip.media for | ||||
| each media stream used by the VoiceXML dialog. For an example, | ||||
| consider a connection with bi-directional G.711 mu-law audio sampled | ||||
| at 8kHz where the dialog is started with | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <stream type="audio" direction="recvonly"/> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.connection.protocol.sip.media[0].type evaluates | ||||
| to "audio", session.connection.protocol.sip.media[0].direction to | ||||
| "recvonly" (i.e. the endpoint only receives media from the dialog - | ||||
| the endpoint does not send media to the dialog), and | ||||
| session.connection.protocol.sip.media[0].format[0].name evaluates to | ||||
| "audio/PCMU" and | ||||
| session.connection.protocol.sip.media[0].format[0].rate evaluates to | ||||
| "8000". | ||||
| Note that the session variable is updated if the connection or | ||||
| conference media session characteristics for the VoiceXML dialog | ||||
| change (e.g. due to a SIP re-INVITE). | ||||
| 12.2.3. Session parameter information | ||||
| Parameter information is specified in the <params> child element of | ||||
| <dialogprepare> and <dialogstart> elements, where each parameter is | ||||
| specified using a <param> element. The MS maps parameter information | ||||
| into VoiceXML session variables as follows: | ||||
| session.values This is an associative array mapped to the <params> | ||||
| element. It is undefined if no <params> element is specified. If | ||||
| a <params> element is specified in both <dialogprepare> and | ||||
| <dialogstart> elements for the same dialog, then the array is | ||||
| first initialized with the <params> specified in the | ||||
| <dialogprepare> element and then updated with the <params> | ||||
| specified in the <dialogstart> element; in cases of conflict, the | ||||
| <dialogstart> parameter value take priority. Array keys and | ||||
| values are formed from <param> children of the <params> element. | ||||
| Each array key is the value of the name attribute of a <param> | ||||
| element. If the same name is used in more than one <param> | ||||
| element, then the array key is associated with the last <param> in | ||||
| document order. The corresponding value for each key is an object | ||||
| with two required properties: a "type" property evaluating to the | ||||
| value of the type attribute; and a "content" property evaluating | ||||
| to the content of the <param>. In addition, this object's | ||||
| toString() function returns the value of the "content" property as | ||||
| a string. | ||||
| For example, a VoiceXML dialog started with one parameter: | ||||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | ||||
| <dialogstart connectionid="ssd3r3:sds345b" | ||||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <params> | ||||
| <param name="mode">playannouncement</param> | ||||
| </params> | ||||
| </dialogstart> | ||||
| </mscivr> | ||||
| In this case, session.values would be defined with one item in the | ||||
| array where session.values['mode'].type evaluates to "text/plain" | ||||
| (the default value), session.values['mode'].content evaluates to | ||||
| "playannouncement" and session.values['mode'].toString() also | ||||
| evaluates to "playannouncement". | ||||
| The MS sends an error response (see Section 4.2.2) if a <param> is | ||||
| not supported by the MS (e.g. the parameter type is not supported). | ||||
| 12.3. Terminating a VoiceXML dialog | ||||
| When the MS receives a request with a <dialogterminate> element | ||||
| (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. Note that if the immediate | ||||
| attribute has the value true, then the MS MUST NOT return <params> | ||||
| information when the VoiceXML dialog exits (even if the VoiceXML | ||||
| dialog provides such information) - see Section 12.4. | ||||
| If the connection or conference associated with the VoiceXML dialog | ||||
| terminates, then the MS throws a 'connection.disconnect.hangup' event | ||||
| into the specified VoiceXML dialog. | ||||
| 12.4. Exiting a VoiceXML dialog | ||||
| The MS sends a <dialogexit> notification event (Section 4.2.5.1) when | ||||
| the VoiceXML dialog is complete, has been terminated or because it | ||||
| exits due to an error. The <dialogexit> status attribute specifies | ||||
| the status of the VoiceXML dialog when it exits and its <params> | ||||
| child element specifies information, if any, returned from the | ||||
| VoiceXML dialog. | ||||
| A VoiceXML dialog exits when it processes a <disconnect> element, a | ||||
| <exit> element or an implicit exit according to the VoiceXML FIA. If | ||||
| the VoiceXML dialog executes a <disconnect> and then subsequently | ||||
| executes an <exit> with namelist information, the namelist | ||||
| information from the <exit> element is discarded. | ||||
| The MS reports namelist variables in the <params> element of the | ||||
| <dialogexit>. Each <param> reports on a namelist variable. The MS | ||||
| set the <param> name attribute to the name of the VoiceXML variable. | ||||
| The MS sets the <param> type attribute according to the type of the | ||||
| VoiceXML variable. The MS sets the <param> type to 'text/plain' when | ||||
| the VoiceXML variable is a simple ECMAScript value. If the VoiceXML | ||||
| variable is a recording, the MS sets the <param> type to the MIME | ||||
| media type of the recording and encodes the recorded content as CDATA | ||||
| in the <param> (see Section 4.2.6.1 for an example). If the VoiceXML | ||||
| variable is a complex ECMAScript value (e.g. object, array, etc), the | ||||
| MS sets the <param> type to 'application/json' and converts the | ||||
| variable value to its JSON value equivalent ([RFC4627]. The behavior | ||||
| resulting from specifying an ECMAScript object with circular | ||||
| references is not defined. | ||||
| If the expr attribute is specified on the VoiceXML <exit> element | ||||
| instead of the namelist attribute, the MS creates a <param> element | ||||
| with the reserved name '__exit', the type 'text/plain' and the | ||||
| content of the expr attribute. To allow the AS to differentiate | ||||
| between a <dialogexit> notification event resulting from a VoiceXML | ||||
| <disconnect> from one resulting from an <exit>, the MS creates a | ||||
| <param> with the reserved name '__reason', the type 'text/plain', and | ||||
| a value of "disconnect" (without brackets) to reflect the use of | ||||
| VoiceXML's <disconnect> element, and the value of "exit" (without | ||||
| brackets) to an explicit <exit> in the VoiceXML dialog. If the | ||||
| VoiceXML session terminates for other reasons (such as encountering | ||||
| an error), this parameter MAY be omitted or take on platform-specific | ||||
| values prefixed with an underscore. | ||||
| Table 2 provides some examples of VoiceXML <exit> usage and the | ||||
| corresponding <params> element in the <dialogexit> notification | ||||
| event. It assumes the following VoiceXML variable names and values: | ||||
| userAuthorized=true, pin=1234 and errors=0. The <param> type | ||||
| attributes ('text/plain') are omitted for clarity. | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> Usage | <params> Result | | ||||
| +------------------------+------------------------------------------+ | ||||
| | <exit> | <params> <param | | ||||
| | | name="__reason">exit</param> </params> | | ||||
| | | | | ||||
| | <exit expr="5"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">5</param> </params> | | ||||
| | | | | ||||
| | <exit expr="'done'"> | <params> <param | | ||||
| | | name="__reason">exit</param> <param | | ||||
| | | name="__exit">'done'</param> </params> | | ||||
| | | | | ||||
| | <exit | <params> <param | | ||||
| | expr="userAuthorized"> | name="__reason">exit</param> <param | | ||||
| | | name="__exit">true</param> </params> | | ||||
| | | | | ||||
| | <exit namelist="pin | <params> <param | | ||||
| | errors"> | name="__reason">exit</param> <param | | ||||
| | | name="pin">1234</param> <param | | ||||
| | | name="errors">0</param> </params> | | ||||
| +------------------------+------------------------------------------+ | ||||
| Table 2: VoiceXML <exit> mapping examples | ||||
| 12.5. Call Transfer | ||||
| While VoiceXML is at its core a dialog language, it also provides | ||||
| optional call transfer capability. It is NOT RECOMMENDED to use | ||||
| VoiceXML's call transfer capability in networks involving Application | ||||
| Servers. Rather, the AS itself can provide call routing | ||||
| functionality by taking signaling actions based on the data returned | ||||
| to it, either through VoiceXML's own data submission mechanisms or | ||||
| through the mechanism described in Section 12.4. If the MS | ||||
| encounters a VoiceXML dialog requesting call transfer capability, the | ||||
| MS SHOULD raise an error event in the VoiceXML dialog execution | ||||
| context: an error.unsupported.transfer.blind event if blind transfer | ||||
| is requested, error.unsupported.transfer.bridge if bridge transfer is | ||||
| requested, or error.unsupported.transfer.consultation if consultation | ||||
| transfer is requested. | ||||
| 13. References | 13. References | |||
| 13.1. Normative References | 13.1. Normative References | |||
| [I-D.ietf-mediactrl-sip-control-framework] | [I-D.ietf-mediactrl-sip-control-framework] | |||
| Boulton, C., Melanchuk, T., and S. McGlashan, "Media | Boulton, C., Melanchuk, T., and S. McGlashan, "Media | |||
| Control Channel Framework", | Control Channel Framework", | |||
| draft-ietf-mediactrl-sip-control-framework-11 (work in | draft-ietf-mediactrl-sip-control-framework-12 (work in | |||
| progress), October 2009. | progress), September 2010. | |||
| [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part One: Format of Internet Message | ||||
| Bodies", RFC 2045, November 1996. | ||||
| [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. | |||
| [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
| Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | |||
| Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | |||
| [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | ||||
| [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | |||
| Types", RFC 3023, January 2001. | Types", RFC 3023, January 2001. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| January 2004. | January 2004. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, January 2005. | RFC 3986, January 2005. | |||
| [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and | ||||
| Registration Procedures", BCP 13, RFC 4288, December 2005. | ||||
| [RFC4574] Levin, O. and G. Camarillo, "The Session Description | [RFC4574] Levin, O. and G. Camarillo, "The Session Description | |||
| Protocol (SDP) Label Attribute", RFC 4574, August 2006. | Protocol (SDP) Label Attribute", RFC 4574, August 2006. | |||
| [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | |||
| BCP 47, RFC 4647, September 2006. | BCP 47, RFC 4647, September 2006. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | ||||
| May 2008. | ||||
| [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | ||||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | ||||
| [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying | [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying | |||
| Languages", BCP 47, RFC 5646, September 2009. | Languages", BCP 47, RFC 5646, September 2009. | |||
| [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | |||
| Specification Version 1.0", W3C Recommendation, | Specification Version 1.0", W3C Recommendation, | |||
| March 2004. | March 2004. | |||
| [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., | ||||
| Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | ||||
| and S. Tryphonas, "Voice Extensible Markup Language | ||||
| (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | ||||
| [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | ||||
| Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | ||||
| A., Porter, B., and K. Rehor, "Voice Extensible Markup | ||||
| Language (VoiceXML) Version 2.1", W3C Recommendation, | ||||
| June 2007. | ||||
| [W3C.REC-SMIL2-20051213] | [W3C.REC-SMIL2-20051213] | |||
| Layaida, N., Mullender, S., Michel, T., Grassel, G., | Koivisto, A., Bulterman, D., Michel, T., Layaida, N., | |||
| Jansen, J., Koivisto, A., Bulterman, D., and D. Zucker, | Zucker, D., Jansen, J., Mullender, S., and G. Grassel, | |||
| "Synchronized Multimedia Integration Language (SMIL 2.1)", | "Synchronized Multimedia Integration Language (SMIL 2.1)", | |||
| World Wide Web Consortium Recommendation REC-SMIL2- | World Wide Web Consortium Recommendation REC-SMIL2- | |||
| 20051213, December 2005, | 20051213, December 2005, | |||
| <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | |||
| [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | |||
| and F. Yergeau, "Extensible Markup Language (XML) 1.0 | and F. Yergeau, "Extensible Markup Language (XML) 1.0 | |||
| (Third Edition)", W3C Recommendation, February 2004. | (Third Edition)", W3C Recommendation, February 2004. | |||
| [XMLSchema:Part2] | [XMLSchema:Part2] | |||
| Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes | |||
| Second Edition", W3C Recommendation, October 2004. | Second Edition", W3C Recommendation, October 2004. | |||
| 13.2. Informative References | 13.2. Informative References | |||
| [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version | [CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version | |||
| 1.0", W3C Working Draft (work in progress), January 2007. | 1.0", W3C Candidate Recommendation (work in progress), | |||
| April 2010. | ||||
| [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-mixer-control-package] | ||||
| McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer | ||||
| Control Package for the Media Control Channel Framework", | ||||
| draft-ietf-mediactrl-mixer-control-package-11 (work in | ||||
| progress), February 2010. | ||||
| [I-D.ietf-xcon-common-data-model] | [I-D.ietf-xcon-common-data-model] | |||
| Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, | Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, | |||
| "Conference Information Data Model for Centralized | "Conference Information Data Model for Centralized | |||
| Conferencing (XCON)", draft-ietf-xcon-common-data-model-18 | Conferencing (XCON)", draft-ietf-xcon-common-data-model-20 | |||
| (work in progress), February 2010. | (work in progress), October 2010. | |||
| [IANA] "IANA registry for RTP Payload Types", | [IANA] "IANA registry for RTP Payload Types", | |||
| <http://www.iana.org/assignments/rtp-parameters>. | <http://www.iana.org/assignments/rtp-parameters>. | |||
| [MIME.mediatypes] | [MIME.mediatypes] | |||
| "IANA registry for MIME Media Types", | "IANA registry for MIME Media Types", | |||
| <http://www.iana.org/assignments/media-types/>. | <http://www.iana.org/assignments/media-types/>. | |||
| [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and | ||||
| Languages", BCP 18, RFC 2277, January 1998. | ||||
| [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio | [RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio | |||
| Package", RFC 2897, August 2000. | Package", RFC 2897, August 2000. | |||
| [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
| A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
| Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
| June 2002. | June 2002. | |||
| [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network | [RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network | |||
| Media Services with SIP", RFC 4240, December 2005. | Media Services with SIP", RFC 4240, December 2005. | |||
| skipping to change at page 150, line 34 ¶ | skipping to change at page 156, line 22 ¶ | |||
| [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server | [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server | |||
| Control Markup Language (MSCML) and Protocol", RFC 5022, | Control Markup Language (MSCML) and Protocol", RFC 5022, | |||
| September 2007. | September 2007. | |||
| [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol | [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol | |||
| Requirements", RFC 5167, March 2008. | Requirements", RFC 5167, March 2008. | |||
| [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup | [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup | |||
| Language (MSML)", RFC 5707, February 2010. | Language (MSML)", RFC 5707, February 2010. | |||
| [VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., | [VXML30] McGlashan, S., Burnett, D., Akolkar, R., Auburn, RJ., | |||
| Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | Baggia, P., Barnett, J., Bodell, M., Carter, J., Oshry, | |||
| and S. Tryphonas, "Voice Extensible Markup Language | M., Rehor, K., Young, M., and R. Hosn, "Voice Extensible | |||
| (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | Markup Language (VoiceXML) Version 3.0", W3C Working | |||
| Draft, August 2010. | ||||
| [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | ||||
| Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | ||||
| A., Porter, B., and K. Rehor, "Voice Extensible Markup | ||||
| Language (VoiceXML) Version 2.1", W3C Recommendation, | ||||
| June 2007. | ||||
| [VXML30] McGlashan, S., Auburn, RJ., Baggia, P., Barnett, J., | ||||
| Bodell, M., Burnett, D., Carter, J., Oshry, M., Rehor, K., | ||||
| Young, M., and R. Hosn, "Voice Extensible Markup Language | ||||
| (VoiceXML) Version 3.0", W3C Working Draft, December 2008. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Scott McGlashan | Scott McGlashan | |||
| Hewlett-Packard | Hewlett-Packard | |||
| Email: smcg.stds01@mcglashan.org | Email: smcg.stds01@mcglashan.org | |||
| Tim Melanchuk | Tim Melanchuk | |||
| Rain Willow Communications | Rain Willow Communications | |||
| End of changes. 144 change blocks. | ||||
| 721 lines changed or deleted | 1011 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/ | ||||