| < draft-ietf-mediactrl-ivr-control-package-03.txt | draft-ietf-mediactrl-ivr-control-package-04.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: June 1, 2009 Rain Willow Communications | Expires: July 31, 2009 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| Avaya | Avaya | |||
| November 28, 2008 | January 27, 2009 | |||
| 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-03 | draft-ietf-mediactrl-ivr-control-package-04 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | This Internet-Draft is submitted to IETF in full conformance with the | |||
| applicable patent or other IPR claims of which he or she is aware | provisions of BCP 78 and BCP 79. | |||
| have been or will be disclosed, and any of which he or she becomes | ||||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| 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 | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on June 1, 2009. | This Internet-Draft will expire on July 31, 2009. | |||
| Copyright Notice | ||||
| Copyright (c) 2009 IETF Trust and the persons identified as the | ||||
| document authors. All rights reserved. | ||||
| This document is subject to BCP 78 and the IETF Trust's Legal | ||||
| Provisions Relating to IETF Documents | ||||
| (http://trustee.ietf.org/license-info) in effect on the date of | ||||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with respect | ||||
| to this document. | ||||
| Abstract | Abstract | |||
| This document defines a Media Control Channel Framework Package for | This document defines a Media Control Channel Framework Package for | |||
| Interactive Voice Response (IVR) dialog interaction on media | Interactive Voice Response (IVR) dialog interaction on media | |||
| connections and conferences. The package defines dialog management | connections and conferences. The package defines dialog management | |||
| request elements for preparing, starting and terminating dialog | request elements for preparing, starting and terminating dialog | |||
| interactions, as well as associated responses and notifications. | interactions, as well as associated responses and notifications. | |||
| Dialog interactions are specified in a dialog language. This package | Dialog interactions are specified in a dialog language. This package | |||
| defines a lightweight IVR dialog language (supporting prompt | defines a lightweight IVR dialog language (supporting prompt | |||
| skipping to change at page 3, line 10 ¶ | skipping to change at page 3, line 10 ¶ | |||
| 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 34 | 4.3.1. <dialog> . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 36 | 4.3.1.1. <prompt> . . . . . . . . . . . . . . . . . . . . 36 | |||
| 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 | 4.3.1.1.1. <variable> . . . . . . . . . . . . . . . . . 38 | |||
| 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 39 | 4.3.1.1.2. <dtmf> . . . . . . . . . . . . . . . . . . . 39 | |||
| 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 40 | 4.3.1.1.3. <par> . . . . . . . . . . . . . . . . . . . . 40 | |||
| 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 | 4.3.1.1.3.1. <seq> . . . . . . . . . . . . . . . . . . 42 | |||
| 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 43 | 4.3.1.2. <control> . . . . . . . . . . . . . . . . . . . . 43 | |||
| 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 46 | 4.3.1.3. <collect> . . . . . . . . . . . . . . . . . . . . 46 | |||
| 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 48 | 4.3.1.3.1. <grammar> . . . . . . . . . . . . . . . . . . 48 | |||
| 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 50 | 4.3.1.4. <record> . . . . . . . . . . . . . . . . . . . . 50 | |||
| 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 53 | 4.3.1.5. <media> . . . . . . . . . . . . . . . . . . . . . 54 | |||
| 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 | 4.3.2. Exit Information . . . . . . . . . . . . . . . . . . 55 | |||
| 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 55 | 4.3.2.1. <promptinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 55 | 4.3.2.2. <controlinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 55 | 4.3.2.2.1. <controlmatch> . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 | 4.3.2.3. <collectinfo> . . . . . . . . . . . . . . . . . . 56 | |||
| 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 56 | 4.3.2.4. <recordinfo> . . . . . . . . . . . . . . . . . . 57 | |||
| 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 56 | 4.3.2.4.1. <mediainfo> . . . . . . . . . . . . . . . . . 57 | |||
| 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 57 | 4.4. Audit Elements . . . . . . . . . . . . . . . . . . . . . 58 | |||
| 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 57 | 4.4.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 58 | |||
| 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 | 4.4.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 59 | |||
| 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 60 | 4.4.2.1. <codecs> . . . . . . . . . . . . . . . . . . . . 61 | |||
| 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 61 | 4.4.2.1.1. <codec> . . . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 | 4.4.2.2. <capabilities> . . . . . . . . . . . . . . . . . 62 | |||
| 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 63 | 4.4.2.2.1. <dialoglanguages> . . . . . . . . . . . . . . 64 | |||
| 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 64 | 4.4.2.2.2. <grammartypes> . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 64 | 4.4.2.2.3. <recordtypes> . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 64 | 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 65 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 66 | |||
| 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 65 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 66 | |||
| 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 66 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 67 | |||
| 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 66 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 67 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 66 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 67 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 66 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 67 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 67 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 74 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 75 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 76 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 77 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 101 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 102 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 101 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 102 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 101 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 102 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 102 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 103 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 102 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 103 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 103 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 104 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 104 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 105 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 104 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 105 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 105 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 106 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 107 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 108 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 108 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 109 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 109 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 110 | |||
| 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 109 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 110 | |||
| 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 110 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 111 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 113 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 114 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 116 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 117 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 116 | 8.1. Control Package Registration . . . . . . . . . . . . . . 117 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 116 | 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 117 | |||
| 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 116 | 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 117 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 117 | 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 118 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 127 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 129 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 128 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 130 | |||
| 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 129 | 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 131 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 136 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 139 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 136 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 139 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 137 | 13.2. Informative References . . . . . . . . . . . . . . . . . 140 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 139 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 142 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . 140 | ||||
| 1. Introduction | 1. Introduction | |||
| The Media Control Channel Framework | The Media Control Channel Framework | |||
| ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic | ([I-D.ietf-mediactrl-sip-control-framework]) provides a generic | |||
| approach for establishment and reporting capabilities of remotely | approach for establishment and reporting capabilities of remotely | |||
| initiated commands. The Control Framework utilizes many functions | initiated commands. The Control Framework utilizes many functions | |||
| provided by the Session Initiation Protocol [RFC3261] (SIP) for the | provided by the Session Initiation Protocol [RFC3261] (SIP) for the | |||
| rendezvous and establishment of a reliable channel for control | rendezvous and establishment of a reliable channel for control | |||
| interactions. The Control Framework also introduces the concept of a | interactions. The Control Framework also introduces the concept of a | |||
| skipping to change at page 6, line 8 ¶ | skipping to change at page 6, line 8 ¶ | |||
| the Media Control Channel Framework. | the Media Control Channel Framework. | |||
| Second, its design is aligned with key concepts of the web model as | Second, its design is aligned with key concepts of the web model as | |||
| defined in W3C Voice Browser languages. The key dialog management | defined in W3C Voice Browser languages. The key dialog management | |||
| mechanism is closely aligned with CCXML ([CCXML10]). The dialog | mechanism is closely aligned with CCXML ([CCXML10]). The dialog | |||
| functionality defined in this package can be largely seen as a subset | functionality defined in this package can be largely seen as a subset | |||
| of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, | of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, | |||
| DTMF collection and media recording features are incorporated, but | DTMF collection and media recording features are incorporated, but | |||
| not any advanced VoiceXML constructs (such as <form>, its | not any advanced VoiceXML constructs (such as <form>, its | |||
| interpretation algorithm, or a dynamic data model). As W3C develops | interpretation algorithm, or a dynamic data model). As W3C develops | |||
| VoiceXML 3.0, we expect to see further alignment, especially in | VoiceXML 3.0 ([VXML30]), we expect to see further alignment, | |||
| providing a set of basic independent primitive elements (such as | especially in providing a set of basic independent primitive elements | |||
| prompt, collect, record and runtime controls) which can be re-used in | (such as prompt, collect, record and runtime controls) which can be | |||
| different dialog languages. | re-used in different dialog languages. | |||
| By reusing and building upon design patterns from these approaches to | By reusing and building upon design patterns from these approaches to | |||
| IVR languages, this package is intended to provide a foundation which | IVR languages, this package is intended to provide a foundation which | |||
| is familiar to current IVR developers and sufficient for most IVR | is familiar to current IVR developers and sufficient for most IVR | |||
| applications, as well as a path to other languages which address more | applications, as well as a path to other languages which address more | |||
| advanced applications. | advanced applications. | |||
| This control package defines a lightweight IVR dialog language. The | This control package defines a lightweight IVR dialog language. The | |||
| scope of this dialog language is the following IVR functionality: | scope of this dialog language is the following IVR functionality: | |||
| skipping to change at page 25, line 26 ¶ | skipping to change at page 25, line 26 ¶ | |||
| 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. The following values MUST be used for common types of | |||
| media: "audio" for audio media, and "video" for video media. The | media: "audio" for audio media, and "video" for video media. The | |||
| attribute is mandatory. | attribute is mandatory. | |||
| label: a string indicating the SDP label associated with a media | label: a string indicating the SDP label associated with a media | |||
| stream ([RFC4574]). The attribute is optional. | stream ([RFC4574]). The attribute is optional. | |||
| direction: a string indicating the direction of the media flow | direction: a string indicating the direction of the media flow | |||
| between a dialog and its end point conference or connection. | between a dialog and its end point conference or connection. | |||
| Defined values are: "sendrecv" (media can be sent and received), | Defined values are: "sendrecv" (the dialog can send and receive | |||
| "sendonly" (media can only be sent), "recvonly" (media can only be | media), "sendonly" (the dialog can only send media), "recvonly" | |||
| received) and "inactive" (stream is not to be used). The default | (the dialog can only receive media) and "inactive" (stream is not | |||
| value is "sendrecv". The attribute is optional. | to be used). The 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 region within a mixer video | |||
| layout where a media stream is displayed (Section 4.2.2.2.1). The | layout where a media stream is displayed (Section 4.2.2.2.1). The | |||
| element is optional. | element is optional. | |||
| <priority>: an element to configure priority associated with the | <priority>: an element to configure priority associated with the | |||
| stream in the conference mix (Section 4.2.2.2.2). The element is | stream in the conference mix (Section 4.2.2.2.2). The element is | |||
| optional. | optional. | |||
| skipping to change at page 45, line 52 ¶ | skipping to change at page 45, line 52 ¶ | |||
| initialization: | initialization: | |||
| 1. If an error occurs during execution, then the MS terminates | 1. If an error occurs during execution, then the MS terminates | |||
| runtime control and the error is reported to the dialog | runtime control and the error is reported to the dialog | |||
| container. The MS MAY report controls executed successfully | container. The MS MAY report controls executed successfully | |||
| before the error in <controlinfo> (see Section 4.3.2.2). | before the error in <controlinfo> (see Section 4.3.2.2). | |||
| 2. Runtime controls are active only during prompt playback (if no | 2. Runtime controls are active only during prompt playback (if no | |||
| <prompt> element is specified, then runtime controls are | <prompt> element is specified, then runtime controls are | |||
| ignored). If DTMF input matches any specified keys (for example | ignored). If DTMF input matches any specified keys (for example | |||
| the ffkey), then the appropriate operation is applied | the ffkey), then the MS applies the appropriate operation | |||
| immediately. If a seek operation (ffkey, rwkey) attempts to go | immediately. If a seek operation (ffkey, rwkey) attempts to go | |||
| beyond the beginning or end of the prompt queue, then it is | beyond the beginning or end of the prompt queue, then the MS | |||
| automatically truncated to the prompt beginning or end | automatically truncates it to the prompt queue beginning or end | |||
| respectively. If the pause operation attempts to pause output | respectively. If a volume operation (voldnkey, volupkey) | |||
| when it is already paused, then the operation is ignored. If the | ||||
| resume operation attempts to resume when the prompts are not | ||||
| paused, then the operation is ignored. If a volume operations | ||||
| attempts to go beyond the minimum or maximum volume supported by | attempts to go beyond the minimum or maximum volume supported by | |||
| the platform, then the operation is ignored. | the platform, then the MS automatically limits the operation to | |||
| minimum or maximum supported volume respectively. If a speed | ||||
| operation (speeddnkey, speedupkey) attempts to go beyond the | ||||
| minimum or maximum playback speed supported by the platform, then | ||||
| the MS automatically limits the operation to minimum or maximum | ||||
| supported speed respectively. If the pause operation attempts to | ||||
| pause output when it is already paused, then the operation is | ||||
| ignored. If the resume operation attempts to resume when the | ||||
| prompts are not paused, then the operation is ignored. If a | ||||
| seek, volume or speed operation is applied when output is paused, | ||||
| then the MS also resumes output automatically. | ||||
| 3. If DTMF control subscription has been specified for the dialog, | 3. If DTMF control subscription has been specified for the dialog, | |||
| then each DTMF match of a control operation is reported in a | then each DTMF match of a control operation is reported in a | |||
| <dtmfnotify> notification event (Section 4.2.5.2). | <dtmfnotify> notification event (Section 4.2.5.2). | |||
| 4. When the dialog exits, all control matches are reported in a | 4. When the dialog exits, all control matches are reported in a | |||
| <controlinfo> element (Section 4.3.2.2). | <controlinfo> element (Section 4.3.2.2). | |||
| 4.3.1.3. <collect> | 4.3.1.3. <collect> | |||
| skipping to change at page 109, line 24 ¶ | skipping to change at page 110, line 24 ¶ | |||
| <controlinfo> | <controlinfo> | |||
| </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"> | |||
| <dialogstart repeatCount="0" connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS"> | |||
| <dialog> | <dialog repeatCount="0"> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| <subscribe> | <subscribe> | |||
| <dtmfsub matchmode="collect"/> | <dtmfsub matchmode="collect"/> | |||
| </subscribe> | </subscribe> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| Each time the user input the DTMF matching the grammar, the following | Each time the user input the DTMF matching the grammar, the following | |||
| notification event would be sent: | notification event would be sent: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="vxi81"> | <event dialogid="vxi81"> | |||
| <dtmfnotify matchmode="collect" dtmf="12" | <dtmfnotify matchmode="collect" dtmf="12" | |||
| timestamp="2008-05-12T12:13:14Z"/> | timestamp="2008-05-12T12:13:14Z"/> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| skipping to change at page 113, line 27 ¶ | skipping to change at page 114, line 27 ¶ | |||
| Adequate transport protection and authentication are critical, | Adequate transport protection and authentication are critical, | |||
| especially when the implementation is deployed in open networks. If | especially when the implementation is deployed in open networks. If | |||
| the implementation fails to correctly address these issues, it risks | the implementation fails to correctly address these issues, it risks | |||
| exposure to malicious attacks, including (but not limited to): | exposure to malicious attacks, including (but not limited to): | |||
| Denial of Service: An attacker could insert a request message into | Denial of Service: An attacker could insert a request message into | |||
| the transport stream causing specific dialogs on the MS to be | the transport stream causing specific dialogs on the MS to be | |||
| terminated immediately. For example, <dialogterminate | terminated immediately. For example, <dialogterminate | |||
| dialogid="XXXX" immediate="true">, where the value of "XXXX" could | dialogid="XXXX" immediate="true">, where the value of "XXXX" could | |||
| be guessed or discovered by auditing active dialogs on the MS | be guessed or discovered by auditing active dialogs on the MS | |||
| using an <audit> request. | using an <audit> request. Likewise, an attacker could impersonate | |||
| the MS and insert error responses into the transport stream so | ||||
| denying the AS access to package capabilities. | ||||
| Resource Exhaustion: An attacker could insert into the control | Resource Exhaustion: An attacker could insert into the control | |||
| channel new request messages (or modify existing ones) with, for | channel new request messages (or modify existing ones) with, for | |||
| instance, <dialogprepare> elements with a very long fetchtimeout | instance, <dialogprepare> elements with a very long fetchtimeout | |||
| attribute and a bogus source URL. At some point this will exhaust | attribute and a bogus source URL. At some point this will exhaust | |||
| the number of connections that the MS is able to make. | the number of connections that the MS is able to make. | |||
| Phishing: An attacker with access to the control channel could | Phishing: An attacker with access to the control channel could | |||
| modify the "loc" attribute of the <media> element in a dialog to | modify the "loc" attribute of the <media> element in a dialog to | |||
| point to some other audio file that had different information from | point to some other audio file that had different information from | |||
| skipping to change at page 114, line 32 ¶ | skipping to change at page 115, line 32 ¶ | |||
| The Media Control Channel Framework permits additional security | The Media Control Channel Framework permits additional security | |||
| policy management, including resource access and control channel | policy management, including resource access and control channel | |||
| usage, to be specified at the control package level beyond that | usage, to be specified at the control package level beyond that | |||
| specified for the Media Control Channel Framework (see Section 11.3 | specified for the Media Control Channel Framework (see Section 11.3 | |||
| of [I-D.ietf-mediactrl-sip-control-framework]). | of [I-D.ietf-mediactrl-sip-control-framework]). | |||
| Since creation of IVR dialogs is associated with media processing | Since creation of IVR dialogs is associated with media processing | |||
| resources (e.g. DTMF detectors, media playback and recording, etc) | resources (e.g. DTMF detectors, media playback and recording, etc) | |||
| on the MS, the security policy for this control package needs to | on the MS, the security policy for this control package needs to | |||
| address how such dialogs are securely managed across more than one | address how such dialogs are securely managed across more than one | |||
| control channels. The identity of control channels is determined by | control channels. Such a security policy is only useful for secure, | |||
| the channel identifier: i.e. the value of the cfw-id attribute in the | confidential and integrity protected channels. The identity of | |||
| SDP and Dialog-ID header in the channel protocol (see | control channels is determined by the channel identifier: i.e. the | |||
| [I-D.ietf-mediactrl-sip-control-framework]). Channels are the same | value of the cfw-id attribute in the SDP and Dialog-ID header in the | |||
| if they have the same identifier; otherwise, they are different. | channel protocol (see [I-D.ietf-mediactrl-sip-control-framework]). | |||
| This control package imposes the following additional security | Channels are the same if they have the same identifier; otherwise, | |||
| policies: | they are different. This control package imposes the following | |||
| additional security policies: | ||||
| Responses: The MS MUST only send a response to a dialog management | Responses: The MS MUST only send a response to a dialog management | |||
| or audit request using the same control channel as the one used to | or audit request using the same control channel as the one used to | |||
| send the request. | send the request. | |||
| Notifications: The MS MUST only send notification events for a | Notifications: The MS MUST only send notification events for a | |||
| dialog using the same control channel as it received the request | dialog using the same control channel as it received the request | |||
| creating the dialog. | creating the dialog. | |||
| Auditing: The MS MUST only provide audit information about dialogs | Auditing: The MS MUST only provide audit information about dialogs | |||
| skipping to change at page 117, line 9 ¶ | skipping to change at page 118, line 9 ¶ | |||
| XML namespace: urn:ietf:params:xml:ns:msc-ivr | XML namespace: urn:ietf:params:xml:ns:msc-ivr | |||
| 8.3. MIME Type Registration | 8.3. MIME Type Registration | |||
| MIME type: application/msc-ivr+xml | MIME type: application/msc-ivr+xml | |||
| 9. Change Summary | 9. Change Summary | |||
| Note to RFC Editor: Please remove this whole section. | Note to RFC Editor: Please remove this whole section. | |||
| The following are the changes between the -04 and -03 versions. | ||||
| o 4.2.2.2: Clarified that media stream direction is relative to the | ||||
| dialog (the examples showed this but not the definition). | ||||
| o 4.3.1.2: Clarified that speed. volume and seek <control> | ||||
| operations beyond the platform's capability are automatically | ||||
| limited to the platform's minimum/maximum. Also clarified that | ||||
| when the output is paused, then the MS resumes output | ||||
| automatically on speed, volume and seek control operations. | ||||
| o 6.2.5: Corrected syntax error in example | ||||
| o 7 Security: Added a denial of service example where the attacker | ||||
| impersonates the MS. | ||||
| o 7 Security: Clarified that the package security policy for | ||||
| multiple channels is only useful if the channels themselves are | ||||
| secured. | ||||
| o Added reference for VoiceXML 3.0 | ||||
| o Updated acknowledgements. | ||||
| o Appendix A: 12.2: Corrected syntax error in example | ||||
| o Appendix A: 12.2.1: Changed behavior for how VoiceXML session | ||||
| information is populated for a conference; session.conference.name | ||||
| is specified. Added session.connection.originator variable for a | ||||
| connection (MS receives inbound connections but does not create | ||||
| outbound connections). | ||||
| o Appendix A: 12.2.2: Added session.conference.media for conference | ||||
| media information. Clarified that direction is relative to the | ||||
| dialog. | ||||
| o Appendix A: 12.2.2: Corrected syntax error in example | ||||
| o Appendix A: 12.2.3: Changed session parameter mapping to | ||||
| session.values using an associative array. | ||||
| o Appendix A: 12.5: Changed behavior for handling VoiceXML Call | ||||
| Transfer requests to raising an error.unsupported.transfer event. | ||||
| The following are the major changes between the -03 and -02 versions. | The following are the major changes between the -03 and -02 versions. | |||
| o Conformance language: Removed unnecessary MUSTs, especially for | o Conformance language: Removed unnecessary MUSTs, especially for | |||
| error codes. Removed lowercase 'should', 'must' and 'may'. | error codes. Removed lowercase 'should', 'must' and 'may'. | |||
| o Introduction: Clarified which MediaCtrl IVR Requirements are | o Introduction: Clarified which MediaCtrl IVR Requirements are | |||
| satisfied by this package. Added link to Security Considerations | satisfied by this package. Added link to Security Considerations | |||
| Section (also in Section 4.0 and 4.4). | Section (also in Section 4.0 and 4.4). | |||
| o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS | o 4.0: Element definitions. Changed RECOMMENDED to MUST for MS | |||
| skipping to change at page 128, line 11 ¶ | skipping to change at page 130, line 11 ¶ | |||
| Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary | Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary | |||
| Barnes and Steve Buko who provided valuable feedback, input and text | Barnes and Steve Buko who provided valuable feedback, input and text | |||
| to this document. | to this document. | |||
| 11. Acknowledgments | 11. Acknowledgments | |||
| The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave | The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave | |||
| Burke, Dan York and Steve Buko for expert reviews of this work. | Burke, Dan York and Steve Buko 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. | and provided a great deal of invaluable input. Donald Eastlake | |||
| carried out a thorough security review. | ||||
| 12. Appendix A: Using VoiceXML as a dialog language | 12. Appendix A: Using VoiceXML as a dialog language | |||
| The IVR control package allows, but does not require, the MS to | The IVR control package allows, but does not require, the MS to | |||
| support other dialog languages by referencing an external dialog | support other dialog languages by referencing an external dialog | |||
| document. This appendix provides MS implementations which support | document. This appendix provides MS implementations which support | |||
| the VoiceXML dialog language ([VXML20], [VXML21]) with additional | the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with | |||
| details about using these dialogs in this package. | additional details about using these dialogs in this package. | |||
| This appendix covers preparing (Section 12.1), starting | This appendix covers preparing (Section 12.1), starting | |||
| (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) | (Section 12.2), terminating (Section 12.3) and exiting (Section 12.4) | |||
| VoiceXML dialogs as well as handling VoiceXML call transfer | VoiceXML dialogs as well as handling VoiceXML call transfer | |||
| (Section 12.5). | (Section 12.5). | |||
| 12.1. Preparing a VoiceXML dialog | 12.1. Preparing a VoiceXML dialog | |||
| A VoiceXML dialog is prepared by sending the MS a request containing | A VoiceXML dialog is prepared by sending the MS a request containing | |||
| a <dialogprepare> element (Section 4.2.1). The type attribute is set | a <dialogprepare> element (Section 4.2.1). The type attribute is set | |||
| skipping to change at page 130, line 8 ¶ | skipping to change at page 132, line 8 ¶ | |||
| A VoiceXML dialog is started by sending the MS a request containing a | A VoiceXML dialog is started by sending the MS a request containing a | |||
| <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has | <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has | |||
| already been prepared using <dialogprepare>, then the MS starts the | already been prepared using <dialogprepare>, then the MS starts the | |||
| dialog indicated by the prepareddialogid attribute. Otherwise, a new | dialog indicated by the prepareddialogid attribute. Otherwise, a new | |||
| VoiceXML dialog can be started by setting the type attribute to | VoiceXML dialog can be started by setting the type attribute to | |||
| "application/voicexml+xml" and the src attribute to the URI of the | "application/voicexml+xml" and the src attribute to the URI of the | |||
| VoiceXML document. For example: | VoiceXML document. 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 type="application/voicexml+xml" | <dialogstart connectionid="ssd3r3~sds345b" | |||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"/> | fetchtimeout="15s"/> | |||
| </mscivr> | </mscivr> | |||
| Note that the fetchtimeout attribute is not defined in VoiceXML for | Note that the fetchtimeout attribute is not defined in VoiceXML for | |||
| an initial document but the MS MUST support this attribute in its | an initial document but the MS MUST support this attribute in its | |||
| VoiceXML environment. Note also that support for <dtmfsub> | VoiceXML environment. Note also that support for <dtmfsub> | |||
| subscriptions (Section 4.2.2.1.1) and their associated dialog | subscriptions (Section 4.2.2.1.1) and their associated dialog | |||
| notification events is not defined in VoiceXML. If such a | notification events is not defined in VoiceXML. If such a | |||
| subscription is specified in a <dialogstart> request, then the MS | subscription is specified in a <dialogstart> request, then the MS | |||
| skipping to change at page 130, line 42 ¶ | skipping to change at page 132, line 43 ¶ | |||
| If the connectionid attribute is specified, the MS assigns protocol | If the connectionid attribute is specified, the MS assigns protocol | |||
| information from the SIP dialog associated with the connection to the | information from the SIP dialog associated with the connection to the | |||
| following session variables in VoiceXML: | following session variables in VoiceXML: | |||
| session.connection.local.uri Evaluates to the SIP URI specified in | session.connection.local.uri Evaluates to the SIP URI specified in | |||
| the To: header of the initial INVITE | the To: header of the initial INVITE | |||
| session.connection.remote.uri Evaluates to the SIP URI specified in | session.connection.remote.uri Evaluates to the SIP URI specified in | |||
| the From: header of the initial INVITE | 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 | session.connection.protocol.name Evaluates to "sip". Note that this | |||
| is intended to reflect the use of SIP in general, and does not | is intended to reflect the use of SIP in general, and does not | |||
| distinguish between whether the connection accesses the MS via SIP | distinguish between whether the connection accesses the MS via SIP | |||
| or SIPS procedures. | or SIPS procedures. | |||
| session.connection.protocol.version Evaluates to "2.0". | session.connection.protocol.version Evaluates to "2.0". | |||
| session.connection.redirect This array is populated by information | session.connection.redirect This array is populated by information | |||
| contained in the History-Info ([RFC4244]) header in the initial | contained in the History-Info ([RFC4244]) header in the initial | |||
| INVITE or is otherwise undefined. Each entry (hi-entry) in the | INVITE or is otherwise undefined. Each entry (hi-entry) in the | |||
| skipping to change at page 131, line 46 ¶ | skipping to change at page 133, line 48 ¶ | |||
| where each key in the array is the non-compact name of a SIP | 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 | header in the initial INVITE converted to lower-case (note the | |||
| case conversion does not apply to the header value). If multiple | case conversion does not apply to the header value). If multiple | |||
| header fields of the same field name are present, the values are | header fields of the same field name are present, the values are | |||
| combined into a single comma-separated value. Implementations | combined into a single comma-separated value. Implementations | |||
| MUST at a minimum include the Call-ID header and MAY include other | MUST at a minimum include the Call-ID header and MAY include other | |||
| headers. For example, | headers. For example, | |||
| session.connection.protocol.sip.headers["call-id"] evaluates to | session.connection.protocol.sip.headers["call-id"] evaluates to | |||
| the Call-ID of the SIP dialog. | the Call-ID of the SIP dialog. | |||
| If a conferenceid attribute is specified and the MS supports using a | If a conferenceid attribute is specified, then the MS populates the | |||
| VoiceXML dialog on a conference, then the MS populates the VoiceXML | following session variables in VoiceXML: | |||
| session protocol variables using an implementation specific | ||||
| mechanism. Otherwise, the MS sends an 439 error response | session.conference.name Evaluates to the value of the conferenceid | |||
| (Section 4.5). | attribute | |||
| 12.2.2. Session media stream information | 12.2.2. Session media stream information | |||
| The media streams of the connection or conference to use for the | The media streams of the connection or conference to use for the | |||
| dialog are described in Section 4.2.2, including use of <stream> | 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 | elements (Section 4.2.2.2) if specified. The MS maps media stream | |||
| information into VoiceXML session variables as follows: | information into the VoiceXML session variable | |||
| session.connection.protocol.sip.media for a connection, and | ||||
| session.connection.protocol.sip.media This is an array where each | session.conference.media for a conference. In both variables, the | |||
| array element is an object with the following properties: | 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 | type This required property indicates the type of the media | |||
| associated with the stream (see Section 4.2.2.2 <stream> type | associated with the stream (see Section 4.2.2.2 <stream> type | |||
| attribute definition) | attribute definition) | |||
| direction This required property indicates the directionality of | direction This required property indicates the directionality of the | |||
| the media relative to session.connection.originator (see | media relative to the dialog (see Section 4.2.2.2 <stream> | |||
| Section 4.2.2.2 <stream> direction attribute definition). | direction attribute definition). | |||
| format This property is optional. If defined, the value of the | format This property is optional. If defined, the value of the | |||
| property is an array. Each array element is an object which | property is an array. Each array element is an object which | |||
| specifies information about one format of the media stream. | specifies information about one format of the media stream. The | |||
| The object contains at least one property called name whose | object contains at least one property called name whose value is | |||
| value is the subtype of the media format ([RFC4855]). Other | the subtype of the media format ([RFC4855]). Other properties may | |||
| properties may be defined with string values; these correspond | be defined with string values; these correspond to required and, | |||
| to required and, if defined, optional parameters of the format. | if defined, optional parameters of the format. | |||
| As a consequence of this definition, there is an array entry in | As a consequence of this definition, when a connectionid is specified | |||
| session.connection.protocol.sip.media for each media stream used by | there is an array entry in session.connection.protocol.sip.media for | |||
| the VoiceXML dialog. For an example, consider a connection with bi- | each media stream used by the VoiceXML dialog. For an example, | |||
| directional G.711 mu-law audio sampled at 8kHz where the dialog is | consider a connection with bi-directional G.711 mu-law audio sampled | |||
| started with | at 8kHz where the dialog is started with | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart type="application/voicexml+xml" | <dialogstart connectionid="ssd3r3~sds345b" | |||
| type="application/voicexml+xml" | ||||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"> | fetchtimeout="15s"> | |||
| <stream type="audio" direction="sendonly"/> | <stream type="audio" direction="sendonly"/> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In this case, session.connection.protocol.sip.media[0].type evaluates | In this case, session.connection.protocol.sip.media[0].type evaluates | |||
| to "audio", session.connection.protocol.sip.media[0].direction to | to "audio", session.connection.protocol.sip.media[0].direction to | |||
| "sendonly", and | "sendonly" (i.e. this dialog only sends media to the connection - it | |||
| does not receive media from the connection), and | ||||
| session.connection.protocol.sip.media[0].format[0].name evaluates to | session.connection.protocol.sip.media[0].format[0].name evaluates to | |||
| "audio/PCMU" and | "audio/PCMU" and | |||
| session.connection.protocol.sip.media[0].format[0].rate evaluates to | session.connection.protocol.sip.media[0].format[0].rate evaluates to | |||
| "8000". | "8000". | |||
| Note that this session variable is updated if the connection or | Note that the session variable is updated if the connection or | |||
| conference media session characteristics for the VoiceXML dialog | conference media session characteristics for the VoiceXML dialog | |||
| change (i.e. due to a SIP re-INVITE). | change (e.g. due to a SIP re-INVITE). | |||
| 12.2.3. Session parameter information | 12.2.3. Session parameter information | |||
| Parameter information is specified in the <params> child element of | Parameter information is specified in the <params> child element of | |||
| <dialogstart>, where each parameter is specified using a <param> | <dialogstart>, where each parameter is specified using a <param> | |||
| element. The MS maps parameter information into VoiceXML session | element. The MS maps parameter information into VoiceXML session | |||
| variables as follows: | variables as follows: | |||
| session.connection.params This is an array mapped to the <params> | session.values This is an associative array mapped to the <params> | |||
| element. It is undefined if a <params> element is not specified. | element. It is undefined if a <params> element is not specified. | |||
| Each object in the array corresponds to a <param> child of the | Array keys and values are formed from <param> children of the | |||
| <params> element. Each object contains three required properties: | <params> element. Each array key is the value of the name | |||
| a "name" property evaluating to the value of the name attribute of | attribute of a <param> element. If the same name is used in more | |||
| the <param> element: a "type" property evaluating to the value of | than one <param> element, then the array key is associated with | |||
| the type attribute; and a "content" property evaluating to the | the last <param> in document order. The corresponding value for | |||
| content of the <param>. | 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: | For example, a VoiceXML dialog started with one 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"> | |||
| <dialogstart type="application/voicexml+xml" | <dialogstart type="application/voicexml+xml" | |||
| src="http://www.example.com/mydialog.vxml" | src="http://www.example.com/mydialog.vxml" | |||
| fetchtimeout="15s"> | fetchtimeout="15s"> | |||
| <params> | <params> | |||
| <param name="mode">playannouncement</param> | <param name="mode">playannouncement</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In this case, session.connection.params would be defined with one | In this case, session.values would be defined with one item in the | |||
| object in the array where session.connection.params[0].name evaluates | array where session.values['mode'].type evaluates to "text/plain" | |||
| to "mode", session.connection.params[0].type evaluates to "text/ | (the default value), session.values['mode'].content evaluates to | |||
| plain" (the default value) and session.connection.params[0].content | "playannouncement" and session.values['mode'].toString() also | |||
| evaluates to "playannouncement". | evaluates to "playannouncement". | |||
| The MS sends an error response (see Section 4.2.2) if a <param> is | 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). | not supported by the MS (e.g. the parameter type is not supported). | |||
| 12.3. Terminating a VoiceXML dialog | 12.3. Terminating a VoiceXML dialog | |||
| When the MS receives a request with a <dialogterminate> element | When the MS receives a request with a <dialogterminate> element | |||
| (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event | (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event | |||
| into the specified VoiceXML dialog. Note that if the immediate | into the specified VoiceXML dialog. Note that if the immediate | |||
| skipping to change at page 135, line 47 ¶ | skipping to change at page 138, line 14 ¶ | |||
| 12.5. Call Transfer | 12.5. Call Transfer | |||
| While VoiceXML is at its core a dialog language, it also provides | While VoiceXML is at its core a dialog language, it also provides | |||
| optional call transfer capability. It is NOT RECOMMENDED to use | optional call transfer capability. It is NOT RECOMMENDED to use | |||
| VoiceXML's call transfer capability in networks involving Application | VoiceXML's call transfer capability in networks involving Application | |||
| Servers. Rather, the AS itself can provide call routing | Servers. Rather, the AS itself can provide call routing | |||
| functionality by taking signaling actions based on the data returned | functionality by taking signaling actions based on the data returned | |||
| to it, either through VoiceXML's own data submission mechanisms or | to it, either through VoiceXML's own data submission mechanisms or | |||
| through the mechanism described in Section 12.4. If the MS | through the mechanism described in Section 12.4. If the MS | |||
| encounters a VoiceXML dialog using call transfer capability, the MS | encounters a VoiceXML dialog requesting call transfer capability, the | |||
| SHOULD terminate the VoiceXML dialog and return a <dialogexit> | MS SHOULD raise an error event in the VoiceXML dialog execution | |||
| notification event reporting an execution error. | 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-07 (work in | draft-ietf-mediactrl-sip-control-framework-08 (work in | |||
| progress), November 2008. | progress), December 2008. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media | |||
| Types", RFC 3023, January 2001. | Types", RFC 3023, January 2001. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, January 2005. | RFC 3986, January 2005. | |||
| skipping to change at page 136, line 39 ¶ | skipping to change at page 139, line 39 ¶ | |||
| Languages", BCP 47, RFC 4646, September 2006. | Languages", BCP 47, RFC 4646, September 2006. | |||
| [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", | |||
| BCP 47, RFC 4647, September 2006. | BCP 47, RFC 4647, September 2006. | |||
| [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | [SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar | |||
| Specification Version 1.0", W3C Recommendation, | Specification Version 1.0", W3C Recommendation, | |||
| March 2004. | March 2004. | |||
| [W3C.REC-SMIL2-20051213] | [W3C.REC-SMIL2-20051213] | |||
| Zucker, D., Michel, T., Jansen, J., Mullender, S., | Jansen, J., Grassel, G., Bulterman, D., Layaida, N., | |||
| Layaida, N., Grassel, G., Koivisto, A., and D. Bulterman, | Zucker, D., Michel, T., Mullender, S., and A. Koivisto, | |||
| "Synchronized Multimedia Integration Language (SMIL 2.1)", | "Synchronized Multimedia Integration Language (SMIL 2.1)", | |||
| World Wide Web Consortium Recommendation REC-SMIL2- | World Wide Web Consortium Recommendation REC-SMIL2- | |||
| 20051213, December 2005, | 20051213, December 2005, | |||
| <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | <http://www.w3.org/TR/2005/REC-SMIL2-20051213>. | |||
| [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., | |||
| and F. Yergeau, "Extensible Markup Language (XML) 1.0 | and F. Yergeau, "Extensible Markup Language (XML) 1.0 | |||
| (Third Edition)", W3C Recommendation, February 2004. | (Third Edition)", W3C Recommendation, February 2004. | |||
| [XMLSchema:Part2] | [XMLSchema:Part2] | |||
| skipping to change at page 139, line 5 ¶ | skipping to change at page 141, line 39 ¶ | |||
| Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., | |||
| and S. Tryphonas, "Voice Extensible Markup Language | and S. Tryphonas, "Voice Extensible Markup Language | |||
| (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | (VoiceXML) Version 2.0", W3C Recommendation, March 2004. | |||
| [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | [VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., | |||
| Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, | |||
| A., Porter, B., and K. Rehor, "Voice Extensible Markup | A., Porter, B., and K. Rehor, "Voice Extensible Markup | |||
| Language (VoiceXML) Version 2.1", W3C Recommendation, | Language (VoiceXML) Version 2.1", W3C Recommendation, | |||
| June 2007. | June 2007. | |||
| [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 | |||
| Gustav III:s boulevard 36 | Gustav III:s boulevard 36 | |||
| SE-16985 Stockholm, Sweden | SE-16985 Stockholm, Sweden | |||
| Email: scott.mcglashan@hp.com | Email: scott.mcglashan@hp.com | |||
| Tim Melanchuk | Tim Melanchuk | |||
| skipping to change at page 140, line 4 ¶ | skipping to change at line 6214 ¶ | |||
| Email: tim.melanchuk@gmail.com | Email: tim.melanchuk@gmail.com | |||
| Chris Boulton | Chris Boulton | |||
| Avaya | Avaya | |||
| Building 3 | Building 3 | |||
| Wern Fawr Lane | Wern Fawr Lane | |||
| St Mellons | St Mellons | |||
| Cardiff, South Wales CF3 5EA | Cardiff, South Wales CF3 5EA | |||
| Email: cboulton@avaya.com | Email: cboulton@avaya.com | |||
| Full Copyright Statement | ||||
| Copyright (C) The IETF Trust (2008). | ||||
| This document is subject to the rights, licenses and restrictions | ||||
| contained in BCP 78, and except as set forth therein, the authors | ||||
| retain all their rights. | ||||
| This document and the information contained herein are provided on an | ||||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | ||||
| THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | ||||
| OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | ||||
| THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
| Intellectual Property | ||||
| The IETF takes no position regarding the validity or scope of any | ||||
| Intellectual Property Rights or other rights that might be claimed to | ||||
| pertain to the implementation or use of the technology described in | ||||
| this document or the extent to which any license under such rights | ||||
| might or might not be available; nor does it represent that it has | ||||
| made any independent effort to identify any such rights. Information | ||||
| on the procedures with respect to rights in RFC documents can be | ||||
| found in BCP 78 and BCP 79. | ||||
| Copies of IPR disclosures made to the IETF Secretariat and any | ||||
| assurances of licenses to be made available, or the result of an | ||||
| attempt made to obtain a general license or permission for the use of | ||||
| such proprietary rights by implementers or users of this | ||||
| specification can be obtained from the IETF on-line IPR repository at | ||||
| http://www.ietf.org/ipr. | ||||
| The IETF invites any interested party to bring to its attention any | ||||
| copyrights, patents or patent applications, or other proprietary | ||||
| rights that may cover technology that may be required to implement | ||||
| this standard. Please address the information to the IETF at | ||||
| ietf-ipr@ietf.org. | ||||
| End of changes. 41 change blocks. | ||||
| 146 lines changed or deleted | 231 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/ | ||||