| < draft-ietf-mediactrl-ivr-control-package-04.txt | draft-ietf-mediactrl-ivr-control-package-05.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: July 31, 2009 Rain Willow Communications | Expires: August 24, 2009 Rain Willow Communications | |||
| C. Boulton | C. Boulton | |||
| Avaya | NS-Technologies | |||
| January 27, 2009 | February 20, 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-04 | draft-ietf-mediactrl-ivr-control-package-05 | |||
| 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 to IETF 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), 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. | |||
| skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
| 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 July 31, 2009. | This Internet-Draft will expire on August 24, 2009. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 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 | |||
| skipping to change at page 3, line 37 ¶ | skipping to change at page 3, line 37 ¶ | |||
| 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 65 | 4.4.2.2.4. <prompttypes> . . . . . . . . . . . . . . . . 65 | |||
| 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 66 | 4.4.2.2.5. <variables> . . . . . . . . . . . . . . . . . 66 | |||
| 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 66 | 4.4.2.2.5.1. <variabletype> . . . . . . . . . . . . . 66 | |||
| 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 67 | 4.4.2.2.6. <maxpreparedduration> . . . . . . . . . . . . 67 | |||
| 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 67 | 4.4.2.2.7. <maxrecordduration> . . . . . . . . . . . . . 67 | |||
| 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 67 | 4.4.2.3. <dialogs> . . . . . . . . . . . . . . . . . . . . 67 | |||
| 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 67 | 4.4.2.3.1. <dialogaudit> . . . . . . . . . . . . . . . . 67 | |||
| 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 | 4.5. Response Status Codes . . . . . . . . . . . . . . . . . . 68 | |||
| 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 75 | 4.6. Type Definitions . . . . . . . . . . . . . . . . . . . . 75 | |||
| 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 77 | 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 77 | |||
| 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 102 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 104 | |||
| 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 102 | 6.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 104 | |||
| 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 102 | 6.1.1. Starting an IVR dialog . . . . . . . . . . . . . . . 104 | |||
| 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 103 | 6.1.2. IVR dialog fails to start . . . . . . . . . . . . . . 105 | |||
| 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 103 | 6.1.3. Preparing and starting an IVR dialog . . . . . . . . 105 | |||
| 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 104 | 6.1.4. Terminating a dialog . . . . . . . . . . . . . . . . 106 | |||
| 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 105 | 6.2. IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 107 | |||
| 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 105 | 6.2.1. Playing announcements . . . . . . . . . . . . . . . . 107 | |||
| 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 106 | 6.2.2. Prompt and collect . . . . . . . . . . . . . . . . . 108 | |||
| 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 108 | 6.2.3. Prompt and record . . . . . . . . . . . . . . . . . . 110 | |||
| 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 109 | 6.2.4. Runtime controls . . . . . . . . . . . . . . . . . . 111 | |||
| 6.2.5. Subscriptions and notifications . . . . . . . . . . . 110 | 6.2.5. Subscriptions and notifications . . . . . . . . . . . 112 | |||
| 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 110 | 6.3. Other Dialog Languages . . . . . . . . . . . . . . . . . 112 | |||
| 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 111 | 6.4. Foreign Namespace Attributes and Elements . . . . . . . . 113 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 114 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 116 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 117 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 119 | |||
| 8.1. Control Package Registration . . . . . . . . . . . . . . 117 | 8.1. Control Package Registration . . . . . . . . . . . . . . 119 | |||
| 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 117 | 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 119 | |||
| 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 117 | 8.3. MIME Type Registration . . . . . . . . . . . . . . . . . 119 | |||
| 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 118 | 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 120 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 129 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 132 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 130 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 133 | |||
| 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 131 | 12. Appendix A: Using VoiceXML as a dialog language . . . . . . . 134 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 139 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 142 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 139 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 142 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 140 | 13.2. Informative References . . . . . . . . . . . . . . . . . 143 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 142 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 145 | |||
| 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 14, line 35 ¶ | skipping to change at page 14, line 35 ¶ | |||
| <audit> audit package capabilities and managed dialogs. See | <audit> audit package capabilities and managed dialogs. See | |||
| Section 4.4.1 | Section 4.4.1 | |||
| <auditresponse> response to an audit request. See Section 4.4.2 | <auditresponse> response to an audit request. See Section 4.4.2 | |||
| For example, a request to the MS to start an IVR dialog playing a | For example, a request to the MS to start an IVR dialog playing a | |||
| prompt: | prompt: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart> | <dialogstart connectionid="ssd3r3~sds345b"> | |||
| <dialog> | <dialog> | |||
| <prompt> | <prompt> | |||
| <media loc="http://www.example.com/welcome.wav"/> | <media loc="http://www.example.com/welcome.wav"/> | |||
| </prompt> | </prompt> | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| and a response from the MS that the dialog started successfully: | and a response from the MS that the dialog started successfully: | |||
| skipping to change at page 65, line 19 ¶ | skipping to change at page 65, line 19 ¶ | |||
| 4.4.2.2.2. <grammartypes> | 4.4.2.2.2. <grammartypes> | |||
| The <grammartypes> element provides information about <grammar> | The <grammartypes> element provides information about <grammar> | |||
| format types supported by the package. The MS MUST NOT include the | format types supported by the package. The MS MUST NOT include the | |||
| mandatory SRGS format type, "application/srgs+xml" | mandatory SRGS format type, "application/srgs+xml" | |||
| (Section 4.3.1.3.1). | (Section 4.3.1.3.1). | |||
| The <grammartypes> element has no attributes. | The <grammartypes> element has no attributes. | |||
| The <grammartypes> element has the following sequence of child | The <grammartypes> element has the following sequence of child | |||
| elements (1 or more occurrences): | elements (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.3. <recordtypes> | 4.4.2.2.3. <recordtypes> | |||
| The <recordtypes> element provides information about media resource | The <recordtypes> element provides information about media resource | |||
| format types of <record> supported by the package (Section 4.3.1.4). | format types of <record> supported by the package (Section 4.3.1.4). | |||
| The <recordtypes> element has no attributes. | The <recordtypes> element has no attributes. | |||
| skipping to change at page 77, line 31 ¶ | skipping to change at page 77, line 31 ¶ | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr" | <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr" | |||
| elementFormDefault="qualified" blockDefault="#all" | elementFormDefault="qualified" blockDefault="#all" | |||
| xmlns="urn:ietf:params:xml:ns:msc-ivr" | xmlns="urn:ietf:params:xml:ns:msc-ivr" | |||
| xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes" | xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes" | |||
| xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | xmlns:xsd="http://www.w3.org/2001/XMLSchema"> | |||
| <xsd:annotation> | <xsd:annotation> | |||
| <xsd:documentation> | <xsd:documentation> | |||
| IETF MediaCtrl IVR 1.0 (20081118) | IETF MediaCtrl IVR 1.0 (20090214) | |||
| 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 78, line 35 ¶ | skipping to change at page 78, line 35 ¶ | |||
| ##################################################### | ##################################################### | |||
| Extensible core type | Extensible core type | |||
| ##################################################### | ##################################################### | |||
| --> | --> | |||
| <xsd:complexType name="Tcore"> | <xsd:complexType name="Tcore"> | |||
| <xsd:annotation> | <xsd:annotation> | |||
| <xsd:documentation> | <xsd:documentation> | |||
| This type is extended by other component types to | This type is extended by other (non-mixed) component types to | |||
| allow elements and attributes from other namespaces | allow attributes from other namespaces. | |||
| to be added. | ||||
| </xsd:documentation> | </xsd:documentation> | |||
| </xsd:annotation> | </xsd:annotation> | |||
| <xsd:sequence> | <xsd:sequence/> | |||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:anyAttribute namespace="##other" processContents="lax" /> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <!-- | <!-- | |||
| ##################################################### | ##################################################### | |||
| TOP LEVEL ELEMENT: mscivr | TOP LEVEL ELEMENT: mscivr | |||
| ##################################################### | ##################################################### | |||
| --> | --> | |||
| <xsd:complexType name="mscivrType"> | <xsd:complexType name="mscivrType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:choice> | <xsd:choice> | |||
| <xsd:element ref="dialogprepare" /> | <xsd:element ref="dialogprepare" /> | |||
| <xsd:element ref="dialogstart" /> | <xsd:element ref="dialogstart" /> | |||
| <xsd:element ref="dialogterminate" /> | <xsd:element ref="dialogterminate" /> | |||
| skipping to change at page 81, line 6 ¶ | skipping to change at page 80, line 51 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dialogstart" type="dialogstartType" /> | <xsd:element name="dialogstart" type="dialogstartType" /> | |||
| <!-- dialogterminate --> | <!-- dialogterminate --> | |||
| <xsd:complexType name="dialogterminateType"> | <xsd:complexType name="dialogterminateType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </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="boolean.datatype" 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> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="status" type="status.datatype" | <xsd:attribute name="status" type="status.datatype" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="reason" type="xsd:string" /> | <xsd:attribute name="reason" type="xsd:string" /> | |||
| <xsd:attribute name="dialogid" | <xsd:attribute name="dialogid" | |||
| type="dialogid.datatype" use="required" /> | type="dialogid.datatype" use="required" /> | |||
| <xsd:attributeGroup ref="fw:framework-attributes" /> | <xsd:attributeGroup ref="fw:framework-attributes" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| skipping to change at page 82, line 42 ¶ | skipping to change at page 82, line 47 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dialogexit" type="dialogexitType" /> | <xsd:element name="dialogexit" type="dialogexitType" /> | |||
| <!-- dtmfnotify--> | <!-- dtmfnotify--> | |||
| <xsd:complexType name="dtmfnotifyType"> | <xsd:complexType name="dtmfnotifyType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="matchmode" | <xsd:attribute name="matchmode" | |||
| type="matchmode.datatype" default="all" /> | type="matchmode.datatype" default="all" /> | |||
| <xsd:attribute name="dtmf" type="dtmfstring.datatype" | <xsd:attribute name="dtmf" type="dtmfstring.datatype" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="timestamp" type="xsd:dateTime" | <xsd:attribute name="timestamp" type="xsd:dateTime" | |||
| use="required" /> | use="required" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dtmfnotify" type="dtmfnotifyType" /> | <xsd:element name="dtmfnotify" type="dtmfnotifyType" /> | |||
| <!-- promptinfo --> | <!-- promptinfo --> | |||
| <xsd:complexType name="promptinfoType"> | <xsd:complexType name="promptinfoType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="duration" | <xsd:attribute name="duration" | |||
| type="xsd:nonNegativeInteger" /> | type="xsd:nonNegativeInteger" /> | |||
| <xsd:attribute name="termmode" | <xsd:attribute name="termmode" | |||
| type="prompt_termmode.datatype" use="required" /> | type="prompt_termmode.datatype" use="required" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="promptinfo" type="promptinfoType" /> | <xsd:element name="promptinfo" type="promptinfoType" /> | |||
| skipping to change at page 83, line 35 ¶ | skipping to change at page 84, line 4 ¶ | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="controlmatch" minOccurs="0" | <xsd:element ref="controlmatch" 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="controlinfo" type="controlinfoType" /> | <xsd:element name="controlinfo" type="controlinfoType" /> | |||
| <!-- controlmatch --> | <!-- controlmatch --> | |||
| <xsd:complexType name="controlmatchType"> | <xsd:complexType name="controlmatchType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="dtmf" | <xsd:attribute name="dtmf" | |||
| type="dtmfstring.datatype" /> | type="dtmfstring.datatype" /> | |||
| <xsd:attribute name="timestamp" type="xsd:dateTime" /> | <xsd:attribute name="timestamp" type="xsd:dateTime" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="controlmatch" type="controlmatchType" /> | <xsd:element name="controlmatch" type="controlmatchType" /> | |||
| <!-- collectinfo --> | <!-- collectinfo --> | |||
| <xsd:complexType name="collectinfoType"> | <xsd:complexType name="collectinfoType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="dtmf" | <xsd:attribute name="dtmf" | |||
| type="dtmfstring.datatype" /> | type="dtmfstring.datatype" /> | |||
| <xsd:attribute name="termmode" | <xsd:attribute name="termmode" | |||
| type="collect_termmode.datatype" use="required" /> | type="collect_termmode.datatype" use="required" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="collectinfo" type="collectinfoType" /> | <xsd:element name="collectinfo" type="collectinfoType" /> | |||
| skipping to change at page 84, line 50 ¶ | skipping to change at page 85, line 24 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="recordinfo" type="recordinfoType" /> | <xsd:element name="recordinfo" type="recordinfoType" /> | |||
| <!-- mediainfo --> | <!-- mediainfo --> | |||
| <xsd:complexType name="mediainfoType"> | <xsd:complexType name="mediainfoType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="loc" type="xsd:anyURI" | <xsd:attribute name="loc" type="xsd:anyURI" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="mime.datatype" | <xsd:attribute name="type" type="mime.datatype" | |||
| use="required"/> | use="required"/> | |||
| <xsd:attribute name="size" | <xsd:attribute name="size" | |||
| type="xsd:nonNegativeInteger" /> | type="xsd:nonNegativeInteger" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| skipping to change at page 85, line 26 ¶ | skipping to change at page 86, line 4 ¶ | |||
| <xsd:complexType name="subscribeType"> | <xsd:complexType name="subscribeType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="dtmfsub" minOccurs="0" | <xsd:element ref="dtmfsub" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="subscribe" type="subscribeType" /> | <xsd:element name="subscribe" type="subscribeType" /> | |||
| <!-- dtmfsub --> | <!-- dtmfsub --> | |||
| <xsd:complexType name="dtmfsubType"> | <xsd:complexType name="dtmfsubType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="matchmode" | <xsd:attribute name="matchmode" | |||
| type="matchmode.datatype" default="all" /> | type="matchmode.datatype" default="all" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="dtmfsub" type="dtmfsubType" /> | <xsd:element name="dtmfsub" type="dtmfsubType" /> | |||
| <!-- params --> | <!-- params --> | |||
| <xsd:complexType name="paramsType"> | <xsd:complexType name="paramsType"> | |||
| skipping to change at page 88, line 21 ¶ | skipping to change at page 89, line 4 ¶ | |||
| <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="boolean.datatype" | |||
| default="true" /> | default="true" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="prompt" type="promptType" /> | <xsd:element name="prompt" type="promptType" /> | |||
| <!-- media --> | <!-- media --> | |||
| <xsd:complexType name="mediaType"> | <xsd:complexType name="mediaType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="loc" type="xsd:anyURI" | <xsd:attribute name="loc" type="xsd:anyURI" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="mime.datatype" /> | <xsd:attribute name="type" type="mime.datatype" /> | |||
| <xsd:attribute name="fetchtimeout" | <xsd:attribute name="fetchtimeout" | |||
| type="timedesignation.datatype" default="30s" /> | type="timedesignation.datatype" default="30s" /> | |||
| <xsd:attribute name="soundLevel" | <xsd:attribute name="soundLevel" | |||
| type="percentage.datatype" default="100%" /> | type="percentage.datatype" default="100%" /> | |||
| <xsd:attribute name="clipBegin" | <xsd:attribute name="clipBegin" | |||
| type="timedesignation.datatype" default="0s" /> | type="timedesignation.datatype" default="0s" /> | |||
| <xsd:attribute name="clipEnd" | <xsd:attribute name="clipEnd" | |||
| skipping to change at page 89, line 4 ¶ | skipping to change at page 89, line 37 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="media" type="mediaType" /> | <xsd:element name="media" type="mediaType" /> | |||
| <!-- variable --> | <!-- variable --> | |||
| <xsd:complexType name="variableT"> | <xsd:complexType name="variableT"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="value" type="xsd:string" | <xsd:attribute name="value" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="xsd:string" | <xsd:attribute name="type" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="format" type="xsd:string" /> | <xsd:attribute name="format" type="xsd:string" /> | |||
| <xsd:attribute name="gender" type="gender.datatype" /> | <xsd:attribute name="gender" type="gender.datatype" /> | |||
| <xsd:attribute ref="xml:lang" /> | <xsd:attribute ref="xml:lang" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| skipping to change at page 89, line 14 ¶ | skipping to change at page 90, line 4 ¶ | |||
| <xsd:attribute name="value" type="xsd:string" | <xsd:attribute name="value" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="type" type="xsd:string" | <xsd:attribute name="type" type="xsd:string" | |||
| use="required" /> | use="required" /> | |||
| <xsd:attribute name="format" type="xsd:string" /> | <xsd:attribute name="format" type="xsd:string" /> | |||
| <xsd:attribute name="gender" type="gender.datatype" /> | <xsd:attribute name="gender" type="gender.datatype" /> | |||
| <xsd:attribute ref="xml:lang" /> | <xsd:attribute ref="xml:lang" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="variable" type="variableT" /> | <xsd:element name="variable" type="variableT" /> | |||
| <!-- dtmf --> | <!-- dtmf --> | |||
| <xsd:complexType name="dtmfType"> | <xsd:complexType name="dtmfType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="digits" | <xsd:attribute name="digits" | |||
| type="dtmfstring.datatype" use="required" /> | type="dtmfstring.datatype" use="required" /> | |||
| <xsd:attribute name="level" type="xsd:integer" | <xsd:attribute name="level" type="xsd:integer" | |||
| default="-6" /> | default="-6" /> | |||
| <xsd:attribute name="duration" | <xsd:attribute name="duration" | |||
| type="timedesignation.datatype" default="100ms" /> | type="timedesignation.datatype" default="100ms" /> | |||
| <xsd:attribute name="interval" | <xsd:attribute name="interval" | |||
| type="timedesignation.datatype" default="100ms" /> | type="timedesignation.datatype" default="100ms" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| skipping to change at page 90, line 32 ¶ | skipping to change at page 91, line 24 ¶ | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="seq" type="seqType" /> | <xsd:element name="seq" type="seqType" /> | |||
| <!-- control --> | <!-- control --> | |||
| <xsd:complexType name="controlType"> | <xsd:complexType name="controlType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | ||||
| <xsd:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="skipinterval" | <xsd:attribute name="skipinterval" | |||
| type="timedesignation.datatype" default="6s" /> | type="timedesignation.datatype" default="6s" /> | |||
| <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | <xsd:attribute name="ffkey" type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | <xsd:attribute name="rwkey" type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="pauseinterval" | <xsd:attribute name="pauseinterval" | |||
| type="timedesignation.datatype" default="10s" /> | type="timedesignation.datatype" default="10s" /> | |||
| <xsd:attribute name="pausekey" | <xsd:attribute name="pausekey" | |||
| type="dtmfchar.datatype" /> | type="dtmfchar.datatype" /> | |||
| <xsd:attribute name="resumekey" | <xsd:attribute name="resumekey" | |||
| type="dtmfchar.datatype" /> | type="dtmfchar.datatype" /> | |||
| skipping to change at page 93, line 4 ¶ | skipping to change at page 93, line 50 ¶ | |||
| <xsd:attribute name="append" type="boolean.datatype" | <xsd:attribute name="append" type="boolean.datatype" | |||
| default="false" /> | default="false" /> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="record" type="recordType" /> | <xsd:element name="record" type="recordType" /> | |||
| <!-- | <!-- | |||
| ##################################################### | ##################################################### | |||
| AUDIT TYPES | ||||
| AUDIT TYPES | ||||
| ##################################################### | ##################################################### | |||
| --> | --> | |||
| <!-- 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:any namespace="##other" minOccurs="0" | ||||
| maxOccurs="unbounded" processContents="lax" /> | ||||
| </xsd:sequence> | ||||
| <xsd:attribute name="capabilities" | <xsd:attribute name="capabilities" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="true" /> | |||
| <xsd:attribute name="dialogs" | <xsd:attribute name="dialogs" | |||
| type="boolean.datatype" default="true" /> | type="boolean.datatype" default="true" /> | |||
| <xsd:attribute name="dialogid" | <xsd:attribute name="dialogid" | |||
| type="dialogid.datatype"/> | type="dialogid.datatype"/> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| skipping to change at page 95, line 11 ¶ | skipping to change at page 96, line 12 ¶ | |||
| <xsd:complexType name="capabilitiesType"> | <xsd:complexType name="capabilitiesType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="dialoglanguages" minOccurs="1" | <xsd:element ref="dialoglanguages" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="grammartypes" minOccurs="1" | <xsd:element ref="grammartypes" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="recordtypes" minOccurs="1" | <xsd:element ref="recordtypes" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="mediatypes" minOccurs="1" | <xsd:element ref="prompttypes" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="variables" minOccurs="1" | <xsd:element ref="variables" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="maxpreparedduration" minOccurs="1" | <xsd:element ref="maxpreparedduration" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="maxrecordduration" minOccurs="1" | <xsd:element ref="maxrecordduration" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:element ref="codecs" minOccurs="1" | <xsd:element ref="codecs" minOccurs="1" | |||
| maxOccurs="1" /> | maxOccurs="1" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| skipping to change at page 96, line 38 ¶ | skipping to change at page 97, line 40 ¶ | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="recordtypes" type="recordtypesType" /> | <xsd:element name="recordtypes" type="recordtypesType" /> | |||
| <!-- mediatypes --> | <!-- prompttypes --> | |||
| <xsd:complexType name="mediatypesType"> | <xsd:complexType name="prompttypesType"> | |||
| <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="mediatypes" type="mediatypesType" /> | <xsd:element name="prompttypes" type="prompttypesType" /> | |||
| <!-- variables --> | <!-- variables --> | |||
| <xsd:complexType name="variablesType"> | <xsd:complexType name="variablesType"> | |||
| <xsd:complexContent> | <xsd:complexContent> | |||
| <xsd:extension base="Tcore"> | <xsd:extension base="Tcore"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:element ref="variabletype" minOccurs="0" | <xsd:element ref="variabletype" minOccurs="0" | |||
| maxOccurs="unbounded" /> | maxOccurs="unbounded" /> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| skipping to change at page 97, line 44 ¶ | skipping to change at page 98, line 46 ¶ | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="type" type="xsd:string" use="required" /> | <xsd:attribute name="type" type="xsd:string" use="required" /> | |||
| <xsd:attribute name="desc" type="xsd:string"/> | <xsd:attribute name="desc" type="xsd:string"/> | |||
| </xsd:extension> | </xsd:extension> | |||
| </xsd:complexContent> | </xsd:complexContent> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="variabletype" type="variabletypeType" /> | <xsd:element name="variabletype" type="variabletypeType" /> | |||
| <!-- format --> | ||||
| <!-- doesn't extend tCore since its content model is mixed --> | ||||
| <xsd:complexType name="formatType" mixed="true"> | <xsd:complexType name="formatType" mixed="true"> | |||
| <xsd:sequence> | <xsd:sequence> | |||
| <xsd:any namespace="##other" minOccurs="0" | <xsd:any namespace="##other" minOccurs="0" | |||
| maxOccurs="unbounded" processContents="lax" /> | maxOccurs="unbounded" processContents="lax" /> | |||
| </xsd:sequence> | </xsd:sequence> | |||
| <xsd:attribute name="desc" type="xsd:string" /> | <xsd:attribute name="desc" type="xsd:string" /> | |||
| <xsd:anyAttribute namespace="##other" processContents="lax" /> | <xsd:anyAttribute namespace="##other" processContents="lax" /> | |||
| </xsd:complexType> | </xsd:complexType> | |||
| <xsd:element name="format" type="formatType" /> | <xsd:element name="format" type="formatType" /> | |||
| <!-- maxpreparedduration --> | <!-- maxpreparedduration --> | |||
| <xsd:element name="maxpreparedduration" | <xsd:element name="maxpreparedduration" | |||
| type="timedesignation.datatype"/> | type="timedesignation.datatype"/> | |||
| <!-- maxrecordduration --> | <!-- maxrecordduration --> | |||
| <xsd:element name="maxrecordduration" | <xsd:element name="maxrecordduration" | |||
| skipping to change at page 107, line 22 ¶ | skipping to change at page 109, line 22 ¶ | |||
| </dialog> | </dialog> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If no user input is collected within 30s, then following notification | If no user input is collected within 30s, then following notification | |||
| event would be returned: | event would be returned: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="vxi81"> | <event dialogid="vxi81"> | |||
| <dialogexit status="1" > | <dialogexit status="1" > | |||
| <promptinfo termmode="completed" duration="4000"/> | ||||
| <collectinfo termmode="noinput"/> | <collectinfo termmode="noinput"/> | |||
| </dialogexit> | </dialogexit> | |||
| </event> | </event> | |||
| </mscivr> | </mscivr> | |||
| The collect operation can be specified without a prompt. Here the MS | The collect operation can be specified without a prompt. Here the MS | |||
| just waits for DTMF input from the user: | just waits for DTMF input from the user: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | <dialogstart connectionid="7HDY839~HJKSkyHS~HUwkuh7ns"> | |||
| skipping to change at page 110, line 28 ¶ | skipping to change at page 112, line 28 ¶ | |||
| 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 connectionid="7HDY839~HJKSkyHS"> | <dialogstart connectionid="7HDY839~HJKSkyHS"> | |||
| <dialog repeatCount="0"> | <dialog repeatCount="0"> | |||
| <collect maxdigits="2"/> | <collect maxdigits="2"/> | |||
| <subscribe> | ||||
| <dtmfsub matchmode="collect"/> | ||||
| </subscribe> | ||||
| </dialog> | </dialog> | |||
| <subscribe> | ||||
| <dtmfsub matchmode="collect"/> | ||||
| </subscribe> | ||||
| </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"/> | |||
| skipping to change at page 111, line 6 ¶ | skipping to change at page 113, line 6 ¶ | |||
| 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 continue to loop until terminated (or an | grammar, the dialog would continue to loop until terminated (or an | |||
| error occurred). | error occurred). | |||
| 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: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <dialogstart dialogid="d2" type="application/voicexml+xml" | <dialogstart dialogid="d2" | |||
| src="http://www.example.com/mydialog.vxml" | connectionid="7HDY839~HJKSkyHS" | |||
| fetchtimeout="15s"> | type="application/voicexml+xml" | |||
| src="http://www.example.com/mydialog.vxml" | ||||
| fetchtimeout="15s"> | ||||
| <params> | <params> | |||
| <param name="prompt1">nfs://nas01/media1.3gp"</param> | <param name="prompt1">nfs://nas01/media1.3gp</param> | |||
| <param name="prompt2">nfs://nas01/media2.3gp"</param> | <param name="prompt2">nfs://nas01/media2.3gp</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| If the MS does not support this dialog language, then the response | If the MS does not support this dialog language, then the response | |||
| would have the status code 409 (Section 4.5). However, if it does | would have the status code 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 12. | |||
| When the VoiceXML dialog exits, exit namelist parameters are | When the VoiceXML dialog exits, exit namelist parameters are | |||
| specified using <params> in the dialogexit event: | specified using <params> in the dialogexit event: | |||
| <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"> | |||
| <event dialogid="d2"> | <event dialogid="d2"> | |||
| <dialogexit status="1"> | <dialogexit status="1"> | |||
| skipping to change at page 114, line 15 ¶ | skipping to change at page 116, line 15 ¶ | |||
| 7. Security Considerations | 7. Security Considerations | |||
| As this control package processes XML markup, implementations MUST | As this control package processes XML markup, implementations MUST | |||
| address the security considerations of [RFC3023]. | address the security considerations of [RFC3023]. | |||
| Implementations of this control package MUST address security, | Implementations of this control package MUST address security, | |||
| confidentiality and integrity of messages transported over the | confidentiality and integrity of messages transported over the | |||
| control channel as described in Section 11 of the Media Control | control channel as described in Section 11 of the Media Control | |||
| channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), | channel Framework ([I-D.ietf-mediactrl-sip-control-framework]), | |||
| including Transport Level Protection, Control Channel Policy | including Transport Level Protection, Control Channel Policy | |||
| Management and Session Establishment. | Management and Session Establishment. In addition, implementations | |||
| MUST address security, confidentiality and integrity of User Agent | ||||
| sessions with the MS, both in terms of SIP signaling and associated | ||||
| RTP media flow; see [I-D.ietf-mediactrl-sip-control-framework] for | ||||
| further details on this topic. | ||||
| 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 | |||
| skipping to change at page 118, line 9 ¶ | skipping to change at page 120, 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 -05 and -04 versions. | ||||
| o Corrected syntax errors in examples: 4.1, 6.2.2, 6.2.5, 6.3 | ||||
| o 6.3: Corrected error status code for unsupported dialog | ||||
| o 4.4.2.2.2: <grammartypes>: corrected text to reflect that no | ||||
| additional grammar types need be specified. | ||||
| o Schema: corrected schema to allow <grammartypes> with no children, | ||||
| and renamed <mediatypes> to <prompttypes> to align with text. | ||||
| Fixed problem with non-deterministic content models. | ||||
| o 7. Security Considerations: Added requirement that | ||||
| implementations need to secure SIP and RTP sessions with User | ||||
| Agents. | ||||
| The following are the changes between the -04 and -03 versions. | 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 | o 4.2.2.2: Clarified that media stream direction is relative to the | |||
| dialog (the examples showed this but not the definition). | dialog (the examples showed this but not the definition). | |||
| o 4.3.1.2: Clarified that speed. volume and seek <control> | o 4.3.1.2: Clarified that speed. volume and seek <control> | |||
| operations beyond the platform's capability are automatically | operations beyond the platform's capability are automatically | |||
| limited to the platform's minimum/maximum. Also clarified that | limited to the platform's minimum/maximum. Also clarified that | |||
| when the output is paused, then the MS resumes output | when the output is paused, then the MS resumes output | |||
| automatically on speed, volume and seek control operations. | automatically on speed, volume and seek control operations. | |||
| skipping to change at page 135, line 37 ¶ | skipping to change at page 138, line 37 ¶ | |||
| the last <param> in document order. The corresponding value for | the last <param> in document order. The corresponding value for | |||
| each key is an object with two required properties: a "type" | each key is an object with two required properties: a "type" | |||
| property evaluating to the value of the type attribute; and a | property evaluating to the value of the type attribute; and a | |||
| "content" property evaluating to the content of the <param>. In | "content" property evaluating to the content of the <param>. In | |||
| addition, this object's toString() function returns the value of | addition, this object's toString() function returns the value of | |||
| the "content" property as a string. | 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 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"> | |||
| <params> | <params> | |||
| <param name="mode">playannouncement</param> | <param name="mode">playannouncement</param> | |||
| </params> | </params> | |||
| </dialogstart> | </dialogstart> | |||
| </mscivr> | </mscivr> | |||
| In this case, session.values would be defined with one item in the | In this case, session.values would be defined with one item in the | |||
| array where session.values['mode'].type evaluates to "text/plain" | array where session.values['mode'].type evaluates to "text/plain" | |||
| skipping to change at page 139, line 12 ¶ | skipping to change at page 142, line 12 ¶ | |||
| requested, or error.unsupported.transfer.consultation if consultation | requested, or error.unsupported.transfer.consultation if consultation | |||
| transfer is requested. | 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-08 (work in | draft-ietf-mediactrl-sip-control-framework-09 (work in | |||
| progress), December 2008. | progress), February 2009. | |||
| [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 139, line 39 ¶ | skipping to change at page 142, 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] | |||
| Jansen, J., Grassel, G., Bulterman, D., Layaida, N., | Bulterman, D., Layaida, N., Jansen, J., Michel, T., | |||
| Zucker, D., Michel, T., Mullender, S., and A. Koivisto, | Zucker, D., Mullender, S., Koivisto, A., 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] | |||
| skipping to change at page 140, line 28 ¶ | skipping to change at page 143, line 28 ¶ | |||
| October 2008. | October 2008. | |||
| [IANA] "IANA registry for RTP Payload Types", | [IANA] "IANA registry for RTP Payload Types", | |||
| <http://www.iana.org/assignments/rtp-parameters>. | <http://www.iana.org/assignments/rtp-parameters>. | |||
| [MIME.mediatypes] | [MIME.mediatypes] | |||
| "IANA registry for MIME Media Types", | "IANA registry for MIME Media Types", | |||
| <http://www.iana.org/assignments/media-types/>. | <http://www.iana.org/assignments/media-types/>. | |||
| [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session | [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session | |||
| Markup Language (MSML)", draft-saleem-msml-07 (work in | Markup Language (MSML)", draft-saleem-msml-08 (work in | |||
| progress), August 2008. | progress), February 2009. | |||
| [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 | |||
| skipping to change at page 142, line 20 ¶ | skipping to change at page 145, line 20 ¶ | |||
| SE-16985 Stockholm, Sweden | SE-16985 Stockholm, Sweden | |||
| Email: scott.mcglashan@hp.com | Email: scott.mcglashan@hp.com | |||
| Tim Melanchuk | Tim Melanchuk | |||
| Rain Willow Communications | Rain Willow Communications | |||
| Email: tim.melanchuk@gmail.com | Email: tim.melanchuk@gmail.com | |||
| Chris Boulton | Chris Boulton | |||
| Avaya | NS-Technologies | |||
| Building 3 | ||||
| Wern Fawr Lane | ||||
| St Mellons | ||||
| Cardiff, South Wales CF3 5EA | ||||
| Email: cboulton@avaya.com | Email: chris@ns-technologies.com | |||
| End of changes. 56 change blocks. | ||||
| 74 lines changed or deleted | 147 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/ | ||||