Internet Engineering Task Force (IETF)                      S. McGlashan
Request for Comments: 6231                               Hewlett-Packard
Category: Standards Track                                   T. Melanchuk
ISSN: 2070-1721                                               Rainwillow
                                                              C. Boulton
                                                         NS-Technologies
                                                                May 2011
        
Internet Engineering Task Force (IETF)                      S. McGlashan
Request for Comments: 6231                               Hewlett-Packard
Category: Standards Track                                   T. Melanchuk
ISSN: 2070-1721                                               Rainwillow
                                                              C. Boulton
                                                         NS-Technologies
                                                                May 2011
        

An Interactive Voice Response (IVR) Control Package for the Media Control Channel Framework

媒体控制频道框架的交互式语音应答(IVR)控制包

Abstract

摘要

This document defines a Media Control Channel Framework Package for Interactive Voice Response (IVR) dialog interaction on media connections and conferences. The package defines dialog management request elements for preparing, starting, and terminating dialog interactions, as well as associated responses and notifications. Dialog interactions are specified in a dialog language. This package defines a lightweight IVR dialog language (supporting prompt playback, runtime controls, Dual-Tone Multi-Frequency (DTMF) collection, and media recording) and allows other dialog languages to be used. The package also defines elements for auditing package capabilities and IVR dialogs.

本文档定义了一个媒体控制频道框架包,用于媒体连接和会议上的交互式语音应答(IVR)对话交互。该包定义用于准备、启动和终止对话框交互的对话框管理请求元素,以及相关的响应和通知。对话交互是用对话语言指定的。该软件包定义了一种轻量级IVR对话语言(支持提示播放、运行时控件、双音多频(DTMF)采集和媒体录制),并允许使用其他对话语言。该包还定义了用于审核包功能和IVR对话框的元素。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6231.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6231.

Copyright Notice

版权公告

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2011 IETF信托基金和确定为文件作者的人员。版权所有。

   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
        
   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. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件的出版。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Conventions and Terminology . . . . . . . . . . . . . . . . .   8
   3.  Control Package Definition  . . . . . . . . . . . . . . . . .   9
     3.1.  Control Package Name  . . . . . . . . . . . . . . . . . .   9
     3.2.  Framework Message Usage . . . . . . . . . . . . . . . . .   9
     3.3.  Common XML Support  . . . . . . . . . . . . . . . . . . .  10
     3.4.  CONTROL Message Body  . . . . . . . . . . . . . . . . . .  10
     3.5.  REPORT Message Body . . . . . . . . . . . . . . . . . . .  10
     3.6.  Audit . . . . . . . . . . . . . . . . . . . . . . . . . .  11
     3.7.  Examples  . . . . . . . . . . . . . . . . . . . . . . . .  11
   4.  Element Definitions . . . . . . . . . . . . . . . . . . . . .  11
     4.1.  <mscivr>  . . . . . . . . . . . . . . . . . . . . . . . .  12
     4.2.  Dialog Management Elements  . . . . . . . . . . . . . . .  14
       4.2.1.  <dialogprepare> . . . . . . . . . . . . . . . . . . .  18
       4.2.2.  <dialogstart> . . . . . . . . . . . . . . . . . . . .  20
         4.2.2.1.  <subscribe> . . . . . . . . . . . . . . . . . . .  24
           4.2.2.1.1.  <dtmfsub> . . . . . . . . . . . . . . . . . .  25
         4.2.2.2.  <stream>  . . . . . . . . . . . . . . . . . . . .  26
           4.2.2.2.1.  <region>  . . . . . . . . . . . . . . . . . .  27
           4.2.2.2.2.  <priority>  . . . . . . . . . . . . . . . . .  27
       4.2.3.  <dialogterminate> . . . . . . . . . . . . . . . . . .  28
       4.2.4.  <response>  . . . . . . . . . . . . . . . . . . . . .  28
       4.2.5.  <event> . . . . . . . . . . . . . . . . . . . . . . .  30
         4.2.5.1.  <dialogexit>  . . . . . . . . . . . . . . . . . .  30
         4.2.5.2.  <dtmfnotify>  . . . . . . . . . . . . . . . . . .  32
       4.2.6.  <params>  . . . . . . . . . . . . . . . . . . . . . .  33
         4.2.6.1.  <param> . . . . . . . . . . . . . . . . . . . . .  33
        
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Conventions and Terminology . . . . . . . . . . . . . . . . .   8
   3.  Control Package Definition  . . . . . . . . . . . . . . . . .   9
     3.1.  Control Package Name  . . . . . . . . . . . . . . . . . .   9
     3.2.  Framework Message Usage . . . . . . . . . . . . . . . . .   9
     3.3.  Common XML Support  . . . . . . . . . . . . . . . . . . .  10
     3.4.  CONTROL Message Body  . . . . . . . . . . . . . . . . . .  10
     3.5.  REPORT Message Body . . . . . . . . . . . . . . . . . . .  10
     3.6.  Audit . . . . . . . . . . . . . . . . . . . . . . . . . .  11
     3.7.  Examples  . . . . . . . . . . . . . . . . . . . . . . . .  11
   4.  Element Definitions . . . . . . . . . . . . . . . . . . . . .  11
     4.1.  <mscivr>  . . . . . . . . . . . . . . . . . . . . . . . .  12
     4.2.  Dialog Management Elements  . . . . . . . . . . . . . . .  14
       4.2.1.  <dialogprepare> . . . . . . . . . . . . . . . . . . .  18
       4.2.2.  <dialogstart> . . . . . . . . . . . . . . . . . . . .  20
         4.2.2.1.  <subscribe> . . . . . . . . . . . . . . . . . . .  24
           4.2.2.1.1.  <dtmfsub> . . . . . . . . . . . . . . . . . .  25
         4.2.2.2.  <stream>  . . . . . . . . . . . . . . . . . . . .  26
           4.2.2.2.1.  <region>  . . . . . . . . . . . . . . . . . .  27
           4.2.2.2.2.  <priority>  . . . . . . . . . . . . . . . . .  27
       4.2.3.  <dialogterminate> . . . . . . . . . . . . . . . . . .  28
       4.2.4.  <response>  . . . . . . . . . . . . . . . . . . . . .  28
       4.2.5.  <event> . . . . . . . . . . . . . . . . . . . . . . .  30
         4.2.5.1.  <dialogexit>  . . . . . . . . . . . . . . . . . .  30
         4.2.5.2.  <dtmfnotify>  . . . . . . . . . . . . . . . . . .  32
       4.2.6.  <params>  . . . . . . . . . . . . . . . . . . . . . .  33
         4.2.6.1.  <param> . . . . . . . . . . . . . . . . . . . . .  33
        
     4.3.  IVR Dialog Elements . . . . . . . . . . . . . . . . . . .  34
       4.3.1.  <dialog>  . . . . . . . . . . . . . . . . . . . . . .  35
         4.3.1.1.  <prompt>  . . . . . . . . . . . . . . . . . . . .  38
           4.3.1.1.1.  <variable>  . . . . . . . . . . . . . . . . .  39
             4.3.1.1.1.1.  Date Type . . . . . . . . . . . . . . . .  40
             4.3.1.1.1.2.  Time Type . . . . . . . . . . . . . . . .  41
             4.3.1.1.1.3.  Digits Type . . . . . . . . . . . . . . .  42
           4.3.1.1.2.  <dtmf>  . . . . . . . . . . . . . . . . . . .  42
           4.3.1.1.3.  <par> . . . . . . . . . . . . . . . . . . . .  43
             4.3.1.1.3.1.  <seq> . . . . . . . . . . . . . . . . . .  45
         4.3.1.2.  <control> . . . . . . . . . . . . . . . . . . . .  46
         4.3.1.3.  <collect> . . . . . . . . . . . . . . . . . . . .  49
           4.3.1.3.1.  <grammar> . . . . . . . . . . . . . . . . . .  52
         4.3.1.4.  <record>  . . . . . . . . . . . . . . . . . . . .  53
         4.3.1.5.  <media> . . . . . . . . . . . . . . . . . . . . .  57
       4.3.2.  Exit Information  . . . . . . . . . . . . . . . . . .  59
         4.3.2.1.  <promptinfo>  . . . . . . . . . . . . . . . . . .  59
         4.3.2.2.  <controlinfo> . . . . . . . . . . . . . . . . . .  59
           4.3.2.2.1.  <controlmatch>  . . . . . . . . . . . . . . .  59
         4.3.2.3.  <collectinfo> . . . . . . . . . . . . . . . . . .  60
         4.3.2.4.  <recordinfo>  . . . . . . . . . . . . . . . . . .  60
           4.3.2.4.1.  <mediainfo> . . . . . . . . . . . . . . . . .  61
     4.4.  Audit Elements  . . . . . . . . . . . . . . . . . . . . .  61
       4.4.1.  <audit> . . . . . . . . . . . . . . . . . . . . . . .  61
       4.4.2.  <auditresponse> . . . . . . . . . . . . . . . . . . .  63
         4.4.2.1.  <codecs>  . . . . . . . . . . . . . . . . . . . .  65
           4.4.2.1.1.  <codec> . . . . . . . . . . . . . . . . . . .  65
         4.4.2.2.  <capabilities>  . . . . . . . . . . . . . . . . .  66
           4.4.2.2.1.  <dialoglanguages> . . . . . . . . . . . . . .  68
           4.4.2.2.2.  <grammartypes>  . . . . . . . . . . . . . . .  68
           4.4.2.2.3.  <recordtypes> . . . . . . . . . . . . . . . .  68
           4.4.2.2.4.  <prompttypes> . . . . . . . . . . . . . . . .  68
           4.4.2.2.5.  <variables> . . . . . . . . . . . . . . . . .  69
             4.4.2.2.5.1.  <variabletype>  . . . . . . . . . . . . .  69
           4.4.2.2.6.  <maxpreparedduration> . . . . . . . . . . . .  70
           4.4.2.2.7.  <maxrecordduration> . . . . . . . . . . . . .  70
         4.4.2.3.  <dialogs> . . . . . . . . . . . . . . . . . . . .  70
           4.4.2.3.1.  <dialogaudit> . . . . . . . . . . . . . . . .  71
     4.5.  Response Status Codes . . . . . . . . . . . . . . . . . .  71
     4.6.  Type Definitions  . . . . . . . . . . . . . . . . . . . .  77
       4.6.1.  Boolean . . . . . . . . . . . . . . . . . . . . . . .  77
       4.6.2.  DTMFChar  . . . . . . . . . . . . . . . . . . . . . .  77
       4.6.3.  DTMFString  . . . . . . . . . . . . . . . . . . . . .  77
       4.6.4.  Non-Negative Integer  . . . . . . . . . . . . . . . .  77
       4.6.5.  Positive Integer  . . . . . . . . . . . . . . . . . .  77
       4.6.6.  String  . . . . . . . . . . . . . . . . . . . . . . .  78
       4.6.7.  Time Designation  . . . . . . . . . . . . . . . . . .  78
       4.6.8.  Percentage  . . . . . . . . . . . . . . . . . . . . .  78
        
     4.3.  IVR Dialog Elements . . . . . . . . . . . . . . . . . . .  34
       4.3.1.  <dialog>  . . . . . . . . . . . . . . . . . . . . . .  35
         4.3.1.1.  <prompt>  . . . . . . . . . . . . . . . . . . . .  38
           4.3.1.1.1.  <variable>  . . . . . . . . . . . . . . . . .  39
             4.3.1.1.1.1.  Date Type . . . . . . . . . . . . . . . .  40
             4.3.1.1.1.2.  Time Type . . . . . . . . . . . . . . . .  41
             4.3.1.1.1.3.  Digits Type . . . . . . . . . . . . . . .  42
           4.3.1.1.2.  <dtmf>  . . . . . . . . . . . . . . . . . . .  42
           4.3.1.1.3.  <par> . . . . . . . . . . . . . . . . . . . .  43
             4.3.1.1.3.1.  <seq> . . . . . . . . . . . . . . . . . .  45
         4.3.1.2.  <control> . . . . . . . . . . . . . . . . . . . .  46
         4.3.1.3.  <collect> . . . . . . . . . . . . . . . . . . . .  49
           4.3.1.3.1.  <grammar> . . . . . . . . . . . . . . . . . .  52
         4.3.1.4.  <record>  . . . . . . . . . . . . . . . . . . . .  53
         4.3.1.5.  <media> . . . . . . . . . . . . . . . . . . . . .  57
       4.3.2.  Exit Information  . . . . . . . . . . . . . . . . . .  59
         4.3.2.1.  <promptinfo>  . . . . . . . . . . . . . . . . . .  59
         4.3.2.2.  <controlinfo> . . . . . . . . . . . . . . . . . .  59
           4.3.2.2.1.  <controlmatch>  . . . . . . . . . . . . . . .  59
         4.3.2.3.  <collectinfo> . . . . . . . . . . . . . . . . . .  60
         4.3.2.4.  <recordinfo>  . . . . . . . . . . . . . . . . . .  60
           4.3.2.4.1.  <mediainfo> . . . . . . . . . . . . . . . . .  61
     4.4.  Audit Elements  . . . . . . . . . . . . . . . . . . . . .  61
       4.4.1.  <audit> . . . . . . . . . . . . . . . . . . . . . . .  61
       4.4.2.  <auditresponse> . . . . . . . . . . . . . . . . . . .  63
         4.4.2.1.  <codecs>  . . . . . . . . . . . . . . . . . . . .  65
           4.4.2.1.1.  <codec> . . . . . . . . . . . . . . . . . . .  65
         4.4.2.2.  <capabilities>  . . . . . . . . . . . . . . . . .  66
           4.4.2.2.1.  <dialoglanguages> . . . . . . . . . . . . . .  68
           4.4.2.2.2.  <grammartypes>  . . . . . . . . . . . . . . .  68
           4.4.2.2.3.  <recordtypes> . . . . . . . . . . . . . . . .  68
           4.4.2.2.4.  <prompttypes> . . . . . . . . . . . . . . . .  68
           4.4.2.2.5.  <variables> . . . . . . . . . . . . . . . . .  69
             4.4.2.2.5.1.  <variabletype>  . . . . . . . . . . . . .  69
           4.4.2.2.6.  <maxpreparedduration> . . . . . . . . . . . .  70
           4.4.2.2.7.  <maxrecordduration> . . . . . . . . . . . . .  70
         4.4.2.3.  <dialogs> . . . . . . . . . . . . . . . . . . . .  70
           4.4.2.3.1.  <dialogaudit> . . . . . . . . . . . . . . . .  71
     4.5.  Response Status Codes . . . . . . . . . . . . . . . . . .  71
     4.6.  Type Definitions  . . . . . . . . . . . . . . . . . . . .  77
       4.6.1.  Boolean . . . . . . . . . . . . . . . . . . . . . . .  77
       4.6.2.  DTMFChar  . . . . . . . . . . . . . . . . . . . . . .  77
       4.6.3.  DTMFString  . . . . . . . . . . . . . . . . . . . . .  77
       4.6.4.  Non-Negative Integer  . . . . . . . . . . . . . . . .  77
       4.6.5.  Positive Integer  . . . . . . . . . . . . . . . . . .  77
       4.6.6.  String  . . . . . . . . . . . . . . . . . . . . . . .  78
       4.6.7.  Time Designation  . . . . . . . . . . . . . . . . . .  78
       4.6.8.  Percentage  . . . . . . . . . . . . . . . . . . . . .  78
        
       4.6.9.  URI . . . . . . . . . . . . . . . . . . . . . . . . .  78
       4.6.10. MIME Media Type . . . . . . . . . . . . . . . . . . .  78
       4.6.11. Language Identifier . . . . . . . . . . . . . . . . .  78
       4.6.12. DateTime  . . . . . . . . . . . . . . . . . . . . . .  79
   5.  Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . .  79
   6.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . . 105
     6.1.  AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105
       6.1.1.  Starting an IVR Dialog  . . . . . . . . . . . . . . . 105
       6.1.2.  IVR Dialog Fails to Start . . . . . . . . . . . . . . 106
       6.1.3.  Preparing and Starting an IVR Dialog  . . . . . . . . 107
       6.1.4.  Terminating a Dialog  . . . . . . . . . . . . . . . . 108
     6.2.  IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108
       6.2.1.  Playing Announcements . . . . . . . . . . . . . . . . 109
       6.2.2.  Prompt and Collect  . . . . . . . . . . . . . . . . . 109
       6.2.3.  Prompt and Record . . . . . . . . . . . . . . . . . . 111
       6.2.4.  Runtime Controls  . . . . . . . . . . . . . . . . . . 112
       6.2.5.  Subscriptions and Notifications . . . . . . . . . . . 113
       6.2.6.  Dialog Repetition until DTMF Collection Complete  . . 113
     6.3.  Other Dialog Languages  . . . . . . . . . . . . . . . . . 114
     6.4.  Foreign Namespace Attributes and Elements . . . . . . . . 115
   7.  Security Considerations . . . . . . . . . . . . . . . . . . . 116
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . 119
     8.1.  Control Package Registration  . . . . . . . . . . . . . . 119
     8.2.  URN Sub-Namespace Registration  . . . . . . . . . . . . . 120
     8.3.  XML Schema Registration . . . . . . . . . . . . . . . . . 120
     8.4.  MIME Media Type Registration for
           application/msc-ivr+xml . . . . . . . . . . . . . . . . . 120
     8.5.  IVR Prompt Variable Type Registration Information . . . . 121
   9.  Using VoiceXML as a Dialog Language . . . . . . . . . . . . . 122
     9.1.  Preparing a VoiceXML Dialog . . . . . . . . . . . . . . . 122
     9.2.  Starting a VoiceXML Dialog  . . . . . . . . . . . . . . . 123
       9.2.1.  Session Protocol Information  . . . . . . . . . . . . 124
       9.2.2.  Session Media Stream Information  . . . . . . . . . . 125
       9.2.3.  Session Parameter Information . . . . . . . . . . . . 127
     9.3.  Terminating a VoiceXML Dialog . . . . . . . . . . . . . . 128
     9.4.  Exiting a VoiceXML Dialog . . . . . . . . . . . . . . . . 128
     9.5.  Call Transfer . . . . . . . . . . . . . . . . . . . . . . 129
   10. Contributors  . . . . . . . . . . . . . . . . . . . . . . . . 130
   11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 130
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . . 130
     12.1. Normative References  . . . . . . . . . . . . . . . . . . 130
     12.2. Informative References  . . . . . . . . . . . . . . . . . 132
        
       4.6.9.  URI . . . . . . . . . . . . . . . . . . . . . . . . .  78
       4.6.10. MIME Media Type . . . . . . . . . . . . . . . . . . .  78
       4.6.11. Language Identifier . . . . . . . . . . . . . . . . .  78
       4.6.12. DateTime  . . . . . . . . . . . . . . . . . . . . . .  79
   5.  Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . .  79
   6.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . . 105
     6.1.  AS-MS Dialog Interaction Examples . . . . . . . . . . . . 105
       6.1.1.  Starting an IVR Dialog  . . . . . . . . . . . . . . . 105
       6.1.2.  IVR Dialog Fails to Start . . . . . . . . . . . . . . 106
       6.1.3.  Preparing and Starting an IVR Dialog  . . . . . . . . 107
       6.1.4.  Terminating a Dialog  . . . . . . . . . . . . . . . . 108
     6.2.  IVR Dialog Examples . . . . . . . . . . . . . . . . . . . 108
       6.2.1.  Playing Announcements . . . . . . . . . . . . . . . . 109
       6.2.2.  Prompt and Collect  . . . . . . . . . . . . . . . . . 109
       6.2.3.  Prompt and Record . . . . . . . . . . . . . . . . . . 111
       6.2.4.  Runtime Controls  . . . . . . . . . . . . . . . . . . 112
       6.2.5.  Subscriptions and Notifications . . . . . . . . . . . 113
       6.2.6.  Dialog Repetition until DTMF Collection Complete  . . 113
     6.3.  Other Dialog Languages  . . . . . . . . . . . . . . . . . 114
     6.4.  Foreign Namespace Attributes and Elements . . . . . . . . 115
   7.  Security Considerations . . . . . . . . . . . . . . . . . . . 116
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . 119
     8.1.  Control Package Registration  . . . . . . . . . . . . . . 119
     8.2.  URN Sub-Namespace Registration  . . . . . . . . . . . . . 120
     8.3.  XML Schema Registration . . . . . . . . . . . . . . . . . 120
     8.4.  MIME Media Type Registration for
           application/msc-ivr+xml . . . . . . . . . . . . . . . . . 120
     8.5.  IVR Prompt Variable Type Registration Information . . . . 121
   9.  Using VoiceXML as a Dialog Language . . . . . . . . . . . . . 122
     9.1.  Preparing a VoiceXML Dialog . . . . . . . . . . . . . . . 122
     9.2.  Starting a VoiceXML Dialog  . . . . . . . . . . . . . . . 123
       9.2.1.  Session Protocol Information  . . . . . . . . . . . . 124
       9.2.2.  Session Media Stream Information  . . . . . . . . . . 125
       9.2.3.  Session Parameter Information . . . . . . . . . . . . 127
     9.3.  Terminating a VoiceXML Dialog . . . . . . . . . . . . . . 128
     9.4.  Exiting a VoiceXML Dialog . . . . . . . . . . . . . . . . 128
     9.5.  Call Transfer . . . . . . . . . . . . . . . . . . . . . . 129
   10. Contributors  . . . . . . . . . . . . . . . . . . . . . . . . 130
   11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 130
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . . 130
     12.1. Normative References  . . . . . . . . . . . . . . . . . . 130
     12.2. Informative References  . . . . . . . . . . . . . . . . . 132
        
1. Introduction
1. 介绍

The Media Control Channel Framework [RFC6230] provides a generic approach for establishment and reporting capabilities of remotely initiated commands. The Channel Framework -- an equivalent term for the Media Control Channel Framework -- utilizes many functions provided by the Session Initiation Protocol (SIP) [RFC3261] for the rendezvous and establishment of a reliable channel for control interactions. The Control Framework also introduces the concept of a Control Package. A Control Package is an explicit usage of the Control Framework for a particular interaction set. This document defines a Control Package for Interactive Voice Response (IVR) dialogs on media connections and conferences. The term 'dialog' in this document refers to an IVR dialog and is completely unrelated to the notion of a SIP dialog. The term 'IVR' is used in its inclusive sense, allowing media other than voice for dialog interaction.

媒体控制通道框架[RFC6230]提供了一种建立和报告远程启动命令能力的通用方法。信道框架——媒体控制信道框架的等效术语——利用会话发起协议(SIP)[RFC3261]提供的许多功能来会合和建立用于控制交互的可靠信道。控制框架还引入了控制包的概念。控制包是对特定交互集的控制框架的显式使用。本文档定义了媒体连接和会议上交互式语音应答(IVR)对话框的控制包。本文档中的术语“对话”指的是IVR对话,与SIP对话的概念完全无关。“IVR”一词的使用具有包容性,允许除语音以外的媒体进行对话互动。

The package defines dialog management request elements for preparing, starting, and terminating dialog interactions, as well as associated responses and notifications. Dialog interactions are specified using a dialog language where the language specifies a well-defined syntax and semantics for permitted operations (play a prompt, record input from the user, etc.). This package defines a lightweight IVR dialog language (supporting prompt playback, runtime controls, DTMF collection, and media recording) and allows other dialog languages to be used. These dialog languages are specified inside dialog management elements for preparing and starting dialog interactions. The package also defines elements for auditing package capabilities and IVR dialogs.

该包定义用于准备、启动和终止对话框交互的对话框管理请求元素,以及相关的响应和通知。使用对话框语言指定对话框交互,其中该语言为允许的操作(播放提示、记录用户输入等)指定定义良好的语法和语义。该软件包定义了一种轻量级IVR对话语言(支持提示播放、运行时控件、DTMF采集和媒体录制),并允许使用其他对话语言。这些对话框语言在对话框管理元素中指定,用于准备和启动对话框交互。该包还定义了用于审核包功能和IVR对话框的元素。

This package has been designed to satisfy IVR requirements documented in "Media Server Control Protocol Requirements" [RFC5167] -- more specifically, REQ-MCP-28, REQ-MCP-29, and REQ-MCP-30. It achieves this by building upon two major approaches to IVR dialog design. These approaches address a wide range of IVR use cases and are used in many applications that are extensively deployed today.

该软件包旨在满足“媒体服务器控制协议要求”[RFC5167]中记录的IVR要求——更具体地说,是REQ-MCP-28、REQ-MCP-29和REQ-MCP-30。它通过构建IVR对话框设计的两种主要方法来实现这一点。这些方法处理范围广泛的IVR用例,并在当今广泛部署的许多应用程序中使用。

First, the package is designed to provide the major IVR functionality of SIP media server languages such as netann [RFC4240], Media Server Control Markup Language (MSCML) [RFC5022], and Media Server Markup Language (MSML) [RFC5707], which themselves build upon more traditional non-SIP languages ([H.248.9], [RFC2897]). A key differentiator is that this package provides IVR functionality using the Channel Framework.

首先,该软件包旨在提供SIP媒体服务器语言的主要IVR功能,如netann[RFC4240]、媒体服务器控制标记语言(MSCML)[RFC5022]和媒体服务器标记语言(MSML)[RFC5707],这些语言本身构建于更传统的非SIP语言([H.248.9]、[RFC2897])。一个关键的区别在于,该软件包使用通道框架提供IVR功能。

Second, its design is aligned with key concepts of the web model as defined in W3C Voice Browser languages. The key dialog management mechanism is closely aligned with Call Control XML (CCXML) [CCXML10].

其次,它的设计符合W3C语音浏览器语言中定义的web模型的关键概念。密钥对话框管理机制与调用控制XML(CCXML)[CCXML10]密切相关。

The dialog functionality defined in this package can be largely seen as a subset of VoiceXML ([VXML20], [VXML21]): where possible, basic prompting, DTMF collection, and media recording features are incorporated, but not any advanced VoiceXML constructs (such as <form>, its interpretation algorithm, or a dynamic data model). As W3C develops VoiceXML 3.0 [VXML30], we expect to see further alignment, especially in providing a set of basic independent primitive elements (such as prompt, collect, record, and runtime controls) that can be reused in different dialog languages.

此软件包中定义的对话框功能在很大程度上可以被视为VoiceXML的子集([VXML20]、[VXML21]):在可能的情况下,合并了基本提示、DTMF采集和媒体录制功能,但没有任何高级VoiceXML构造(例如<form>、其解释算法或动态数据模型)。随着W3C开发VoiceXML3.0[VXML30],我们希望看到进一步的一致性,特别是在提供一组基本的独立基本元素(如提示、收集、记录和运行时控件)方面,这些元素可以在不同的对话语言中重用。

By reusing and building upon design patterns from these approaches to IVR languages, this package is intended to provide a foundation that is familiar to current IVR developers and sufficient for most IVR applications, as well as a path to other languages that address more advanced applications.

通过将这些模式从IVR语言的这些方法重用和构建,该包旨在为当前IVR开发人员提供一个熟悉的基础,并且对于大多数IVR应用程序来说是足够的,以及通向更高级应用的其他语言的路径。

This Control Package defines a lightweight IVR dialog language. The scope of this dialog language is the following IVR functionality:

此控制包定义了一种轻量级IVR对话框语言。此对话框语言的范围是以下IVR功能:

o playing one or more media resources as a prompt to the user

o 播放一个或多个媒体资源作为对用户的提示

o runtime controls (including VCR controls like speed and volume)

o 运行时控制(包括VCR控制,如速度和音量)

o collecting DTMF input from the user according to a grammar

o 根据语法从用户收集DTMF输入

o recording user media input

o 记录用户媒体输入

Out of scope for this dialog language are more advanced functions including ASR (Automatic Speech Recognition), TTS (Text-to-Speech), fax, automatic prompt recovery ('media fallback'), and media transformation. Such functionality can be addressed by other dialog languages (such as VoiceXML) used with this package, extensions to this package (addition of foreign elements or attributes from another namespace), or other Control Packages.

这种对话语言不适用于更高级的功能,包括ASR(自动语音识别)、TTS(文本到语音)、传真、自动提示恢复(“媒体回退”)和媒体转换。此类功能可以通过与此包一起使用的其他对话框语言(如VoiceXML)、此包的扩展(添加来自另一命名空间的外来元素或属性)或其他控制包来实现。

The functionality of this package is defined by messages, containing XML [XML] elements, transported using the Media Control Channel Framework. The XML elements can be divided into three types: dialog management elements; a dialog element that defines a lightweight IVR dialog language used with dialog management elements; and finally, elements for auditing package capabilities as well as dialogs managed by the package.

此包的功能由包含XML[XML]元素的消息定义,这些消息使用媒体控制通道框架传输。XML元素可以分为三种类型:对话框管理元素;对话框元素,定义与对话框管理元素一起使用的轻量级IVR对话框语言;最后是用于审计包功能的元素以及由包管理的对话框。

Dialog management elements are designed to manage the general lifecycle of a dialog. Elements are provided for preparing a dialog, starting the dialog on a conference or connection, and terminating execution of a dialog. Each of these elements is contained in a Media Control Channel Framework CONTROL message sent to the media

对话框管理元素旨在管理对话框的一般生命周期。元素用于准备对话、在会议或连接上启动对话以及终止对话的执行。这些元素中的每一个都包含在发送到媒体的媒体控制通道框架控制消息中

server. When the appropriate action has been executed, the media server sends a REPORT message (or a 200 response to the CONTROL message if it can execute in time) with a response element indicating whether or not the operation was successful (e.g., if the dialog cannot be started, then the error is reported in this response). Once a dialog has been successfully started, the media server can send further event notifications in a framework CONTROL message. This package defines two event notifications: a DTMF event indicating the DTMF activity, and a dialogexit event indicating that the dialog has exited. If the dialog has executed successfully, the dialogexit event includes information collected during the dialog. If an error occurs during execution (e.g., a media resource failed to play, no recording resource available, etc.), then error information is reported in the dialogexit event. Once a dialogexit event is sent, the dialog lifecycle is terminated.

服务器执行适当的操作后,媒体服务器将发送一条报告消息(或对控制消息的200响应,如果它能够及时执行),其中的响应元素指示操作是否成功(例如,如果无法启动对话框,则在此响应中报告错误)。对话框成功启动后,媒体服务器可以在框架控制消息中发送进一步的事件通知。此包定义了两个事件通知:一个DTMF事件指示DTMF活动,另一个dialogexit事件指示对话框已退出。如果对话框已成功执行,则dialogexit事件包括在对话框期间收集的信息。如果在执行过程中发生错误(例如,媒体资源无法播放、没有可用的录制资源等),则在dialogexit事件中报告错误信息。发送dialogexit事件后,对话框生命周期终止。

The dialog management elements for preparing and starting a dialog specify the dialog using a dialog language. A dialog language has well-defined syntax and semantics for defined dialog operations. Typically, dialog languages are written in XML where the root element has a designated XML namespace and, when used as standalone documents, have an associated MIME media type. For example, VoiceXML is an XML dialog language with the root element <vxml> with the designated namespace 'http://www.w3.org/2001/vxml' and standalone documents are associated with the MIME media type 'application/ voicexml+xml' [RFC4267].

用于准备和启动对话框的对话框管理元素使用对话框语言指定对话框。对话语言对于已定义的对话操作具有定义良好的语法和语义。通常,对话框语言是用XML编写的,其中根元素具有指定的XML名称空间,并且当用作独立文档时,具有关联的MIME媒体类型。例如,VoiceXML是一种XML对话语言,其根元素<vxml>,具有指定的名称空间'http://www.w3.org/2001/vxml'和独立文档与MIME媒体类型'application/voicexml+xml'[RFC4267]相关联。

This Control Package defines its own lightweight IVR dialog language. The language has a root element (<dialog>) with the same designated namespace as used for other elements defined in this package (see Section 8.2). The root element contains child elements for playing prompts to the user, specifying runtime controls, collecting DTMF input from the user, and recording media input from the user. The child elements can co-occur so as to provide 'play announcement', 'prompt and collect', as well as 'prompt and record' functionality.

此控制包定义了自己的轻量级IVR对话语言。该语言有一个根元素(<dialog>),其指定名称空间与此包中定义的其他元素相同(见第8.2节)。根元素包含用于向用户播放提示、指定运行时控件、收集用户的DTMF输入以及记录用户的媒体输入的子元素。子元素可以同时出现,以便提供“播放公告”、“提示和收集”以及“提示和记录”功能。

The dialog management elements for preparing and starting a dialog can specify the dialog language either by including inline a fragment with the root element or by referencing an external dialog document. The dialog language defined in this package is specified inline. Other dialog languages, such as VoiceXML, can be used by referencing an external dialog document.

用于准备和启动对话框的对话框管理元素可以通过在根元素中包含内联片段或引用外部对话框文档来指定对话框语言。此包中定义的对话框语言是内联指定的。其他对话框语言(如VoiceXML)可以通过引用外部对话框文档来使用。

The document is organized as follows. Section 3 describes how this Control Package fulfills the requirements for a Media Control Channel Framework Control Package. Section 4 describes the syntax and semantics of defined elements, including dialog management (Section 4.2), the IVR dialog element (Section 4.3), and audit

该文件的组织如下。第3节描述了该控制包如何满足媒体控制通道框架控制包的要求。第4节描述了定义元素的语法和语义,包括对话框管理(第4.2节)、IVR对话框元素(第4.3节)和审计

elements (Section 4.4). Section 5 describes an XML schema for these elements and provides extensibility by allowing attributes and elements from other namespaces. Section 6 provides examples of package usage. Section 7 describes important security considerations for use of this Control Package. Section 8 provides information on IANA registration of this Control Package, including its name, XML namespace, and MIME media type. It also establishes a registry for prompt variables. Finally, Section 9 provides additional information on using VoiceXML when supported as an external dialog language.

要素(第4.4节)。第5节描述了这些元素的XML模式,并通过允许来自其他名称空间的属性和元素来提供可扩展性。第6节提供了包使用的示例。第7节描述了使用此控制包的重要安全注意事项。第8节提供了有关此控制包的IANA注册的信息,包括其名称、XML命名空间和MIME媒体类型。它还为提示变量建立一个注册表。最后,第9节提供了有关在支持作为外部对话语言时使用VoiceXML的附加信息。

2. Conventions and Terminology
2. 公约和术语

In this document, BCP 14 [RFC2119] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In addition, BCP 15 indicates requirement levels for compliant implementations.

在本文件中,BCP 14[RFC2119]定义了关键词“必须”、“不得”、“必需”、“应”、“不得”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”。此外,BCP 15指出了合规实施的需求水平。

The following additional terms are defined for use in this document:

本文件中定义了以下附加术语:

Dialog: A dialog performs media interaction with a user following the concept of an IVR (Interactive Voice Response) dialog (this sense of 'dialog' is completely unrelated to a SIP dialog). A dialog is specified as inline XML or via a URI reference to an external dialog document. Traditional IVR dialogs typically feature capabilities such as playing audio prompts, collecting DTMF input, and recording audio input from the user. More inclusive definitions include support for other media types, runtime controls, synthesized speech, recording and playback of video, recognition of spoken input, and mixed initiative conversations.

对话:对话按照IVR(交互式语音响应)对话的概念与用户进行媒体交互(这种“对话”的意义与SIP对话完全无关)。对话框被指定为内联XML或通过对外部对话框文档的URI引用。传统的IVR对话框通常具有播放音频提示、收集DTMF输入和录制用户音频输入等功能。更具包容性的定义包括支持其他媒体类型、运行时控件、合成语音、录制和播放视频、识别语音输入以及混合主动对话。

Application Server: A SIP [RFC3261] application server (AS) hosts and executes services such as interactive media and conferencing in an operator's network. An AS influences and impacts the SIP session, in particular by terminating SIP sessions on a media server, which is under its control.

应用服务器:SIP[RFC3261]应用服务器(AS)承载并执行运营商网络中的交互媒体和会议等服务。AS影响和影响SIP会话,特别是通过在其控制下的媒体服务器上终止SIP会话。

Media Server: A media server (MS) processes media streams on behalf of an AS by offering functionality such as interactive media, conferencing, and transcoding to the end user. Interactive media functionality is realized by way of dialogs that are initiated by the application server.

媒体服务器:媒体服务器(MS)通过向最终用户提供交互媒体、会议和转码等功能,代表AS处理媒体流。交互式媒体功能通过应用服务器启动的对话框实现。

3. Control Package Definition
3. 控制包定义

This section fulfills the mandatory requirement for information that MUST be specified during the definition of a Control Framework Package, as detailed in Section 7 of [RFC6230].

如[RFC6230]第7节所述,本节满足了控制框架包定义期间必须规定的强制性信息要求。

3.1. Control Package Name
3.1. 控制包名称

The Control Framework requires a Control Package to specify and register a unique name.

控制框架需要一个控制包来指定和注册一个唯一的名称。

The name of this Control Package is "msc-ivr/1.0" (Media Server Control - Interactive Voice Response - version 1.0). Its IANA registration is specified in Section 8.1.

此控制包的名称为“msc ivr/1.0”(媒体服务器控制-交互式语音响应-版本1.0)。第8.1节规定了其IANA注册。

Since this is the initial ("1.0") version of the Control Package, there are no backwards-compatibility issues to address.

由于这是控制包的初始(“1.0”)版本,因此没有向后兼容性问题需要解决。

3.2. Framework Message Usage
3.2. 框架消息使用

The Control Framework requires a Control Package to explicitly detail the CONTROL messages that can be used as well as provide an indication of directionality between entities. This will include which role type is allowed to initiate a request type.

控制框架需要一个控制包来明确详细说明可以使用的控制消息,并提供实体之间方向性的指示。这将包括允许哪个角色类型启动请求类型。

This package specifies Control and response messages in terms of XML elements defined in Section 4, where the message bodies have the MIME media type defined in Section 8.4. These elements describe requests, responses, and notifications and all are contained within a root <mscivr> element (Section 4.1).

该包根据第4节中定义的XML元素指定控制和响应消息,其中消息体具有第8.4节中定义的MIME媒体类型。这些元素描述请求、响应和通知,它们都包含在根<mscivr>元素中(第4.1节)。

In this package, the MS operates as a Control Server in receiving requests from, and sending responses to, the AS (operating as Control Client). Dialog management requests and responses are defined in Section 4.2. Audit requests and responses are defined in Section 4.4. Dialog management and audit responses are carried in a framework 200 response or REPORT message bodies. This package's response codes are defined in Section 4.5.

在此包中,MS作为控制服务器接收来自as(作为控制客户端运行)的请求并向其发送响应。第4.2节定义了对话框管理请求和响应。第4.4节定义了审计请求和响应。对话框管理和审核响应在Framework200响应或报告消息体中进行。第4.5节定义了该包的响应代码。

Note that package responses are different from framework response codes. Framework error response codes (see Section 7 of [RFC6230]) are used when the request or event notification is invalid; for example, a request is invalid XML (400), or not understood (500).

请注意,包响应不同于框架响应代码。当请求或事件通知无效时,使用框架错误响应代码(见[RFC6230]第7节);例如,请求是无效的XML(400),或不可理解(500)。

The MS also operates as a Control Client in sending event notification to the AS (Control Server). Event notifications (Section 4.2.5) are carried in CONTROL message bodies. The AS MUST respond with a Control Framework 200 response.

MS还作为控制客户端向as(控制服务器)发送事件通知。事件通知(第4.2.5节)在控制消息正文中进行。AS必须以控制框架200响应进行响应。

3.3. Common XML Support
3.3. 通用XML支持

The Control Framework requires a Control Package definition to specify if the attributes for media dialog or conference references are required.

控制框架需要一个控制包定义来指定是否需要媒体对话框或会议引用的属性。

This package requires that the XML schema in Section A.1 of [RFC6230] MUST be supported for media dialogs and conferences.

该软件包要求媒体对话和会议必须支持[RFC6230]第A.1节中的XML模式。

The package uses "connectionid" and "conferenceid" attributes for various element definitions (Section 4). The XML schema (Section 5) imports the definitions of these attributes from the framework schema.

该包对各种元素定义使用“connectionid”和“conferenceid”属性(第4节)。XML模式(第5节)从框架模式导入这些属性的定义。

3.4. CONTROL Message Body
3.4. 控制消息体

The Control Framework requires a Control Package to define the control body that can be contained within a CONTROL command request and to indicate the location of detailed syntax definitions and semantics for the appropriate body types.

控制框架需要一个控制包来定义可包含在控制命令请求中的控制主体,并指示适当主体类型的详细语法定义和语义的位置。

When operating as Control Server, the MS receives Control message bodies with the MIME media type defined in Section 8.4 and containing an <mscivr> element (Section 4.1) with either a dialog management or audit request child element.

当作为控制服务器运行时,MS接收具有第8.4节中定义的MIME媒体类型的控制消息正文,并包含带有对话框管理或审核请求子元素的<mscivr>元素(第4.1节)。

The following dialog management request elements are carried in CONTROL message bodies to the MS: <dialogprepare> (Section 4.2.1), <dialogstart> (Section 4.2.2), and <dialogterminate> (Section 4.2.3) elements.

以下对话框管理请求元素在MS的控制消息正文中携带:<dialogprepare>(第4.2.1节)、<dialogstart>(第4.2.2节)和<dialogterminate>(第4.2.3节)元素。

The <audit> request element (Section 4.4.1) is also carried in CONTROL message bodies.

<audit>请求元素(第4.4.1节)也包含在控制消息正文中。

When operating as Control Client, the MS sends CONTROL messages with the MIME media type defined in Section 8.4 and a body containing an <mscivr> element (Section 4.1) with a notification <event> child element (Section 4.2.5).

当作为控制客户端运行时,MS发送控制消息,其中包含第8.4节中定义的MIME媒体类型和包含<mscivr>元素(第4.1节)的正文,以及通知<event>子元素(第4.2.5节)。

3.5. REPORT Message Body
3.5. 报告消息体

The Control Framework requires a Control Package definition to define the REPORT body that can be contained within a REPORT command request, or that no report package body is required. This section indicates the location of detailed syntax definitions and semantics for the appropriate body types.

控制框架需要控制包定义来定义可以包含在报告命令请求中的报告正文,或者不需要报告包正文。本节说明了适当主体类型的详细语法定义和语义的位置。

When operating as Control Server, the MS sends REPORT bodies with the MIME media type defined in Section 8.4 and containing a <mscivr> element (Section 4.1) with a response child element. The response element for dialog management requests is a <response> element (Section 4.2.4). The response element for an audit request is an <auditresponse> element (Section 4.4.2).

当作为控制服务器运行时,MS发送具有第8.4节中定义的MIME媒体类型的报告正文,其中包含带有响应子元素的<mscivr>元素(第4.1节)。对话框管理请求的响应元素是<response>元素(第4.2.4节)。审核请求的响应元素是<auditresponse>元素(第4.4.2节)。

3.6. Audit
3.6. 审计

The Control Framework encourages Control Packages to specify whether auditing is available, how it is triggered, as well as the query/ response formats.

控制框架鼓励控制包指定审核是否可用、如何触发以及查询/响应格式。

This Control Package supports auditing of package capabilities and dialogs on the MS. An audit request is carried in a CONTROL message (see Section 3.4) and an audit response in a REPORT message (or a 200 response to the CONTROL if it can execute the audit in time) (see Section 3.5).

该控制包支持对MS上的包功能和对话框进行审计。审计请求包含在控制消息(见第3.4节)中,审计响应包含在报告消息中(或200响应,如果控制可以及时执行审计)(见第3.5节)。

The syntax and semantics of audit request and response elements are defined in Section 4.4.

审计请求和响应元素的语法和语义在第4.4节中定义。

3.7. Examples
3.7. 例子

The Control Framework recommends Control Packages to provide a range of message flows that represent common flows using the package and this framework document.

控制框架建议控制包提供一系列消息流,这些消息流表示使用包和本框架文档的公共流。

This Control Package provides examples of such message flows in Section 6.

此控制包在第6节中提供了此类消息流的示例。

4. Element Definitions
4. 元素定义

This section defines the XML elements for this package. The elements are defined in the XML namespace specified in Section 8.2.

本节定义此包的XML元素。元素在第8.2节中指定的XML名称空间中定义。

The root element is <mscivr> (Section 4.1). All other XML elements (requests, responses, and notification elements) are contained within it. Child elements describe dialog management (Section 4.2) and audit (Section 4.4) functionality. The IVR dialog element (contained within dialog management elements) is defined in Section 4.3. Response status codes are defined in Section 4.5 and type definitions in Section 4.6.

根元素是<mscivr>(第4.1节)。所有其他XML元素(请求、响应和通知元素)都包含在其中。子元素描述对话框管理(第4.2节)和审核(第4.4节)功能。第4.3节定义了IVR对话框元素(包含在对话框管理元素中)。响应状态代码在第4.5节中定义,类型定义在第4.6节中定义。

Implementation of this Control Package MUST address the Security Considerations described in Section 7.

此控制包的实施必须解决第7节中描述的安全注意事项。

Implementation of this Control Package MUST adhere to the syntax and semantics of XML elements defined in this section and the schema (Section 5). Since XML schema is unable to support some types of syntactic constraints (such as attribute and element co-occurrence), some elements in this package specify additional syntactic constraints in their textual definition. If there is a difference in constraints between the XML schema and the textual description of elements in this section, the textual definition takes priority.

此控制包的实现必须遵守本节和模式(第5节)中定义的XML元素的语法和语义。由于XML模式无法支持某些类型的语法约束(如属性和元素共现),因此此包中的某些元素在其文本定义中指定了其他语法约束。如果XML模式和本节中元素的文本描述之间的约束存在差异,则文本定义优先。

The XML schema supports extensibility by allowing attributes and elements from other namespaces. Implementations MAY support additional capabilities by means of attributes and elements from other (foreign) namespaces. Attributes and elements from foreign namespaces are not described in this section.

XML模式通过允许来自其他名称空间的属性和元素来支持可扩展性。实现可以通过来自其他(外部)名称空间的属性和元素来支持其他功能。本节不介绍外部名称空间中的属性和元素。

Some elements in this Control Package contain attributes whose value is a URI. These elements include: <dialogprepare> (Section 4.2.1), <dialogstart> (Section 4.2.2), <media> (Section 4.3.1.5), <grammar> (Section 4.3.1.3.1), and <record> (Section 4.3.1.4). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] protocol schemes for fetching and uploading resources, and the MS MAY support other schemes. The implementation SHOULD support storage of authentication information as part of its configuration, including security certificates for use with HTTPS. If the implementation wants to support user authentication, user certifications and passwords can also be stored as part of its configuration or the implementation can extend the schema (adding, for example, an http-password attribute in its own namespace) and then map user authentication information onto the appropriate headers following the HTTP authentication model [RFC2616].

此控制包中的某些元素包含值为URI的属性。这些要素包括:<dialogprepare>(第4.2.1节)、<dialogstart>(第4.2.2节)、<media>(第4.3.1.5节)、<grammar>(第4.3.1.3.1节)和<record>(第4.3.1.4节)。MS必须支持HTTP[RFC2616]和HTTPS[RFC2818]协议方案来获取和上载资源,并且MS可以支持其他方案。该实现应支持将身份验证信息存储作为其配置的一部分,包括用于HTTPS的安全证书。如果实现想要支持用户身份验证,那么用户证书和密码也可以作为其配置的一部分存储,或者实现可以扩展模式(例如,在其自己的命名空间中添加http密码属性)然后按照HTTP身份验证模型[RFC2616]将用户身份验证信息映射到相应的头上。

Some elements in this Control Package contain attributes whose value is descriptive text primarily for diagnostic use. The implementation can indicate the language used in the descriptive text by means of a 'desclang' attribute ([RFC2277], [RFC5646]). The desclang attribute can appear on the root element as well as selected subordinate elements (see Section 4.1). The desclang attribute value on the root element applies to all desclang attributes in subordinate elements unless the subordinate element has an explicit desclang attribute that overrides it.

此控制包中的某些元素包含其值主要用于诊断的描述性文本的属性。实现可以通过“desclang”属性([RFC2277]、[RFC5646])指示描述性文本中使用的语言。desclang属性可以出现在根元素以及选定的从属元素上(参见第4.1节)。根元素上的desclang属性值应用于从属元素中的所有desclang属性,除非从属元素具有覆盖它的显式desclang属性。

Usage examples are provided in Section 6.

第6节提供了使用示例。

4.1. <mscivr>
4.1. <mscivr>

The <mscivr> element has the following attributes (in addition to standard XML namespace attributes such as xmlns):

<mscivr>元素具有以下属性(除了标准XML名称空间属性,如xmlns):

version: a string specifying the mscivr package version. The value is fixed as '1.0' for this version of the package. The attribute is mandatory.

版本:指定mscivr包版本的字符串。此版本的包的值固定为“1.0”。该属性是必需的。

desclang: specifies the language used in descriptive text attributes of subordinate elements (unless the subordinate element provides a desclang attribute that overrides the value for its descriptive text attributes). The descriptive text attributes on subordinate elements include: the reason attribute on <response> (Section 4.2.4), <dialogexit> (Section 4.2.5.1), and <auditresponse> (Section 4.4.2); desc attribute on <variabletype> and <format> (Section 4.4.2.2.5.1). A valid value is a language identifier (Section 4.6.11). The attribute is optional. The default value is i-default (BCP 47 [RFC5646]).

desclang:指定在下级元素的描述性文本属性中使用的语言(除非下级元素提供了覆盖其描述性文本属性值的desclang属性)。从属元素上的描述性文本属性包括:<response>(第4.2.4节)、<dialogexit>(第4.2.5.1节)和<auditresponse>(第4.4.2节)上的原因属性;<variabletype>和<format>上的desc属性(第4.4.2.2.5.1节)。有效值是语言标识符(第4.6.11节)。该属性是可选的。默认值为i-default(BCP 47[RFC5646])。

The <mscivr> element has the following defined child elements, only one of which can occur:

<mscivr>元素具有以下定义的子元素,其中只能出现一个:

1. dialog management elements defined in Section 4.2:

1. 第4.2节中定义的对话框管理元素:

<dialogprepare> prepare a dialog. See Section 4.2.1.

<dialogprepare>准备一个对话框。见第4.2.1节。

<dialogstart> start a dialog. See Section 4.2.2.

<dialogstart>启动一个对话框。见第4.2.2节。

<dialogterminate> terminate a dialog. See Section 4.2.3.

<dialogterminate>终止对话框。见第4.2.3节。

<response> response to a dialog request. See Section 4.2.4.

<response>对对话框请求的响应。见第4.2.4节。

<event> dialog or subscription notification. See Section 4.2.5.

<event>对话框或订阅通知。见第4.2.5节。

2. audit elements defined in Section 4.4:

2. 第4.4节中定义的审计要素:

<audit> audit package capabilities and managed dialogs. See Section 4.4.1.

<audit>审计包功能和托管对话框。见第4.4.1节。

<auditresponse> response to an audit request. See Section 4.4.2.

<auditresponse>对审核请求的响应。见第4.4.2节。

For example, a request to the MS to start an IVR dialog playing a prompt:

例如,请求MS启动IVR对话框,播放提示:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/welcome.wav"/>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/welcome.wav"/>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        

and a response from the MS that the dialog started successfully:

以及来自MS的对话框成功启动的响应:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d1"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d1"/>
   </mscivr>
        

and finally a notification from the MS indicating that the dialog exited upon completion of playing the prompt:

最后是来自MS的通知,指示对话框在完成提示播放后退出:

  <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
          desclang="en">
   <event dialogid="d1">
    <dialogexit status="1" reason="successful completion of the dialog">
     <promptinfo termmode="completed"/>
    </dialogexit>
   </event>
  </mscivr>
        
  <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
          desclang="en">
   <event dialogid="d1">
    <dialogexit status="1" reason="successful completion of the dialog">
     <promptinfo termmode="completed"/>
    </dialogexit>
   </event>
  </mscivr>
        

The language of the descriptive text in the reason attribute of <dialogexit> is explicitly indicated by the desclang attribute of the <mscivr> root element.

<dialogexit>的reason属性中描述性文本的语言由<mscivr>根元素的desclang属性明确指示。

4.2. Dialog Management Elements
4.2. 对话框管理元素

This section defines the dialog management XML elements for this Control Package. These elements are divided into requests, responses, and notifications.

本节定义此控制包的对话框管理XML元素。这些元素分为请求、响应和通知。

Request elements are sent to the MS to request a specific dialog operation to be executed. The following request elements are defined:

请求元素被发送到MS,以请求执行特定的对话操作。定义了以下请求元素:

   <dialogprepare>:  prepare a dialog for later execution
        
   <dialogprepare>:  prepare a dialog for later execution
        

<dialogstart>: start a (prepared) dialog on a connection or conference

<dialogstart>:在连接或会议上启动(准备好的)对话框

   <dialogterminate>:  terminate a dialog
        
   <dialogterminate>:  terminate a dialog
        

Responses from the MS describe the status of the requested operation. Responses are specified in a <response> element (Section 4.2.4) that includes a mandatory attribute describing the status in terms of a numeric code. Response status codes are defined in Section 4.5. The MS MUST respond to a request message with a response message. If the MS is not able to process the request and carry out the dialog operation, the request has failed and the MS MUST indicate the class of failure using an appropriate 4xx response code. Unless an error response code is specified for a class of error within this section, implementations follow Section 4.5 in determining the appropriate status code for the response.

来自MS的响应描述请求操作的状态。响应在<response>元素(第4.2.4节)中指定,该元素包含一个强制性属性,该属性用数字代码描述状态。第4.5节定义了响应状态代码。MS必须使用响应消息响应请求消息。如果MS无法处理请求并执行对话操作,则表明请求失败,MS必须使用适当的4xx响应代码指示故障类别。除非在本节中为一类错误指定了错误响应代码,否则在确定响应的适当状态代码时,应遵循第4.5节的规定。

Notifications are sent from the MS to provide updates on the status of a dialog or operations defined within the dialog. Notifications are specified in an <event> element (Section 4.2.5).

MS会发送通知,以更新对话框的状态或对话框中定义的操作。通知在<event>元素中指定(第4.2.5节)。

                             +---------+
                             |  IDLE   |
                             +---------+
                               |     |
                               |     |
               <dialogprepare>/|     |<dialogstart>/
                               |     |
           +---------+         |     |             +---------+
  +-----<--|         |<--------+     +------------>|         |+------>-+
  | +-<----|PREPARING|                             |STARTING |         |
  | |      |         |                 ----------->|         |---->--+ |
  | |      +---------+                /            +---------+       | |
  | |           |                    /                  |            | |
  | |           |/200 response      /      /200 response|            | |
  | |           |                  /                    |            | |
  | |           |                 /                     |            | |
  | |           |                /                      |            | |
  V V           v               /<dialogstart>/         v            | |
  | |      +---------+         /                   +---------+       | |
  | |      |         |--------+               +----|         |       | |
  | |      |PREPARED |---------+              |    | STARTED |       | |
  | |      |         |         |              +--->|         |       | |
  | |      |         |--------+| <dialogterminate>/|         |       | |
  | |      +---------+        ||  200 response     +---------+       | |
  | |                         ||                    |                | |
  | | /dialogexit notification||                    |                | |
  | |           (timeout)     ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||<dialogterminate>/  |                | |
  | |                         ||  200 response      |                | |
  | |                         ||       +            |/dialogexit     | |
  | |                         || /dialogexit        | notification   | |
  | |                         || notification       |                | |
  | |                         ||                    |                | |
  | |                         vv                    |                | |
  | |      /ERROR response  +-----------+           |                | |
  | +---------------------->|           |<----------+ /ERROR response| |
  +------------------------>|TERMINATED |<---------------------------+ |
       <dialogterminate>/   |           |<-----------------------------+
           410 response     +-----------+ <dialogterminate>/410 response
        
                             +---------+
                             |  IDLE   |
                             +---------+
                               |     |
                               |     |
               <dialogprepare>/|     |<dialogstart>/
                               |     |
           +---------+         |     |             +---------+
  +-----<--|         |<--------+     +------------>|         |+------>-+
  | +-<----|PREPARING|                             |STARTING |         |
  | |      |         |                 ----------->|         |---->--+ |
  | |      +---------+                /            +---------+       | |
  | |           |                    /                  |            | |
  | |           |/200 response      /      /200 response|            | |
  | |           |                  /                    |            | |
  | |           |                 /                     |            | |
  | |           |                /                      |            | |
  V V           v               /<dialogstart>/         v            | |
  | |      +---------+         /                   +---------+       | |
  | |      |         |--------+               +----|         |       | |
  | |      |PREPARED |---------+              |    | STARTED |       | |
  | |      |         |         |              +--->|         |       | |
  | |      |         |--------+| <dialogterminate>/|         |       | |
  | |      +---------+        ||  200 response     +---------+       | |
  | |                         ||                    |                | |
  | | /dialogexit notification||                    |                | |
  | |           (timeout)     ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||                    |                | |
  | |                         ||<dialogterminate>/  |                | |
  | |                         ||  200 response      |                | |
  | |                         ||       +            |/dialogexit     | |
  | |                         || /dialogexit        | notification   | |
  | |                         || notification       |                | |
  | |                         ||                    |                | |
  | |                         vv                    |                | |
  | |      /ERROR response  +-----------+           |                | |
  | +---------------------->|           |<----------+ /ERROR response| |
  +------------------------>|TERMINATED |<---------------------------+ |
       <dialogterminate>/   |           |<-----------------------------+
           410 response     +-----------+ <dialogterminate>/410 response
        

Figure 1: Dialog Lifecycle

图1:对话框生命周期

The MS implementation MUST adhere to the dialog lifecycle shown in Figure 1, where each dialog has the following states:

MS实现必须遵循图1所示的对话框生命周期,其中每个对话框都有以下状态:

IDLE: the dialog is uninitialized.

空闲:对话框未初始化。

PREPARING: the dialog is being prepared. The dialog is assigned a valid dialog identifier (see below). If an error occurs, the dialog transitions to the TERMINATED state and the MS MUST send a response indicating the error. If the dialog is terminated before preparation is complete, the dialog transitions to the TERMINATED state and the MS MUST send a 410 response (Section 4.5) for the prepare request.

准备:正在准备对话框。为该对话框分配了一个有效的对话框标识符(见下文)。如果发生错误,对话框将转换为终止状态,MS必须发送指示错误的响应。如果在准备完成之前终止对话框,则对话框将转换为终止状态,并且MS必须发送410响应(第4.5节)以响应准备请求。

PREPARED: the dialog has been successfully prepared and the MS MUST send a 200 response indicating the prepare operation was successful. If the dialog is terminated, then the MS MUST send a 200 response, the dialog transitions to the TERMINATED state and the MS MUST send a dialogexit notification event (see Section 4.2.5.1). If the duration the dialog remains in the PREPARED state exceeds the maximum preparation duration, the dialog transitions to the TERMINATED state and the MS MUST send a dialogexit notification with the appropriate error status code (see Section 4.2.5.1). A maximum preparation duration of 300s is RECOMMENDED.

准备:对话框已成功准备,MS必须发送200响应,指示准备操作已成功。如果对话框终止,则MS必须发送200响应,对话框转换为终止状态,MS必须发送dialogexit通知事件(见第4.2.5.1节)。如果对话框处于准备状态的持续时间超过最大准备持续时间,则对话框将转换为终止状态,MS必须发送带有相应错误状态代码的对话框退出通知(见第4.2.5.1节)。建议最长准备时间为300秒。

STARTING: the dialog is being started. If the dialog has not already been prepared, it is first prepared and assigned a valid dialog identifier (see below). If an error occurs the dialog transitions to the TERMINATED state and the MS MUST send a response indicating the error. If the dialog is terminated, the dialog transitions to the TERMINATED state and the MS MUST send a 410 response (Section 4.5) for the start request.

正在启动:对话框正在启动。如果对话框尚未准备好,则首先准备好并分配一个有效的对话框标识符(见下文)。如果发生错误,对话框将转换为终止状态,MS必须发送指示错误的响应。如果对话框终止,则对话框转换为终止状态,MS必须发送410响应(第4.5节)以响应启动请求。

STARTED: the dialog has been successfully started and is now active. The MS MUST send a 200 response indicating the start operation was successful. If any dialog events occur that were subscribed to, the MS MUST send a notifications when the dialog event occurs. When the dialog exits (due to normal termination, an error, or a terminate request), the MS MUST send a dialogexit notification event (see Section 4.2.5.1) and the dialog transitions to the TERMINATED state.

已启动:对话框已成功启动,现在处于活动状态。MS必须发送200响应,指示启动操作成功。如果发生订阅的任何对话事件,MS必须在对话事件发生时发送通知。当对话框退出时(由于正常终止、错误或终止请求),MS必须发送一个dialogexit通知事件(见第4.2.5.1节),对话框转换为终止状态。

TERMINATED: the dialog is terminated and its dialog identifier is no longer valid. Dialog notifications MUST NOT be sent for this dialog.

已终止:对话框已终止,其对话框标识符不再有效。不得为此对话框发送对话框通知。

Each dialog has a valid identifier until it transitions to a TERMINATED state. The dialog identifier is assigned by the MS unless the <dialogprepare> or <dialogstart> request already specifies a

在转换到终止状态之前,每个对话框都有一个有效标识符。除非<dialogprepare>或<dialogstart>请求已经指定了一个对话框标识符,否则该对话框标识符由MS分配

identifier (dialogid) that is not associated with any other dialog on the MS. Once a dialog is in a TERMINATED state, its dialog identifier is no longer valid and can be reused for another dialog.

与MS上的任何其他对话框不关联的标识符(dialogid)。一旦某个对话框处于终止状态,其对话框标识符将不再有效,并可重新用于另一个对话框。

The identifier is used to reference the dialog in subsequent requests, responses, and notifications. In a <dialogstart> request, the dialog identifier can be specified in the prepareddialogid attribute indicating the prepared dialog to start. In <dialogterminate> and <audit> requests, the dialog identifier is specified in the dialogid attribute, indicating which dialog is to be terminated or audited, respectively. If these requests specify a dialog identifier already associated with another dialog on the MS, the MS sends a response with a 405 status code (see Section 4.5) and the same dialogid as in the request. The MS MUST specify a dialog identifier in notifications associated with the dialog. The MS MUST specify a dialog identifier in responses unless it is a response to a syntactically invalid request.

标识符用于在后续请求、响应和通知中引用对话框。在<dialogstart>请求中,可以在prepareddialogid属性中指定对话框标识符,以指示准备启动的对话框。在<dialogterminate>和<audit>请求中,对话框标识符在dialogid属性中指定,分别指示要终止或审核的对话框。如果这些请求指定了一个已经与MS上的另一个对话框关联的对话框标识符,MS将发送一个405状态代码(参见第4.5节)和与请求中相同的对话框ID的响应。MS必须在与对话框关联的通知中指定对话框标识符。MS必须在响应中指定对话标识符,除非它是对语法无效请求的响应。

For a given dialog, the <dialogprepare> or <dialogstart> request elements specify the dialog content to execute either by including inline a <dialog> element (the dialog language defined in this package; see Section 4.3) or by referencing an external dialog document (a dialog language defined outside this package). When referencing an external dialog document, the request element contains a URI reference to the remote document (specifying the dialog definition) and, optionally, a type attribute indicating the MIME media type associated with the dialog document. Consequently, the dialog language associated with a dialog on the MS is identified either inline by a <dialog> child element or by a src attribute referencing a document containing the dialog language. The MS MUST support inline the IVR dialog language defined in Section 4.3. The MS MAY support other dialog languages by reference.

对于给定的对话框,<dialogprepare>或<dialogstart>请求元素通过包含内联<dialog>元素(此包中定义的对话框语言;参见第4.3节)或通过引用外部对话框文档(此包外定义的对话框语言)来指定要执行的对话框内容。引用外部对话框文档时,request元素包含对远程文档的URI引用(指定对话框定义),还可以包含type属性,指示与对话框文档关联的MIME媒体类型。因此,与MS上的对话框相关联的对话框语言可以通过<dialog>子元素内联标识,也可以通过引用包含该对话框语言的文档的src属性标识。MS必须支持第4.3节中定义的IVR对话语言。MS可通过引用支持其他对话语言。

4.2.1. <dialogprepare>
4.2.1. <dialogprepare>

The <dialogprepare> request is sent to the MS to request preparation of a dialog. Dialog preparation consists of (a) retrieving an external dialog document and/or external resources referenced within an inline <dialog> element and (b) validating the dialog document syntactically and semantically.

<dialogprepare>请求发送至MS,请求准备对话。对话准备包括(a)检索内联<Dialog>元素中引用的外部对话文档和/或外部资源,以及(b)从语法和语义上验证对话文档。

A prepared dialog is executed when the MS receives a <dialogstart> request referencing the prepared dialog identifier (see Section 4.2.2).

当MS收到引用准备好的对话框标识符的<dialogstart>请求时,执行准备好的对话框(参见第4.2.2节)。

The <dialogprepare> element has the following attributes:

<dialogprepare>元素具有以下属性:

src: specifies the location of an external dialog document to prepare. A valid value is a URI (see Section 4.6.9). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] schemes and the MS MAY support other schemes. If the URI scheme is unsupported, the MS sends a <response> with a 420 status code (Section 4.5). If the document cannot be retrieved within the timeout interval, the MS sends a <response> with a 409 status code. If the document contains a type of dialog language that the MS does not support, the MS sends a <response> with a 421 status code. The attribute is optional. There is no default value.

src:指定要准备的外部对话框文档的位置。有效值是URI(见第4.6.9节)。MS必须同时支持HTTP[RFC2616]和HTTPS[RFC2818]方案,并且MS可以支持其他方案。如果不支持URI方案,MS将发送带有420状态代码的<response>(第4.5节)。如果在超时时间间隔内无法检索文档,则MS将发送带有409状态代码的<response>。如果文档包含MS不支持的对话语言类型,MS将发送带有421状态代码的<response>。该属性是可选的。没有默认值。

type: specifies the type of the external dialog document indicated in the 'src' attribute. A valid value is a MIME media type (see Section 4.6.10). If the URI scheme used in the src attribute defines a mechanism for establishing the authoritative MIME media type of the media resource, the value returned by that mechanism takes precedence over this attribute. The attribute is optional. There is no default value.

类型:指定“src”属性中指示的外部对话框文档的类型。有效值为MIME媒体类型(见第4.6.10节)。如果src属性中使用的URI方案定义了一种机制,用于建立媒体资源的权威MIME媒体类型,则该机制返回的值优先于该属性。该属性是可选的。没有默认值。

maxage: Used to set the max-age value of the 'Cache-Control' header in conjunction with an external dialog document fetched using HTTP, as per [RFC2616]. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

maxage:用于根据[RFC2616]结合使用HTTP获取的外部对话框文档设置“缓存控制”标头的最大年龄值。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

maxstale: Used to set the max-stale value of the 'Cache-Control' header in conjunction with an external dialog document fetched using HTTP, as per [RFC2616]. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

maxstale:用于根据[RFC2616]结合使用HTTP获取的外部对话框文档设置“缓存控制”标头的最大stale值。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

fetchtimeout: the maximum timeout interval to wait when fetching an external dialog document. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 30s.

fetchtimeout:获取外部对话框文档时等待的最大超时时间间隔。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为30秒。

dialogid: string indicating a unique name for the dialog. If a dialog with the same name already exists on the MS, the MS sends a <response> with a 405 status code (Section 4.5). If this attribute is not specified, the MS MUST create a unique name for the dialog (see Section 4.2 for dialog identifier assignment). The attribute is optional. There is no default value.

dialogid:表示对话框唯一名称的字符串。如果MS上已经存在同名对话框,MS将发送一个带有405状态代码的<response>(第4.5节)。如果未指定此属性,则MS必须为对话框创建唯一名称(有关对话框标识符分配,请参阅第4.2节)。该属性是可选的。没有默认值。

The <dialogprepare> element has the following sequence of child elements:

<dialogprepare>元素具有以下子元素序列:

<dialog> an IVR dialog (Section 4.3) to prepare. The element is optional.

<dialog>准备IVR对话框(第4.3节)。元素是可选的。

<params>: specifies input parameters (Section 4.2.6) for dialog languages defined outside this specification. The element is optional. If a parameter is not supported by the MS for the external dialog language, the MS sends a <response> with a 427 status code (Section 4.5).

<params>:为本规范之外定义的对话语言指定输入参数(第4.2.6节)。元素是可选的。如果MS不支持外部对话语言的参数,MS将发送带有427状态代码的<response>(第4.5节)。

The dialog to prepare can be specified either inline with a <dialog> child element or externally (for dialog languages defined outside this specification) using the src attribute. It is a syntax error if both an inline <dialog> element and a src attribute are specified and the MS sends a <response> with a 400 status code (see Section 4.5). The type, maxage, maxstale, and fetchtimeout attributes are only relevant when a dialog is specified as an external document.

可以使用<dialog>子元素内联指定要准备的对话框,也可以使用src属性外部指定(对于本规范之外定义的对话框语言)。如果同时指定了内联<dialog>元素和src属性,并且MS发送带有400状态代码的<response>,则这是一个语法错误(参见第4.5节)。类型、maxage、maxstale和fetchtimeout属性仅在将对话框指定为外部文档时才相关。

For example, a <dialogprepare> request to prepare an inline IVR dialog with a single prompt:

例如,<dialogprepare>请求准备一个带有单个提示的内联IVR对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare>
     <dialog>
      <prompt>
       <media loc="http://www.example.com/welcome.wav"/>
      </prompt>
     </dialog>
    </dialogprepare>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare>
     <dialog>
      <prompt>
       <media loc="http://www.example.com/welcome.wav"/>
      </prompt>
     </dialog>
    </dialogprepare>
   </mscivr>
        

In this example, a request with a specified dialogid to prepare a VoiceXML dialog document located externally:

在本例中,使用指定的dialogid请求准备位于外部的VoiceXML对话框文档:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare dialogid="d2" type="application/voicexml+xml"
                   src="http://www.example.com/mydialog.vxml"
                   fetchtimeout="15s"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare dialogid="d2" type="application/voicexml+xml"
                   src="http://www.example.com/mydialog.vxml"
                   fetchtimeout="15s"/>
   </mscivr>
        

Since MS support for dialog languages other than the IVR dialog language defined in this package is optional, if the MS does not support the dialog language, it would send a response with the status code 421 (Section 4.5). Further information on using VoiceXML can be found in Section 9.

由于MS对本软件包中定义的IVR对话语言以外的对话语言的支持是可选的,因此如果MS不支持对话语言,它将发送状态代码为421的响应(第4.5节)。有关使用VoiceXML的更多信息,请参见第9节。

4.2.2. <dialogstart>
4.2.2. <dialogstart>

The <dialogstart> element is sent to the MS to start a dialog. If the dialog has not been prepared, the dialog is prepared (retrieving external document and/or external resources referenced within <dialog> element and the dialog document validated syntactically and

<dialogstart>元素被发送到MS以启动对话框。如果对话框尚未准备好,则对话框已准备好(检索<dialog>元素中引用的外部文档和/或外部资源,并对对话框文档进行语法验证和

semantically). Media processors (e.g., DTMF and prompt queue) are activated and associated with the specified connection or conference.

语义上)。媒体处理器(如DTMF和提示队列)被激活并与指定的连接或会议关联。

The <dialogstart> element has the following attributes:

<dialogstart>元素具有以下属性:

src: specifies the location of an external dialog document to start. A valid value is a URI (see Section 4.6.9). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] schemes and the MS MAY support other schemes. If the URI scheme is unsupported, the MS sends a <response> with a 420 status code (Section 4.5). If the document cannot be retrieved with the timeout interval, the MS sends a <response> with a 409 status code. If the document contains a type of dialog language that the MS does not support, the MS sends a <response> with a 421 status code. The attribute is optional. There is no default value.

src:指定要启动的外部对话框文档的位置。有效值是URI(见第4.6.9节)。MS必须同时支持HTTP[RFC2616]和HTTPS[RFC2818]方案,并且MS可以支持其他方案。如果不支持URI方案,MS将发送带有420状态代码的<response>(第4.5节)。如果在超时时间间隔内无法检索文档,MS将发送带有409状态代码的<response>。如果文档包含MS不支持的对话语言类型,MS将发送带有421状态代码的<response>。该属性是可选的。没有默认值。

type: specifies the type of the external dialog document indicated in the 'src' attribute. A valid value is a MIME media type (see Section 4.6.10). If the URI scheme used in the src attribute defines a mechanism for establishing the authoritative MIME media type of the media resource, the value returned by that mechanism takes precedence over this attribute. The attribute is optional. There is no default value.

类型:指定“src”属性中指示的外部对话框文档的类型。有效值为MIME媒体类型(见第4.6.10节)。如果src属性中使用的URI方案定义了一种机制,用于建立媒体资源的权威MIME媒体类型,则该机制返回的值优先于该属性。该属性是可选的。没有默认值。

maxage: Used to set the max-age value of the 'Cache-Control' header in conjunction with an external dialog document fetched using HTTP, as per [RFC2616]. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

maxage:用于根据[RFC2616]结合使用HTTP获取的外部对话框文档设置“缓存控制”标头的最大年龄值。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

maxstale: Used to set the max-stale value of the 'Cache-Control' header in conjunction with an external dialog document fetched using HTTP, as per [RFC2616]. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

maxstale:用于根据[RFC2616]结合使用HTTP获取的外部对话框文档设置“缓存控制”标头的最大stale值。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

fetchtimeout: the maximum timeout interval to wait when fetching an external dialog document. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 30s.

fetchtimeout:获取外部对话框文档时等待的最大超时时间间隔。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为30秒。

dialogid: string indicating a unique name for the dialog. If a dialog with the same name already exists on the MS, the MS sends a <response> with a 405 status code (Section 4.5). If neither the dialogid attribute nor the prepareddialogid attribute is specified, the MS MUST create a unique name for the dialog (see Section 4.2 for dialog identifier assignment). The attribute is optional. There is no default value.

dialogid:表示对话框唯一名称的字符串。如果MS上已经存在同名对话框,MS将发送一个带有405状态代码的<response>(第4.5节)。如果未指定dialogid属性或prepareddialogid属性,则MS必须为对话框创建唯一名称(有关对话框标识符分配,请参阅第4.2节)。该属性是可选的。没有默认值。

prepareddialogid: string identifying a dialog previously prepared using a dialogprepare (Section 4.2.1) request. If neither the dialogid attribute nor the prepareddialogid attribute is specified, the MS MUST create a unique name for the dialog (see Section 4.2 for dialog identifier assignment). The attribute is optional. There is no default value.

prepareddialogid:标识先前使用dialogprepare(第4.2.1节)请求准备的对话框的字符串。如果未指定dialogid属性或prepareddialogid属性,则MS必须为对话框创建唯一名称(有关对话框标识符分配,请参阅第4.2节)。该属性是可选的。没有默认值。

connectionid: string identifying the SIP dialog connection on which this dialog is to be started (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

connectionid:标识要启动此对话框的SIP对话框连接的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

conferenceid: string identifying the conference on which this dialog is to be started (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

conferenceid:标识要启动此对话框的会议的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

Exactly one of the connectionid or conferenceid attributes MUST be specified. If both the connectionid and conferenceid attributes are specified or neither is specified, it is a syntax error and the MS sends a <response> with a 400 status code (Section 4.5).

必须仅指定一个connectionid或conferenceid属性。如果指定了connectionid和conferenceid属性,或者两者都未指定,则这是一个语法错误,MS将发送一个带有400状态代码的<response>(第4.5节)。

It is an error if the connection or conference referenced by a specific connectionid or conferenceid attribute is not available on the MS at the time the <dialogstart> request is executed. If an invalid connectionid is specified, the MS sends a <response> with a 407 status code (Section 4.5). If an invalid conferenceid is specified, the MS sends a <response> with a 408 status code.

如果在执行<dialogstart>请求时,特定connectionid或conferenceid属性引用的连接或会议在MS上不可用,则为错误。如果指定了无效的connectionid,MS将发送带有407状态代码的<response>(第4.5节)。如果指定了无效的conferenceid,则MS发送带有408状态代码的<response>。

The <dialogstart> element has the following sequence of child elements:

<dialogstart>元素具有以下子元素序列:

<dialog>: specifies an IVR dialog (Section 4.3) to execute. The element is optional.

<dialog>:指定要执行的IVR对话框(第4.3节)。元素是可选的。

<subscribe>: specifies subscriptions to dialog events (Section 4.2.2.1). The element is optional.

<subscribe>:指定对对话框事件的订阅(第4.2.2.1节)。元素是可选的。

<params>: specifies input parameters (Section 4.2.6) for dialog languages defined outside this specification. The element is optional. If a parameter is not supported by the MS for the external dialog language, the MS sends a <response> with a 427 status code (Section 4.5).

<params>:为本规范之外定义的对话语言指定输入参数(第4.2.6节)。元素是可选的。如果MS不支持外部对话语言的参数,MS将发送带有427状态代码的<response>(第4.5节)。

<stream>: determines the media stream(s) associated with the connection or conference on which the dialog is executed (Section 4.2.2.2). The <stream> element is optional. Multiple <stream> elements can be specified.

<stream>:确定与执行对话的连接或会议相关联的媒体流(第4.2.2.2节)。<stream>元素是可选的。可以指定多个<stream>元素。

The dialog to start can be specified either (a) inline with a <dialog> child element, (b) externally using the src attribute (for dialog languages defined outside this specification), or (c) by referencing a previously prepared dialog using the prepareddialogid attribute. If exactly one of the src attribute, the prepareddialogid, or a <dialog> child element is not specified, it is a syntax error and the MS sends a <response> with a 400 status code (Section 4.5). If the prepareddialogid and dialogid attributes are specified, it is also a syntax error and the MS sends a <response> with a 400 status code. The type, maxage, maxstale, and fetchtimeout attributes are only relevant when a dialog is specified as an external document.

可以指定要启动的对话框(a)与<dialog>子元素内联,(b)外部使用src属性(对于本规范之外定义的对话框语言),或(c)通过使用prepareddialogid属性引用先前准备好的对话框。如果没有指定src属性、prepareddialogid或<dialog>子元素中的一个,则这是一个语法错误,MS将发送一个带有400状态代码的<response>(第4.5节)。如果指定了prepareddialogid和dialogid属性,则这也是一个语法错误,MS将发送带有400状态代码的<response>。类型、maxage、maxstale和fetchtimeout属性仅在将对话框指定为外部文档时才相关。

The <stream> element provides explicit control over which media streams on the connection or conference are used during dialog execution. For example, if a connection supports both audio and video streams, a <stream> element could be used to indicate that only the audio stream is used in receive mode. In cases where there are multiple media streams of the same type for a dialog, the AS MUST use <stream> elements to explicitly specify the configuration. If no <stream> elements are specified, then the default media configuration is that defined for the connection or conference.

<stream>元素提供了在对话框执行期间使用连接或会议上的哪些媒体流的显式控制。例如,如果连接同时支持音频和视频流,则可以使用<stream>元素指示在接收模式下仅使用音频流。如果一个对话框有多个相同类型的媒体流,AS必须使用<stream>元素明确指定配置。如果未指定<stream>元素,则默认媒体配置是为连接或会议定义的配置。

If a <stream> element is in conflict (a) with another <stream> element, (b) with specified connection or conference media capabilities, or (c) with a Session Description Protocol (SDP) label value as part of the connectionid (see Appendix A.1 of [RFC6230]), then the MS sends a <response> with a 411 status code (Section 4.5). If the media stream configuration is not supported by the MS, then the MS sends a <response> with a 428 status code (Section 4.5).

如果一个<stream>元素(a)与另一个<stream>元素冲突,(b)与指定的连接或会议媒体功能冲突,或(c)与会话描述协议(SDP)标签值冲突(参见[RFC6230]的附录a.1]),则MS发送带有411状态码的<response>(第4.5节)。如果MS不支持媒体流配置,则MS发送带有428状态代码的<response>(第4.5节)。

The MS MAY support multiple, simultaneous dialogs being started on the same connection or conference. For example, the same connection can receive different media streams (e.g., audio and video) from different dialogs, or receive (and implicitly mix where appropriate) the same type of media streams from different dialogs. If the MS does not support starting another dialog on the same connection or conference, it sends a <response> with a 432 status code (Section 4.5) when it receives the second (or subsequent) dialog request.

MS可支持在同一连接或会议上同时启动多个对话。例如,相同的连接可以从不同的对话框接收不同的媒体流(例如,音频和视频),或者从不同的对话框接收(并在适当情况下隐式混合)相同类型的媒体流。如果MS不支持在同一连接或会议上启动另一个对话框,则在收到第二个(或后续)对话框请求时,会发送带有432状态代码(第4.5节)的<response>。

For example, a request to start an ivr dialog on a connection subscribing to DTMF notifications:

例如,请求在订阅DTMF通知的连接上启动ivr对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="connection1">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/getpin.wav"/>
      </prompt>
      <collect maxdigits="2"/>
     </dialog>
    <subscribe>
     <dtmfsub matchmode="all"/>
    </subscribe>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="connection1">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/getpin.wav"/>
      </prompt>
      <collect maxdigits="2"/>
     </dialog>
    <subscribe>
     <dtmfsub matchmode="all"/>
    </subscribe>
    </dialogstart>
   </mscivr>
        

In this example, the dialog is started on a conference where the conference only receives an audio media stream from the dialog:

在此示例中,对话在会议上启动,会议仅从对话接收音频媒体流:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart conferenceid="conference1">
     <dialog>
      <record maxtime="384000s"/>
     </dialog>
     <stream media="audio" direction="recvonly"/>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart conferenceid="conference1">
     <dialog>
      <record maxtime="384000s"/>
     </dialog>
     <stream media="audio" direction="recvonly"/>
    </dialogstart>
   </mscivr>
        
4.2.2.1. <subscribe>
4.2.2.1. <订阅>

The <subscribe> element allows the AS to subscribe to, and be notified of, specific events that occur during execution of the dialog. Notifications of dialog events are delivered using the <event> element (see Section 4.2.5).

<subscribe>元素允许AS订阅对话框执行期间发生的特定事件,并将其通知AS。对话框事件的通知使用<event>元素传递(见第4.2.5节)。

The <subscribe> element has no attributes.

<subscribe>元素没有属性。

The <subscribe> element has the following sequence of child elements (0 or more occurrences):

<subscribe>元素具有以下子元素序列(0次或多次出现):

<dtmfsub>: Subscription to DTMF input during the dialog (Section 4.2.2.1.1). The element is optional.

<dtmfsub>:在对话框中订阅DTMF输入(第4.2.2.1.1节)。元素是可选的。

If a request has a <subscribe> with no child elements, the MS treats the request as if no <subscribe> element were specified.

如果请求有一个<subscribe>且没有子元素,则MS将该请求视为没有指定<subscribe>元素。

The MS MUST support <dtmfsub> subscription for the IVR dialog language defined in this specification (Section 4.3). It MAY support other dialog subscriptions (specified using attributes and child elements from a foreign namespace). If the MS does not support a

MS必须支持订阅本规范(第4.3节)中定义的IVR对话语言。它可能支持其他对话框订阅(使用外部命名空间中的属性和子元素指定)。如果MS不支持

subscription specified in a foreign namespace, the MS sends a response with a 431 status code (see Section 4.5).

在外部名称空间中指定的订阅,MS将发送一个带有431状态代码的响应(请参阅第4.5节)。

4.2.2.1.1. <dtmfsub>
4.2.2.1.1. <dtmfsub>

The <dtmfsub> element has the following attributes:

<dtmfsub>元素具有以下属性:

matchmode: controls which DTMF input is subscribed to. Valid values are "all" - notify all DTMF key presses received during the dialog; "collect" - notify only DTMF input matched by the collect operation (Section 4.3.1.3); and "control" - notify only DTMF input matched by the runtime control operation (Section 4.3.1.2). The attribute is optional. The default value is "all".

匹配模式:控制订阅哪个DTMF输入。有效值为“全部”-通知对话框中收到的所有DTMF按键;“收集”-仅通知与收集操作匹配的DTMF输入(第4.3.1.3节);和“控制”-仅通知运行时控制操作匹配的DTMF输入(第4.3.1.2节)。该属性是可选的。默认值为“全部”。

The <dtmfsub> element has no child elements.

<dtmfsub>元素没有子元素。

DTMF notifications are delivered in the <dtmfnotify> element (Section 4.2.5.2).

DTMF通知在<dtmfnotify>元素中发送(第4.2.5.2节)。

For example, the AS wishes to subscribe to DTMF key press matching a runtime control:

例如,AS希望订阅与运行时控件匹配的DTMF按键:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart dialogid="d3" connectionid="connection1">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/getpin.wav"/>
      </prompt>
      <control ffkey="2" rwkey="3"/>
     </dialog>
    <subscribe>
     <dtmfsub matchmode="control"/>
    </subscribe>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart dialogid="d3" connectionid="connection1">
     <dialog>
      <prompt>
       <media loc="http://www.example.com/getpin.wav"/>
      </prompt>
      <control ffkey="2" rwkey="3"/>
     </dialog>
    <subscribe>
     <dtmfsub matchmode="control"/>
    </subscribe>
    </dialogstart>
   </mscivr>
        

Each time a '2' or '3' DTMF input is received, the MS sends a notification event:

每次接收到“2”或“3”DTMF输入时,MS都会发送一个通知事件:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d3">
      <dtmfnotify matchmode="collect" dtmf="2"
          timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d3">
      <dtmfnotify matchmode="collect" dtmf="2"
          timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        
4.2.2.2. <stream>
4.2.2.2. <stream>

The <stream> element has the following attributes:

<stream>元素具有以下属性:

media: a string indicating the type of media associated with the stream. A valid value is a MIME type-name as defined in Section 4.2 of [RFC4288]. The following values MUST be used for common types of media: "audio" for audio media, and "video" for video media. See [IANA] for registered MIME type names. The attribute is mandatory.

媒体:一个字符串,指示与流关联的媒体类型。有效值是[RFC4288]第4.2节中定义的MIME类型名称。以下值必须用于常见类型的媒体:“音频”用于音频媒体,“视频”用于视频媒体。有关注册的MIME类型名称,请参见[IANA]。该属性是必需的。

label: a string indicating the SDP label associated with a media stream [RFC4574]. The attribute is optional.

标签:表示与媒体流关联的SDP标签的字符串[RFC4574]。该属性是可选的。

direction: a string indicating the direction of the media flow relative to the endpoint conference or connection. Defined values are "sendrecv" (the endpoint can send media to, and receive media from, the dialog), "sendonly" (the endpoint can only send media to the dialog), "recvonly" (the endpoint can only receive media from the dialog), and "inactive" (stream is not to be used). The default value is "sendrecv". The attribute is optional.

方向:一个字符串,指示媒体流相对于端点会议或连接的方向。定义的值为“sendrecv”(端点可以向对话框发送媒体,也可以从对话框接收媒体)、“sendonly”(端点只能向对话框发送媒体)、“RecVoOnly”(端点只能从对话框接收媒体)和“inactive”(不使用流)。默认值为“sendrecv”。该属性是可选的。

The <stream> element has the following sequence of child elements:

<stream>元素具有以下子元素序列:

<region>: an element to specify the area within a mixer video layout where a media stream is displayed (Section 4.2.2.2.1). The element is optional.

<region>:用于指定混音器视频布局中显示媒体流的区域的元素(第4.2.2.2.1节)。元素是可选的。

<priority>: an element to configure priority associated with the stream in the conference mix (Section 4.2.2.2.2). The element is optional.

<priority>:用于配置与会议组合中的流相关联的优先级的元素(第4.2.2.2.2节)。元素是可选的。

If conferenceid is not specified or if the "media" attribute does not have the value of "video", then the MS ignores the <region> and <priority> elements.

如果未指定conferenceid,或者如果“媒体”属性没有“视频”的值,则MS将忽略<region>和<priority>元素。

For example, assume a User Agent connection with multiple audio and video streams associated with the user and a separate web camera. In this case, the dialog could be started to record only the audio and video streams associated with the user:

例如,假设一个用户代理与多个与该用户相关联的音频和视频流以及一个单独的网络摄像机连接。在这种情况下,可以启动对话框以仅记录与用户相关联的音频和视频流:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="connection1">
     <dialog>
      <record maxtime="384000s"/>
     </dialog>
     <stream media="audio" label="camaudio" direction="inactive"/>
     <stream media="video" label="camvideo" direction="inactive"/>
     <stream media="audio" label="useraudio" direction="sendonly"/>
     <stream media="video" label="uservideo" direction="sendonly"/>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="connection1">
     <dialog>
      <record maxtime="384000s"/>
     </dialog>
     <stream media="audio" label="camaudio" direction="inactive"/>
     <stream media="video" label="camvideo" direction="inactive"/>
     <stream media="audio" label="useraudio" direction="sendonly"/>
     <stream media="video" label="uservideo" direction="sendonly"/>
    </dialogstart>
   </mscivr>
        

Using the <region> element, the dialog can be started on a conference mixer so that the video output from the dialog is directed to a specific area within a video layout. For example:

使用<region>元素,可以在会议混音器上启动对话框,以便将对话框中的视频输出定向到视频布局中的特定区域。例如:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart conferenceid="conference1">
     <dialog>
      <prompt>
        <media loc="http://www.example.com/presentation.3gp"/>
      </prompt>
     </dialog>
     <stream media="video" direction="recvonly">
       <region>1</region>
     </stream>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart conferenceid="conference1">
     <dialog>
      <prompt>
        <media loc="http://www.example.com/presentation.3gp"/>
      </prompt>
     </dialog>
     <stream media="video" direction="recvonly">
       <region>1</region>
     </stream>
    </dialogstart>
   </mscivr>
        
4.2.2.2.1. <region>
4.2.2.2.1. <region>

The <region> element is used to specify a named area within a presentation layout where a video media stream is displayed. The MS could, for example, play video media into an area of a video layout where the layout and its named regions are specified using the Mixer Control Package [MIXER-CP].

<region>元素用于指定演示布局中显示视频媒体流的命名区域。例如,MS可以将视频媒体播放到视频布局的区域中,其中使用混音器控制包[Mixer-CP]指定布局及其命名区域。

The <region> element has no attributes and its content model specifies the name of the region.

<region>元素没有属性,其内容模型指定区域的名称。

If the region name is invalid, then the MS reports a 416 status code (Section 4.5) in the response to the request element containing the <region> element.

如果区域名称无效,则MS在对包含<region>元素的请求元素的响应中报告416状态代码(第4.5节)。

4.2.2.2.2. <priority>
4.2.2.2.2. <priority>

The <priority> element is used to explicitly specify the priority of the dialog for presentation in a conference mix.

<priority>元素用于明确指定在会议混合中显示的对话框的优先级。

The <priority> element has no attributes and its content model specifies a positive integer (see Section 4.6.5). The lower the value, the higher the priority.

<priority>元素没有属性,其内容模型指定了一个正整数(参见第4.6.5节)。值越低,优先级越高。

4.2.3. <dialogterminate>
4.2.3. <dialogterminate>

A dialog can be terminated by sending a <dialogterminate> request element to the MS.

可以通过向MS发送<dialogterminate>请求元素来终止对话框。

The <dialogterminate> element has the following attributes:

<dialogterminate>元素具有以下属性:

dialogid: string identifying the dialog to terminate. If the specified dialog identifier is invalid, the MS sends a response with a 405 status code (Section 4.5). The attribute is mandatory.

dialogid:标识要终止的对话框的字符串。如果指定的对话框标识符无效,MS将发送一个带有405状态代码的响应(第4.5节)。该属性是必需的。

immediate: indicates whether or not a dialog in the STARTED state is to be terminated immediately (in other states, termination is always immediate). A valid value is a boolean (see Section 4.6.1). A value of true indicates that the dialog is terminated immediately and the MS MUST send a dialogexit notification (Section 4.2.5.1) without report information. A value of false indicates that the dialog terminates after the current iteration and the MS MUST send a dialogexit notification with report information. The attribute is optional. The default value is false.

立即:指示是否立即终止处于启动状态的对话框(在其他状态下,终止总是立即终止)。有效值为布尔值(见第4.6.1节)。值为true表示对话框立即终止,MS必须发送不带报告信息的对话框退出通知(第4.2.5.1节)。值false表示对话框在当前迭代后终止,MS必须发送带有报告信息的dialogexit通知。该属性是可选的。默认值为false。

The MS MUST reply to the <dialogterminate> request with a <response> element (Section 4.2.4), reporting whether or not the dialog was terminated successfully.

MS必须使用<response>元素(第4.2.4节)回复<dialogterminate>请求,报告对话框是否成功终止。

For example, immediately terminating a STARTED dialog with dialogid "d4":

例如,立即终止dialogid为“d4”的已启动对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogterminate dialogid="d4" immediate="true"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogterminate dialogid="d4" immediate="true"/>
   </mscivr>
        

If the dialog is terminated successfully, then the response to the dialogterminate request would be:

如果对话框成功终止,则对dialogterminate请求的响应为:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d4"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d4"/>
   </mscivr>
        
4.2.4. <response>
4.2.4. <response>

Responses to dialog management requests are specified with a <response> element.

对话框管理请求的响应由<response>元素指定。

The <response> element has following attributes:

<response>元素具有以下属性:

status: numeric code indicating the response status. Valid values are defined in Section 4.5. The attribute is mandatory.

状态:表示响应状态的数字代码。第4.5节定义了有效值。该属性是必需的。

reason: string specifying a reason for the response status. The attribute is optional. There is no default value.

原因:指定响应状态原因的字符串。该属性是可选的。没有默认值。

desclang: specifies the language used in the value of the reason attribute. A valid value is a language identifier (Section 4.6.11). The attribute is optional. If not specified, the value of the desclang attribute on <mscivr> (Section 4.1) applies.

desclang:指定原因属性值中使用的语言。有效值是语言标识符(第4.6.11节)。该属性是可选的。如果未指定,则<mscivr>(第4.1节)上的desclang属性值适用。

dialogid: string identifying the dialog. If the request specifies a dialogid, then that value is used. Otherwise, with <dialogprepare> and <dialogstart> requests, the dialogid generated by the MS is used. If there is no available dialogid because the request is syntactically invalid (e.g., a <dialogterminate> request with no dialogid attribute specified), then the value is the empty string. The attribute is mandatory.

dialogid:标识对话框的字符串。如果请求指定了dialogid,则使用该值。否则,对于<dialogprepare>和<dialogstart>请求,将使用MS生成的dialogid。如果由于请求语法无效而没有可用的dialogid(例如,未指定dialogid属性的<dialogterminate>请求),则该值为空字符串。该属性是必需的。

connectionid: string identifying the SIP dialog connection associated with the dialog (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

connectionid:标识与对话框关联的SIP对话框连接的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

conferenceid: string identifying the conference associated with the dialog (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

conferenceid:标识与对话框关联的会议的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

For example, a response when a dialog was prepared successfully:

例如,成功准备对话框时的响应:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d5"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="200" dialogid="d5"/>
   </mscivr>
        

The response if dialog preparation failed due to an unsupported dialog language:

由于不支持的对话框语言而导致对话框准备失败时的响应:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="421" dialogid="d5"
       reason="Unsupported dialog language: application/voicexml+xml"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="421" dialogid="d5"
       reason="Unsupported dialog language: application/voicexml+xml"/>
   </mscivr>
        

In this example, a <dialogterminate> request does not specify a dialogid:

在本例中,<dialogterminate>请求未指定dialogid:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogterminate/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogterminate/>
   </mscivr>
        

The response status indicates a 400 (Syntax error) status code and the dialogid attribute has an empty string value:

响应状态表示400(语法错误)状态代码,dialogid属性的字符串值为空:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="400" dialogid=" "
       reason="Attribute required: dialogid"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="400" dialogid=" "
       reason="Attribute required: dialogid"/>
   </mscivr>
        
4.2.5. <event>
4.2.5. <event>

When a dialog generates a notification event, the MS sends the event using an <event> element.

当对话框生成通知事件时,MS使用<event>元素发送事件。

The <event> element has the following attributes:

<event>元素具有以下属性:

dialogid: string identifying the dialog that generated the event. The attribute is mandatory.

dialogid:标识生成事件的对话框的字符串。该属性是必需的。

The <event> element has the following child elements, only one of which can occur:

<event>元素具有以下子元素,只能出现其中一个:

<dialogexit>: indicates that the dialog has exited (Section 4.2.5.1).

<dialogexit>:表示对话框已退出(第4.2.5.1节)。

<dtmfnotify>: indicates that a DTMF key press occurred (Section 4.2.5.2).

<dtmfnotify>:表示出现DTMF按键(第4.2.5.2节)。

4.2.5.1. <dialogexit>
4.2.5.1. <dialogexit>

The <dialogexit> event indicates that a prepared or active dialog has exited because it is complete, it has been terminated, or an error occurred during execution (for example, a media resource cannot be played). This event MUST be sent by the MS when the dialog exits.

<dialogexit>事件表示准备好的或活动的对话框已退出,因为它已完成、已终止或在执行过程中发生错误(例如,无法播放媒体资源)。此事件必须在对话框退出时由MS发送。

The <dialogexit> element has the following attributes:

<dialogexit>元素具有以下属性:

status: a status code indicating the status of the dialog when it exits. A valid value is a non-negative integer (see Section 4.6.4). The MS MUST support the following values:

状态:一个状态代码,指示对话框退出时的状态。有效值为非负整数(见第4.6.4节)。MS必须支持以下值:

0 indicates the dialog has been terminated by a <dialogterminate> request.

0表示对话框已被<dialogterminate>请求终止。

1 indicates successful completion of the dialog.

1表示对话框成功完成。

2 indicates the dialog terminated because the connection or conference associated with the dialog has terminated.

2表示对话框已终止,因为与该对话框关联的连接或会议已终止。

3 indicates the dialog terminated due to exceeding its maximum duration.

3表示对话框因超过其最大持续时间而终止。

4 indicates the dialog terminated due to an execution error.

4表示对话框因执行错误而终止。

All other valid but undefined values are reserved for future use, where new status codes are assigned using the Standards Action process defined in [RFC5226]. The AS MUST treat any status code it does not recognize as being equivalent to 4 (dialog execution error). The attribute is mandatory.

所有其他有效但未定义的值保留供将来使用,其中新的状态代码使用[RFC5226]中定义的标准操作流程分配。AS必须将其无法识别的任何状态代码视为等同于4(对话框执行错误)。该属性是必需的。

reason: a textual description that the MS SHOULD use to provide a reason for the status code, e.g., details about an error. A valid value is a string (see Section 4.6.6). The attribute is optional. There is no default value.

原因:MS用于提供状态代码原因的文本描述,例如,有关错误的详细信息。有效值为字符串(见第4.6.6节)。该属性是可选的。没有默认值。

desclang: specifies the language used in the value of the reason attribute. A valid value is a language identifier (Section 4.6.11). The attribute is optional. If not specified, the value of the desclang attribute on <mscivr> (Section 4.1) applies.

desclang:指定原因属性值中使用的语言。有效值是语言标识符(第4.6.11节)。该属性是可选的。如果未指定,则<mscivr>(第4.1节)上的desclang属性值适用。

The <dialogexit> element has the following sequence of child elements:

<dialogexit>元素具有以下子元素序列:

<promptinfo>: report information (Section 4.3.2.1) about the prompt execution in an IVR <dialog>. The element is optional.

<PrompInfo>:报告有关IVR<dialog>中提示执行的信息(第4.3.2.1节)。元素是可选的。

<controlinfo>: reports information (Section 4.3.2.2) about the control execution in an IVR <dialog>. The element is optional.

<controlinfo>:在IVR<dialog>中报告有关控件执行的信息(第4.3.2.2节)。元素是可选的。

<collectinfo>: reports information (Section 4.3.2.3) about the collect execution in an IVR <dialog>. The element is optional.

<collectinfo>:在IVR<dialog>中报告有关收集执行的信息(第4.3.2.3节)。元素是可选的。

<recordinfo>: reports information (Section 4.3.2.4) about the record execution in an IVR <dialog>. The element is optional.

<recordinfo>:在IVR<dialog>中报告有关记录执行的信息(第4.3.2.4节)。元素是可选的。

<params>: reports exit parameters (Section 4.2.6) for a dialog language defined outside this specification. The element is optional.

<params>:报告本规范之外定义的对话语言的退出参数(第4.2.6节)。元素是可选的。

For example, when an active <dialog> exits normally, the MS sends a dialogexit <event> reporting information:

例如,当活动的<dialog>正常退出时,MS发送dialogexit<event>报告信息:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d6">
     <dialogexit status="1">
      <collectinfo dtmf="1234"  termmode="match"/>
     </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d6">
     <dialogexit status="1">
      <collectinfo dtmf="1234"  termmode="match"/>
     </dialogexit>
    </event>
   </mscivr>
        
4.2.5.2. <dtmfnotify>
4.2.5.2. <dtmfnotify>

The <dtmfnotify> element provides a notification of DTMF input received during the active dialog as requested by a <dtmfsub> subscription (Section 4.2.2.1).

<dtmfnotify>元素根据订阅请求(第4.2.2.1节),提供激活对话框期间收到的DTMF输入通知。

The <dtmfnotify> element has the following attributes:

<dtmfnotify>元素具有以下属性:

matchmode: indicates the matching mode specified in the subscription request. Valid values are as follows:

matchmode:表示订阅请求中指定的匹配模式。有效值如下所示:

"all" - all DTMF key presses notified individually;

“全部”-单独通知的所有DTMF按键;

"collect" - only DTMF input matched by the collect operation notified; and

“收集”-仅与通知的收集操作匹配的DTMF输入;和

"control" - only DTMF input matched by the control operation notified.

“控制”-仅与通知的控制操作匹配的DTMF输入。

The attribute is optional. The default value is "all".

该属性是可选的。默认值为“全部”。

dtmf: DTMF key presses received according to the matchmode. A valid value is a DTMF string (see Section 4.6.3) with no space between characters. The attribute is mandatory.

dtmf:按匹配模式接收的dtmf键。有效值是字符之间没有空格的DTMF字符串(见第4.6.3节)。该属性是必需的。

timestamp: indicates the time (on the MS) at which the last key press occurred according to the matchmode. A valid value is a dateTime expression (Section 4.6.12). The attribute is mandatory.

时间戳:表示根据匹配模式最后一次按键发生的时间(在MS上)。有效值为日期时间表达式(第4.6.12节)。该属性是必需的。

For example, a notification of DTMF input matched during the collect operation:

例如,收集操作期间匹配DTMF输入的通知:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d3">
      <dtmfnotify matchmode="collect" dtmf="3123"
        timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d3">
      <dtmfnotify matchmode="collect" dtmf="3123"
        timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        
4.2.6. <params>
4.2.6. <params>

The <params> element is a container for <param> elements (Section 4.2.6.1).

<params>元素是<param>元素的容器(第4.2.6.1节)。

The <params> element has no attributes, but the following child elements are defined (0 or more):

<params>元素没有属性,但定义了以下子元素(0或更多):

<param>: specifies a parameter name and value (Section 4.2.6.1).

<param>:指定参数名称和值(第4.2.6.1节)。

For example, usage with a dialog language defined outside this specification to send additional parameters into the dialog:

例如,使用本规范之外定义的对话框语言将其他参数发送到对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart type="application/x-dialog"
                src="nfs://nas01/dialog4" connectionid="c1">
     <params>
      <param name="mode">playannouncement</param>
      <param name="prompt1">nfs://nas01/media1.3gp</param>
      <param name="prompt2">nfs://nas01/media2.3gp</param>
     </params>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart type="application/x-dialog"
                src="nfs://nas01/dialog4" connectionid="c1">
     <params>
      <param name="mode">playannouncement</param>
      <param name="prompt1">nfs://nas01/media1.3gp</param>
      <param name="prompt2">nfs://nas01/media2.3gp</param>
     </params>
    </dialogstart>
   </mscivr>
        
4.2.6.1. <param>
4.2.6.1. <param>

The <param> element describes a parameter name and value.

<param>元素描述参数名称和值。

The <param> element has the following attributes:

<param>元素具有以下属性:

name: a string indicating the name of the parameter. The attribute is mandatory.

名称:指示参数名称的字符串。该属性是必需的。

type: specifies a type indicating how the inline value of the parameter is to be interpreted. A valid value is a MIME media type (see Section 4.6.10). The attribute is optional. The default value is "text/plain".

类型:指定一种类型,指示如何解释参数的内联值。有效值为MIME媒体类型(见第4.6.10节)。该属性是可选的。默认值为“文本/普通”。

encoding: specifies a content-transfer-encoding schema applied to the inline value of the parameter on top of the MIME media type specified with the type attribute. A valid value is a content-transfer-encoding schema as defined by the "mechanism" token in Section 6.1 of [RFC2045]. The attribute is optional. There is no default value.

编码:指定内容传输编码架构,该架构应用于使用type属性指定的MIME媒体类型顶部参数的内联值。有效值是[RFC2045]第6.1节中“机制”标记定义的内容传输编码模式。该属性是可选的。没有默认值。

The <param> element content model is the value of the parameter. Note that a value that contains XML characters (e.g., "<") needs to be escaped following standard XML conventions.

<param>元素含量模型是参数的值。请注意,包含XML字符(例如“<”)的值需要按照标准XML约定进行转义。

For example, usage with a dialog language defined outside this specification to receive parameters from the dialog when it exits:

例如,与本规范之外定义的对话框语言一起使用,以便在对话框退出时从对话框接收参数:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d6">
     <dialogexit status="1">
     <params>
      <param name="mode">recording</param>
      <param name="recording1" type="audio/x-wav" encoding="base64">
       <![CDATA[
        R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV
       ]]>
      </param>
     </params>
     </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d6">
     <dialogexit status="1">
     <params>
      <param name="mode">recording</param>
      <param name="recording1" type="audio/x-wav" encoding="base64">
       <![CDATA[
        R0lGODlhZABqALMAAFrMYr/BvlKOVJKOg2xZUKmenMfDw8tgWJpV
       ]]>
      </param>
     </params>
     </dialogexit>
    </event>
   </mscivr>
        
4.3. IVR Dialog Elements
4.3. IVR对话框元素

This section describes the IVR dialog language defined as part of this specification. The MS MUST support this dialog language.

本节介绍作为本规范一部分定义的IVR对话语言。MS必须支持此对话语言。

The <dialog> element is an execution container for operations of playing prompts (Section 4.3.1.1), runtime controls (Section 4.3.1.2), collecting DTMF (Section 4.3.1.3), and recording user input (Section 4.3.1.4). Results of the dialog execution (Section 4.3.2) are reported in a dialogexit notification event.

<dialog>元素是一个执行容器,用于播放提示(第4.3.1.1节)、运行时控件(第4.3.1.2节)、收集DTMF(第4.3.1.3节)和记录用户输入(第4.3.1.4节)的操作。对话框执行结果(第4.3.2节)在对话框退出通知事件中报告。

Using these elements, three common dialog models are supported:

使用这些元素,支持三种常见的对话框模型:

playannouncements: only a <prompt> element is specified in the container. The prompt media resources are played in sequence.

playannouncements:容器中只指定了<prompt>元素。按顺序播放提示媒体资源。

promptandcollect: a <collect> element is specified and, optionally, a <prompt> element. If a <prompt> element is specified and bargein is enabled, playing of the prompt is terminated when bargein occurs, and DTMF collection is initiated; otherwise, the prompt is played to completion before DTMF collection is initiated. If no prompt element is specified, DTMF collection is initiated immediately.

promptandcollect:指定<collect>元素,还可以选择<prompt>元素。如果指定了<prompt>元素并启用了bargein,则在出现bargein时终止播放提示,并启动DTMF采集;否则,将在启动DTMF采集之前播放提示直至完成。如果未指定提示元素,则会立即启动DTMF收集。

promptandrecord: a <record> element is specified and, optionally, a <prompt> element. If a <prompt> element is specified and bargein is enabled, playing of the prompt is terminated when bargein occurs, and recording is initiated; otherwise, the prompt is played to completion before recording is initiated. If no prompt element is specified, recording is initiated immediately.

promptandrecord:指定<record>元素,还可以选择<prompt>元素。如果指定了<prompt>元素并启用了bargein,则在出现bargein时终止播放提示,并开始录制;否则,将在开始录制之前播放提示直至完成。如果未指定提示元素,则立即启动录制。

In addition, this dialog language supports runtime ('VCR') controls enabling a user to control prompt playback using DTMF.

此外,此对话框语言支持运行时(“VCR”)控件,使用户能够使用DTMF控制提示播放。

Each of the core elements -- <prompt>, <control>, <collect>, and <record> -- are specified so that their execution and reporting is largely self-contained. This facilitates their reuse in other dialog container elements. Note that DTMF and bargein behavior affects multiple elements and is addressed in the relevant element definitions.

每个核心元素--<prompt>、<control>、<collect>和<record>都被指定为基本上自包含的执行和报告。这有助于在其他对话框容器元素中重用它们。请注意,DTMF和bargein行为会影响多个元素,并在相关元素定义中进行了说明。

Execution results are reported in the <dialogexit> notification event with child elements defined in Section 4.3.2. If the dialog terminated normally (i.e., not due to an error or to a <dialogterminate> request), then the MS MUST report the results for the operations specified in the dialog:

执行结果在带有第4.3.2节中定义的子元素的<dialogexit>通知事件中报告。如果对话框正常终止(即,不是由于错误或<dialogterminate>请求),则MS必须报告对话框中指定操作的结果:

<prompt>: <promptinfo> (see Section 4.3.2.1) with at least the termmode attribute specified.

<prompt>:<promptinfo>(见第4.3.2.1节),至少指定了termmode属性。

<control>: <controlinfo> (see Section 4.3.2.2) if any runtime controls are matched.

<control>:<controlinfo>(参见第4.3.2.2节)如果任何运行时控件匹配。

<collect>: <collectinfo> (see Section 4.3.2.3) with the dtmf and termmode attributes specified.

<collect>:<collectinfo>(参见第4.3.2.3节),并指定dtmf和termmode属性。

<record>: <recordinfo> (see Section 4.3.2.4) with at least the termmode attribute and one <mediainfo> element specified.

<record>:<recordinfo>(参见第4.3.2.4节),其中至少指定了termmode属性和一个<mediainfo>元素。

The media format requirements for IVR dialogs are undefined. This package is agnostic to the media types and codecs for media resources and recording that need to be supported by an implementation. For example, an MS implementation might only support audio and in particular the 'audio/basic' codec for media playback and recording. However, when executing a dialog, if an MS encounters a media type or codec that it cannot process, the MS MUST stop further processing and report the error using the dialogexit notification.

IVR对话框的媒体格式要求未定义。该软件包与实现需要支持的媒体资源和录制的媒体类型和编解码器无关。例如,MS实现可能只支持音频,尤其是用于媒体播放和录制的“音频/基本”编解码器。但是,在执行对话框时,如果MS遇到无法处理的媒体类型或编解码器,则MS必须停止进一步处理,并使用dialogexit通知报告错误。

4.3.1. <dialog>
4.3.1. <dialog>

An IVR dialog to play prompts to the user, allow runtime controls, collect DTMF, or record input. The dialog is specified using a <dialog> element.

一个IVR对话框,用于向用户播放提示、允许运行时控件、收集DTMF或记录输入。该对话框是使用<dialog>元素指定的。

A <dialog> element has the following attributes:

<dialog>元素具有以下属性:

repeatCount: number of times the dialog is to be executed. A valid value is a non-negative integer (see Section 4.6.4). A value of 0 indicates that the dialog is repeated until halted by other means. The attribute is optional. The default value is 1.

repeatCount:要执行对话框的次数。有效值为非负整数(见第4.6.4节)。值为0表示对话框将重复,直到通过其他方式停止。该属性是可选的。默认值为1。

repeatDur: maximum duration for dialog execution. A valid value is a time designation (see Section 4.6.7). If no value is specified, then there is no limit on the duration of the dialog. The attribute is optional. There is no default value.

repeatDur:对话框执行的最大持续时间。有效值为时间名称(见第4.6.7节)。如果未指定值,则对话框的持续时间没有限制。该属性是可选的。没有默认值。

repeatUntilComplete: indicates whether the MS terminates dialog execution when an input operation is completed successfully. A valid value is a boolean (see Section 4.6.1). A value of true indicates that dialog execution is terminated when an input operation associated with its child elements is completed successfully (see execution model below for precise conditions). A value of false indicates that dialog execution is terminated by other means. The attribute is optional. The default value is false.

repeatUntilComplete:指示当输入操作成功完成时,MS是否终止对话框执行。有效值为布尔值(见第4.6.1节)。如果值为true,则表示当成功完成与其子元素关联的输入操作时,对话框执行终止(有关精确条件,请参阅下面的执行模型)。值false表示对话框执行通过其他方式终止。该属性是可选的。默认值为false。

The repeatDur attribute takes priority over the repeatCount attribute in determining maximum duration of the dialog. See 'repeatCount' and 'repeatDur' in the Synchronized Multimedia Integration Language (SMIL) [W3C.REC-SMIL2-20051213] for further information. In the situation where a dialog is repeated more than once, only the results of operations in the last dialog iteration are reported.

在确定对话框的最大持续时间时,repeatDur属性优先于repeatCount属性。有关更多信息,请参阅同步多媒体集成语言(SMIL)[W3C.REC-SMIL2-20051213]中的“repeatCount”和“repeatDur”。在对话框重复多次的情况下,只报告上一次对话框迭代中的操作结果。

The <dialog> element has the following sequence of child elements (at least one, any order):

<dialog>元素具有以下子元素序列(至少一个,任意顺序):

<prompt>: defines media resources to play in sequence (see Section 4.3.1.1). The element is optional.

<prompt>:定义要按顺序播放的媒体资源(参见第4.3.1.1节)。元素是可选的。

<control>: defines how DTMF is used for runtime controls (see Section 4.3.1.2). The element is optional.

<control>:定义如何将DTMF用于运行时控制(见第4.3.1.2节)。元素是可选的。

<collect>: defines how DTMF is collected (see Section 4.3.1.3). The element is optional.

<collect>:定义如何收集DTMF(参见第4.3.1.3节)。元素是可选的。

<record>: defines how recording takes place (see Section 4.3.1.4). The element is optional.

<record>:定义记录的发生方式(见第4.3.1.4节)。元素是可选的。

Although the behavior when both <collect> and <record> elements are specified in a request is not defined in this Control Package, the MS MAY support this configuration. If the MS does not support this configuration, the MS sends a <response> with a 433 status code.

尽管此控制包中未定义在请求中同时指定<collect>和<record>元素时的行为,但MS可能支持此配置。如果MS不支持此配置,MS将发送带有433状态代码的<response>。

The MS has the following execution model for the IVR dialog after initialization (initialization errors are reported by the MS in the response):

初始化后,MS对IVR对话框具有以下执行模式(初始化错误由MS在响应中报告):

1. If an error occurs during execution, then the MS terminates the dialog and reports the error in the <dialogexit> event by setting the status attribute (see Section 4.3.2). Details about the error are specified in the reason attribute.

1. 如果在执行过程中发生错误,则MS会终止对话框,并通过设置状态属性在<dialogexit>事件中报告错误(参见第4.3.2节)。有关错误的详细信息在“原因”属性中指定。

2. The MS initializes a counter to 0.

2. MS将计数器初始化为0。

3. The MS starts a duration timer for the value of the repeatDur attribute. If the timer expires before the dialog is complete, then the MS terminates the dialog and sends a dialogexit whose status attribute is set to 3 (see Section 4.2.5.1). The MS MAY report information in the dialogexit gathered in the last execution cycle (if any).

3. MS启动repeatDur属性值的持续时间计时器。如果计时器在对话框完成之前过期,则MS终止对话框并发送一个状态属性设置为3的dialogexit(参见第4.2.5.1节)。MS可以在对话框Exit中报告上一个执行周期(如果有)收集的信息。

4. The MS initiates a dialog execution cycle. Each cycle executes the operations associated with the child elements of the dialog. If a <prompt> element is specified, then execute the element's prompt playing operation and activate any controls (if the <control> element is specified). If no <prompt> is specified or when a specified <prompt> terminates, then start the collect operation or the record operation if the <collect> or <record> elements, respectively, are specified. If subscriptions are specified for the dialog, then the MS sends a notification event when the specified event occurs. If execution of a child element results in an error, the MS terminates dialog execution (and stops other child element operations) and the MS sends a dialogexit status event, reporting any information gathered.

4. MS启动对话执行周期。每个循环执行与对话框的子元素关联的操作。如果指定了<prompt>元素,则执行该元素的提示播放操作并激活任何控件(如果指定了<control>元素)。如果未指定<prompt>,或者指定的<prompt>终止,则分别启动收集操作或记录操作(如果指定了<collect>或<record>元素)。如果为对话框指定了订阅,则MS会在指定事件发生时发送通知事件。如果子元素的执行导致错误,则MS将终止对话框执行(并停止其他子元素操作),MS将发送dialogexit状态事件,报告收集的任何信息。

5. If the dialog execution cycle completes successfully, then the MS increments the counter by one. The MS terminates dialog execution if either of the following conditions is true:

5. 如果对话框执行周期成功完成,则MS将计数器递增1。如果以下任一条件为真,MS将终止对话框执行:

* the value of the repeatCount attribute is greater than zero, and the counter is equal to the value of the repeatCount attribute.

* repeatCount属性的值大于零,并且计数器等于repeatCount属性的值。

* the value of the repeatUntilComplete attribute is true and one of the following conditions is true:

* repeatUntilComplete属性的值为true,并且以下条件之一为true:

+ <collect> reports termination status of 'match' or 'stopped'.

+ <collect>报告“匹配”或“已停止”的终止状态。

+ <record> reports termination status of 'stopped', 'dtmf', 'maxtime', or 'finalsilence'.

+ <record>报告“已停止”、“dtmf”、“maxtime”或“finalsilence”的终止状态。

When the MS terminates dialog execution, it sends a dialogexit (with a status of 1) reporting operation information collected in the last dialog execution cycle only. Otherwise, another dialog execution cycle is initiated.

当MS终止对话框执行时,它发送一个dialogexit(状态为1),报告仅在上一个对话框执行周期中收集的操作信息。否则,将启动另一个对话框执行周期。

4.3.1.1. <prompt>
4.3.1.1. <prompt>

The <prompt> element specifies a sequence of media resources to play back in document order.

元素指定要按文档顺序播放的媒体资源序列。

A <prompt> element has the following attributes:

<prompt>元素具有以下属性:

xml:base: A string declaring the base URI from which relative URIs in child elements are resolved prior to fetching. A valid value is a URI (see Section 4.6.9). The attribute is optional. There is no default value.

xml:base:一个字符串,声明在获取之前从中解析子元素中的相对URI的基本URI。有效值是URI(见第4.6.9节)。该属性是可选的。没有默认值。

bargein: Indicates whether user input stops prompt playback unless the input is associated with a specified runtime <control> operation (input matching control operations never interrupts prompt playback). A valid value is a boolean (see Section 4.6.1). A value of true indicates that bargein is permitted and prompt playback is stopped. A value of false indicates that bargein is not permitted: user input does not terminate prompt playback. The attribute is optional. The default value is true.

bargein:指示用户输入是否停止提示播放,除非输入与指定的运行时<控制>操作关联(输入匹配控制操作从不中断提示播放)。有效值为布尔值(见第4.6.1节)。值为true表示允许使用bargein并停止提示播放。值false表示不允许使用bargein:用户输入不会终止提示播放。该属性是可选的。默认值为true。

The <prompt> element has the following child elements (at least one, any order, multiple occurrences of elements permitted):

<prompt>元素具有以下子元素(至少允许一个、任意顺序、多次出现的元素):

<media>: specifies a media resource (see Section 4.3.1.5) to play. The element is optional.

<media>:指定要播放的媒体资源(参见第4.3.1.5节)。元素是可选的。

<variable>: specifies a variable media announcement (see Section 4.3.1.1.1) to play. The element is optional.

<variable>:指定要播放的可变媒体公告(参见第4.3.1.1.1节)。元素是可选的。

<dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to play. The element is optional.

<dtmf>:生成一个或多个dtmf音调(参见第4.3.1.1.2节)以播放。元素是可选的。

<par>: specifies media resources to play in parallel (see Section 4.3.1.1.3). The element is optional.

<par>:指定并行播放的媒体资源(参见第4.3.1.1.3节)。元素是可选的。

If the MS does not support the configuration required for prompt playback to the output media streams and a more specific error code is not defined for its child elements, the MS sends a <response> with a 429 status code (Section 4.5). The MS MAY support transcoding between the media resource format and the output stream format.

如果MS不支持对输出媒体流进行提示播放所需的配置,并且没有为其子元素定义更具体的错误代码,则MS发送带有429状态代码的<response>(第4.5节)。MS可以支持媒体资源格式和输出流格式之间的转码。

The MS has the following execution model for prompt playing after initialization:

MS具有以下执行模式,用于在初始化后进行提示播放:

1. The MS initiates prompt playback playing its child elements (<media>, <variable>, <dtmf>, and <par>) one after another in document order.

1. MS启动提示播放,按文档顺序依次播放其子元素(<media>、<variable>、<dtmf>和<par>)。

2. If any error (including fetching and rendering errors) occurs during prompt execution, then the MS terminates playback and reports its error status to the dialog container (see Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the termmode attribute is set to stopped and any additional information is set.

2. 如果在提示执行过程中发生任何错误(包括抓取和渲染错误),则MS会终止播放,并使用<PrompInfo>(参见第4.3节)向对话框容器(参见第4.3.2.1节)报告其错误状态,其中termmode属性设置为stopped,并设置了任何附加信息。

3. If DTMF input is received and the value of the bargein attribute is true, then the MS terminates prompt playback and reports its execution status to the dialog container (see Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the termmode attribute is set to bargein and any additional information is set.

3. 如果接收到DTMF输入且bargein属性值为真,则MS终止提示播放,并使用<PrompInfo>(参见第4.3节)向对话框容器报告其执行状态(参见第4.3.2.1节),其中termmode属性设置为bargein,并设置了任何附加信息。

4. If prompt playback is stopped by the dialog container, then the MS reports its execution status to the dialog container (see Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the termmode attribute is set to stopped and any additional information is set.

4. 如果对话框容器停止了提示播放,则MS使用<PrompInfo>(参见第4.3.2.1节)将其执行状态报告给对话框容器(参见第4.3节),其中termmode属性设置为stopped,并设置了任何附加信息。

5. If prompt playback completes successfully, then the MS reports its execution status to the dialog container (see Section 4.3) with a <promptinfo> (see Section 4.3.2.1) where the termmode attribute is set to completed and any additional information is set.

5. 如果提示播放成功完成,则MS会向对话框容器(参见第4.3节)报告其执行状态,并显示<PrompInfo>(参见第4.3.2.1节),其中termmode属性设置为completed,并设置了任何附加信息。

4.3.1.1.1. <variable>
4.3.1.1.1. <variable>

The <variable> element specifies variable announcements using predefined media resources. Each variable has at least a type (e.g., date) and a value (e.g., 2008-02-25). The value is rendered according to the prompt variable type (e.g., 2008-02-25 is rendered as the date 25th February 2008). The precise mechanism for generating variable announcements (including the location of associated media resources) is implementation specific.

<variable>元素使用预定义的媒体资源指定变量公告。每个变量至少有一个类型(如日期)和一个值(如2008-02-25)。该值根据提示变量类型呈现(例如,2008-02-25呈现为2008年2月25日的日期)。生成可变公告(包括相关媒体资源的位置)的精确机制是特定于实现的。

A <variable> element has the following attributes:

<variable>元素具有以下属性:

type: specifies the type of prompt variable to render. This specification defines three values -- date (Section 4.3.1.1.1.1), time (Section 4.3.1.1.1.2), and digits (Section 4.3.1.1.1.3). All other valid but undefined values are reserved for future use,

类型:指定要呈现的提示变量的类型。本规范定义了三个值——日期(第4.3.1.1.1.1节)、时间(第4.3.1.1.1.2节)和数字(第4.3.1.1.3节)。所有其他有效但未定义的值保留供将来使用,

where new values are assigned as described in Section 8.5. A valid value is a string (see Section 4.6.6). The attribute is mandatory.

如第8.5节所述分配新值。有效值为字符串(见第4.6.6节)。该属性是必需的。

value: specifies a string to be rendered according to the prompt variable type. A valid value is a string (see Section 4.6.6). The attribute is mandatory.

值:指定要根据提示变量类型呈现的字符串。有效值为字符串(见第4.6.6节)。该属性是必需的。

format: specifies format information that the prompt variable type uses to render the value attribute. A valid value is a string (see Section 4.6.6). The attribute is optional. There is no default value.

格式:指定提示变量类型用于呈现值属性的格式信息。有效值为字符串(见第4.6.6节)。该属性是可选的。没有默认值。

gender: specifies the gender that the prompt variable type uses to render the value attribute. Valid values are "male" or "female". The attribute is optional. There is no default value.

性别:指定提示变量类型用于呈现值属性的性别。有效值为“男性”或“女性”。该属性是可选的。没有默认值。

xml:lang: specifies the language that the prompt variable type uses to render the value attribute. A valid value is a language identifier (see Section 4.6.11). The attribute is optional. There is no default value.

xml:lang:指定提示变量类型用于呈现值属性的语言。有效值是语言标识符(见第4.6.11节)。该属性是可选的。没有默认值。

The <variable> element has no children.

<variable>元素没有子元素。

This specification is agnostic to the type and codec of media resources into which variables are rendered as well as the rendering mechanism itself. For example, an MS implementation supporting audio rendering could map the <variable> into one or more audio media resources.

该规范与呈现变量的媒体资源的类型和编解码器以及呈现机制本身无关。例如,支持音频渲染的MS实现可以将<variable>映射到一个或多个音频媒体资源中。

This package is agnostic to which <variable> types are supported by an implementation. If a <variable> element configuration specified in a request is not supported by the MS, the MS sends a <response> with a 425 status code (Section 4.5).

这个包不知道实现支持哪些<variable>类型。如果MS不支持请求中指定的<variable>元素配置,则MS将发送带有425状态代码的<response>(第4.5节)。

4.3.1.1.1.1. Date Type
4.3.1.1.1.1. 日期类型

The date variable type provides a mechanism for dynamically rendering a date prompt.

日期变量类型提供了一种动态呈现日期提示的机制。

The <variable> type attribute MUST have the value "date".

<variable>type属性必须具有值“date”。

The <variable> format attribute MUST be one of the following values and comply with its rendering of the value attribute:

<variable>format属性必须是以下值之一,并符合其对value属性的呈现:

mdy indicating that the <variable> value attribute is to be rendered as sequence composed of month, then day, then year.

mdy表示<variable>value属性将被呈现为由月、日、年组成的序列。

ymd indicating that the <variable> value attribute is to be rendered as sequence composed of year, then month, then day.

ymd表示<variable>值属性将被呈现为由年、月、日组成的序列。

dym indicating that the <variable> value attribute is to be rendered as sequence composed of day, then year, then month.

dym表示<variable>值属性将被呈现为由天、年、月组成的序列。

dm indicating that the <variable> value attribute is to be rendered as sequence composed of day then month.

dm表示<variable>值属性将被呈现为由天和月组成的序列。

The <variable> value attribute MUST comply with a lexical representation of date where

<variable>value属性必须符合日期的词汇表示形式,其中

yyyy '-' mm '-' dd

yyyy'-'mm'-'dd

as defined in Section 3.2.9 of [XMLSchema:Part2].

如[XMLSchema:Part2]第3.2.9节所定义。

For example,

例如

     <variable type="date" format="dmy" value="2010-11-25"
     xml:lang="en" gender="male"/>
        
     <variable type="date" format="dmy" value="2010-11-25"
     xml:lang="en" gender="male"/>
        

describes a variable date prompt where the date can be rendered in audio as "twenty-fifth of November two thousand and ten" using a list of <media> resources:

描述一个可变日期提示,其中可以使用<media>资源列表将日期以音频形式呈现为“2010年11月25日”:

   <media loc="nfs://voicebase/en/male/25th.wav"/>
   <media loc="nfs://voicebase/en/male/of.wav"/>
   <media loc="nfs://voicebase/en/male/november.wav"/>
   <media loc="nfs://voicebase/en/male/2000.wav"/>
   <media loc="nfs://voicebase/en/male/and.wav"/>
   <media loc="nfs://voicebase/en/male/10.wav"/>
        
   <media loc="nfs://voicebase/en/male/25th.wav"/>
   <media loc="nfs://voicebase/en/male/of.wav"/>
   <media loc="nfs://voicebase/en/male/november.wav"/>
   <media loc="nfs://voicebase/en/male/2000.wav"/>
   <media loc="nfs://voicebase/en/male/and.wav"/>
   <media loc="nfs://voicebase/en/male/10.wav"/>
        
4.3.1.1.1.2. Time Type
4.3.1.1.1.2. 时间类型

The time variable type provides a mechanism for dynamically rendering a time prompt.

时间变量类型提供了一种动态呈现时间提示的机制。

The <variable> type attribute MUST have the value "time".

<variable>type属性必须具有值“time”。

The <variable> format attribute MUST be one of the following values and comply with its rendering of the value attribute:

<variable>format属性必须是以下值之一,并符合其对value属性的呈现:

t12 indicating that the <variable> value attribute is to be rendered as a time in traditional 12-hour format using am or pm (for example, "twenty-five minutes past 2 pm" for "14:25").

t12表示<variable>value属性将使用am或pm以传统的12小时格式呈现为时间(例如,“下午2点25分”表示“14:25”)。

t24 indicating that the <variable> value attribute is to be rendered as a time in 24-hour format (for example, "fourteen twenty-five" for "14:25").

t24表示<variable>value属性将以24小时格式呈现为时间(例如,“14:25”的“十四二十五”)。

The <variable> value attribute MUST comply with a lexical representation of time where

<variable>value属性必须符合时间的词汇表示,其中

hh ':' mm ( ':' ss )?

hh':'mm(':'ss)?

as defined in Section 3.2.8 of [XMLSchema:Part2].

如[XMLSchema:Part2]第3.2.8节所定义。

4.3.1.1.1.3. Digits Type
4.3.1.1.1.3. 数字类型

The digits variable type provides a mechanism for dynamically rendering a digit sequence.

digits变量类型提供了一种动态呈现数字序列的机制。

The <variable> type attribute MUST have the value "digits".

<variable>type属性必须具有值“digits”。

The <variable> format attribute MUST be one of the following values and comply with its rendering of the value attribute:

<variable>format属性必须是以下值之一,并符合其对value属性的呈现:

gen indicating that the <variable> value attribute is to be rendered as a general digit string (for example, "one two three" for "123").

gen表示<variable>值属性将被呈现为通用数字字符串(例如,“123”的“一二三”)。

crn indicating that the <variable> value attribute is to be rendered as a cardinal number (for example, "one hundred and twenty-three" for "123").

crn表示<variable>值属性将被呈现为基数(例如,“123”的“一百二十三”)。

ord indicating that the <variable> value attribute is to be rendered as an ordinal number (for example, "one hundred and twenty-third" for "123").

ord表示<variable>值属性将被呈现为序号(例如,“123”的“一百二十三”)。

The <variable> value attribute MUST comply with the lexical representation

<variable>value属性必须符合词法表示

d+

d+

i.e., one or more digits.

i、 例如,一个或多个数字。

4.3.1.1.2. <dtmf>
4.3.1.1.2. <dtmf>

The <dtmf> element specifies a sequence of DTMF tones for output.

<dtmf>元素为输出指定一系列dtmf音调。

DTMF tones could be generated using <media> resources where the output is transported as RTP audio packets. However, <media> resources are not sufficient for cases where DTMF tones are to be transported as DTMF RTP [RFC4733] or in event packages.

DTMF音调可以使用<media>资源生成,其中输出作为RTP音频包传输。然而,<media>资源对于DTMF音调作为DTMF RTP[RFC4733]或事件包传输的情况是不够的。

A <dtmf> element has the following attributes:

<dtmf>元素具有以下属性:

digits: specifies the DTMF sequence to output. A valid value is a DTMF string (see Section 4.6.3). The attribute is mandatory.

数字:指定要输出的DTMF序列。有效值为DTMF字符串(见第4.6.3节)。该属性是必需的。

level: used to define the power level for which the DTMF tones will be generated. Values are expressed in dBm0. A valid value is an integer in the range of 0 to -96 (dBm0). Larger negative values express lower power levels. Note that values lower than -55 dBm0 will be rejected by most receivers (TR-TSY-000181, ITU-T Q.24A). The attribute is optional. The default value is -6 (dBm0).

电平:用于定义将生成DTMF音调的功率电平。值以dBm0表示。有效值是0到-96(dBm0)范围内的整数。负值越大表示功率级别越低。请注意,低于-55 dBm0的值将被大多数接收机拒绝(TR-TSY-000181,ITU-T Q.24A)。该属性是可选的。默认值为-6(dBm0)。

duration: specifies the duration for which each DTMF tone is generated. A valid value is a time designation (see Section 4.6.7). The MS MAY round the value if it only supports discrete durations. The attribute is optional. The default value is 100 ms.

持续时间:指定生成每个DTMF音调的持续时间。有效值为时间名称(见第4.6.7节)。如果MS仅支持离散持续时间,则可以对该值进行四舍五入。该属性是可选的。默认值为100毫秒。

interval: specifies the duration of a silence interval following each generated DTMF tone. A valid value is a time designation (see Section 4.6.7). The MS MAY round the value if it only supports discrete durations. The attribute is optional. The default value is 100 ms.

间隔:指定每个生成的DTMF音调之后的静默间隔的持续时间。有效值为时间名称(见第4.6.7节)。如果MS仅支持离散持续时间,则可以对该值进行四舍五入。该属性是可选的。默认值为100毫秒。

The <dtmf> element has no children.

<dtmf>元素没有子元素。

If a <dtmf> element configuration is not supported, the MS sends a <response> with a 426 status code (Section 4.5).

如果不支持<dtmf>元件配置,则MS发送带有426状态代码的<response>(第4.5节)。

4.3.1.1.3. <par>
4.3.1.1.3. <par>

The <par> element allows media resources to be played in parallel. Each of its child elements specifies a media resource (or a sequence of media resources using the <seq> element). When playback of the <par> element is initiated, the MS begins playback of all its child elements at the same time. This element is modeled after the <par> element in SMIL [W3C.REC-SMIL2-20051213].

<par>元素允许并行播放媒体资源。其每个子元素指定一个媒体资源(或使用<seq>元素的媒体资源序列)。开始播放<par>元素时,MS同时开始播放其所有子元素。该元素以SMIL[W3C.REC-SMIL2-20051213]中的<par>元素为模型。

The <par> element has the following attributes:

<par>元素具有以下属性:

endsync: indicates when playback of the element is complete. Valid values are "first" (indicates that the element is complete when any child element reports that it is complete) and "last" (indicates it is complete when every child elements are complete). The attribute is optional. The default value is "last".

endsync:指示元素播放完成的时间。有效值为“first”(当任何子元素报告该元素已完成时,表示该元素已完成)和“last”(当每个子元素都已完成时,表示该元素已完成)。该属性是可选的。默认值为“last”。

If the value is "first", then playback of other child elements is stopped when one child element reports it is complete.

如果该值为“first”,则当一个子元素报告已完成时,其他子元素的播放将停止。

The <par> element has the following child elements (at least one, any order, multiple occurrences of each element permitted):

<par>元素具有以下子元素(每个元素至少允许一个、任意顺序、多次出现):

<seq>: specifies a sequence of media resources to play in parallel with other <par> child elements (see Section 4.3.1.1.3.1). The element is optional.

<seq>:指定与其他<par>子元素并行播放的媒体资源序列(参见第4.3.1.1.3.1节)。元素是可选的。

<media>: specifies a media resource (see Section 4.3.1.5) to play. The MS is responsible for assigning the appropriate media stream(s) when more than one is available. The element is optional.

<media>:指定要播放的媒体资源(参见第4.3.1.5节)。当多个媒体流可用时,MS负责分配适当的媒体流。元素是可选的。

<variable>: specifies a variable media announcement (see Section 4.3.1.1.1) to play. The element is optional.

<variable>:指定要播放的可变媒体公告(参见第4.3.1.1.1节)。元素是可选的。

<dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to play. The element is optional.

<dtmf>:生成一个或多个dtmf音调(参见第4.3.1.1.2节)以播放。元素是可选的。

It is RECOMMENDED that a <par> element contains only one <media> element of the same media type (i.e., same type-name as defined in Section 4.6.10). If a <par> element configuration is not supported, the MS sends a <response> with a 435 status code (Section 4.5).

建议<par>元素只包含一个相同媒体类型的<media>元素(即第4.6.10节中定义的相同类型名称)。如果不支持<par>元件配置,则MS发送带有435状态代码的<response>(第4.5节)。

Runtime <control>s (Section 4.3.1.2) apply to each child element playing in parallel. For example, pause and resume controls cause all child elements to be paused and resumed, respectively.

运行时<control>s(第4.3.1.2节)适用于并行播放的每个子元素。例如,pause和resume控件分别导致暂停和恢复所有子元素。

If the <par> element is stopped by the prompt container (e.g., bargein or dialog termination), then playback of all child elements is stopped. The playback duration (Section 4.3.2.1) reported for the <par> element is the duration of parallel playback, not the cumulative duration of each child element played in parallel.

如果提示容器(例如bargein或对话框终止)停止了<par>元素,则停止播放所有子元素。为<par>元素报告的播放持续时间(第4.3.2.1节)是并行播放的持续时间,而不是并行播放的每个子元素的累积持续时间。

For example, a request to playback audio and video media in parallel:

例如,并行播放音频和视频媒体的请求:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <prompt>
       <par>
        <media type="audio/x-wav"
               loc="http://www.example.com/media/comments.wav"/>
        <media type="video/3gpp;codecs='s263'"
               loc="http://www.example.com/media/camera.3gp"/>
       </par>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <prompt>
       <par>
        <media type="audio/x-wav"
               loc="http://www.example.com/media/comments.wav"/>
        <media type="video/3gpp;codecs='s263'"
               loc="http://www.example.com/media/camera.3gp"/>
       </par>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        

When the <prompt> element is executed, it begins playback of its child element in document-order sequence. In this case, there is only one child element, a <par> element itself containing audio and video <media> child elements. Consequently, playback of both audio and video media resources is initiated at the same time. Since the endsync attribute is not specified, the default value "last" applies. The <par> element playback is complete when the media resource with the longest duration is complete.

当执行<prompt>元素时,它开始按文档顺序播放其子元素。在这种情况下,只有一个子元素,<par>元素本身包含音频和视频<media>子元素。因此,同时启动音频和视频媒体资源的回放。由于未指定endsync属性,因此将应用默认值“last”。当持续时间最长的媒体资源完成时,<par>元素播放完成。

4.3.1.1.3.1. <seq>
4.3.1.1.3.1. <seq>

The <seq> element specifies media resources to be played back in sequence. This allows a sequence of media resources to be played at the same time as other children of a <par> element are played in parallel, for example, a sequence of audio resources while a video resource is played in parallel. This element is modeled after the <seq> element in SMIL [W3C.REC-SMIL2-20051213].

元素指定要按顺序播放的媒体资源。这允许在并行播放<par>元素的其他子元素的同时播放媒体资源序列,例如,并行播放视频资源的同时播放音频资源序列。该元素以SMIL[W3C.REC-SMIL2-20051213]中的<seq>元素为模型。

The <seq> element has no attributes.

<seq>元素没有属性。

The <seq> element has the following child elements (at least one, any order, multiple occurrences of each element permitted):

<seq>元素具有以下子元素(每个元素至少允许一个、任意顺序、多次出现):

<media>: specifies a media resource (see Section 4.3.1.5) to play. The element is optional.

<media>:指定要播放的媒体资源(参见第4.3.1.5节)。元素是可选的。

<variable>: specifies a variable media announcement (see Section 4.3.1.1.1) to play. The element is optional.

<variable>:指定要播放的可变媒体公告(参见第4.3.1.1.1节)。元素是可选的。

<dtmf>: generates one or more DTMF tones (see Section 4.3.1.1.2) to play. The element is optional.

<dtmf>:生成一个或多个dtmf音调(参见第4.3.1.1.2节)以播放。元素是可选的。

Playback of a <seq> element is complete when all child elements in the sequence are complete. If the <seq> element is stopped by the <par> container, then playback of the current child element is stopped (remaining child elements in the sequence are not played).

当序列中的所有子元素都完成时,<seq>元素的播放完成。如果<par>容器停止<seq>元素,则停止当前子元素的播放(序列中的其余子元素不播放)。

For example, a request to play a sequence of audio resources in parallel with a video media:

例如,与视频媒体并行播放音频资源序列的请求:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <prompt>
       <par endsync="first">
        <seq>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/date.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/intro.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/main.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/end.wav"/>
        </seq>
        <media type="video/3gpp;codecs='s263'"
               loc="rtsp://www.example.com/media/camera.3gp"/>
       </par>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <prompt>
       <par endsync="first">
        <seq>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/date.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/intro.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/main.wav"/>
          <media type="audio/x-wav"
               loc="http://www.example.com/media/end.wav"/>
        </seq>
        <media type="video/3gpp;codecs='s263'"
               loc="rtsp://www.example.com/media/camera.3gp"/>
       </par>
      </prompt>
     </dialog>
    </dialogstart>
   </mscivr>
        

When the <prompt> element is executed, it begins playback of the <par> element containing a <seq> element and a video <media> element. The <seq> element itself contains a sequence of audio <media> elements. Consequently, playback of the video media resource is initiated at the same time as playback of the sequence of the audio media resources is initiated. Each audio resource is played back after the previous one completes. Since the endsync attribute is set to "first", the <par> element playback is complete when either all the audio resources in <seq> have been played to completion or the video <media> is complete, whichever occurs first.

当执行<prompt>元素时,它开始播放包含<seq>元素和视频<media>元素的<par>元素。<seq>元素本身包含一系列音频<media>元素。因此,在开始播放音频媒体资源序列的同时,开始播放视频媒体资源。每个音频资源在前一个音频资源完成后播放。由于endsync属性设置为“first”,因此当<seq>中的所有音频资源都已播放完成或视频<media>已完成(以先发生的为准)时,<par>元素播放完成。

4.3.1.2. <control>
4.3.1.2. <control>

The <control> element defines how DTMF input is mapped to runtime controls, including prompt playback controls.

元素定义DTMF输入如何映射到运行时控件,包括提示播放控件。

DTMF input matching these controls MUST NOT cause prompt playback to be interrupted (i.e., no prompt bargein), but causes the appropriate operation to be applied, for example, speeding up prompt playback.

与这些控件匹配的DTMF输入不得导致提示播放中断(即,无提示按钮),但会导致应用适当的操作,例如,加快提示播放。

DTMF input matching these controls has priority over <collect> input for the duration of prompt playback. If an incoming DTMF character matches a specified runtime control, then the DTMF character is consumed: it is not added to the digit buffer and so is not available to the <collect> operation. Once prompt playback is complete, runtime controls are no longer active.

在提示播放期间,与这些控件匹配的DTMF输入优先于<collect>输入。如果传入的DTMF字符与指定的运行时控件匹配,则会使用DTMF字符:它不会添加到数字缓冲区,因此不可用于<collect>操作。提示播放完成后,运行时控件将不再处于活动状态。

The <control> element has the following attributes:

<control>元素具有以下属性:

gotostartkey: maps a DTMF key to skip directly to the start of the prompt. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

gotostartkey:将DTMF键映射为直接跳到提示符的开头。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

gotoendkey: maps a DTMF key to skip directly to the end of the prompt. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

gotoendkey:将DTMF键映射为直接跳到提示符末尾。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

skipinterval: indicates how far an MS skips backwards or forwards through prompt playback when the rewind (rwkey) of fast forward key (ffkey) is pressed. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 6s.

skipinterval:指示当按下快进键(ffkey)的rewind(rwkey)时,MS通过提示播放向后或向前跳过的距离。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为6s。

ffkey: maps a DTMF key to a fast forward operation equal to the value of 'skipinterval'. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

ffkey:将DTMF键映射到等于“skipinterval”值的快进操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

rwkey: maps a DTMF key to a rewind operation equal to the value of 'skipinterval'. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

rwkey:将DTMF键映射到等于“skipinterval”值的倒带操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

pauseinterval: indicates how long an MS pauses prompt playback when the pausekey is pressed. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 10s.

pauseinterval:指示按下pausekey时MS暂停提示播放的时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为10秒。

pausekey: maps a DTMF key to a pause operation equal to the value of 'pauseinterval'. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

pausekey:将DTMF键映射到等于“pauseinterval”值的暂停操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

resumekey: maps a DTMF key to a resume operation. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

resumekey:将DTMF键映射到恢复操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

volumeinterval: indicates the increase or decrease in playback volume (relative to the current volume) when the volupkey or voldnkey is pressed. A valid value is a percentage (see Section 4.6.8). The attribute is optional. The default value is 10%.

volumeinterval:表示按volupkey或VoldKey时播放音量(相对于当前音量)的增加或减少。有效值为百分比(见第4.6.8节)。该属性是可选的。默认值为10%。

volupkey: maps a DTMF key to a volume increase operation equal to the value of 'volumeinterval'. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

volupkey:将DTMF键映射到等于“volumeinterval”值的音量增加操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

voldnkey: maps a DTMF key to a volume decrease operation equal to the value of 'volumeinterval'. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

VoldKey:将DTMF键映射到等于“volumeinterval”值的音量减小操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

speedinterval: indicates the increase or decrease in playback speed (relative to the current speed) when the speedupkey or speeddnkey is pressed. A valid value is a percentage (see Section 4.6.8). The attribute is optional. The default value is 10%.

speedinterval:表示当按下SpeedUp键或SpeedDn键时,播放速度(相对于当前速度)的增加或减少。有效值为百分比(见第4.6.8节)。该属性是可选的。默认值为10%。

speedupkey: maps a DTMF key to a speed increase operation equal to the value of the speedinterval attribute. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

speedupkey:将DTMF键映射到等于speedinterval属性值的提速操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

speeddnkey: maps a DTMF key to a speed decrease operation equal to the value of the speedinterval attribute. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

speeddnkey:将DTMF键映射到等于speedinterval属性值的减速操作。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

external: allows one or more DTMF keys to be declared as external controls (for example, video camera controls); the MS can send notifications when a matching key is activated using <dtmfnotify> (Section 4.2.5.2). A valid value is a DTMF string (see Section 4.6.3). The attribute is optional. There is no default value.

外部:允许将一个或多个DTMF键声明为外部控件(例如,摄像机控件);当使用<dtmfnotify>(第4.2.5.2节)激活匹配密钥时,MS可以发送通知。有效值为DTMF字符串(见第4.6.3节)。该属性是可选的。没有默认值。

If the same DTMF is specified in more than one DTMF key control attribute -- except the pausekey and resumekey attributes -- the MS sends a <response> with a 413 status code (Section 4.5).

如果在多个DTMF键控制属性(pausekey和resumekey属性除外)中指定了相同的DTMF,则MS将发送带有413状态代码的<response>(第4.5节)。

The MS has the following execution model for runtime control after initialization:

MS在初始化后具有以下运行时控制执行模型:

1. If an error occurs during execution, then the MS terminates runtime control and the error is reported to the dialog container. The MS MAY report controls executed successfully before the error in <controlinfo> (see Section 4.3.2.2).

1. 如果在执行期间发生错误,则MS终止运行时控制,并将错误报告给对话框容器。MS可能会在<controlinfo>中报告错误之前成功执行的控制(参见第4.3.2.2节)。

2. Runtime controls are active only during prompt playback (if no <prompt> element is specified, then runtime controls are ignored). If DTMF input matches any specified keys (for example, the ffkey), then the MS applies the appropriate operation immediately. If a seek operation (ffkey, rwkey) attempts to go beyond the beginning or end of the prompt queue, then the MS automatically truncates it to the prompt queue beginning or end, respectively. If a volume operation (voldnkey, volupkey) attempts to go beyond the minimum or maximum volume supported by 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.

2. 运行时控件仅在提示播放期间处于活动状态(如果未指定<prompt>元素,则忽略运行时控件)。如果DTMF输入与任何指定键(例如ffkey)匹配,则MS会立即应用相应的操作。如果搜索操作(ffkey、rwkey)试图超出提示队列的开头或结尾,则MS会分别自动将其截断到提示队列的开头或结尾。如果卷操作(VoldKey、volupkey)试图超出平台支持的最小或最大卷,则MS会自动将操作分别限制为支持的最小或最大卷。如果速度操作(speeddnkey、speedupkey)试图超过平台支持的最小或最大播放速度,则MS会自动将操作分别限制为支持的最小或最大速度。如果暂停操作试图在输出已暂停时暂停输出,则该操作将被忽略。如果恢复操作尝试在提示未暂停时恢复,则忽略该操作。如果输出暂停时应用了寻道、音量或速度操作,则MS也会自动恢复输出。

3. If DTMF control subscription has been specified for the dialog, then each DTMF match of a control operation is reported in a <dtmfnotify> notification event (Section 4.2.5.2).

3. 如果已为对话框指定DTMF控制订阅,则控制操作的每个DTMF匹配都将在<dtmfnotify>通知事件中报告(第4.2.5.2节)。

4. When the dialog exits, all control matches are reported in a <controlinfo> element (Section 4.3.2.2).

4. 当对话框退出时,所有控件匹配将在<controlinfo>元素中报告(第4.3.2.2节)。

4.3.1.3. <collect>
4.3.1.3. <collect>

The <collect> element defines how DTMF input is collected.

元素定义如何收集DTMF输入。

The <collect> element has the following attributes:

<collect>元素具有以下属性:

cleardigitbuffer: indicates whether the digit buffer is to be cleared. A valid value is a boolean (see Section 4.6.1). A value of true indicates that the digit buffer is to be cleared. A value of false indicates that the digit buffer is not to be cleared. The attribute is optional. The default value is true.

cleardigitbuffer:指示是否要清除数字缓冲区。有效值为布尔值(见第4.6.1节)。值为true表示要清除数字缓冲区。值false表示不清除数字缓冲区。该属性是可选的。默认值为true。

timeout: indicates the maximum time to wait for user input to begin. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 5s.

超时:表示等待用户输入开始的最长时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为5s。

interdigittimeout: indicates the maximum time to wait for another DTMF when the collected input is incomplete with respect to the grammar. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 2s.

interdigittimeout:表示当收集的输入与语法有关时,等待另一个DTMF的最长时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为2s。

termtimeout: indicates the maximum time to wait for the termchar character when the collected input is complete with respect to the grammar. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 0s (no delay).

termtimeout:表示收集的输入完成时,等待termchar字符的最长时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为0s(无延迟)。

escapekey: specifies a DTMF key that indicates collected grammar matches are discarded and the DTMF collection is to be re-initiated. A valid value is a DTMF character (see Section 4.6.2). The attribute is optional. There is no default value.

escapekey:指定一个DTMF键,该键指示丢弃收集的语法匹配项,并重新启动DTMF收集。有效值为DTMF字符(见第4.6.2节)。该属性是可选的。没有默认值。

termchar: specifies a DTMF character for terminating DTMF input collection using the internal grammar. It is ignored when a custom grammar is specified. A valid value is a DTMF character (see Section 4.6.2). To disable termination by a conventional DTMF character, set the parameter to an unconventional character like 'A'. The attribute is optional. The default value is '#'.

termchar:指定一个DTMF字符,用于使用内部语法终止DTMF输入集合。当指定自定义语法时,它将被忽略。有效值为DTMF字符(见第4.6.2节)。要禁用通过常规DTMF字符终止,请将参数设置为非常规字符,如“a”。该属性是可选的。默认值为“#”。

maxdigits: The maximum number of digits to collect using an internal digits (0-9 only) grammar. It is ignored when a custom grammar is specified. A valid value is a positive integer (see Section 4.6.5). The attribute is optional. The default value is 5.

maxdigits:使用内部数字(仅0-9)语法收集的最大位数。当指定自定义语法时,它将被忽略。有效值为正整数(见第4.6.5节)。该属性是可选的。默认值为5。

The following matching priority is defined for incoming DTMF: termchar attribute, escapekey attribute, and then as part of a grammar. For example, if "1" is defined as the escapekey attribute and as part of a grammar, then its interpretation as an escapekey takes priority.

以下匹配优先级是为传入DTMF定义的:termchar属性、escapekey属性,然后作为语法的一部分。例如,如果将“1”定义为escapekey属性并作为语法的一部分,则其作为escapekey的解释优先。

The <collect> element has the following child element:

<collect>元素具有以下子元素:

<grammar>: indicates a custom grammar format (see Section 4.3.1.3.1). The element is optional.

<grammar>:表示自定义语法格式(参见第4.3.1.3.1节)。元素是可选的。

The custom grammar takes priority over the internal grammar. If a <grammar> element is specified, the MS MUST use it for DTMF collection.

自定义语法优先于内部语法。如果指定了<grammar>元素,则MS必须将其用于DTMF采集。

The MS has the following execution model for DTMF collection after initialization:

初始化后,MS的DTMF采集执行模式如下:

1. The DTMF collection buffer MUST NOT receive DTMF input matching <control> operations (see Section 4.3.1.2).

1. DTMF采集缓冲器不得接收DTMF输入匹配<control>操作(见第4.3.1.2节)。

2. If an error occurs during execution, then the MS terminates collection and reports the error to the dialog container (see Section 4.3). The MS MAY report DTMF collected before the error in <collectinfo> (see Section 4.3.2.3).

2. 如果在执行过程中发生错误,则MS终止收集并将错误报告给对话框容器(请参阅第4.3节)。MS可能会在<collectinfo>中报告错误之前收集的DTMF(参见第4.3.2.3节)。

3. The MS clears the digit buffer if the value of the cleardigitbuffer attribute is true.

3. 如果cleardigitbuffer属性的值为true,则MS清除数字缓冲区。

4. The MS activates an initial timer with the duration of the value of the timeout attribute. If the initial timer expires before any DTMF input is received, then collection execution terminates, the <collectinfo> (see Section 4.3.2.3) has the termmode attribute set to noinput and the execution status is reported to the dialog container.

4. MS使用超时属性值的持续时间激活初始计时器。如果初始计时器在接收任何DTMF输入之前过期,则采集执行终止,<collectinfo>(参见第4.3.2.3节)将termmode属性设置为noinput,并将执行状态报告给对话框容器。

5. When the first DTMF collect input is received, the initial timer is canceled and DTMF collection begins. Each DTMF input is collected unless it matches the value of the escapekey attribute or the termchar attribute when the internal grammar is used. Collected input is matched against the grammar to determine if it is valid and, if valid, whether collection is complete. Valid DTMF patterns are either a simple digit string where the maximum length is determined by the maxdigits attribute and that can be optionally terminated by the character in the termchar attribute, or a custom DTMF grammar specified with the <grammar> element.

5. 当接收到第一个DTMF采集输入时,初始计时器被取消,DTMF采集开始。收集每个DTMF输入,除非它与使用内部语法时的escapekey属性或termchar属性的值匹配。收集的输入与语法匹配,以确定其是否有效,如果有效,则确定收集是否完成。有效的DTMF模式可以是一个简单的数字字符串,其中最大长度由maxdigits属性确定,并且可以选择由termchar属性中的字符终止,也可以是使用<grammar>元素指定的自定义DTMF语法。

6. After escapekey input, or a valid input that does not complete the grammar, the MS activates a timer for the value of the interdigittimeout attribute or the termtimeout attribute. The MS only uses the termtimeout value when the grammar does not allow any additional input; otherwise, the MS uses the interdigittimeout.

6. 在escapekey输入或未完成语法的有效输入之后,MS会为interdigittimeout属性或termtimeout属性的值激活计时器。MS仅在语法不允许任何额外输入时使用termtimeout值;否则,MS使用叉指超时。

7. If DTMF collect input matches the value of the escapekey attribute, then the MS re-initializes DTMF collection: i.e., the MS discards collected DTMFs already matched against the grammar, and the MS attempts to match incoming DTMF (including any pending in the digit buffer) as described in Step 5 above.

7. 如果DTMF collect输入与escapekey属性的值匹配,则MS会重新初始化DTMF集合:即,MS会丢弃已与语法匹配的收集DTMF,并且MS会尝试匹配传入DTMF(包括数字缓冲区中的任何挂起),如上文步骤5所述。

8. If the collect input is not valid with respect to the grammar or an interdigittimeout timer expires, the MS terminates collection execution and reports execution status to the dialog container with a <collectinfo> (see Section 4.3.2.3) where the termmode attribute is set to nomatch.

8. 如果collect输入在语法方面无效或interdigittimeout计时器过期,MS将终止collection执行并向对话框容器报告执行状态,对话框容器带有<collectinfo>(参见第4.3.2.3节),其中termmode属性设置为nomatch。

9. If the collect input completes the grammar or if a termtimeout timer expires, then the MS terminates collection execution and reports execution status to the dialog container with

9. 如果collect输入完成语法或termtimeout计时器过期,则MS终止集合执行,并向对话框容器报告执行状态

<collectinfo> (see Section 4.3.2.3) where the termmode attribute is set to match.

<collectinfo>(参见第4.3.2.3节),其中termmode属性设置为匹配。

4.3.1.3.1. <grammar>
4.3.1.3.1. <语法>

The <grammar> element allows a custom grammar, inline or external, to be specified. Custom grammars permit the full range of DTMF characters including '*' and '#' to be specified for DTMF pattern matching.

<grammar>元素允许指定内联或外部的自定义语法。自定义语法允许为DTMF模式匹配指定包括“*”和“#”在内的所有DTMF字符。

The <grammar> element has the following attributes:

<grammar>元素具有以下属性:

src: specifies the location of an external grammar document. A valid value is a URI (see Section 4.6.9). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] schemes and the MS MAY support other schemes. If the URI scheme is unsupported, the MS sends a <response> with a 420 status code (Section 4.5). If the resource cannot be retrieved within the timeout interval, the MS sends a <response> with a 409 status code. If the grammar format is not supported, the MS sends a <response> with a 424 status code. The attribute is optional. There is no default value.

src:指定外部语法文档的位置。有效值是URI(见第4.6.9节)。MS必须同时支持HTTP[RFC2616]和HTTPS[RFC2818]方案,并且MS可以支持其他方案。如果不支持URI方案,MS将发送带有420状态代码的<response>(第4.5节)。如果在超时时间间隔内无法检索资源,则MS将发送带有409状态代码的<response>。如果不支持语法格式,MS将发送带有424状态代码的<response>。该属性是可选的。没有默认值。

type: identifies the preferred type of the grammar document identified by the src attribute. A valid value is a MIME media type (see Section 4.6.10). If the URI scheme used in the src attribute defines a mechanism for establishing the authoritative MIME media type of the media resource, the value returned by that mechanism takes precedence over this attribute. The attribute is optional. There is no default value.

type:标识由src属性标识的语法文档的首选类型。有效值为MIME媒体类型(见第4.6.10节)。如果src属性中使用的URI方案定义了一种机制,用于建立媒体资源的权威MIME媒体类型,则该机制返回的值优先于该属性。该属性是可选的。没有默认值。

fetchtimeout: the maximum interval to wait when fetching a grammar resource. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 30s.

fetchtimeout:获取语法资源时等待的最大间隔。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为30秒。

The <grammar> element allows inline grammars to be specified. XML grammar formats MUST use a namespace other than the one used in this specification. Non-XML grammar formats MAY use a CDATA section.

<grammar>元素允许指定内联语法。XML语法格式必须使用与本规范中使用的名称空间不同的名称空间。非XML语法格式可以使用CDATA节。

The MS MUST support the Speech Recognition Grammar Specification [SRGS] XML grammar format ("application/srgs+xml") and MS MAY support the Key Press Markup Language (KPML) [RFC4730] or other grammar formats. If the grammar format is not supported by the MS, then the MS sends a <response> with a 424 status code (Section 4.5).

MS必须支持语音识别语法规范[SRGS]XML语法格式(“应用程序/SRGS+XML”),MS可以支持按键标记语言(KPML)[RFC4730]或其他语法格式。如果MS不支持语法格式,则MS发送带有424状态代码的<response>(第4.5节)。

For example, the following fragment shows DTMF collection with an inline SRGS grammar:

例如,以下片段显示了具有内联SRGS语法的DTMF集合:

   <collect cleardigitbuffer="false" timeout="20s"
           interdigittimeout="1s">
           <grammar>
                   <grammar xmlns="http://www.w3.org/2001/06/grammar"
                                   version="1.0" mode="dtmf">
                     <rule id="digit">
                      <one-of>
                           <item>0</item>
                           <item>1</item>
                           <item>2</item>
                           <item>3</item>
                           <item>4</item>
                           <item>5</item>
                           <item>6</item>
                           <item>7</item>
                           <item>8</item>
                           <item>9</item>
                      </one-of>
                   </rule>
        
   <collect cleardigitbuffer="false" timeout="20s"
           interdigittimeout="1s">
           <grammar>
                   <grammar xmlns="http://www.w3.org/2001/06/grammar"
                                   version="1.0" mode="dtmf">
                     <rule id="digit">
                      <one-of>
                           <item>0</item>
                           <item>1</item>
                           <item>2</item>
                           <item>3</item>
                           <item>4</item>
                           <item>5</item>
                           <item>6</item>
                           <item>7</item>
                           <item>8</item>
                           <item>9</item>
                      </one-of>
                   </rule>
        
                   <rule id="pin" scope="public">
                    <one-of>
                           <item>
                            <item repeat="4">
                             <ruleref uri="#digit"/>
                                   </item>#</item>
                                   <item>* 9</item>
                    </one-of>
                   </rule>
        
                   <rule id="pin" scope="public">
                    <one-of>
                           <item>
                            <item repeat="4">
                             <ruleref uri="#digit"/>
                                   </item>#</item>
                                   <item>* 9</item>
                    </one-of>
                   </rule>
        
          </grammar>
            </grammar>
           </collect>
        
          </grammar>
            </grammar>
           </collect>
        

The same grammar could also be referenced externally (and take advantage of HTTP caching):

同样的语法也可以在外部引用(并利用HTTP缓存):

   <collect cleardigitbuffer="false" timeout="20s">
      <grammar type="application/srgs+xml"
               src="http://example.org/pin.grxml"/>
   </collect>
        
   <collect cleardigitbuffer="false" timeout="20s">
      <grammar type="application/srgs+xml"
               src="http://example.org/pin.grxml"/>
   </collect>
        
4.3.1.4. <record>
4.3.1.4. <record>

The <record> element specifies how media input is recorded.

元素指定如何记录媒体输入。

The <record> element has the following attributes:

<record>元素具有以下属性:

timeout: indicates the time to wait for user input to begin. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 5s.

超时:表示等待用户输入开始的时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为5s。

vadinitial: controls whether Voice Activity Detection (VAD) is used to initiate the recording operation. A valid value is a boolean (see Section 4.6.1). A value of true indicates the MS MUST initiate recording if the VAD detects voice on the configured inbound audio streams. A value of false indicates that the MS MUST NOT initiate recording using VAD. The attribute is optional. The default value is false.

VAD初始:控制是否使用语音活动检测(VAD)来启动录制操作。有效值为布尔值(见第4.6.1节)。如果VAD检测到配置的入站音频流上的语音,则值为true表示MS必须启动录制。值false表示MS不得使用VAD启动记录。该属性是可选的。默认值为false。

vadfinal: controls whether VAD is used to terminate the recording operation. A valid value is a boolean (see Section 4.6.1). A value of true indicates the MS MUST terminate recording if the VAD detects a period of silence (whose duration is specified by the finalsilence attribute) on configured inbound audio streams. A value of false indicates that the MS MUST NOT terminate recording using VAD. The attribute is optional. The default value is false.

vadfinal:控制是否使用VAD终止录制操作。有效值为布尔值(见第4.6.1节)。如果VAD在配置的入站音频流上检测到一段静默时间(其持续时间由FinalLence属性指定),则值为true表示MS必须终止录制。值false表示MS不得使用VAD终止记录。该属性是可选的。默认值为false。

dtmfterm: indicates whether the recording operation is terminated by DTMF input. A valid value is a boolean (see Section 4.6.1). A value of true indicates that recording is terminated by DTMF input. A value of false indicates that recording is not terminated by DTMF input. The attribute is optional. The default value is true.

dtmfterm:指示录制操作是否由DTMF输入终止。有效值为布尔值(见第4.6.1节)。如果值为true,则表示记录被DTMF输入终止。值false表示DTMF输入未终止录制。该属性是可选的。默认值为true。

maxtime: indicates the maximum duration of the recording. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 15s.

maxtime:表示录制的最大持续时间。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为15秒。

beep: indicates whether a 'beep' is to be played immediately prior to initiation of the recording operation. A valid value is a boolean (see Section 4.6.1). The attribute is optional. The default value is false.

嘟嘟声:指示在开始录制操作之前是否立即播放“嘟嘟声”。有效值为布尔值(见第4.6.1节)。该属性是可选的。默认值为false。

finalsilence: indicates the interval of silence that indicates the end of voice input. This interval is not part of the recording itself. This parameter is ignored if the vadfinal attribute has the value false. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 5s.

finalsilence:表示静音间隔,表示语音输入结束。此间隔不是录制本身的一部分。如果vadfinal属性的值为false,则忽略此参数。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为5s。

append: indicates whether recorded data is appended or not to a recording location if a resource already exists. A valid value is a boolean (see Section 4.6.1). A value of true indicates that recorded data is appended to the existing resource at a recording

追加:指示如果资源已存在,是否将记录的数据追加到记录位置。有效值为布尔值(见第4.6.1节)。值true表示记录的数据在记录时附加到现有资源

location. A value of false indicates that recorded data is to overwrite the existing resource. The attribute is optional. The default value is false.

地方值false表示记录的数据将覆盖现有资源。该属性是可选的。默认值为false。

When a recording location is specified using the HTTP or HTTPS protocol, the recording operation SHOULD be performed using the HTTP GET and PUT methods, unless the HTTP server provides a special interface for recording uploads and appends (e.g., using POST). When the append attribute has the value false, the recording data is uploaded to the specified location using HTTP PUT and replaces any data at that location on the HTTP origin server. When append has the value true, the existing data (if any) is first downloaded from the specified location using HTTP GET, then the recording data is appended to the existing recording (note that this might require codec conversion and modification to the existing data), then the combined recording is uploaded to the specified location using HTTP PUT. HTTP errors are handled as described in [RFC2616].

当使用HTTP或HTTPS协议指定记录位置时,应使用HTTP GET和PUT方法执行记录操作,除非HTTP服务器提供用于记录上载和附加的特殊接口(例如,使用POST)。当append属性的值为false时,记录数据将使用HTTP PUT上载到指定位置,并替换HTTP源服务器上该位置的任何数据。当append的值为true时,首先使用HTTP GET从指定位置下载现有数据(如果有),然后将记录数据追加到现有记录中(请注意,这可能需要对现有数据进行编解码器转换和修改),然后使用HTTP PUT将组合记录上载到指定位置。HTTP错误的处理如[RFC2616]所述。

When the recording location is specified using protocols other than HTTP or HTTPS, the mapping of the append operation onto the upload protocol scheme is implementation specific.

当使用HTTP或HTTPS以外的协议指定录制位置时,追加操作到上载协议方案的映射是特定于实现的。

If either the vadinitial or vadfinal attribute is set to true and the MS does not support VAD, the MS sends a <response> with a 434 status code (Section 4.5).

如果VADINITAL或vadfinal属性设置为true且MS不支持VAD,则MS将发送带有434状态代码的<response>(第4.5节)。

The <record> element has the following child element (0 or more occurrences):

<record>元素具有以下子元素(0次或多次出现):

<media>: specifies the location and type of the media resource for uploading recorded data (see Section 4.3.1.5). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] schemes for uploading recorded data and the MS MAY support other schemes. The MS uploads recorded data to this resource as soon as possible after recording is complete. The element is optional.

<media>:指定用于上载记录数据的媒体资源的位置和类型(参见第4.3.1.5节)。MS必须支持HTTP[RFC2616]和HTTPS[RFC2818]方案来上传记录数据,并且MS可以支持其他方案。记录完成后,MS会尽快将记录的数据上载到此资源。元素是可选的。

If multiple <media> elements are specified, then media input is to be recorded in parallel to multiple resource locations.

如果指定了多个<media>元素,则媒体输入将与多个资源位置并行记录。

If no <media> child element is specified, the MS MUST record media input but the recording location and the recording format are implementation specific (e.g., the MS records audio in the WAV format to a local disk accessible by HTTP). The recording location and format are reported in <recordinfo> (Section 4.3.2.4) when the dialog terminates. The recording MUST be available from this location until the connection or conference associated with the dialog on the MS terminates.

如果未指定<media>子元素,则MS必须记录媒体输入,但记录位置和记录格式是特定于实现的(例如,MS将WAV格式的音频记录到可通过HTTP访问的本地磁盘)。对话框终止时,<recordinfo>(第4.3.2.4节)将报告记录位置和格式。在与MS上的对话框关联的连接或会议终止之前,必须从此位置进行录制。

If the MS does not support the configuration required for recording from the input media streams to one or more <media> elements and a more specific error code is not defined for its child elements, the MS sends a <response> with a 423 status code (Section 4.5).

如果MS不支持将输入媒体流记录到一个或多个<media>元素所需的配置,并且没有为其子元素定义更具体的错误代码,则MS发送带有423状态代码的<response>(第4.5节)。

Note that an MS MAY support uploading recorded data to recording locations at the same time the recording operation takes place. Such implementations need to be aware of the requirements of certain recording formats (e.g., WAV) for metadata at the beginning of the uploaded file, that the finalsilence interval is not part of the recording and how these requirements interact with the URI scheme.

请注意,MS可能支持在记录操作发生的同时将记录的数据上载到记录位置。此类实现需要了解上传文件开头的元数据的某些记录格式(例如WAV)的要求,最终间隔不是记录的一部分,以及这些要求如何与URI方案交互。

The MS has the following execution model for recording after initialization:

MS具有以下用于初始化后记录的执行模型:

1. If an error occurs during execution (e.g., authentication or communication error when trying to upload to a recording location), then the MS terminates record execution and reports the error to the dialog container (see Section 4.3). The MS MAY report data recorded before the error in <recordinfo> (see Section 4.3.2.4).

1. 如果在执行过程中发生错误(例如,尝试上载到记录位置时出现身份验证或通信错误),则MS终止记录执行并将错误报告给对话框容器(参见第4.3节)。MS可在<recordinfo>中报告错误之前记录的数据(见第4.3.2.4节)。

2. If DTMF input (not matching a <control> operation) is received during prompt playback and the prompt bargein attribute is set to true, then the MS activates the record execution. Otherwise, the MS activates it after the completion of prompt playback.

2. 如果在提示播放期间接收到DTMF输入(与<control>操作不匹配),并且提示bargein属性设置为true,则MS激活记录执行。否则,MS会在提示播放完成后将其激活。

3. If a beep attribute with the value of true is specified, then the MS plays a beep tone.

3. 如果指定了值为true的蜂鸣音属性,则MS将播放蜂鸣音。

4. The MS activates a timer with the duration of the value of the timeout attribute. If the timer expires before the recording operation begins, then the MS terminates the recording execution and reports the status to dialog container with <recordinfo> (see Section 4.3.2.4) where the termmode attribute is set to noinput.

4. MS使用超时属性值的持续时间激活计时器。如果计时器在录制操作开始前过期,则MS终止录制执行,并使用<recordinfo>(参见第4.3.2.4节)向对话框容器报告状态,其中termmode属性设置为noinput。

5. Initiation of the recording operation depends on the value of the vadinitial attribute. If vadinitial has the value false, then the recording operation is initiated immediately. Otherwise, the recording operation is initiated when voice activity is detected.

5. 录制操作的启动取决于VadinInitial属性的值。如果vadinitial的值为false,则立即启动记录操作。否则,当检测到语音活动时,将启动录制操作。

6. When the recording operation is initiated, a timer is started for the value of the maxtime attribute (maximum duration of the recording). If the timer expires before the recording operation is complete, then the MS terminates recording execution and reports the execution status to the dialog container with <recordinfo> (see Section 4.3.2.4) where the termmode attribute set to maxtime.

6. 启动录制操作时,将启动maxtime属性值(录制的最大持续时间)的计时器。如果计时器在录制操作完成之前过期,则MS终止录制执行,并向对话框容器报告执行状态,对话框容器中的<recordinfo>(参见第4.3.2.4节),其中termmode属性设置为maxtime。

7. During the record operation input, media streams are recording to a location and format specified in one or more <media> child elements. If no <media> child element is specified, the MS records input to an implementation-specific location and format.

7. 在记录操作输入期间,媒体流记录到一个或多个子元素中指定的位置和格式。如果未指定<media>子元素,则MS将输入记录到特定于实现的位置和格式。

8. If the dtmfterm attribute has the value true and DTMF input is detected during the record operation, then the MS terminates recording and its status is reported to the dialog container with a <recordinfo> (see Section 4.3.2.4) where the termmode attribute is set to dtmf.

8. 如果dtmfterm属性的值为true,并且在录制操作期间检测到DTMF输入,则MS终止录制,并使用<recordinfo>(参见第4.3.2.4节)将其状态报告给对话框容器,其中termmode属性设置为DTMF。

9. If vadfinal attribute has the value true, then the MS terminates the recording operation when a period of silence, with the duration specified by the value of the finalsilence attribute, is detected. This period of silence is not part of the final recording. The status is reported to the dialog container with a <recordinfo> (see Section 4.3.2.4) where the termmode attribute is set to finalsilence.

9. 如果vadfinal属性的值为true,则MS在检测到静默期时终止录制操作,静默期的持续时间由FinalLence属性的值指定。这段沉默不是最后录音的一部分。状态通过<recordinfo>(参见第4.3.2.4节)报告给对话框容器,其中termmode属性设置为FinalLence。

For example, a request to record audio and video input to separate locations:

例如,将音频和视频输入录制到不同位置的请求:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <record maxtime="30s" vadinitial="false" vadfinal="false">
       <media type="audio/x-wav"
           loc="http://www.example.com/upload/audio.wav"/>
       <media type="video/3gpp;codecs='s263'"
           loc="http://www.example.com/upload/video.3gp"/>
      </record>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="c1">
     <dialog>
      <record maxtime="30s" vadinitial="false" vadfinal="false">
       <media type="audio/x-wav"
           loc="http://www.example.com/upload/audio.wav"/>
       <media type="video/3gpp;codecs='s263'"
           loc="http://www.example.com/upload/video.3gp"/>
      </record>
     </dialog>
    </dialogstart>
   </mscivr>
        

When the <record> element is executed, it immediately begins recording of the audio and video (since vadinitial is false) where the destination locations are specified in the <media> child elements. Recording is completed when the duration reaches 30s or the connection is terminated.

当执行<record>元素时,它立即开始录制音频和视频(因为vadinitial为false),其中目标位置在<media>子元素中指定。当持续时间达到30秒或连接终止时,记录完成。

4.3.1.5. <media>
4.3.1.5. <media>

The <media> element specifies a media resource to playback from (see Section 4.3.1.1) or record to (see Section 4.3.1.4). In the playback case, the resource is retrieved and in the recording case, recording data is uploaded to the resource location.

<media>元素指定要从中播放(参见第4.3.1.1节)或录制(参见第4.3.1.4节)的媒体资源。在回放情况下,检索资源,在录制情况下,将录制数据上载到资源位置。

A <media> element has the following attributes:

<media>元素具有以下属性:

loc: specifies the location of the media resource. A valid value is a URI (see Section 4.6.9). The MS MUST support both HTTP [RFC2616] and HTTPS [RFC2818] schemes and the MS MAY support other schemes. If the URI scheme is not supported by the MS, the MS sends a <response> with a 420 status code (Section 4.5). If the resource is to be retrieved but the MS cannot retrieve it within the timeout interval, the MS sends a <response> with a 409 status code. If the format of the media resource is not supported, the MS sends a <response> with a 429 status code. The attribute is mandatory.

loc:指定媒体资源的位置。有效值是URI(见第4.6.9节)。MS必须同时支持HTTP[RFC2616]和HTTPS[RFC2818]方案,并且MS可以支持其他方案。如果MS不支持URI方案,MS将发送带有420状态代码的<response>(第4.5节)。如果要检索资源,但MS无法在超时间隔内检索资源,则MS将发送一个带有409状态代码的<response>。如果媒体资源的格式不受支持,MS将发送带有429状态代码的<response>。该属性是必需的。

type: specifies the type of the media resource indicated in the loc attribute. A valid value is a MIME media type (see Section 4.6.10) that, depending on its definition, can include additional parameters (e.g., [RFC4281]). If the URI scheme used in the loc attribute defines a mechanism for establishing the authoratitive MIME media type of the media resource, the value returned by that mechanism takes precedence over this attribute. If additional media parameters are specified, the MS MUST use them to determine media processing. For example, [RFC4281] defines a 'codec' parameter for media types like video/3gpp that would determine which media streams are played or recorded. The attribute is optional. There is no default value.

类型:指定loc属性中指示的媒体资源的类型。有效值是MIME媒体类型(参见第4.6.10节),根据其定义,该类型可以包括附加参数(例如,[RFC4281])。如果loc属性中使用的URI方案定义了用于建立媒体资源的授权MIME媒体类型的机制,则该机制返回的值优先于该属性。如果指定了其他介质参数,MS必须使用它们来确定介质处理。例如,[RFC4281]为视频/3gpp等媒体类型定义了一个“codec”参数,该参数将确定播放或记录哪些媒体流。该属性是可选的。没有默认值。

fetchtimeout: the maximum interval to wait when fetching a media resource. A valid value is a Time Designation (see Section 4.6.7). The attribute is optional. The default value is 30s.

fetchtimeout:获取媒体资源时等待的最大间隔。有效值为时间名称(见第4.6.7节)。该属性是可选的。默认值为30秒。

soundLevel: playback soundLevel (volume) for the media resource. A valid value is a percentage (see Section 4.6.8). The value indicates increase or decrease relative to the original recorded volume of the media. A value of 100% (the default) plays the media at its recorded volume, a value of 200% will play the media twice recorded volume, 50% at half its recorded volume, a value of 0% will play the media silently, and so on. See 'soundLevel' in SMIL [W3C.REC-SMIL2-20051213] for further information. The attribute is optional. The default value is 100%.

声级:媒体资源的播放声级(音量)。有效值为百分比(见第4.6.8节)。该值表示相对于介质的原始记录音量的增加或减少。如果值为100%(默认值),则以记录的卷播放媒体;如果值为200%,则以记录的卷的两倍播放媒体;如果值为50%,则以记录的卷的一半播放媒体;如果值为0%,则以静默方式播放媒体,依此类推。更多信息,请参见SMIL[W3C.REC-SMIL2-20051213]中的“声级”。该属性是可选的。默认值为100%。

clipBegin: offset from start of media resource to begin playback. A valid value is a Time Designation (see Section 4.6.7). The offset is measured in normal media playback time from the beginning of the media resource. If the clipBegin offset is after the end of media (or the clipEnd offset), no media is played. See 'clipBegin' in SMIL [W3C.REC-SMIL2-20051213] for further information. The attribute is optional. The default value is 0s.

clipBegin:从媒体资源开始到开始播放的偏移量。有效值为时间名称(见第4.6.7节)。偏移量是在从媒体资源开始的正常媒体播放时间中测量的。如果clipBegin偏移量在介质结束后(或clipEnd偏移量),则不播放介质。有关更多信息,请参见SMIL[W3C.REC-SMIL2-20051213]中的“clipBegin”。该属性是可选的。默认值为0。

clipEnd: offset from start of media resource to end playback. A valid value is a Time Designation (see Section 4.6.7). The offset is measured in normal media playback time from the beginning of the media resource. If the clipEnd offset is after the end of media, then the media is played to the end. If clipBegin is after clipEnd, then no media is played. See 'clipEnd' in SMIL [W3C.REC-SMIL2-20051213] for further information. The attribute is optional. There is no default value.

clipEnd:从媒体资源开始到播放结束的偏移量。有效值为时间名称(见第4.6.7节)。偏移量是在从媒体资源开始的正常媒体播放时间中测量的。如果clipEnd偏移量在介质结束后,则介质将播放到结束。如果clipBegin在clipEnd之后,则不播放媒体。有关更多信息,请参见SMIL[W3C.REC-SMIL2-20051213]中的“clipEnd”。该属性是可选的。没有默认值。

The fetchtimeout, soundLevel, clipBegin, and clipEnd attributes are only relevant in the playback use case. The MS ignores these attributes when using the <media> for recording.

fetchtimeout、soundLevel、clipBegin和clipEnd属性仅与播放用例相关。当使用<media>进行录制时,MS会忽略这些属性。

The <media> element has no children.

<media>元素没有子元素。

4.3.2. Exit Information
4.3.2. 出口信息

When the dialog exits, information about the specified operations is reported in a <dialogexit> notification event (Section 4.2.5.1).

当对话框退出时,有关指定操作的信息将在<dialogexit>通知事件中报告(第4.2.5.1节)。

4.3.2.1. <promptinfo>
4.3.2.1. <prompinfo>

The <promptinfo> element reports the information about prompt execution. It has the following attributes:

元素报告有关提示执行的信息。它具有以下属性:

duration: indicates the duration of prompt playback in milliseconds. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

持续时间:指示提示播放的持续时间(毫秒)。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

termmode: indicates how playback was terminated. Valid values are 'stopped', 'completed', or 'bargein'. The attribute is mandatory.

termmode:指示播放是如何终止的。有效值为“已停止”、“已完成”或“bargein”。该属性是必需的。

The <promptinfo> element has no child elements.

<promptinfo>元素没有子元素。

4.3.2.2. <controlinfo>
4.3.2.2. <controlinfo>

The <controlinfo> element reports information about control execution.

元素报告有关控件执行的信息。

The <controlinfo> element has no attributes and has 0 or more <controlmatch> child elements each describing an individual runtime control match.

<controlinfo>元素没有属性,并且有0个或多个<controlmatch>子元素,每个子元素描述单个运行时控件匹配。

4.3.2.2.1. <controlmatch>
4.3.2.2.1. <controlmatch>

The <controlmatch> element has the following attributes:

<controlmatch>元素具有以下属性:

dtmf: DTMF input triggering the runtime control. A valid value is a DTMF string (see Section 4.6.3) with no space between characters. The attribute is mandatory.

dtmf:触发运行时控件的dtmf输入。有效值是字符之间没有空格的DTMF字符串(见第4.6.3节)。该属性是必需的。

timestamp: indicates the time (on the MS) at which the control was triggered. A valid value is a dateTime expression (Section 4.6.12). The attribute is mandatory.

timestamp:指示控件被触发的时间(在MS上)。有效值为日期时间表达式(第4.6.12节)。该属性是必需的。

The <controlmatch> element has no child elements.

<controlmatch>元素没有子元素。

4.3.2.3. <collectinfo>
4.3.2.3. <collectinfo>

The <collectinfo> element reports the information about collect execution.

元素报告有关collect执行的信息。

The <collectinfo> element has the following attributes:

<collectinfo>元素具有以下属性:

dtmf: DTMF input collected from the user. A valid value is a DTMF string (see Section 4.6.3) with no space between characters. The attribute is optional. There is no default value.

dtmf:从用户收集的dtmf输入。有效值是字符之间没有空格的DTMF字符串(见第4.6.3节)。该属性是可选的。没有默认值。

termmode: indicates how collection was terminated. Valid values are 'stopped', 'match', 'noinput', or 'nomatch'. The attribute is mandatory.

termmode:指示集合是如何终止的。有效值为“已停止”、“匹配”、“无输入”或“无匹配”。该属性是必需的。

The <collectinfo> element has no child elements.

<collectinfo>元素没有子元素。

4.3.2.4. <recordinfo>
4.3.2.4. <recordinfo>

The <recordinfo> element reports information about record execution (Section 4.3.1.4).

<recordinfo>元素报告有关记录执行的信息(第4.3.1.4节)。

The <recordinfo> element has the following attributes:

<recordinfo>元素具有以下属性:

termmode: indicates how recording was terminated. Valid values are 'stopped', 'noinput', 'dtmf', 'maxtime', and 'finalsilence'. The attribute is mandatory.

termmode:指示录制是如何终止的。有效值为“stopped”、“noinput”、“dtmf”、“maxtime”和“finalsilence”。该属性是必需的。

duration: indicates the duration of the recording in milliseconds. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

持续时间:以毫秒为单位指示录制的持续时间。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

The <recordinfo> element has the following child element (0 or more occurrences):

<recordinfo>元素具有以下子元素(0次或多次出现):

<mediainfo>: indicates information about a recorded media resource (see Section 4.3.2.4.1). The element is optional.

<mediainfo>:表示有关已录制媒体资源的信息(请参阅第4.3.2.4.1节)。元素是可选的。

When the record operation is successful, the MS MUST specify a <mediainfo> element for each recording location. For example, if the <record> element contained three <media> child elements, then the <recordinfo> would contain three <mediainfo> child elements.

当录制操作成功时,MS必须为每个录制位置指定<mediainfo>元素。例如,如果<record>元素包含三个<media>子元素,那么<recordinfo>将包含三个<mediainfo>子元素。

4.3.2.4.1. <mediainfo>
4.3.2.4.1. <mediainfo>

The <mediainfo> element reports information about a recorded media resource.

元素报告有关录制的媒体资源的信息。

The <mediainfo> element has the following attributes:

<mediainfo>元素具有以下属性:

loc: indicates the location of the media resource. A valid value is a URI (see Section 4.6.9). The attribute is mandatory.

loc:表示媒体资源的位置。有效值是URI(见第4.6.9节)。该属性是必需的。

type: indicates the format of the media resource. A valid value is a MIME media type (see Section 4.6.10). The attribute is mandatory.

类型:表示媒体资源的格式。有效值为MIME媒体类型(见第4.6.10节)。该属性是必需的。

size: indicates the size of the media resource in bytes. A valid value is a non-negative integer (see Section 4.6.4). The attribute is optional. There is no default value.

大小:表示媒体资源的大小(字节)。有效值为非负整数(见第4.6.4节)。该属性是可选的。没有默认值。

4.4. Audit Elements
4.4. 审计要素

The audit elements defined in this section allow the MS to be audited for package capabilities as well as dialogs managed by the package. Auditing is particularly important for two use cases. First, it enables discovery of package capabilities supported on an MS before an AS starts a dialog on connection or conference. The AS can then use this information to create request elements using supported capabilities and, in the case of codecs, to negotiate an appropriate SDP for a User Agent's connection. Second, auditing enables discovery of the existence and status of dialogs currently managed by the package on the MS. This could be used when one AS takes over management of the dialogs if the AS that initiated the dialogs fails or is no longer available (see Security Considerations described in Section 7).

本节中定义的审核元素允许对MS的包功能以及由包管理的对话框进行审核。审计对于两个用例尤其重要。首先,它支持在AS启动连接或会议对话框之前发现MS上支持的包功能。AS然后可以使用此信息使用支持的功能创建请求元素,对于编解码器,还可以协商用户代理连接的适当SDP。其次,审核可以发现当前由MS上的软件包管理的对话框的存在和状态。如果启动对话框的AS出现故障或不再可用,当AS接管对话框的管理时,可以使用此功能(参见第7节中描述的安全注意事项)。

4.4.1. <audit>
4.4.1. <audit>

The <audit> request element is sent to the MS to request information about the capabilities of, and dialogs currently managed with, this Control Package. Capabilities include supported dialog languages, grammar formats, record and media types, as well as codecs. Dialog information includes the status of managed dialogs as well as codecs.

<audit>请求元素被发送到MS,以请求有关此控制包的功能和当前使用此控制包管理的对话框的信息。功能包括支持的对话语言、语法格式、记录和媒体类型以及编解码器。对话框信息包括托管对话框和编解码器的状态。

The <audit> element has the following attributes:

<audit>元素具有以下属性:

capabilities: indicates whether package capabilities are to be audited. A valid value is a boolean (see Section 4.6.1). A value of true indicates that capability information is to be reported. A value of false indicates that capability information is not to be reported. The attribute is optional. The default value is true.

能力:指示是否要审核包能力。有效值为布尔值(见第4.6.1节)。值true表示要报告能力信息。值false表示不报告能力信息。该属性是可选的。默认值为true。

dialogs: indicates whether dialogs currently managed by the package are to be audited. A valid value is a boolean (see Section 4.6.1). A value of true indicates that dialog information is to be reported. A value of false indicates that dialog information is not to be reported. The attribute is optional. The default value is true.

dialogs:指示是否审核当前由包管理的对话框。有效值为布尔值(见第4.6.1节)。值true表示要报告对话框信息。值false表示不报告对话框信息。该属性是可选的。默认值为true。

dialogid: string identifying a specific dialog to audit. The MS sends a response with a 406 status code (Section 4.5) if the specified dialog identifier is invalid. The attribute is optional. There is no default value.

dialogid:标识要审核的特定对话框的字符串。如果指定的对话框标识符无效,MS将发送带有406状态代码的响应(第4.5节)。该属性是可选的。没有默认值。

If the dialogs attribute has the value true and dialogid attribute is specified, then only audit information about the specified dialog is reported. If the dialogs attribute has the value false, then no dialog audit information is reported even if a dialogid attribute is specified.

如果dialogs属性的值为true,并且指定了dialogid属性,则只报告有关指定对话框的审核信息。如果dialogs属性的值为false,则即使指定了dialogid属性,也不会报告任何对话框审核信息。

The <audit> element has no child elements.

<audit>元素没有子元素。

When the MS receives an <audit> request, it MUST reply with an <auditresponse> element (Section 4.4.2), which includes a mandatory attribute describing the status in terms of a numeric code. Response status codes are defined in Section 4.5. If the request is successful, the <auditresponse> contains (depending on attribute values) a <capabilities> element (Section 4.4.2.2) reporting package capabilities and a <dialogs> element (Section 4.4.2.3) reporting managed dialog information. If the MS is not able to process the request and carry out the audit operation, the audit request has failed and the MS MUST indicate the class of failure using an appropriate 4xx response code. Unless an error response code is specified for a class of error within this section, implementations follow Section 4.5 in determining the appropriate status code for the response.

当MS收到<audit>请求时,必须使用<auditresponse>元素(第4.4.2节)进行回复,该元素包括一个强制性属性,该属性用数字代码描述状态。第4.5节定义了响应状态代码。如果请求成功,<auditresponse>包含(取决于属性值)报告包功能的<capabilities>元素(第4.4.2.2节)和报告托管对话框信息的<dialogs>元素(第4.4.2.3节)。如果MS无法处理请求并执行审核操作,则审核请求失败,MS必须使用适当的4xx响应代码指示故障类别。除非在本节中为一类错误指定了错误响应代码,否则在确定响应的适当状态代码时,应遵循第4.5节的规定。

For example, a request to audit capabilities and dialogs managed by the package:

例如,请求审核由包管理的功能和对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit/>
   </mscivr>
        

In this example, only capabilities are to be audited:

在本例中,仅审核功能:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit dialogs="false"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit dialogs="false"/>
   </mscivr>
        

With this example, only a specific dialog is to be audited:

在本例中,仅审核特定对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit capabilities="false" dialogid="d4"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <audit capabilities="false" dialogid="d4"/>
   </mscivr>
        
4.4.2. <auditresponse>
4.4.2. <auditresponse>

The <auditresponse> element describes a response to an <audit> request.

元素描述对<audit>请求的响应。

The <auditresponse> element has the following attributes:

<auditresponse>元素具有以下属性:

status: numeric code indicating the audit response status. The attribute is mandatory. Valid values are defined in Section 4.5.

状态:表示审核响应状态的数字代码。该属性是必需的。第4.5节定义了有效值。

reason: string specifying a reason for the status. The attribute is optional.

原因:指定状态原因的字符串。该属性是可选的。

desclang: specifies the language used in the value of the reason attribute. A valid value is a language identifier (Section 4.6.11). The attribute is optional. If not specified, the value of the desclang attribute on <mscivr> (Section 4.1) applies.

desclang:指定原因属性值中使用的语言。有效值是语言标识符(第4.6.11节)。该属性是可选的。如果未指定,则<mscivr>(第4.1节)上的desclang属性值适用。

The <auditresponse> element has the following sequence of child elements:

<auditresponse>元素具有以下子元素序列:

<capabilities> element (Section 4.4.2.2) describing capabilities of the package. The element is optional.

<capabilities>元素(第4.4.2.2节)描述了软件包的功能。元素是可选的。

<dialogs> element (Section 4.4.2.3) describing information about managed dialogs. The element is optional.

<dialogs>元素(第4.4.2.3节),描述有关托管对话框的信息。元素是可选的。

For example, a successful response to an <audit> request requesting capabilities and dialogs information:

例如,对请求功能和对话框信息的<audit>请求的成功响应:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <auditresponse status="200">
     <capabilities>
      <dialoglanguages>
       <mimetype>application/voicexml+xml</mimetype>
      </dialoglanguages>
      <grammartypes/>
      <recordtypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </recordtypes>
      <prompttypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </prompttypes>
      <variables>
       <variabletype type="date" desc="value formatted as YYYYMMDD">
        <format desc="month year day">mdy</format>
        <format desc="year month day">ymd</format>
        <format desc="day month year">dmy</format>
        <format desc="day month">dm</format>
       </variabletype>
      </variables>
      <maxpreparedduration>600s</maxpreparedduration>
      <maxrecordduration>1800s</maxrecordduration>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
       <codec name="audio">
        <subtype>telephone-event</subtype>
       </codec>
      </codecs>
     </capabilities>
     <dialogs>
      <dialogaudit dialogid="4532" state="preparing"/>
      <dialogaudit dialogid="4599" state="prepared"/>
      <dialogaudit dialogid="1234" state="started" conferenceid="conf1">
       <codecs>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <auditresponse status="200">
     <capabilities>
      <dialoglanguages>
       <mimetype>application/voicexml+xml</mimetype>
      </dialoglanguages>
      <grammartypes/>
      <recordtypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </recordtypes>
      <prompttypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </prompttypes>
      <variables>
       <variabletype type="date" desc="value formatted as YYYYMMDD">
        <format desc="month year day">mdy</format>
        <format desc="year month day">ymd</format>
        <format desc="day month year">dmy</format>
        <format desc="day month">dm</format>
       </variabletype>
      </variables>
      <maxpreparedduration>600s</maxpreparedduration>
      <maxrecordduration>1800s</maxrecordduration>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
       <codec name="audio">
        <subtype>telephone-event</subtype>
       </codec>
      </codecs>
     </capabilities>
     <dialogs>
      <dialogaudit dialogid="4532" state="preparing"/>
      <dialogaudit dialogid="4599" state="prepared"/>
      <dialogaudit dialogid="1234" state="started" conferenceid="conf1">
       <codecs>
        
        <codec name="audio">
         <subtype>PCMA</subtype>
        </codec>
        <codec name="audio">
         <subtype>telephone-event</subtype>
        </codec>
       </codecs>
      </dialogaudit>
     </dialogs>
    </auditresponse>
   </mscivr>
        
        <codec name="audio">
         <subtype>PCMA</subtype>
        </codec>
        <codec name="audio">
         <subtype>telephone-event</subtype>
        </codec>
       </codecs>
      </dialogaudit>
     </dialogs>
    </auditresponse>
   </mscivr>
        
4.4.2.1. <codecs>
4.4.2.1. <编解码器>

The <codecs> provides audit information about codecs.

<codecs>提供有关编解码器的审核信息。

The <codecs> element has no attributes.

<codecs>元素没有属性。

The <codecs> element has the following sequence of child elements (0 or more occurrences):

<codecs>元素具有以下子元素序列(0次或多次出现):

<codec>: audit information for a codec (Section 4.4.2.1.1). The element is optional.

<codec>:编解码器的审核信息(第4.4.2.1.1节)。元素是可选的。

For example, a fragment describing two codecs:

例如,描述两个编解码器的片段:

   <codecs>
     <codec name="audio">
      <subtype>PCMA</subtype>
     </codec>
     <codec name="audio">
      <subtype>telephone-event</subtype>
     </codec>
   </codecs>
        
   <codecs>
     <codec name="audio">
      <subtype>PCMA</subtype>
     </codec>
     <codec name="audio">
      <subtype>telephone-event</subtype>
     </codec>
   </codecs>
        
4.4.2.1.1. <codec>
4.4.2.1.1. <codec>

The <codec> element describes a codec on the MS. The element is modeled on the <codec> element in the XCON conference information data model [XCON-DATA-MODEL] but allows addition information (e.g., rate, speed, etc.) to be specified.

<codec>元素描述MS上的编解码器。该元素以XCON会议信息数据模型[XCON-data-model]中的<codec>元素为模型,但允许指定附加信息(例如速率、速度等)。

The <codec> element has the following attributes:

<codec>元素具有以下属性:

name: indicates the type name of the codec's media format as defined in [IANA]. A valid value is a "type-name" as defined in Section 4.2 of [RFC4288]. The attribute is mandatory.

名称:表示[IANA]中定义的编解码器媒体格式的类型名称。有效值为[RFC4288]第4.2节中定义的“类型名称”。该属性是必需的。

The <codec> element has the following sequence of child elements:

<codec>元素具有以下子元素序列:

<subtype>: element whose content model describes the subtype of the codec's media format as defined in [IANA]. A valid value is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The element is mandatory.

<subtype>:元素,其内容模型描述[IANA]中定义的编解码器媒体格式的子类型。有效值为[RFC4288]第4.2节中定义的“子类型名称”。该元素是必需的。

<params>: element (Section 4.2.6) describing additional information about the codec. This package is agnostic to the names and values of the codec parameters supported by an implementation. The element is optional.

<params>:描述编解码器附加信息的元素(第4.2.6节)。此包与实现支持的编解码器参数的名称和值无关。元素是可选的。

For example, a fragment with a <codec> element describing the H263 video codec:

例如,具有描述H263视频编解码器的<codec>元素的片段:

   <codec name="video">
    <subtype>H263</subtype>
   </codec>
        
   <codec name="video">
    <subtype>H263</subtype>
   </codec>
        
4.4.2.2. <capabilities>
4.4.2.2. <capabilities>

The <capabilities> element provides audit information about package capabilities.

<capabilities>元素提供有关包功能的审核信息。

The <capabilities> element has no attributes.

<capabilities>元素没有属性。

The <capabilities> element has the following sequence of child elements:

<capabilities>元素具有以下子元素序列:

<dialoglanguages>: element (Section 4.4.2.2.1) describing additional dialog languages supported by the MS. The element is mandatory.

<dialoglanguages>:描述MS支持的其他对话语言的元素(第4.4.2.2.1节)。该元素是必需的。

<grammartypes>: element (Section 4.4.2.2.2) describing supported <grammar> (Section 4.3.1.3.1) format types. The element is mandatory.

<grammartypes>:描述支持的<grammar>(第4.3.1.3.1节)格式类型的元素(第4.4.2.2节)。该元素是必需的。

<recordtypes>: element (Section 4.4.2.2.3) describing <media> (Section 4.3.1.5) format types supported for <record> (Section 4.3.1.4). The element is mandatory.

<recordtypes>:元素(第4.4.2.2.3节),描述<media>(第4.3.1.5节)支持的<record>(第4.3.1.4节)格式类型。该元素是必需的。

<prompttypes>: element (Section 4.4.2.2.4) describing supported <media> (Section 4.3.1.5) format types for playback within a <prompt> (Section 4.3.1.1). The element is mandatory.

<promptypes>:元素(第4.4.2.2.4节),描述在<prompt>中播放支持的<media>(第4.3.1.5节)格式类型(第4.3.1.1节)。该元素是必需的。

<variables>: element (Section 4.4.2.2.5) describing supported types and formats for the <variable> element (Section 4.3.1.1.1). The element is mandatory.

<variables>:描述<variable>元素支持的类型和格式的元素(第4.4.2.2.5节)(第4.3.1.1.1节)。该元素是必需的。

<maxpreparedduration>: element (Section 4.4.2.2.6) describing the supported maximum duration for a prepared dialog following a <dialogprepare> (Section 4.2.1) request. The element is mandatory.

<maxpreparedduration>:元素(第4.4.2.2.6节),描述在<dialogprepare>(第4.2.1节)请求之后准备好的对话框支持的最长持续时间。该元素是必需的。

<maxrecordduration>: element (Section 4.4.2.2.7) describing the supported maximum duration for a recording <record> (Section 4.3.1.4) request. The element is mandatory.

<maxrecordduration>:描述录制<record>(第4.3.1.4节)请求支持的最大持续时间的元素(第4.4.2.2.7节)。该元素是必需的。

<codecs>: element (Section 4.4.2.1) describing codecs available to the package. The element is mandatory.

<codecs>:描述软件包可用编解码器的元素(第4.4.2.1节)。该元素是必需的。

For example, a fragment describing capabilities:

例如,描述功能的片段:

     <capabilities>
      <dialoglanguages>
       <mimetype>application/voicexml+xml</mimetype>
      </dialoglanguages>
      <grammartypes/>
      <recordtypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </recordtypes>
      <prompttypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </prompttypes>
      <variables/>
      <maxpreparedduration>30s</maxpreparedduration>
      <maxrecordduration>60s</maxrecordduration>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
       <codec name="audio">
        <subtype>telephone-event</subtype>
       </codec>
      </codecs>
     </capabilities>
        
     <capabilities>
      <dialoglanguages>
       <mimetype>application/voicexml+xml</mimetype>
      </dialoglanguages>
      <grammartypes/>
      <recordtypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </recordtypes>
      <prompttypes>
       <mimetype>audio/x-wav</mimetype>
       <mimetype>video/3gpp</mimetype>
      </prompttypes>
      <variables/>
      <maxpreparedduration>30s</maxpreparedduration>
      <maxrecordduration>60s</maxrecordduration>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
       <codec name="audio">
        <subtype>telephone-event</subtype>
       </codec>
      </codecs>
     </capabilities>
        
4.4.2.2.1. <dialoglanguages>
4.4.2.2.1. <dialoglanguages>

The <dialoglanguages> element provides information about additional dialog languages supported by the package. Dialog languages are identified by their associated MIME media types. The MS MUST NOT include the mandatory dialog language for this package (Section 4.3).

<dialoglanguages>元素提供有关包支持的其他对话框语言的信息。对话框语言由其关联的MIME媒体类型标识。MS不得包含此软件包的强制对话语言(第4.3节)。

The <dialoglanguages> element has no attributes.

<dialoglanguages>元素没有属性。

The <dialoglanguages> element has the following sequence of child elements (0 or more occurrences):

<dialoglanguages>元素具有以下子元素序列(0次或多次出现):

<mimetype>: element whose content model describes a MIME media type (Section 4.6.10) associated with a supported dialog language. The element is optional.

<mimetype>:其内容模型描述与支持的对话语言关联的MIME媒体类型(第4.6.10节)的元素。元素是可选的。

4.4.2.2.2. <grammartypes>
4.4.2.2.2. <grammartypes>

The <grammartypes> element provides information about <grammar> format types supported by the package. The MS MUST NOT include the mandatory SRGS format type, "application/srgs+xml" (Section 4.3.1.3.1).

<grammartypes>元素提供有关包支持的<grammar>格式类型的信息。MS不得包含强制性SRGS格式类型“应用程序/SRGS+xml”(第4.3.1.3.1节)。

The <grammartypes> element has no attributes.

<grammartypes>元素没有属性。

The <grammartypes> element has the following sequence of child elements (0 or more occurrences):

<grammartypes>元素具有以下子元素序列(0次或多次出现):

<mimetype>: element whose content model describes a mime type (Section 4.6.10). The element is optional.

<mimetype>:其内容模型描述mime类型的元素(第4.6.10节)。元素是可选的。

4.4.2.2.3. <recordtypes>
4.4.2.2.3. <recordtypes>

The <recordtypes> element provides information about media resource format types of <record> supported by the package (Section 4.3.1.4).

<recordtypes>元素提供有关包支持的<record>的媒体资源格式类型的信息(第4.3.1.4节)。

The <recordtypes> element has no attributes.

<recordtypes>元素没有属性。

The <recordtypes> element has the following sequence of child elements (0 or more occurrences):

<recordtypes>元素具有以下子元素序列(0次或多次出现):

<mimetype>: element whose content model describes a mime type (Section 4.6.10). The element is optional.

<mimetype>:其内容模型描述mime类型的元素(第4.6.10节)。元素是可选的。

4.4.2.2.4. <prompttypes>
4.4.2.2.4. <promptypes>

The <prompttypes> element provides information about media resource format types of <prompt> supported by the package (Section 4.3.1.1).

<promptypes>元素提供有关包支持的<prompt>媒体资源格式类型的信息(第4.3.1.1节)。

The <prompttypes> element has no attributes.

<promptypes>元素没有属性。

The <prompttypes> element has the following sequence of child elements (0 or more occurrences):

<promptypes>元素具有以下子元素序列(0次或多次出现):

<mimetype>: element whose content model describes a mime type (Section 4.6.10). The element is optional.

<mimetype>:其内容模型描述mime类型的元素(第4.6.10节)。元素是可选的。

4.4.2.2.5. <variables>
4.4.2.2.5. <变量>

The <variables> element provides information about types and formats for the <variable> element (Section 4.3.1.1.1) supported by the package.

<variables>元素提供了关于包支持的<variable>元素(第4.3.1.1.1节)的类型和格式的信息。

The <variables> element has no attributes.

<variables>元素没有属性。

The <variables> element has the following sequence of child elements (0 or more occurrences):

<variables>元素具有以下子元素序列(0次或多次出现):

<variabletype>: element describing the formats support for a given type (Section 4.4.2.2.5.1). The element is optional.

<variabletype>:描述给定类型的格式支持的元素(第4.4.2.2.5.1节)。元素是可选的。

For example, a fragment describing support for <variable> with a "date" type according to the formats specified in Section 4.3.1.1.1.1.

例如,根据第4.3.1.1.1.1节中规定的格式,使用“日期”类型描述对<variable>的支持的片段。

   <variables>
    <variabletype type="date" desc="value formatted as YYYYMMDD">
      <format desc="month year day">mdy</format>
      <format desc="year month day">ymd</format>
      <format desc="day month year">dmy</format>
      <format desc="day month">dm</format>
    </variabletype>
   </variables>
        
   <variables>
    <variabletype type="date" desc="value formatted as YYYYMMDD">
      <format desc="month year day">mdy</format>
      <format desc="year month day">ymd</format>
      <format desc="day month year">dmy</format>
      <format desc="day month">dm</format>
    </variabletype>
   </variables>
        
4.4.2.2.5.1. <variabletype>
4.4.2.2.5.1. <variabletype>

The <variabletype> element describes the formats supported for <variable> supported type.

<variabletype>元素描述了<variable>支持的类型所支持的格式。

The <variabletype> element has the following attributes:

<variabletype>元素具有以下属性:

type: indicates a supported value associated with the type attribute of the <variable> element. The attribute is mandatory.

type:指示与<variable>元素的type属性关联的支持值。该属性是必需的。

desc: a string providing some textual description of the type and format. The attribute is optional.

desc:提供某种类型和格式的文本描述的字符串。该属性是可选的。

desclang: specifies the language used in the value of the desc attribute. A valid value is a language identifier (Section 4.6.11). The attribute is optional. If not specified, the value of the desclang attribute on <mscivr> (Section 4.1) applies.

desclang:指定desc属性值中使用的语言。有效值是语言标识符(第4.6.11节)。该属性是可选的。如果未指定,则<mscivr>(第4.1节)上的desclang属性值适用。

The <variabletype> element has the following sequence of child elements (0 or more occurrences):

<variabletype>元素具有以下子元素序列(0次或多次出现):

<format>: element with a desc attribute (optional description), desclang (optional language identifier for the description), and a content model describing a supported format in the <variable> format attribute. The element is optional.

<format>:具有desc属性(可选描述)、desclang(描述的可选语言标识符)和内容模型的元素,该内容模型在<variable>format属性中描述支持的格式。元素是可选的。

4.4.2.2.6. <maxpreparedduration>
4.4.2.2.6. <maxpreparedduration>

The <maxpreparedduration> element describes the maximum duration for a dialog to remain in the prepared state (Section 4.2) following a <dialogprepare> (Section 4.2.1) request.

<maxpreparedduration>元素描述了在<dialogprepare>(第4.2.1节)请求之后,对话框保持准备状态(第4.2节)的最长持续时间。

The <maxpreparedduration> element has no attributes.

<maxpreparedduration>元素没有属性。

The <maxpreparedduration> element has a content model describing the maximum prepared dialog duration as a time designation (Section 4.6.7).

<maxpreparedduration>元素有一个内容模型,将准备好的最大对话持续时间描述为时间指定(第4.6.7节)。

4.4.2.2.7. <maxrecordduration>
4.4.2.2.7. <maxrecordduration>

The <maxrecordduration> element describes the maximum recording duration for <record> Section 4.3.1.4) request supported by the MS.

<maxrecordduration>元素描述了MS支持的<record>第4.3.1.4节)请求的最大记录持续时间。

The <maxrecordduration> element has no attributes.

<maxrecordduration>元素没有属性。

The <maxrecordduration> element has a content model describing the maximum duration of recording as a time designation (Section 4.6.7).

<maxrecordduration>元素有一个内容模型,将记录的最大持续时间描述为时间指定(第4.6.7节)。

4.4.2.3. <dialogs>
4.4.2.3. <对话>

The <dialogs> element provides audit information about dialogs.

元素提供有关对话框的审核信息。

The <dialogs> element has no attributes.

<dialogs>元素没有属性。

The <dialogs> element has the following sequence of child elements (0 or more occurrences):

<dialogs>元素具有以下子元素序列(0次或多次出现):

<dialogaudit>: audit information for a dialog (Section 4.4.2.3.1). The element is optional.

<dialogaudit>:对话框的审核信息(第4.4.2.3.1节)。元素是可选的。

4.4.2.3.1. <dialogaudit>
4.4.2.3.1. <dialogaudit>

The <dialogaudit> element has the following attributes:

<dialogaudit>元素具有以下属性:

dialogid: string identifying the dialog. The attribute is mandatory.

dialogid:标识对话框的字符串。该属性是必需的。

state: string indicating the state of the dialog. Valid values are preparing, prepared, starting, and started. The attribute is mandatory.

状态:指示对话框状态的字符串。有效值包括准备、准备、启动和启动。该属性是必需的。

connectionid: string identifying the SIP dialog connection associated with the dialog (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

connectionid:标识与对话框关联的SIP对话框连接的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

conferenceid: string identifying the conference associated with the dialog (see Appendix A.1 of [RFC6230]). The attribute is optional. There is no default value.

conferenceid:标识与对话框关联的会议的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。没有默认值。

The <dialogaudit> element has the following child element:

<dialogaudit>元素具有以下子元素:

<codecs> element describing codecs used in the dialog. See Section 4.4.2.1. The element is optional.

描述对话框中使用的编解码器的元素。见第4.4.2.1节。元素是可选的。

For example, a fragment describing a started dialog that is using PCMU and telephony-event audio codecs:

例如,描述正在使用PCMU和电话事件音频编解码器的已启动对话框的片段:

   <dialogaudit dialogid="1234" state="started" conferenceid="conf1">
    <codecs>
     <codec name="audio">
      <subtype>PCMU</subtype>
     </codec>
     <codec name="audio">
      <subtype>telephone-event</subtype>
     </codec>
    </codecs>
   </dialogaudit>
        
   <dialogaudit dialogid="1234" state="started" conferenceid="conf1">
    <codecs>
     <codec name="audio">
      <subtype>PCMU</subtype>
     </codec>
     <codec name="audio">
      <subtype>telephone-event</subtype>
     </codec>
    </codecs>
   </dialogaudit>
        
4.5. Response Status Codes
4.5. 响应状态代码

This section describes the response codes in Table 1 for the status attribute of dialog management <response> (Section 4.2.4) and audit <auditresponse> (Section 4.4.2) responses. The MS MUST support the status response codes defined here. All other valid but undefined values are reserved for future use, where new status codes are assigned using the Standards Action process defined in [RFC5226]. The AS MUST treat any responses it does not recognize as being equivalent to the x00 response code for all classes. For example, if

本节介绍了表1中对话框管理<response>(第4.2.4节)和审计<auditresponse>(第4.4.2节)响应的状态属性的响应代码。MS必须支持此处定义的状态响应代码。所有其他有效但未定义的值保留供将来使用,其中新的状态代码使用[RFC5226]中定义的标准操作流程分配。AS必须将其无法识别的任何响应视为等同于所有类的x00响应代码。例如,如果

an AS receives an unrecognized response code of 499, it can safely assume that there was something wrong with its request and treat the response as if it had received a 400 (Syntax error) response code.

AS接收到无法识别的响应代码499,它可以安全地假设其请求有问题,并将响应视为收到400(语法错误)响应代码。

4xx responses are definite failure responses from a particular MS. The reason attribute in the response SHOULD identify the failure in more detail, for example, "Mandatory attribute missing: src in media element" for a 400 (Syntax error) response code.

4xx响应是特定MS的明确故障响应。响应中的原因属性应更详细地标识故障,例如400(语法错误)响应代码的“强制性属性缺失:媒体元素中的src”。

The AS SHOULD NOT retry the same request without modification (for example, correcting a syntax error or changing the connectionid to use one available on the MS). However, the same request to a different MS might be successful, for example, if another MS supports a capability required in the request.

AS不应在未经修改的情况下重试同一请求(例如,更正语法错误或更改connectionid以使用MS上可用的连接ID)。但是,如果另一个MS支持请求中所需的功能,则对不同MS的相同请求可能会成功。

4xx failure responses can be grouped into three classes: failure due to a syntax error in the request (400); failure due to an error executing the request on the MS (405-419); and failure due to the request requiring a capability not supported by the MS (420-439).

4xx故障响应可分为三类:由于请求中的语法错误导致的故障(400);由于在MS上执行请求时出错而导致的故障(405-419);以及由于请求需要MS不支持的功能而导致的故障(420-439)。

In cases where more than one request code could be reported for a failure, the MS SHOULD use the most specific error code of the failure class for the detected error. For example, if the MS detects that the dialogid in the request is invalid, then it uses a 406 status code. However, if the MS merely detects that an execution error occurred, then 419 is used.

如果一个故障可以报告多个请求代码,则MS应针对检测到的错误使用故障类别中最具体的错误代码。例如,如果MS检测到请求中的dialogid无效,则使用406状态代码。然而,如果MS仅仅检测到发生了执行错误,则使用419。

   +------+---------------+-----------------------+--------------------+
   | Code | Summary       | Description           | Informational: AS  |
   |      |               |                       | Possible Recovery  |
   |      |               |                       | Action             |
   +------+---------------+-----------------------+--------------------+
   | 200  | OK            | request has           |                    |
   |      |               | succeeded.            |                    |
   | 400  | Syntax error  | request is            | Change the request |
   |      |               | syntactically         | so that it is      |
   |      |               | invalid: it is not    | syntactically      |
   |      |               | valid with respect to | valid.             |
   |      |               | the XML schema        |                    |
   |      |               | specified in          |                    |
   |      |               | Section 5 or it       |                    |
   |      |               | violates a            |                    |
   |      |               | co-occurrence         |                    |
   |      |               | constraint for a      |                    |
   |      |               | request element       |                    |
   |      |               | defined in Section 4. |                    |
   | 405  | dialogid      | request uses a        | Send a request for |
   |      | already       | dialogid identifier   | a new dialog       |
   |      | exists        | for a new dialog that | without specifying |
   |      |               | is already used by    | the dialogid and   |
   |      |               | another dialog on the | let the MS         |
   |      |               | MS (see Section 4.2). | generate a unique  |
   |      |               |                       | dialogid in the    |
   |      |               |                       | response.          |
   | 406  | dialogid does | request uses a        | Send an <audit>    |
   |      | not exist     | dialogid identifier   | request            |
   |      |               | for an dialog that    | (Section 4.4.1)    |
   |      |               | does not exist on the | requesting the     |
   |      |               | MS (see Section 4.2). | list of dialog     |
   |      |               |                       | identifiers        |
   |      |               |                       | already used by    |
   |      |               |                       | the MS and then    |
   |      |               |                       | use one of the     |
   |      |               |                       | listed dialog      |
   |      |               |                       | identifiers.       |
   | 407  | connectionid  | request uses a        | Use another method |
   |      | does not      | connectionid          | to determine which |
   |      | exist         | identifier for a      | connections are    |
   |      |               | connection that does  | available on the   |
   |      |               | not exist on the MS.  | MS.                |
   | 408  | conferenceid  | request uses a        | Use another method |
   |      | does not      | conferenceid          | to determine which |
   |      | exist         | identifier for a      | conferences are    |
   |      |               | conference that does  | available on the   |
   |      |               | not exist on the MS.  | MS.                |
        
   +------+---------------+-----------------------+--------------------+
   | Code | Summary       | Description           | Informational: AS  |
   |      |               |                       | Possible Recovery  |
   |      |               |                       | Action             |
   +------+---------------+-----------------------+--------------------+
   | 200  | OK            | request has           |                    |
   |      |               | succeeded.            |                    |
   | 400  | Syntax error  | request is            | Change the request |
   |      |               | syntactically         | so that it is      |
   |      |               | invalid: it is not    | syntactically      |
   |      |               | valid with respect to | valid.             |
   |      |               | the XML schema        |                    |
   |      |               | specified in          |                    |
   |      |               | Section 5 or it       |                    |
   |      |               | violates a            |                    |
   |      |               | co-occurrence         |                    |
   |      |               | constraint for a      |                    |
   |      |               | request element       |                    |
   |      |               | defined in Section 4. |                    |
   | 405  | dialogid      | request uses a        | Send a request for |
   |      | already       | dialogid identifier   | a new dialog       |
   |      | exists        | for a new dialog that | without specifying |
   |      |               | is already used by    | the dialogid and   |
   |      |               | another dialog on the | let the MS         |
   |      |               | MS (see Section 4.2). | generate a unique  |
   |      |               |                       | dialogid in the    |
   |      |               |                       | response.          |
   | 406  | dialogid does | request uses a        | Send an <audit>    |
   |      | not exist     | dialogid identifier   | request            |
   |      |               | for an dialog that    | (Section 4.4.1)    |
   |      |               | does not exist on the | requesting the     |
   |      |               | MS (see Section 4.2). | list of dialog     |
   |      |               |                       | identifiers        |
   |      |               |                       | already used by    |
   |      |               |                       | the MS and then    |
   |      |               |                       | use one of the     |
   |      |               |                       | listed dialog      |
   |      |               |                       | identifiers.       |
   | 407  | connectionid  | request uses a        | Use another method |
   |      | does not      | connectionid          | to determine which |
   |      | exist         | identifier for a      | connections are    |
   |      |               | connection that does  | available on the   |
   |      |               | not exist on the MS.  | MS.                |
   | 408  | conferenceid  | request uses a        | Use another method |
   |      | does not      | conferenceid          | to determine which |
   |      | exist         | identifier for a      | conferences are    |
   |      |               | conference that does  | available on the   |
   |      |               | not exist on the MS.  | MS.                |
        
   | 409  | Resource      | request uses a URI to | Check that the     |
   |      | cannot be     | reference an external | resource URI is    |
   |      | retrieved     | resource (e.g.,       | valid, can be      |
   |      |               | dialog, media, or     | reached from the   |
   |      |               | grammar) that cannot  | MS, and that the   |
   |      |               | be retrieved within   | appropriate        |
   |      |               | the timeout interval. | authentication is  |
   |      |               |                       | used.              |
   | 410  | Dialog        | request to prepare or |                    |
   |      | execution     | start a dialog that   |                    |
   |      | canceled      | has been terminated   |                    |
   |      |               | by a                  |                    |
   |      |               | <dialogterminate/>    |                    |
   |      |               | request (see          |                    |
   |      |               | Section 4.2).         |                    |
   | 411  | Incompatible  | request specifies a   | Change the media   |
   |      | stream        | media stream          | stream             |
   |      | configuration | configuration that is | configuration to   |
   |      |               | in conflict with      | match the          |
   |      |               | itself, or the        | capabilities of    |
   |      |               | connection or         | the connection or  |
   |      |               | conference            | conference.        |
   |      |               | capabilities (see     |                    |
   |      |               | Section 4.2.2).       |                    |
   | 412  | Media stream  | request specifies an  | Check the media    |
   |      | not available | operation for which a | stream capability  |
   |      |               | media stream is not   | of the connection  |
   |      |               | available. For        | or conference and  |
   |      |               | example, playing a    | use an operation   |
   |      |               | video media resource  | that only uses     |
   |      |               | on an connection or   | these              |
   |      |               | conference without    | capabilities.      |
   |      |               | video streams.        |                    |
   | 413  | Control keys  | request contains a    | Use different keys |
   |      | with same     | <control> element     | for the different  |
   |      | value         | (Section 4.3.1.2)     | control            |
   |      |               | where some keys have  | operations.        |
   |      |               | the same value.       |                    |
   | 419  | Other         | requested operation   |                    |
   |      | execution     | cannot be executed by |                    |
   |      | error         | the MS.               |                    |
   | 420  | Unsupported   | request specifies a   | Use a URI scheme   |
   |      | URI scheme    | URI whose scheme is   | that is supported. |
   |      |               | not supported by the  |                    |
   |      |               | MS.                   |                    |
        
   | 409  | Resource      | request uses a URI to | Check that the     |
   |      | cannot be     | reference an external | resource URI is    |
   |      | retrieved     | resource (e.g.,       | valid, can be      |
   |      |               | dialog, media, or     | reached from the   |
   |      |               | grammar) that cannot  | MS, and that the   |
   |      |               | be retrieved within   | appropriate        |
   |      |               | the timeout interval. | authentication is  |
   |      |               |                       | used.              |
   | 410  | Dialog        | request to prepare or |                    |
   |      | execution     | start a dialog that   |                    |
   |      | canceled      | has been terminated   |                    |
   |      |               | by a                  |                    |
   |      |               | <dialogterminate/>    |                    |
   |      |               | request (see          |                    |
   |      |               | Section 4.2).         |                    |
   | 411  | Incompatible  | request specifies a   | Change the media   |
   |      | stream        | media stream          | stream             |
   |      | configuration | configuration that is | configuration to   |
   |      |               | in conflict with      | match the          |
   |      |               | itself, or the        | capabilities of    |
   |      |               | connection or         | the connection or  |
   |      |               | conference            | conference.        |
   |      |               | capabilities (see     |                    |
   |      |               | Section 4.2.2).       |                    |
   | 412  | Media stream  | request specifies an  | Check the media    |
   |      | not available | operation for which a | stream capability  |
   |      |               | media stream is not   | of the connection  |
   |      |               | available. For        | or conference and  |
   |      |               | example, playing a    | use an operation   |
   |      |               | video media resource  | that only uses     |
   |      |               | on an connection or   | these              |
   |      |               | conference without    | capabilities.      |
   |      |               | video streams.        |                    |
   | 413  | Control keys  | request contains a    | Use different keys |
   |      | with same     | <control> element     | for the different  |
   |      | value         | (Section 4.3.1.2)     | control            |
   |      |               | where some keys have  | operations.        |
   |      |               | the same value.       |                    |
   | 419  | Other         | requested operation   |                    |
   |      | execution     | cannot be executed by |                    |
   |      | error         | the MS.               |                    |
   | 420  | Unsupported   | request specifies a   | Use a URI scheme   |
   |      | URI scheme    | URI whose scheme is   | that is supported. |
   |      |               | not supported by the  |                    |
   |      |               | MS.                   |                    |
        
   | 421  | Unsupported   | request references an | Send an <audit>    |
   |      | dialog        | external dialog       | request            |
   |      | language      | language not          | (Section 4.4.1)    |
   |      |               | supported by the MS.  | requesting the MS  |
   |      |               |                       | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed dialog  |
   |      |               |                       | languages.         |
   | 422  | Unsupported   | request references a  | Send an <audit>    |
   |      | playback      | media resource for    | request            |
   |      | format        | playback whose format | (Section 4.4.1)    |
   |      |               | is not supported by   | requesting the MS  |
   |      |               | the MS.               | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed         |
   |      |               |                       | playback media     |
   |      |               |                       | formats.           |
   | 423  | Unsupported   | request references a  | Send an <audit>    |
   |      | record format | media resource for    | request            |
   |      |               | recording whose       | (Section 4.4.1)    |
   |      |               | format is not         | requesting the MS  |
   |      |               | supported by the MS.  | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed record  |
   |      |               |                       | media formats.     |
   | 424  | Unsupported   | request references a  | Send an <audit>    |
   |      | grammar       | grammar whose format  | request            |
   |      | format        | is not supported by   | (Section 4.4.1)    |
   |      |               | the MS.               | requesting the MS  |
   |      |               |                       | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed grammar |
   |      |               |                       | types.             |
   | 425  | Unsupported   | request contains a    | Send an <audit>    |
   |      | variable      | prompt <variable>     | request            |
   |      | configuration | element               | (Section 4.4.1)    |
   |      |               | (Section 4.3.1.1.1)   | requesting the MS  |
   |      |               | not supported by the  | capabilities and   |
   |      |               | MS.                   | then use one of    |
   |      |               |                       | the listed         |
   |      |               |                       | variable types.    |
   | 426  | Unsupported   | request contains a    |                    |
   |      | DTMF          | prompt <dtmf> element |                    |
   |      | configuration | (Section 4.3.1.1.2)   |                    |
   |      |               | not supported by the  |                    |
   |      |               | MS.                   |                    |
        
   | 421  | Unsupported   | request references an | Send an <audit>    |
   |      | dialog        | external dialog       | request            |
   |      | language      | language not          | (Section 4.4.1)    |
   |      |               | supported by the MS.  | requesting the MS  |
   |      |               |                       | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed dialog  |
   |      |               |                       | languages.         |
   | 422  | Unsupported   | request references a  | Send an <audit>    |
   |      | playback      | media resource for    | request            |
   |      | format        | playback whose format | (Section 4.4.1)    |
   |      |               | is not supported by   | requesting the MS  |
   |      |               | the MS.               | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed         |
   |      |               |                       | playback media     |
   |      |               |                       | formats.           |
   | 423  | Unsupported   | request references a  | Send an <audit>    |
   |      | record format | media resource for    | request            |
   |      |               | recording whose       | (Section 4.4.1)    |
   |      |               | format is not         | requesting the MS  |
   |      |               | supported by the MS.  | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed record  |
   |      |               |                       | media formats.     |
   | 424  | Unsupported   | request references a  | Send an <audit>    |
   |      | grammar       | grammar whose format  | request            |
   |      | format        | is not supported by   | (Section 4.4.1)    |
   |      |               | the MS.               | requesting the MS  |
   |      |               |                       | capabilities and   |
   |      |               |                       | then use one of    |
   |      |               |                       | the listed grammar |
   |      |               |                       | types.             |
   | 425  | Unsupported   | request contains a    | Send an <audit>    |
   |      | variable      | prompt <variable>     | request            |
   |      | configuration | element               | (Section 4.4.1)    |
   |      |               | (Section 4.3.1.1.1)   | requesting the MS  |
   |      |               | not supported by the  | capabilities and   |
   |      |               | MS.                   | then use one of    |
   |      |               |                       | the listed         |
   |      |               |                       | variable types.    |
   | 426  | Unsupported   | request contains a    |                    |
   |      | DTMF          | prompt <dtmf> element |                    |
   |      | configuration | (Section 4.3.1.1.2)   |                    |
   |      |               | not supported by the  |                    |
   |      |               | MS.                   |                    |
        
   | 427  | Unsupported   | request contains a    |                    |
   |      | parameter     | <param> element       |                    |
   |      |               | (Section 4.2.6.1) not |                    |
   |      |               | supported by the MS.  |                    |
   | 428  | Unsupported   | request contains a    |                    |
   |      | media stream  | <stream> element      |                    |
   |      | configuration | (Section 4.2.2.2)     |                    |
   |      |               | whose configuration   |                    |
   |      |               | is not supported by   |                    |
   |      |               | the MS.               |                    |
   | 429  | Unsupported   | request contains a    |                    |
   |      | playback      | <prompt> element      |                    |
   |      | configuration | (Section 4.3.1.1)     |                    |
   |      |               | that the MS is unable |                    |
   |      |               | to play on the        |                    |
   |      |               | available output      |                    |
   |      |               | media streams.        |                    |
   | 430  | Unsupported   | request contains a    |                    |
   |      | record        | <record> element      |                    |
   |      | configuration | (Section 4.3.1.4)     |                    |
   |      |               | that the MS is unable |                    |
   |      |               | to record with on the |                    |
   |      |               | available input media |                    |
   |      |               | streams.              |                    |
   | 431  | Unsupported   | request contains      |                    |
   |      | foreign       | attributes or         |                    |
   |      | namespace     | elements from another |                    |
   |      | attribute or  | namespace that the MS |                    |
   |      | element       | does not support.     |                    |
   | 432  | Unsupported   | request tries to      |                    |
   |      | multiple      | start another dialog  |                    |
   |      | dialog        | on the same           |                    |
   |      | capability    | conference or         |                    |
   |      |               | connection where a    |                    |
   |      |               | dialog is already     |                    |
   |      |               | running.              |                    |
   | 433  | Unsupported   | request contains      |                    |
   |      | collect and   | <collect> and         |                    |
   |      | record        | <record> elements and |                    |
   |      | capability    | the MS does support   |                    |
   |      |               | these operations      |                    |
   |      |               | simultaneously.       |                    |
   | 434  | Unsupported   | request contains a    |                    |
   |      | VAD           | <record> element      |                    |
   |      | capability    | where Voice Activity  |                    |
   |      |               | Detection (VAD) is    |                    |
   |      |               | required, but the MS  |                    |
   |      |               | does not support VAD. |                    |
        
   | 427  | Unsupported   | request contains a    |                    |
   |      | parameter     | <param> element       |                    |
   |      |               | (Section 4.2.6.1) not |                    |
   |      |               | supported by the MS.  |                    |
   | 428  | Unsupported   | request contains a    |                    |
   |      | media stream  | <stream> element      |                    |
   |      | configuration | (Section 4.2.2.2)     |                    |
   |      |               | whose configuration   |                    |
   |      |               | is not supported by   |                    |
   |      |               | the MS.               |                    |
   | 429  | Unsupported   | request contains a    |                    |
   |      | playback      | <prompt> element      |                    |
   |      | configuration | (Section 4.3.1.1)     |                    |
   |      |               | that the MS is unable |                    |
   |      |               | to play on the        |                    |
   |      |               | available output      |                    |
   |      |               | media streams.        |                    |
   | 430  | Unsupported   | request contains a    |                    |
   |      | record        | <record> element      |                    |
   |      | configuration | (Section 4.3.1.4)     |                    |
   |      |               | that the MS is unable |                    |
   |      |               | to record with on the |                    |
   |      |               | available input media |                    |
   |      |               | streams.              |                    |
   | 431  | Unsupported   | request contains      |                    |
   |      | foreign       | attributes or         |                    |
   |      | namespace     | elements from another |                    |
   |      | attribute or  | namespace that the MS |                    |
   |      | element       | does not support.     |                    |
   | 432  | Unsupported   | request tries to      |                    |
   |      | multiple      | start another dialog  |                    |
   |      | dialog        | on the same           |                    |
   |      | capability    | conference or         |                    |
   |      |               | connection where a    |                    |
   |      |               | dialog is already     |                    |
   |      |               | running.              |                    |
   | 433  | Unsupported   | request contains      |                    |
   |      | collect and   | <collect> and         |                    |
   |      | record        | <record> elements and |                    |
   |      | capability    | the MS does support   |                    |
   |      |               | these operations      |                    |
   |      |               | simultaneously.       |                    |
   | 434  | Unsupported   | request contains a    |                    |
   |      | VAD           | <record> element      |                    |
   |      | capability    | where Voice Activity  |                    |
   |      |               | Detection (VAD) is    |                    |
   |      |               | required, but the MS  |                    |
   |      |               | does not support VAD. |                    |
        
   | 435  | Unsupported   | request contains a    |                    |
   |      | parallel      | prompt <par> element  |                    |
   |      | playback      | whose configuration   |                    |
   |      |               | is not supported by   |                    |
   |      |               | the MS.               |                    |
   | 439  | Other         | request requires      |                    |
   |      | unsupported   | another capability    |                    |
   |      | capability    | not supported by the  |                    |
   |      |               | MS.                   |                    |
   +------+---------------+-----------------------+--------------------+
        
   | 435  | Unsupported   | request contains a    |                    |
   |      | parallel      | prompt <par> element  |                    |
   |      | playback      | whose configuration   |                    |
   |      |               | is not supported by   |                    |
   |      |               | the MS.               |                    |
   | 439  | Other         | request requires      |                    |
   |      | unsupported   | another capability    |                    |
   |      | capability    | not supported by the  |                    |
   |      |               | MS.                   |                    |
   +------+---------------+-----------------------+--------------------+
        

Table 1: Status Codes

表1:状态代码

4.6. Type Definitions
4.6. 类型定义

This section defines types referenced in attribute and element definitions.

本节定义属性和元素定义中引用的类型。

4.6.1. Boolean
4.6.1. 布尔值

The value space of boolean is the set {true, false, 1, 0} as defined in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this definition, the concept of false can be lexically represented by the strings "0" and "false" and the concept of true by the strings "1" and "true"; implementations MUST support both styles of lexical representation.

boolean的值空间是集合{true,false,1,0},如[XMLSchema:Part2]第3.2.2节所定义。根据该定义,false的概念可以用字符串“0”和“false”在词汇上表示,true的概念可以用字符串“1”和“true”表示;实现必须支持两种类型的词汇表示。

4.6.2. DTMFChar
4.6.2. DTMFChar

A DTMF character. The value space is the set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *, A, B, C, D}.

双音多频字符。值空间是集合{0,1,2,3,4,5,6,7,8,9,#,*,A,B,C,D}。

4.6.3. DTMFString
4.6.3. DTMFString

A string composed of one or more DTMFChars.

由一个或多个DTMFCHAR组成的字符串。

4.6.4. Non-Negative Integer
4.6.4. 非负整数

The value space of non-negative integer is the infinite set {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2].

非负整数的值空间是[XMLSchema:Part2]第3.3.20节中定义的无限集{0,1,2,…}。

Implementation Note: It is RECOMMENDED that implementations at least support a maximum value of a 32-bit integer (2,147,483,647).

实现说明:建议实现至少支持32位整数(2147483647)的最大值。

4.6.5. Positive Integer
4.6.5. 正整数

The value space of positive integer is the infinite set {1,2,...} as defined in Section 3.3.25 of [XMLSchema:Part2].

正整数的值空间是[XMLSchema:Part2]第3.3.25节中定义的无限集{1,2,…}。

Implementation Note: It is RECOMMENDED that implementations at least support a maximum value of a 32-bit integer (2,147,483,647).

实现说明:建议实现至少支持32位整数(2147483647)的最大值。

4.6.6. String
4.6.6. 一串

A string in the character encoding associated with the XML element as defined in Section 3.2.1 of [XMLSchema:Part2].

与[XMLSchema:Part2]第3.2.1节中定义的XML元素关联的字符编码中的字符串。

4.6.7. Time Designation
4.6.7. 时间指定

A time designation consists of a non-negative real number followed by a time unit identifier.

时间指定由非负实数和时间单位标识符组成。

The time unit identifiers are "ms" (milliseconds) and "s" (seconds).

时间单位标识符为“ms”(毫秒)和“s”(秒)。

Examples include: "3s", "850ms", "0.7s", ".5s", and "+1.5s".

例如:“3s”、“850ms”、“0.7s”、“0.5s”和“1.5s”。

4.6.8. Percentage
4.6.8. 百分率

A percentage consists of a positive integer followed by "%".

百分比由一个正整数后跟“%”组成。

Examples include: "100%", "500%", and "10%".

例如:“100%”、“500%”和“10%”。

4.6.9. URI
4.6.9. URI

Uniform Resource Indicator as defined in [RFC3986].

[RFC3986]中定义的统一资源指标。

4.6.10. MIME Media Type
4.6.10. MIME媒体类型

A string formatted as an IANA MIME media type [MIME.mediatypes]. The ABNF [RFC5234] production for the string is:

格式为IANA MIME媒体类型[MIME.mediatypes]的字符串。该管柱的ABNF[RFC5234]产量为:

   type = type-name "/" subtype-name *(";" parameter)
        
   type = type-name "/" subtype-name *(";" parameter)
        

parameter = parameter-name "=" value

参数=参数名称“=”值

where "type-name" and "subtype-name" are defined in Section 4.2 of [RFC4288], "parameter-name" is defined in Section 4.3 of [RFC4288], and "value" is defined in Section 5.1 of [RFC2045].

其中,[RFC4288]第4.2节定义了“类型名称”和“子类型名称”,[RFC4288]第4.3节定义了“参数名称”,而[RFC2045]第5.1节定义了“值”。

4.6.11. Language Identifier
4.6.11. 语言标识符

A language identifier labels information content as being of a particular human language variant. Following the XML specification for language identification [XML], a legal language identifier is identified by a [RFC5646] code and matched according to [RFC4647].

语言标识符将信息内容标记为特定人类语言变体。根据语言标识[XML]的XML规范,合法语言标识符由[RFC5646]代码标识,并根据[RFC4647]进行匹配。

4.6.12. DateTime
4.6.12. 日期时间

A string formatted according to the XML schema definition of a dateTime type [XMLSchema:Part2].

根据日期时间类型[XMLSchema:Part2]的XML模式定义格式化的字符串。

5. Formal Syntax
5. 形式语法

This section defines the XML schema for IVR Control Package. The schema is normative.

本节定义IVR控制包的XML模式。该模式是规范性的。

The schema defines datatypes, attributes, dialog management, and IVR dialog elements in the urn:ietf:params:xml:ns:msc-ivr namespace. In most elements the order of child elements is significant. The schema is extensible: elements allow attributes and child elements from other namespaces. Elements from outside this package's namespace can occur after elements defined in this package.

模式在urn:ietf:params:xml:ns:msc IVR名称空间中定义数据类型、属性、对话框管理和IVR对话框元素。在大多数元素中,子元素的顺序是重要的。模式是可扩展的:元素允许来自其他名称空间的属性和子元素。此包命名空间之外的元素可以出现在此包中定义的元素之后。

The schema is dependent upon the schema (framework.xsd) defined in Appendix A.1 of the Control Framework [RFC6230]. It is also dependent upon the W3C (xml.xsd) schema for definitions of XML attributes (e.g., xml:base).

该模式依赖于控制框架[RFC6230]附录A.1中定义的模式(framework.xsd)。它还依赖于W3C(xml.xsd)模式来定义xml属性(例如,xml:base)。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr"
 elementFormDefault="qualified" blockDefault="#all"
 xmlns="urn:ietf:params:xml:ns:msc-ivr"
 xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-ivr"
 elementFormDefault="qualified" blockDefault="#all"
 xmlns="urn:ietf:params:xml:ns:msc-ivr"
 xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        
 <xsd:annotation>
  <xsd:documentation>
   IETF MediaCtrl IVR 1.0 (20110104)
        
 <xsd:annotation>
  <xsd:documentation>
   IETF MediaCtrl IVR 1.0 (20110104)
        

This is the schema of the IETF MediaCtrl IVR Control Package.

这是IETF MediaCtrl IVR控制包的模式。

   The schema namespace is urn:ietf:params:xml:ns:msc-ivr
        
   The schema namespace is urn:ietf:params:xml:ns:msc-ivr
        
  </xsd:documentation>
 </xsd:annotation>
        
  </xsd:documentation>
 </xsd:annotation>
        
 <!--
  #############################################################
        
 <!--
  #############################################################
        

SCHEMA IMPORTS

模式导入

  #############################################################
 -->
        
  #############################################################
 -->
        
 <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
  schemaLocation="http://www.w3.org/2001/xml.xsd">
  <xsd:annotation>
   <xsd:documentation>
    This import brings in the XML attributes for
    xml:base, xml:lang, etc
        
 <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
  schemaLocation="http://www.w3.org/2001/xml.xsd">
  <xsd:annotation>
   <xsd:documentation>
    This import brings in the XML attributes for
    xml:base, xml:lang, etc
        
    See http://www.w3.org/2001/xml.xsd for latest version
   </xsd:documentation>
  </xsd:annotation>
 </xsd:import>
        
    See http://www.w3.org/2001/xml.xsd for latest version
   </xsd:documentation>
  </xsd:annotation>
 </xsd:import>
        
 <xsd:import
  namespace="urn:ietf:params:xml:ns:control:framework-attributes"
  schemaLocation="framework.xsd">
  <xsd:annotation>
   <xsd:documentation>
    This import brings in the framework attributes for
    conferenceid and connectionid.
   </xsd:documentation>
  </xsd:annotation>
 </xsd:import>
        
 <xsd:import
  namespace="urn:ietf:params:xml:ns:control:framework-attributes"
  schemaLocation="framework.xsd">
  <xsd:annotation>
   <xsd:documentation>
    This import brings in the framework attributes for
    conferenceid and connectionid.
   </xsd:documentation>
  </xsd:annotation>
 </xsd:import>
        
 <!--
  #####################################################
        
 <!--
  #####################################################
        

Extensible core type

可扩展核心类型

  #####################################################
 -->
        
  #####################################################
 -->
        
 <xsd:complexType name="Tcore">
  <xsd:annotation>
   <xsd:documentation>
    This type is extended by other (non-mixed) component types to
    allow attributes from other namespaces.
   </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <xsd:complexType name="Tcore">
  <xsd:annotation>
   <xsd:documentation>
    This type is extended by other (non-mixed) component types to
    allow attributes from other namespaces.
   </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <!--
  #####################################################
        
 <!--
  #####################################################
        

TOP LEVEL ELEMENT: mscivr

顶级元素:mscivr

  #####################################################
 -->
        
  #####################################################
 -->
        
 <xsd:complexType name="mscivrType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:choice>
      <xsd:element ref="dialogprepare" />
      <xsd:element ref="dialogstart" />
      <xsd:element ref="dialogterminate" />
      <xsd:element ref="response" />
      <xsd:element ref="event" />
      <xsd:element ref="audit" />
      <xsd:element ref="auditresponse" />
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
     </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="version" type="version.datatype"
     use="required" />
    <xsd:attribute name="desclang" type="xsd:language"
     default="i-default" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="mscivrType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:choice>
      <xsd:element ref="dialogprepare" />
      <xsd:element ref="dialogstart" />
      <xsd:element ref="dialogterminate" />
      <xsd:element ref="response" />
      <xsd:element ref="event" />
      <xsd:element ref="audit" />
      <xsd:element ref="auditresponse" />
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
     </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="version" type="version.datatype"
     use="required" />
    <xsd:attribute name="desclang" type="xsd:language"
     default="i-default" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="mscivr" type="mscivrType" />
        
 <xsd:element name="mscivr" type="mscivrType" />
        
 <!--
  #####################################################
        
 <!--
  #####################################################
        

DIALOG MANAGEMENT TYPES

对话框管理类型

  #####################################################
 -->
        
  #####################################################
 -->
        
 <!--  dialogprepare -->
        
 <!--  dialogprepare -->
        
 <xsd:complexType name="dialogprepareType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialog" minOccurs="0"
      maxOccurs="1" />
        
 <xsd:complexType name="dialogprepareType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialog" minOccurs="0"
      maxOccurs="1" />
        
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="src" type="xsd:anyURI" />
    <xsd:attribute name="type" type="mime.datatype"/>
    <xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="src" type="xsd:anyURI" />
    <xsd:attribute name="type" type="mime.datatype"/>
    <xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialogprepare" type="dialogprepareType" />
        
 <xsd:element name="dialogprepare" type="dialogprepareType" />
        
 <!--  dialogstart -->
        
 <!--  dialogstart -->
        
 <xsd:complexType name="dialogstartType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialog" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="subscribe" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="stream" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="src" type="xsd:anyURI" />
    <xsd:attribute name="type" type="mime.datatype"/>
    <xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" />
    <xsd:attribute name="prepareddialogid"
     type="dialogid.datatype" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
        
 <xsd:complexType name="dialogstartType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialog" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="subscribe" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="stream" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="src" type="xsd:anyURI" />
    <xsd:attribute name="type" type="mime.datatype"/>
    <xsd:attribute name="maxage" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="maxstale" type="xsd:nonNegativeInteger"/>
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" />
    <xsd:attribute name="prepareddialogid"
     type="dialogid.datatype" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
        
  </xsd:complexContent>
 </xsd:complexType>
        
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialogstart" type="dialogstartType" />
        
 <xsd:element name="dialogstart" type="dialogstartType" />
        
 <!--  dialogterminate -->
        
 <!--  dialogterminate -->
        
 <xsd:complexType name="dialogterminateType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attribute name="immediate"
     type="xsd:boolean" default="false" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dialogterminateType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attribute name="immediate"
     type="xsd:boolean" default="false" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialogterminate" type="dialogterminateType" />
        
 <xsd:element name="dialogterminate" type="dialogterminateType" />
        
 <!--  response -->
        
 <!--  response -->
        
 <xsd:complexType name="responseType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="responseType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="response" type="responseType" />
        
 <xsd:element name="response" type="responseType" />
        
 <!--  event -->
        
 <!--  event -->
        
 <xsd:complexType name="eventType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:choice>
      <xsd:element ref="dialogexit" minOccurs="0"
       maxOccurs="1" />
      <xsd:element ref="dtmfnotify" minOccurs="0"
       maxOccurs="1" />
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
     </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="eventType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:choice>
      <xsd:element ref="dialogexit" minOccurs="0"
       maxOccurs="1" />
      <xsd:element ref="dtmfnotify" minOccurs="0"
       maxOccurs="1" />
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
     </xsd:choice>
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="event" type="eventType" />
        
 <xsd:element name="event" type="eventType" />
        
 <!--  dialogexit-->
        
 <!--  dialogexit-->
        
 <xsd:complexType name="dialogexitType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="promptinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="controlinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="collectinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="recordinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="status"
     type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dialogexitType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="promptinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="controlinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="collectinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="recordinfo" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="status"
     type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialogexit" type="dialogexitType" />
        
 <xsd:element name="dialogexit" type="dialogexitType" />
        
 <!--  dtmfnotify-->
        
 <!--  dtmfnotify-->
        
 <xsd:complexType name="dtmfnotifyType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="matchmode"
     type="matchmode.datatype" default="all" />
    <xsd:attribute name="dtmf" type="dtmfstring.datatype"
     use="required" />
    <xsd:attribute name="timestamp" type="xsd:dateTime"
     use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dtmfnotifyType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="matchmode"
     type="matchmode.datatype" default="all" />
    <xsd:attribute name="dtmf" type="dtmfstring.datatype"
     use="required" />
    <xsd:attribute name="timestamp" type="xsd:dateTime"
     use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dtmfnotify" type="dtmfnotifyType" />
        
 <xsd:element name="dtmfnotify" type="dtmfnotifyType" />
        
 <!-- promptinfo -->
        
 <!-- promptinfo -->
        
 <xsd:complexType name="promptinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="duration"
     type="xsd:nonNegativeInteger" />
    <xsd:attribute name="termmode"
     type="prompt_termmode.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="promptinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="duration"
     type="xsd:nonNegativeInteger" />
    <xsd:attribute name="termmode"
     type="prompt_termmode.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="promptinfo" type="promptinfoType" />
        
 <xsd:element name="promptinfo" type="promptinfoType" />
        
 <!-- controlinfo -->
        
 <!-- controlinfo -->
        
 <xsd:complexType name="controlinfoType">
        
 <xsd:complexType name="controlinfoType">
        
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="controlmatch" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="controlmatch" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="controlinfo" type="controlinfoType" />
        
 <xsd:element name="controlinfo" type="controlinfoType" />
        
 <!-- controlmatch -->
        
 <!-- controlmatch -->
        
 <xsd:complexType name="controlmatchType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dtmf"
     type="dtmfstring.datatype" />
    <xsd:attribute name="timestamp" type="xsd:dateTime" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="controlmatchType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dtmf"
     type="dtmfstring.datatype" />
    <xsd:attribute name="timestamp" type="xsd:dateTime" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="controlmatch" type="controlmatchType" />
        
 <xsd:element name="controlmatch" type="controlmatchType" />
        
 <!--  collectinfo -->
        
 <!--  collectinfo -->
        
 <xsd:complexType name="collectinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dtmf"
     type="dtmfstring.datatype" />
    <xsd:attribute name="termmode"
     type="collect_termmode.datatype" use="required" />
   </xsd:extension>
        
 <xsd:complexType name="collectinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dtmf"
     type="dtmfstring.datatype" />
    <xsd:attribute name="termmode"
     type="collect_termmode.datatype" use="required" />
   </xsd:extension>
        
  </xsd:complexContent>
 </xsd:complexType>
        
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="collectinfo" type="collectinfoType" />
        
 <xsd:element name="collectinfo" type="collectinfoType" />
        
 <!-- recordinfo -->
        
 <!-- recordinfo -->
        
 <xsd:complexType name="recordinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="mediainfo" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="duration"
     type="xsd:nonNegativeInteger" />
    <xsd:attribute name="termmode"
     type="record_termmode.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="recordinfoType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="mediainfo" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="duration"
     type="xsd:nonNegativeInteger" />
    <xsd:attribute name="termmode"
     type="record_termmode.datatype" use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="recordinfo" type="recordinfoType" />
        
 <xsd:element name="recordinfo" type="recordinfoType" />
        
 <!--  mediainfo -->
        
 <!--  mediainfo -->
        
 <xsd:complexType name="mediainfoType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="type" type="mime.datatype"
    use="required"/>
    <xsd:attribute name="size"
     type="xsd:nonNegativeInteger" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:element name="mediainfo" type="mediainfoType" />
        
 <xsd:complexType name="mediainfoType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="type" type="mime.datatype"
    use="required"/>
    <xsd:attribute name="size"
     type="xsd:nonNegativeInteger" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
 <xsd:element name="mediainfo" type="mediainfoType" />
        
 <!--  subscribe -->
        
 <!--  subscribe -->
        
 <xsd:complexType name="subscribeType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dtmfsub" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="subscribeType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dtmfsub" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="subscribe" type="subscribeType" />
        
 <xsd:element name="subscribe" type="subscribeType" />
        
 <!--  dtmfsub -->
        
 <!--  dtmfsub -->
        
 <xsd:complexType name="dtmfsubType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="matchmode"
     type="matchmode.datatype" default="all" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dtmfsubType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="matchmode"
     type="matchmode.datatype" default="all" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dtmfsub" type="dtmfsubType" />
        
 <xsd:element name="dtmfsub" type="dtmfsubType" />
        
 <!-- params -->
 <xsd:complexType name="paramsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="param" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 <!-- params -->
 <xsd:complexType name="paramsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="param" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 </xsd:complexType>
        
 </xsd:complexType>
        
 <xsd:element name="params" type="paramsType" />
        
 <xsd:element name="params" type="paramsType" />
        
 <!--  param -->
 <!--  doesn't extend tCore since its content model is mixed -->
 <xsd:complexType name="paramType" mixed="true">
  <xsd:sequence/>
  <xsd:attribute name="name" type="xsd:string" use="required" />
  <xsd:attribute name="type" type="mime.datatype" default="text/plain"/>
     <xsd:attribute name="encoding" type="xsd:string"/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <!--  param -->
 <!--  doesn't extend tCore since its content model is mixed -->
 <xsd:complexType name="paramType" mixed="true">
  <xsd:sequence/>
  <xsd:attribute name="name" type="xsd:string" use="required" />
  <xsd:attribute name="type" type="mime.datatype" default="text/plain"/>
     <xsd:attribute name="encoding" type="xsd:string"/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <xsd:element name="param" type="paramType" />
        
 <xsd:element name="param" type="paramType" />
        
 <!--  stream -->
        
 <!--  stream -->
        
 <xsd:complexType name="streamType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="region" minOccurs="0"
      maxOccurs="1" />
    <xsd:element ref="priority" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="media" type="media.datatype"
     use="required" />
    <xsd:attribute name="label" type="label.datatype" />
    <xsd:attribute name="direction"
     type="direction.datatype" default="sendrecv" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="streamType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="region" minOccurs="0"
      maxOccurs="1" />
    <xsd:element ref="priority" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="media" type="media.datatype"
     use="required" />
    <xsd:attribute name="label" type="label.datatype" />
    <xsd:attribute name="direction"
     type="direction.datatype" default="sendrecv" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="stream" type="streamType" />
        
 <xsd:element name="stream" type="streamType" />
        
<!--  region  -->
<xsd:simpleType name="regionType">
 <xsd:restriction base="xsd:NMTOKEN"/>
</xsd:simpleType>
 <xsd:element name="region" type="regionType" />
        
<!--  region  -->
<xsd:simpleType name="regionType">
 <xsd:restriction base="xsd:NMTOKEN"/>
</xsd:simpleType>
 <xsd:element name="region" type="regionType" />
        
 <!--  priority  -->
 <xsd:simpleType name="priorityType">
  <xsd:restriction base="xsd:positiveInteger" />
 </xsd:simpleType>
        
 <!--  priority  -->
 <xsd:simpleType name="priorityType">
  <xsd:restriction base="xsd:positiveInteger" />
 </xsd:simpleType>
        
 <xsd:element name="priority" type="priorityType" />
        
 <xsd:element name="priority" type="priorityType" />
        
<!-- dialog -->
        
<!-- dialog -->
        
 <xsd:complexType name="dialogType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="prompt" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="control" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="collect" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="record" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="repeatCount"
     type="xsd:nonNegativeInteger" default="1" />
    <xsd:attribute name="repeatDur"
     type="timedesignation.datatype" />
    <xsd:attribute name="repeatUntilComplete"
     type="xsd:boolean" default="false"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dialogType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="prompt" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="control" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="collect" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="record" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="repeatCount"
     type="xsd:nonNegativeInteger" default="1" />
    <xsd:attribute name="repeatDur"
     type="timedesignation.datatype" />
    <xsd:attribute name="repeatUntilComplete"
     type="xsd:boolean" default="false"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialog" type="dialogType" />
        
 <xsd:element name="dialog" type="dialogType" />
        
 <!--  prompt  -->
        
 <!--  prompt  -->
        
 <xsd:complexType name="promptType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
     <xsd:element ref="par" />
        
 <xsd:complexType name="promptType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
     <xsd:element ref="par" />
        
     <xsd:any namespace="##other"
      processContents="lax" />
    </xsd:choice>
    <xsd:attribute ref="xml:base" />
    <xsd:attribute name="bargein" type="xsd:boolean"
     default="true" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
     <xsd:any namespace="##other"
      processContents="lax" />
    </xsd:choice>
    <xsd:attribute ref="xml:base" />
    <xsd:attribute name="bargein" type="xsd:boolean"
     default="true" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="prompt" type="promptType" />
        
 <xsd:element name="prompt" type="promptType" />
        
 <!--  media -->
        
 <!--  media -->
        
 <xsd:complexType name="mediaType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="type" type="mime.datatype" />
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="soundLevel"
     type="percentage.datatype" default="100%" />
    <xsd:attribute name="clipBegin"
     type="timedesignation.datatype" default="0s" />
     <xsd:attribute name="clipEnd"
     type="timedesignation.datatype"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="mediaType">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="type" type="mime.datatype" />
    <xsd:attribute name="fetchtimeout"
     type="timedesignation.datatype" default="30s" />
    <xsd:attribute name="soundLevel"
     type="percentage.datatype" default="100%" />
    <xsd:attribute name="clipBegin"
     type="timedesignation.datatype" default="0s" />
     <xsd:attribute name="clipEnd"
     type="timedesignation.datatype"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="media" type="mediaType" />
        
 <xsd:element name="media" type="mediaType" />
        
 <!--  variable -->
        
 <!--  variable -->
        
 <xsd:complexType name="variableT">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
        
 <xsd:complexType name="variableT">
  <xsd:complexContent>
   <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"
     use="required" />
    <xsd:attribute name="type" type="xsd:string"
     use="required" />
    <xsd:attribute name="format" type="xsd:string" />
    <xsd:attribute name="gender" type="gender.datatype" />
    <xsd:attribute ref="xml:lang" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
    <xsd:attribute name="value" type="xsd:string"
     use="required" />
    <xsd:attribute name="type" type="xsd:string"
     use="required" />
    <xsd:attribute name="format" type="xsd:string" />
    <xsd:attribute name="gender" type="gender.datatype" />
    <xsd:attribute ref="xml:lang" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="variable" type="variableT" />
        
 <xsd:element name="variable" type="variableT" />
        
 <!-- dtmf -->
        
 <!-- dtmf -->
        
 <xsd:complexType name="dtmfType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="digits"
     type="dtmfstring.datatype" use="required" />
    <xsd:attribute name="level" type="xsd:integer"
     default="-6" />
    <xsd:attribute name="duration"
     type="timedesignation.datatype" default="100ms" />
    <xsd:attribute name="interval"
     type="timedesignation.datatype" default="100ms" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dtmfType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="digits"
     type="dtmfstring.datatype" use="required" />
    <xsd:attribute name="level" type="xsd:integer"
     default="-6" />
    <xsd:attribute name="duration"
     type="timedesignation.datatype" default="100ms" />
    <xsd:attribute name="interval"
     type="timedesignation.datatype" default="100ms" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dtmf" type="dtmfType" />
        
 <xsd:element name="dtmf" type="dtmfType" />
        
 <!--  par  -->
        
 <!--  par  -->
        
 <xsd:complexType name="parType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
           <xsd:element ref="seq" />
     <xsd:any namespace="##other"
        
 <xsd:complexType name="parType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
           <xsd:element ref="seq" />
     <xsd:any namespace="##other"
        
      processContents="lax" />
    </xsd:choice>
    <xsd:attribute name="endsync" type="endsync.datatype"
    default="last"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
      processContents="lax" />
    </xsd:choice>
    <xsd:attribute name="endsync" type="endsync.datatype"
    default="last"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="par" type="parType" />
        
 <xsd:element name="par" type="parType" />
        
 <!--  seq  -->
        
 <!--  seq  -->
        
 <xsd:complexType name="seqType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
     <xsd:any namespace="##other"
      processContents="lax" />
    </xsd:choice>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="seqType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
     <xsd:element ref="media" />
     <xsd:element ref="variable" />
     <xsd:element ref="dtmf" />
     <xsd:any namespace="##other"
      processContents="lax" />
    </xsd:choice>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="seq" type="seqType" />
        
 <xsd:element name="seq" type="seqType" />
        
 <!-- control -->
        
 <!-- control -->
        
 <xsd:complexType name="controlType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="skipinterval"
     type="timedesignation.datatype" default="6s" />
    <xsd:attribute name="ffkey" type="dtmfchar.datatype" />
    <xsd:attribute name="rwkey" type="dtmfchar.datatype" />
    <xsd:attribute name="pauseinterval"
     type="timedesignation.datatype" default="10s" />
    <xsd:attribute name="pausekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="resumekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="volumeinterval"
        
 <xsd:complexType name="controlType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="skipinterval"
     type="timedesignation.datatype" default="6s" />
    <xsd:attribute name="ffkey" type="dtmfchar.datatype" />
    <xsd:attribute name="rwkey" type="dtmfchar.datatype" />
    <xsd:attribute name="pauseinterval"
     type="timedesignation.datatype" default="10s" />
    <xsd:attribute name="pausekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="resumekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="volumeinterval"
        
     type="percentage.datatype" default="10%" />
    <xsd:attribute name="volupkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="voldnkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="speedinterval"
     type="percentage.datatype" default="10%" />
    <xsd:attribute name="speedupkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="speeddnkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="gotostartkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="gotoendkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="external"
     type="dtmfstring.datatype" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
     type="percentage.datatype" default="10%" />
    <xsd:attribute name="volupkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="voldnkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="speedinterval"
     type="percentage.datatype" default="10%" />
    <xsd:attribute name="speedupkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="speeddnkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="gotostartkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="gotoendkey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="external"
     type="dtmfstring.datatype" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="control" type="controlType" />
        
 <xsd:element name="control" type="controlType" />
        
 <!-- collect -->
        
 <!-- collect -->
        
 <xsd:complexType name="collectType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="grammar" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="cleardigitbuffer"
     type="xsd:boolean" default="true" />
    <xsd:attribute name="timeout"
     type="timedesignation.datatype" default="5s" />
    <xsd:attribute name="interdigittimeout"
     type="timedesignation.datatype" default="2s" />
    <xsd:attribute name="termtimeout"
     type="timedesignation.datatype" default="0s" />
    <xsd:attribute name="escapekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="termchar"
     type="dtmfchar.datatype" default="#" />
    <xsd:attribute name="maxdigits"
        
 <xsd:complexType name="collectType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="grammar" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="cleardigitbuffer"
     type="xsd:boolean" default="true" />
    <xsd:attribute name="timeout"
     type="timedesignation.datatype" default="5s" />
    <xsd:attribute name="interdigittimeout"
     type="timedesignation.datatype" default="2s" />
    <xsd:attribute name="termtimeout"
     type="timedesignation.datatype" default="0s" />
    <xsd:attribute name="escapekey"
     type="dtmfchar.datatype" />
    <xsd:attribute name="termchar"
     type="dtmfchar.datatype" default="#" />
    <xsd:attribute name="maxdigits"
        
     type="xsd:positiveInteger" default="5" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
     type="xsd:positiveInteger" default="5" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="collect" type="collectType" />
        
 <xsd:element name="collect" type="collectType" />
        
 <!--  grammar -->
 <!--  doesn't extend tCore since its content model is mixed -->
 <xsd:complexType name="grammarType" mixed="true">
  <xsd:sequence>
   <xsd:any namespace="##other" minOccurs="0"
    maxOccurs="unbounded" processContents="lax" />
  </xsd:sequence>
  <xsd:attribute name="src" type="xsd:anyURI" />
  <xsd:attribute name="type" type="mime.datatype" />
  <xsd:attribute name="fetchtimeout"
   type="timedesignation.datatype" default="30s" />
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <!--  grammar -->
 <!--  doesn't extend tCore since its content model is mixed -->
 <xsd:complexType name="grammarType" mixed="true">
  <xsd:sequence>
   <xsd:any namespace="##other" minOccurs="0"
    maxOccurs="unbounded" processContents="lax" />
  </xsd:sequence>
  <xsd:attribute name="src" type="xsd:anyURI" />
  <xsd:attribute name="type" type="mime.datatype" />
  <xsd:attribute name="fetchtimeout"
   type="timedesignation.datatype" default="30s" />
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <xsd:element name="grammar" type="grammarType" />
        
 <xsd:element name="grammar" type="grammarType" />
        
 <!-- record -->
        
 <!-- record -->
        
 <xsd:complexType name="recordType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="media" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="timeout"
     type="timedesignation.datatype" default="5s" />
    <xsd:attribute name="beep" type="xsd:boolean"
     default="false" />
    <xsd:attribute name="vadinitial"
     type="xsd:boolean" default="false" />
    <xsd:attribute name="vadfinal"
     type="xsd:boolean" default="false" />
    <xsd:attribute name="dtmfterm"
     type="xsd:boolean" default="true" />
    <xsd:attribute name="maxtime"
     type="timedesignation.datatype" default="15s" />
    <xsd:attribute name="finalsilence"
     type="timedesignation.datatype" default="5s" />
        
 <xsd:complexType name="recordType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
   <xsd:sequence>
     <xsd:element ref="media" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="timeout"
     type="timedesignation.datatype" default="5s" />
    <xsd:attribute name="beep" type="xsd:boolean"
     default="false" />
    <xsd:attribute name="vadinitial"
     type="xsd:boolean" default="false" />
    <xsd:attribute name="vadfinal"
     type="xsd:boolean" default="false" />
    <xsd:attribute name="dtmfterm"
     type="xsd:boolean" default="true" />
    <xsd:attribute name="maxtime"
     type="timedesignation.datatype" default="15s" />
    <xsd:attribute name="finalsilence"
     type="timedesignation.datatype" default="5s" />
        
    <xsd:attribute name="append" type="xsd:boolean"
     default="false" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
    <xsd:attribute name="append" type="xsd:boolean"
     default="false" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="record" type="recordType" />
        
 <xsd:element name="record" type="recordType" />
        
 <!--
  #####################################################
        
 <!--
  #####################################################
        

AUDIT TYPES

审计类型

  #####################################################
 -->
        
  #####################################################
 -->
        
 <!-- audit -->
        
 <!-- audit -->
        
 <xsd:complexType name="auditType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   <xsd:attribute name="capabilities"
     type="xsd:boolean" default="true" />
   <xsd:attribute name="dialogs"
     type="xsd:boolean" default="true" />
      <xsd:attribute name="dialogid"
     type="dialogid.datatype"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="auditType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
 <xsd:sequence>
    <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   <xsd:attribute name="capabilities"
     type="xsd:boolean" default="true" />
   <xsd:attribute name="dialogs"
     type="xsd:boolean" default="true" />
      <xsd:attribute name="dialogid"
     type="dialogid.datatype"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="audit" type="auditType" />
        
 <xsd:element name="audit" type="auditType" />
        
 <!-- auditresponse -->
        
 <!-- auditresponse -->
        
 <xsd:complexType name="auditresponseType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="capabilities" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="dialogs" minOccurs="0"
      maxOccurs="1" />
        
 <xsd:complexType name="auditresponseType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="capabilities" minOccurs="0"
      maxOccurs="1" />
     <xsd:element ref="dialogs" minOccurs="0"
      maxOccurs="1" />
        
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="status" type="status.datatype"
     use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="status" type="status.datatype"
     use="required" />
    <xsd:attribute name="reason" type="xsd:string" />
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="auditresponse" type="auditresponseType" />
        
 <xsd:element name="auditresponse" type="auditresponseType" />
        
 <!-- codec -->
        
 <!-- codec -->
        
 <xsd:complexType name="codecType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="subtype" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string"
     use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="codecType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="subtype" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="params" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string"
     use="required" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="codec" type="codecType" />
        
 <xsd:element name="codec" type="codecType" />
        
 <!-- subtype -->
        
 <!-- subtype -->
        
 <xsd:simpleType name="subtypeType">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
        
 <xsd:simpleType name="subtypeType">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
        
 <xsd:element name="subtype" type="subtypeType" />
        
 <xsd:element name="subtype" type="subtypeType" />
        
 <!-- codecs -->
        
 <!-- codecs -->
        
 <xsd:complexType name="codecsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
        
 <xsd:complexType name="codecsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
        
    <xsd:sequence>
     <xsd:element ref="codec" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
    <xsd:sequence>
     <xsd:element ref="codec" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="codecs" type="codecsType" />
        
 <xsd:element name="codecs" type="codecsType" />
        
 <!-- capabilities -->
        
 <!-- capabilities -->
        
 <xsd:complexType name="capabilitiesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialoglanguages" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="grammartypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="recordtypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="prompttypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="variables" minOccurs="1"
      maxOccurs="1" />
      <xsd:element ref="maxpreparedduration" minOccurs="1"
      maxOccurs="1" />
      <xsd:element ref="maxrecordduration" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="codecs" minOccurs="1"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="capabilitiesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialoglanguages" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="grammartypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="recordtypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="prompttypes" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="variables" minOccurs="1"
      maxOccurs="1" />
      <xsd:element ref="maxpreparedduration" minOccurs="1"
      maxOccurs="1" />
      <xsd:element ref="maxrecordduration" minOccurs="1"
      maxOccurs="1" />
     <xsd:element ref="codecs" minOccurs="1"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="capabilities" type="capabilitiesType" />
        
 <xsd:element name="capabilities" type="capabilitiesType" />
        
 <!-- mimetype -->
        
 <!-- mimetype -->
        
 <xsd:element name="mimetype" type="mime.datatype" />
        
 <xsd:element name="mimetype" type="mime.datatype" />
        
 <!-- dialoglanguages -->
        
 <!-- dialoglanguages -->
        
 <xsd:complexType name="dialoglanguagesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dialoglanguagesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialoglanguages" type="dialoglanguagesType" />
        
 <xsd:element name="dialoglanguages" type="dialoglanguagesType" />
        
 <!-- grammartypes -->
        
 <!-- grammartypes -->
        
 <xsd:complexType name="grammartypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="grammartypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="grammartypes" type="grammartypesType" />
        
 <xsd:element name="grammartypes" type="grammartypesType" />
        
 <!-- recordtypes -->
        
 <!-- recordtypes -->
        
 <xsd:complexType name="recordtypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 <xsd:complexType name="recordtypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 </xsd:complexType>
        
 </xsd:complexType>
        
 <xsd:element name="recordtypes" type="recordtypesType" />
        
 <xsd:element name="recordtypes" type="recordtypesType" />
        
    <!-- prompttypes -->
        
    <!-- prompttypes -->
        
 <xsd:complexType name="prompttypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="prompttypesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="mimetype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="prompttypes" type="prompttypesType" />
        
 <xsd:element name="prompttypes" type="prompttypesType" />
        
<!--  variables -->
        
<!--  variables -->
        
 <xsd:complexType name="variablesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="variabletype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="variablesType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="variabletype" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="variables" type="variablesType" />
        
 <xsd:element name="variables" type="variablesType" />
        
 <xsd:complexType name="variabletypeType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="format" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
        
 <xsd:complexType name="variabletypeType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="format" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
        
    <xsd:attribute name="type" type="xsd:string" use="required" />
    <xsd:attribute name="desc" type="xsd:string"/>
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
    <xsd:attribute name="type" type="xsd:string" use="required" />
    <xsd:attribute name="desc" type="xsd:string"/>
    <xsd:attribute name="desclang" type="xsd:language"/>
   </xsd:extension>
  </xsd:complexContent>
 </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:sequence>
   <xsd:any namespace="##other" minOccurs="0"
    maxOccurs="unbounded" processContents="lax" />
  </xsd:sequence>
  <xsd:attribute name="desc" type="xsd:string" />
  <xsd:attribute name="desclang" type="xsd:language"/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
<!--  format  -->
<!--  doesn't extend tCore since its content model is mixed -->
 <xsd:complexType name="formatType" mixed="true">
  <xsd:sequence>
   <xsd:any namespace="##other" minOccurs="0"
    maxOccurs="unbounded" processContents="lax" />
  </xsd:sequence>
  <xsd:attribute name="desc" type="xsd:string" />
  <xsd:attribute name="desclang" type="xsd:language"/>
  <xsd:anyAttribute namespace="##other" processContents="lax" />
 </xsd:complexType>
        
 <xsd:element name="format" type="formatType" />
        
 <xsd:element name="format" type="formatType" />
        
<!--  maxpreparedduration -->
        
<!--  maxpreparedduration -->
        
 <xsd:element name="maxpreparedduration"
type="timedesignation.datatype"/>
        
 <xsd:element name="maxpreparedduration"
type="timedesignation.datatype"/>
        
<!--  maxrecordduration -->
        
<!--  maxrecordduration -->
        
 <xsd:element name="maxrecordduration"
type="timedesignation.datatype"/>
        
 <xsd:element name="maxrecordduration"
type="timedesignation.datatype"/>
        
 <!-- dialogs -->
        
 <!-- dialogs -->
        
 <xsd:complexType name="dialogsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialogaudit" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 <xsd:complexType name="dialogsType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="dialogaudit" minOccurs="0"
      maxOccurs="unbounded" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
   </xsd:extension>
  </xsd:complexContent>
        
 </xsd:complexType>
        
 </xsd:complexType>
        
 <xsd:element name="dialogs" type="dialogsType" />
        
 <xsd:element name="dialogs" type="dialogsType" />
        
 <!-- dialogaudit -->
        
 <!-- dialogaudit -->
        
 <xsd:complexType name="dialogauditType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="codecs" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attribute name="state" type="state.datatype"
     use="required" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:complexType name="dialogauditType">
  <xsd:complexContent>
   <xsd:extension base="Tcore">
    <xsd:sequence>
     <xsd:element ref="codecs" minOccurs="0"
      maxOccurs="1" />
     <xsd:any namespace="##other" minOccurs="0"
      maxOccurs="unbounded" processContents="lax" />
    </xsd:sequence>
    <xsd:attribute name="dialogid"
     type="dialogid.datatype" use="required" />
    <xsd:attribute name="state" type="state.datatype"
     use="required" />
    <xsd:attributeGroup ref="fw:framework-attributes" />
   </xsd:extension>
  </xsd:complexContent>
 </xsd:complexType>
        
 <xsd:element name="dialogaudit" type="dialogauditType" />
        
 <xsd:element name="dialogaudit" type="dialogauditType" />
        
 <!--
  ####################################################
        
 <!--
  ####################################################
        

DATATYPES

数据类型

  ####################################################
 -->
        
  ####################################################
 -->
        
 <xsd:simpleType name="version.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="1.0" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="mime.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="dialogid.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
        
 <xsd:simpleType name="version.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="1.0" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="mime.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="dialogid.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
        
 <xsd:simpleType name="gender.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="female" />
   <xsd:enumeration value="male" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="state.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="preparing" />
   <xsd:enumeration value="prepared" />
   <xsd:enumeration value="starting" />
   <xsd:enumeration value="started" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="status.datatype">
  <xsd:restriction base="xsd:positiveInteger">
   <xsd:pattern value="[0-9][0-9][0-9]" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="media.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="label.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="direction.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="sendrecv" />
   <xsd:enumeration value="sendonly" />
   <xsd:enumeration value="recvonly" />
   <xsd:enumeration value="inactive" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="timedesignation.datatype">
  <xsd:annotation>
   <xsd:documentation>
    Time designation following Time in CSS2
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="(\+)?([0-9]*\.)?[0-9]+(ms|s)" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="dtmfchar.datatype">
  <xsd:annotation>
   <xsd:documentation>
    DTMF character [0-9#*A-D]
   </xsd:documentation>
        
 <xsd:simpleType name="gender.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="female" />
   <xsd:enumeration value="male" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="state.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="preparing" />
   <xsd:enumeration value="prepared" />
   <xsd:enumeration value="starting" />
   <xsd:enumeration value="started" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="status.datatype">
  <xsd:restriction base="xsd:positiveInteger">
   <xsd:pattern value="[0-9][0-9][0-9]" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="media.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="label.datatype">
  <xsd:restriction base="xsd:string" />
 </xsd:simpleType>
 <xsd:simpleType name="direction.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="sendrecv" />
   <xsd:enumeration value="sendonly" />
   <xsd:enumeration value="recvonly" />
   <xsd:enumeration value="inactive" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="timedesignation.datatype">
  <xsd:annotation>
   <xsd:documentation>
    Time designation following Time in CSS2
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="(\+)?([0-9]*\.)?[0-9]+(ms|s)" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="dtmfchar.datatype">
  <xsd:annotation>
   <xsd:documentation>
    DTMF character [0-9#*A-D]
   </xsd:documentation>
        
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="[0-9#*A-D]" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="dtmfstring.datatype">
  <xsd:annotation>
   <xsd:documentation>
    DTMF sequence [0-9#*A-D]
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="([0-9#*A-D])+" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="percentage.datatype">
  <xsd:annotation>
   <xsd:documentation>
    whole integer followed by '%'
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="([0-9])+%" />
  </xsd:restriction>
 </xsd:simpleType>
        
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="[0-9#*A-D]" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="dtmfstring.datatype">
  <xsd:annotation>
   <xsd:documentation>
    DTMF sequence [0-9#*A-D]
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="([0-9#*A-D])+" />
  </xsd:restriction>
 </xsd:simpleType>
 <xsd:simpleType name="percentage.datatype">
  <xsd:annotation>
   <xsd:documentation>
    whole integer followed by '%'
   </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="([0-9])+%" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="prompt_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="completed" />
   <xsd:enumeration value="bargein" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="prompt_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="completed" />
   <xsd:enumeration value="bargein" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="collect_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="match" />
   <xsd:enumeration value="noinput" />
   <xsd:enumeration value="nomatch" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="collect_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="match" />
   <xsd:enumeration value="noinput" />
   <xsd:enumeration value="nomatch" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="record_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="noinput" />
   <xsd:enumeration value="dtmf" />
   <xsd:enumeration value="maxtime" />
        
 <xsd:simpleType name="record_termmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="noinput" />
   <xsd:enumeration value="dtmf" />
   <xsd:enumeration value="maxtime" />
        
   <xsd:enumeration value="finalsilence" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
   <xsd:enumeration value="finalsilence" />
   <xsd:enumeration value="stopped" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="matchmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="all" />
   <xsd:enumeration value="collect" />
   <xsd:enumeration value="control" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="matchmode.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="all" />
   <xsd:enumeration value="collect" />
   <xsd:enumeration value="control" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="endsync.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="first" />
   <xsd:enumeration value="last" />
  </xsd:restriction>
 </xsd:simpleType>
        
 <xsd:simpleType name="endsync.datatype">
  <xsd:restriction base="xsd:NMTOKEN">
   <xsd:enumeration value="first" />
   <xsd:enumeration value="last" />
  </xsd:restriction>
 </xsd:simpleType>
        
</xsd:schema>
        
</xsd:schema>
        
6. Examples
6. 例子

This section provides examples of the IVR Control Package.

本节提供了IVR控制包的示例。

6.1. AS-MS Dialog Interaction Examples
6.1. AS-MS对话交互示例

The following example assume a Control Channel has been established and synced as described in the Media Control Channel Framework [RFC6230].

以下示例假设已按照媒体控制通道框架[RFC6230]中的描述建立并同步控制通道。

The XML messages are in angled brackets (with the root <mscivr> omitted); the REPORT status is in round brackets. Other aspects of the protocol are omitted for readability.

XML消息放在尖括号中(省略了根<mscivr>);报告状态在圆括号中。为了便于阅读,省略了协议的其他方面。

6.1.1. Starting an IVR Dialog
6.1.1. 启动IVR对话框

An IVR dialog is started successfully, and dialogexit notification <event> is sent from the MS to the AS when the dialog exits normally.

IVR对话框成功启动,当对话框正常退出时,dialogexit通知<event>从MS发送到AS。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <event ... />            |
                |                                             |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <event ... />            |
                |                                             |
                |  <----------------------------------------  |
                |                                             |
                |       (6) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        
6.1.2. IVR Dialog Fails to Start
6.1.2. IVR对话框无法启动

An IVR dialog fails to start due to an unknown dialog language. The <response> is reported in a framework 200 message.

由于未知的对话语言,IVR对话无法启动。<response>在framework200消息中报告。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 200: <response status="421"/>     |
                |  <----------------------------------------  |
                |                                             |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 200: <response status="421"/>     |
                |  <----------------------------------------  |
                |                                             |
        
6.1.3. Preparing and Starting an IVR Dialog
6.1.3. 准备和启动IVR对话框

An IVR dialog is prepared and started successfully, and then the dialog exits normally.

准备并成功启动IVR对话框,然后该对话框正常退出。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogprepare>          |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (7) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (9) CONTROL: <event .../>             |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  ---------------------------------------->  |
                |                                             |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogprepare>          |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (7) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (9) CONTROL: <event .../>             |
                |  <----------------------------------------  |
                |                                             |
                |       (10) 200                              |
                |  ---------------------------------------->  |
                |                                             |
        
6.1.4. Terminating a Dialog
6.1.4. 终止对话

An IVR dialog is started successfully, and then terminated by the AS. The dialogexit event is sent to the AS when the dialog exits.

IVR对话框成功启动,然后由AS终止。对话框退出时,dialogexit事件将发送到AS。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <dialogterminate>        |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 200: <response status="200"/>     |
                |  <----------------------------------------  |
                |                                             |
                |       (7) CONTROL: <event .../>             |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <dialogstart>            |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <dialogterminate>        |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 200: <response status="200"/>     |
                |  <----------------------------------------  |
                |                                             |
                |       (7) CONTROL: <event .../>             |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        

Note that in (6) the <response> payload to the <dialogterminate/> request is carried on a framework 200 response since it could complete the requested operation before the transaction timeout.

请注意,在(6)中,<dialogterminate/>请求的<response>负载在framework 200响应中进行,因为它可以在事务超时之前完成请求的操作。

6.2. IVR Dialog Examples
6.2. IVR对话框示例

The following examples show how <dialog> is used with <dialogprepare>, <dialogstart>, and <event> elements to play prompts, set runtime controls, collect DTMF input, and record user input.

以下示例说明如何将<dialog>与<dialogprepare>、<dialogstart>和<event>元素一起使用,以播放提示、设置运行时控件、收集DTMF输入和记录用户输入。

The examples do not specify all messages between the AS and MS.

这些示例并没有指定AS和MS之间的所有消息。

6.2.1. Playing Announcements
6.2.1. 播放公告

This example prepares an announcement composed of two prompts where the dialog repeatCount is set to 2.

此示例准备一个由两个提示组成的公告,其中对话框repeatCount设置为2。

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogprepare>
      <dialog repeatCount="2">
       <prompt>
         <media loc="http://www.example.com/media/Number_09.wav"/>
         <media loc="http://www.example.com/media/Number_11.wav"/>
       </prompt>
      </dialog>
   </dialogprepare>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogprepare>
      <dialog repeatCount="2">
       <prompt>
         <media loc="http://www.example.com/media/Number_09.wav"/>
         <media loc="http://www.example.com/media/Number_11.wav"/>
       </prompt>
      </dialog>
   </dialogprepare>
   </mscivr>
        

If the dialog is prepared successfully, a <response> is returned with status 200 and a dialog identifier assigned by the MS:

如果对话框准备成功,则返回<response>,状态为200,对话框标识符由MS分配:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <response status="200" dialogid="vxi78"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
     <response status="200" dialogid="vxi78"/>
   </mscivr>
        

The prepared dialog is then started on a conference playing the prompts twice:

然后在会议上启动准备好的对话框,播放两次提示:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart prepareddialogid="vxi78" conferenceid="conference11"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart prepareddialogid="vxi78" conferenceid="conference11"/>
   </mscivr>
        

In the case of a successful dialog, the output is provided in <event>; for example:

如果对话框成功,则在<event>中提供输出;例如:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi78">
       <dialogexit status="1">
          <promptinfo termmode="completed" duration="24000"/>
       </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi78">
       <dialogexit status="1">
          <promptinfo termmode="completed" duration="24000"/>
       </dialogexit>
    </event>
   </mscivr>
        
6.2.2. Prompt and Collect
6.2.2. 催收

In this example, a prompt is played and then the MS waits for 30s for a two digit sequence:

在本例中,播放一个提示,然后MS等待30秒,等待两位数的序列:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt>
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <collect timeout="30s" maxdigits="2"/>
    </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt>
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <collect timeout="30s" maxdigits="2"/>
    </dialog>
    </dialogstart>
   </mscivr>
        

If no user input is collected within 30s, then the following notification event would be returned:

如果在30秒内未收集到任何用户输入,则将返回以下通知事件:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dialogexit status="1" >
          <promptinfo termmode="completed" duration="4000"/>
          <collectinfo termmode="noinput"/>
       </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dialogexit status="1" >
          <promptinfo termmode="completed" duration="4000"/>
          <collectinfo termmode="noinput"/>
       </dialogexit>
    </event>
   </mscivr>
        

The collect operation can be specified without a prompt. Here the MS just waits for DTMF input from the user (the maxdigits attribute of <collect> defaults to 5):

可以在不提示的情况下指定收集操作。在这里,MS只是等待用户的DTMF输入(默认情况下,<collect>的maxdigits属性为5):

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
     <dialog>
      <collect/>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
     <dialog>
      <collect/>
     </dialog>
    </dialogstart>
   </mscivr>
        

If the dialog is successful, then dialogexit <event> contains the dtmf collected in its result parameter:

如果对话框成功,则dialogexit<event>包含在其结果参数中收集的dtmf:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi80">
       <dialogexit status="1">
          <collectinfo dtmf="12345" termmode="match"/>
       </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi80">
       <dialogexit status="1">
          <collectinfo dtmf="12345" termmode="match"/>
       </dialogexit>
    </event>
   </mscivr>
        

And finally, in this example, one of the input parameters is invalid:

最后,在本例中,其中一个输入参数无效:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog repeatCount="two">
      <prompt>
        <media loc="http://www.example.com/prompt1.wav"/>
      </prompt>
      <collect cleardigitbuffer="true"
      timeout="4s" interdigittimeout="2s"
      termtimeout="0s" maxdigits="2"/>
    </dialog>
   </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog repeatCount="two">
      <prompt>
        <media loc="http://www.example.com/prompt1.wav"/>
      </prompt>
      <collect cleardigitbuffer="true"
      timeout="4s" interdigittimeout="2s"
      termtimeout="0s" maxdigits="2"/>
    </dialog>
   </dialogstart>
   </mscivr>
        

The error is reported in the response:

在响应中报告错误:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="400" dialogid="vxi82"
     reason="repeatCount attribute value invalid: two"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="400" dialogid="vxi82"
     reason="repeatCount attribute value invalid: two"/>
   </mscivr>
        
6.2.3. Prompt and Record
6.2.3. 提示和记录

In this example, the user is prompted, then their input is recorded for a maximum of 30 seconds.

在本例中,提示用户,然后记录他们的输入,最长持续30秒。

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
       <dialog>
         <prompt>
          <media loc="http://www.example.com/media/sayname.wav"/>
         </prompt>
         <record dtmfterm="false" maxtime="30s" beep="true"/>
       </dialog>
   </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
   <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
       <dialog>
         <prompt>
          <media loc="http://www.example.com/media/sayname.wav"/>
         </prompt>
         <record dtmfterm="false" maxtime="30s" beep="true"/>
       </dialog>
   </dialogstart>
   </mscivr>
        

If successful and the recording is terminated by DTMF, the following is returned in a dialogexit <event>:

如果成功,并且通过DTMF终止录制,则在对话框exit<event>中返回以下内容:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi83">
     <dialogexit status="1">
      <recordinfo termmode="dtmf">
       <mediainfo type="audio/x-wav"
         loc="http://www.example.com/recording1.wav"/>
      </recordinfo>
     </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi83">
     <dialogexit status="1">
      <recordinfo termmode="dtmf">
       <mediainfo type="audio/x-wav"
         loc="http://www.example.com/recording1.wav"/>
      </recordinfo>
     </dialogexit>
    </event>
   </mscivr>
        
6.2.4. Runtime Controls
6.2.4. 运行时控件

In this example, a prompt is played with the collect operation and runtime controls activated.

在本例中,将在collect操作和运行时控件激活的情况下播放提示。

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt bargein="true">
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <control ffkey="5" rwkey="6" speedupkey="3"
              speeddnkey="4"/>
     <collect maxdigits="2"/>
    </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt bargein="true">
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <control ffkey="5" rwkey="6" speedupkey="3"
              speeddnkey="4"/>
     <collect maxdigits="2"/>
    </dialog>
    </dialogstart>
   </mscivr>
        

Once the dialog is active, the user can press keys 3, 4, 5, and 6 to execute runtime controls on the prompt queue. The keys do not cause bargein to occur. If the user presses any other key, then the prompt is interrupted and DTMF collect begins. Note that runtime controls are not active during the collect operation.

对话框激活后,用户可以按键3、4、5和6在提示队列上执行运行时控件。这些键不会导致出现bargein。如果用户按下任何其他键,则提示中断,DTMF采集开始。请注意,运行时控件在收集操作期间不处于活动状态。

When the dialog is completed successfully, then both control and collect information is reported.

对话框成功完成后,将报告控制信息和收集信息。

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dialogexit status="1">
          <promptinfo termmode="bargein"/>
          <controlinfo>
           <controlmatch dtmf="4" timestamp="2008-05-12T12:13:14Z"/>
           <controlmatch dtmf="3" timestamp="2008-05-12T12:13:15Z"/>
           <controlmatch dtmf="5" timestamp="2008-05-12T12:13:16Z"/>
          </controlinfo>
          <collectinfo termmode="match" dtmf="14"/>
       </dialogexit>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dialogexit status="1">
          <promptinfo termmode="bargein"/>
          <controlinfo>
           <controlmatch dtmf="4" timestamp="2008-05-12T12:13:14Z"/>
           <controlmatch dtmf="3" timestamp="2008-05-12T12:13:15Z"/>
           <controlmatch dtmf="5" timestamp="2008-05-12T12:13:16Z"/>
          </controlinfo>
          <collectinfo termmode="match" dtmf="14"/>
       </dialogexit>
    </event>
   </mscivr>
        
6.2.5. Subscriptions and Notifications
6.2.5. 订阅和通知

In this example, a looped dialog is started with subscription for notifications each time the user input matches the collect grammar:

在本例中,每次用户输入与collect语法匹配时,都会启动一个循环对话框,并订阅通知:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS">
     <dialog repeatCount="0">
      <collect maxdigits="2"/>
     </dialog>
     <subscribe>
      <dtmfsub matchmode="collect"/>
     </subscribe>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="7HDY839:HJKSkyHS">
     <dialog repeatCount="0">
      <collect maxdigits="2"/>
     </dialog>
     <subscribe>
      <dtmfsub matchmode="collect"/>
     </subscribe>
    </dialogstart>
   </mscivr>
        

Each time the user input the DTMF matching the grammar, the following notification event would be sent:

每次用户输入与语法匹配的DTMF时,将发送以下通知事件:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dtmfnotify matchmode="collect" dtmf="12"
        timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="vxi81">
       <dtmfnotify matchmode="collect" dtmf="12"
        timestamp="2008-05-12T12:13:14Z"/>
    </event>
   </mscivr>
        

If no user input was provided, or the input did not match the grammar, the dialog would continue to loop until terminated (or an error occurred).

如果没有提供用户输入,或者输入与语法不匹配,对话框将继续循环,直到终止(或发生错误)。

6.2.6. Dialog Repetition until DTMF Collection Complete
6.2.6. 对话框重复,直到DTMF采集完成

This example is a prompt and collect dialog to collect the PIN from the user. The repeatUntilComplete attribute in the <dialog> is set

此示例是一个提示和收集对话框,用于从用户处收集PIN。设置<dialog>中的repeatUntilComplete属性

to true in this case so that when the grammar collection is complete, the MS automatically terminates the dialog repeat cycle and reports the results in a <dialogexit> event.

在这种情况下为true,以便在语法收集完成时,MS自动终止对话框重复周期,并在<dialogexit>事件中报告结果。

      <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
       <dialogstart connectionid="7HDY839:HJKSkyHS">
        <dialog repeatCount="3" repeatUntilComplete="true">
         <prompt bargein="true">
           <media loc="http://example.com/please_enter_your_pin.vox"/>
         </prompt>
         <collect maxdigits="4"/>
        </dialog>
       </dialogstart>
      </mscivr>
        
      <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
       <dialogstart connectionid="7HDY839:HJKSkyHS">
        <dialog repeatCount="3" repeatUntilComplete="true">
         <prompt bargein="true">
           <media loc="http://example.com/please_enter_your_pin.vox"/>
         </prompt>
         <collect maxdigits="4"/>
        </dialog>
       </dialogstart>
      </mscivr>
        

If the user barges in on the prompt and <collect> receives DTMF input matching the grammar, the dialog cycle is considered complete and the MS returns the following:

如果用户在提示下闯入,<collect>接收到与语法匹配的DTMF输入,则认为对话循环已完成,MS返回以下信息:

      <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
       <event dialogid="vxi81">
         <dialogexit status="1">
           <promptinfo duration="3654" termmode="bargein"/>
           <collectinfo dtmf="1234" termmode="match"/>
         </dialogexit>
       </event>
      </mscivr>
        
      <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
       <event dialogid="vxi81">
         <dialogexit status="1">
           <promptinfo duration="3654" termmode="bargein"/>
           <collectinfo dtmf="1234" termmode="match"/>
         </dialogexit>
       </event>
      </mscivr>
        

If no user input was provided, or the input did not match the grammar, the dialog would loop for a maximum of 3 times.

如果没有提供用户输入,或者输入与语法不匹配,则对话框最多会循环3次。

6.3. Other Dialog Languages
6.3. 其他对话语言

The following example requests that a VoiceXML dialog is started:

以下示例请求启动VoiceXML对话框:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart dialogid="d2"
                 connectionid="7HDY839:HJKSkyHS"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <params>
      <param name="prompt1">nfs://nas01/media1.3gp</param>
      <param name="prompt2">nfs://nas01/media2.3gp</param>
     </params>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart dialogid="d2"
                 connectionid="7HDY839:HJKSkyHS"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <params>
      <param name="prompt1">nfs://nas01/media1.3gp</param>
      <param name="prompt2">nfs://nas01/media2.3gp</param>
     </params>
    </dialogstart>
   </mscivr>
        

If the MS does not support this dialog language, then the response would have the status code 421 (Section 4.5). However, if it does support the VoiceXML dialog language, it would respond with a 200 status, activate the VoiceXML dialog, and make the <params> available to the VoiceXML script as described in Section 9.

如果MS不支持此对话语言,则响应的状态代码为421(第4.5节)。但是,如果它确实支持VoiceXML对话框语言,它将以200状态响应,激活VoiceXML对话框,并使<params>可用于VoiceXML脚本,如第9节所述。

When the VoiceXML dialog exits, exit namelist parameters are specified using <params> in the dialogexit event:

当VoiceXML对话框退出时,使用dialogexit事件中的<params>指定退出名称列表参数:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d2">
      <dialogexit status="1">
       <params>
        <param name="username">peter</param>
        <param name="pin">1234</param>
       </params>
      </dialogexit>
     </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <event dialogid="d2">
      <dialogexit status="1">
       <params>
        <param name="username">peter</param>
        <param name="pin">1234</param>
       </params>
      </dialogexit>
     </event>
   </mscivr>
        
6.4. Foreign Namespace Attributes and Elements
6.4. 外部名称空间属性和元素

An MS can support attributes and elements from foreign namespaces within the <mscivr> element. For example, the MS could support a <listen> element (in a foreign namespace) for speech recognition by analogy to how <collect> supports DTMF collection.

MS可以支持<mscivr>元素中来自外部名称空间的属性和元素。例如,MS可以支持一个<listen>元素(在外部名称空间中)用于语音识别,就像<collect>支持DTMF收集一样。

In the following example, a prompt and collect request is extended with a <listen> element:

在以下示例中,使用<listen>元素扩展提示和收集请求:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
    xmlns:ex="http://www.example.com/mediactrl/extensions/1">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt>
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <collect timeout="30s" maxdigits="4"/>
     <ex:listen maxtimeout="30s" >
       <ex:grammar src="http://example.org/pin.grxml"/>
     </ex:listen>
    </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
    xmlns:ex="http://www.example.com/mediactrl/extensions/1">
    <dialogstart connectionid="7HDY839:HJKSkyHS~HUwkuh7ns">
    <dialog>
     <prompt>
      <media loc="http://www.example.com/prompt1.wav"/>
     </prompt>
     <collect timeout="30s" maxdigits="4"/>
     <ex:listen maxtimeout="30s" >
       <ex:grammar src="http://example.org/pin.grxml"/>
     </ex:listen>
    </dialog>
    </dialogstart>
   </mscivr>
        

In the <mscivr> root element, the xmlns:ex attribute declares that "ex" is associated with the foreign namespace URI "http://www.example.com/mediactrl/extensions/1". The <ex:listen>,

在<mscivr>根元素中,xmlns:ex属性声明“ex”与外部命名空间URI关联http://www.example.com/mediactrl/extensions/1". <ex:listen>,

its attributes, and child elements are associated with this namespace. This <listen> could be defined so that it activates an SRGS grammar and listens for user input matching the grammar in a similar manner to DTMF collection.

它的属性和子元素与此命名空间相关联。这个<listen>可以定义为激活SRGS语法,并以与DTMF集合类似的方式侦听与语法匹配的用户输入。

If an MS receives this request but does not support the <listen> element, then it would send a 431 response:

如果MS收到此请求但不支持<listen>元素,则会发送431响应:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="431" dialogid="d560"
     reason="unsupported foreign listen element"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <response status="431" dialogid="d560"
     reason="unsupported foreign listen element"/>
   </mscivr>
        

If the MS does support this foreign element, it would send a 200 response and start the dialog with speech recognition. When the dialog exits, it provides information about the <listen> execution within <dialogexit>, again using elements in a foreign namespace such as <listeninfo> below:

如果MS确实支持此外来元素,它将发送200响应并启动语音识别对话框。当对话框退出时,它会再次使用外部名称空间中的元素(如下面的<listeninfo>)提供有关<dialogexit>中的<listen>执行的信息:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
    xmlns:ex="http://www.example.com/mediactrl/extensions/1">
    <event dialogid="d560">
      <dialogexit status="1">
       <ex:listeninfo speech="1 2 3 4" termmode="match"/>
      </dialogexit>
     </event>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr"
    xmlns:ex="http://www.example.com/mediactrl/extensions/1">
    <event dialogid="d560">
      <dialogexit status="1">
       <ex:listeninfo speech="1 2 3 4" termmode="match"/>
      </dialogexit>
     </event>
   </mscivr>
        

Note that in reply the AS sends a Control Framework 200 response even though the notification event contains an element in a foreign namespace that it might not understand.

请注意,作为回复,AS将发送一个Control Framework 200响应,即使通知事件包含它可能无法理解的外部命名空间中的元素。

7. Security Considerations
7. 安全考虑

As this Control Package processes XML markup, implementations MUST address the security considerations of [RFC3023].

由于此控制包处理XML标记,因此实现必须解决[RFC3023]的安全注意事项。

Implementations of this Control Package MUST address security, confidentiality, and integrity of messages transported over the Control Channel as described in Section 12 of "Media Control Channel Framework" [RFC6230], including Transport Level Protection, Control Channel Policy 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 [RFC6230] for further details on this topic. Finally, implementations MUST address security,

此控制包的实施必须解决“媒体控制通道框架”[RFC6230]第12节所述的通过控制通道传输的消息的安全性、机密性和完整性,包括传输级别保护、控制通道策略管理和会话建立。此外,实现必须在SIP信令和相关RTP媒体流方面解决与MS的用户代理会话的安全性、机密性和完整性;有关此主题的更多详细信息,请参阅[RFC6230]。最后,实现必须解决安全问题,

confidentiality, and integrity of sessions where, following a URI scheme, an MS uploads recordings or retrieves documents and resources (e.g., fetching a grammar document from a web server using HTTPS).

会话的机密性和完整性,其中MS根据URI方案上载录制或检索文档和资源(例如,使用HTTPS从web服务器获取语法文档)。

Adequate transport protection and authentication are critical, especially when the implementation is deployed in open networks. If the implementation fails to correctly address these issues, it risks exposure to malicious attacks, including (but not limited to):

充分的传输保护和身份验证至关重要,尤其是在开放网络中部署实现时。如果实施未能正确解决这些问题,则有可能遭受恶意攻击,包括(但不限于):

Denial of Service: An attacker could insert a request message into the transport stream causing specific dialogs on the MS to be terminated immediately. For example, <dialogterminate dialogid="XXXX" immediate="true">, where the value of "XXXX" could be guessed or discovered by auditing active dialogs on the MS 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.

拒绝服务:攻击者可将请求消息插入传输流,导致MS上的特定对话框立即终止。例如,<dialogterminate dialogid=“XXXX”immediate=“true”>,其中“XXXX”的值可以通过使用<audit>请求审核MS上的活动对话框来猜测或发现。同样,攻击者可以模拟MS并将错误响应插入传输流,从而拒绝AS对包功能的访问。

Resource Exhaustion: An attacker could insert into the Control Channel new request messages (or modify existing ones) with, for instance, <dialogprepare> elements with a very long fetchtimeout attribute and a bogus source URL. At some point, this will exhaust the number of connections that the MS is able to make.

资源耗尽:攻击者可以在控制通道中插入新的请求消息(或修改现有的请求消息),例如,<dialogprepare>元素具有很长的fetchtimeout属性和虚假的源URL。在某些情况下,这将耗尽MS能够建立的连接数。

Phishing: An attacker with access to the Control Channel could modify the "loc" attribute of the <media> element in a dialog to point to some other audio file that had different information from the original. This modified file could include a different phone number for people to call if they want more information or need to provide additional information (such as governmental, corporate, or financial information).

网络钓鱼:可以访问控制通道的攻击者可以修改对话框中<media>元素的“loc”属性,以指向与原始音频文件信息不同的其他音频文件。如果人们想要更多信息或需要提供更多信息(如政府、公司或财务信息),此修改后的文件可能会包含一个不同的电话号码,供他们拨打。

Data Theft: An attacker could modify a <record> element in the Control Channel so as to add a new recording location:

数据盗窃:攻击者可以修改控制通道中的<record>元素,以便添加新的记录位置:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart>
     <dialog>
      <record>
         <media type="audio/x-wav" loc="(Good URI)"/>
         <media type="audio/x-wav" loc="(Attacker's URI)"/>
      </record>
     </dialog>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart>
     <dialog>
      <record>
         <media type="audio/x-wav" loc="(Good URI)"/>
         <media type="audio/x-wav" loc="(Attacker's URI)"/>
      </record>
     </dialog>
    </dialogstart>
   </mscivr>
        

The recorded data would be uploaded to two locations indicated by the "{Good URI}" and the "{Attacker's URI}". This allows the attacker to steal the recorded audio (which could include sensitive or confidential information) without the originator of the request necessarily being aware of the theft.

记录的数据将上载到“{Good URI}”和“{攻击者的URI}”指示的两个位置。这使得攻击者能够窃取录制的音频(可能包括敏感或机密信息),而请求的发起人不一定知道被盗情况。

The Media Control Channel Framework permits additional security policy management, including resource access and Control Channel usage, to be specified at the Control Package level beyond that specified for the Media Control Channel Framework (see Section 12.3 of [RFC6230]).

介质控制通道框架允许在控制包级别指定额外的安全策略管理,包括资源访问和控制通道使用,超出介质控制通道框架的规定(见[RFC6230]第12.3节)。

Since creation of IVR dialogs is associated with media processing resources (e.g., DTMF detectors, media playback and recording, etc.) on the MS, the security policy for this Control Package needs to address how such dialogs are securely managed across more than one Control Channel. Such a security policy is only useful for secure, confidential, and integrity-protected channels. The identity of Control Channels is determined by the channel identifier, i.e., the value of the cfw-id attribute in the SDP and 'Dialog-ID' header in the channel protocol (see [RFC6230]). Channels are the same if they have the same identifier; otherwise, they are different. This Control Package imposes the following additional security policies:

由于IVR对话框的创建与MS上的媒体处理资源(如DTMF检测器、媒体播放和录制等)相关,因此该控制包的安全策略需要解决如何跨多个控制通道安全管理此类对话框的问题。这样的安全策略仅对安全、机密和完整性保护的通道有用。控制通道的标识由通道标识符确定,即SDP中的cfw id属性值和通道协议中的“对话id”头(参见[RFC6230])。如果通道具有相同的标识符,则它们是相同的;否则,它们就不同了。此控制包强制实施以下附加安全策略:

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 send the request.

响应:MS必须仅使用与发送请求相同的控制通道向对话框管理或审核请求发送响应。

Notifications: The MS MUST only send notification events for a dialog using the same Control Channel as it received the request creating the dialog.

通知:MS必须仅使用与接收到创建对话框的请求相同的控制通道发送对话框的通知事件。

Auditing: The MS MUST only provide audit information about dialogs that have been created on the same Control Channel as the one upon the <audit> request is sent.

审核:MS必须仅提供与发送<audit>请求时在同一控制通道上创建的对话框有关的审核信息。

Rejection: The MS SHOULD reject requests to audit or manipulate an existing dialog on the MS if the channel is not the same as the one used when the dialog was created. The MS rejects a request by sending a Control Framework 403 response (see Section 7.4 and Section 12.3 of [RFC6230]). For example, if a channel with identifier 'cfw1234' has been used to send a request to create a particular dialog and the MS receives on channel 'cfw98969' a request to audit or terminate the dialog, then the MS sends a 403 framework response.

拒绝:如果通道与创建对话框时使用的通道不同,则MS应拒绝审核或操作MS上现有对话框的请求。MS通过发送控制框架403响应拒绝请求(参见[RFC6230]第7.4节和第12.3节)。例如,如果标识符为“cfw1234”的通道已用于发送创建特定对话框的请求,并且MS在通道“cfw98969”上收到审核或终止对话框的请求,则MS发送403框架响应。

There can be valid reasons why an implementation does not reject an audit or dialog manipulation request on a different channel from the one that created the dialog. For example, a system administrator might require a separate channel to audit dialog resources created by system users and to terminate dialogs consuming excessive system resources. Alternatively, a system monitor or resource broker might require a separate channel to audit dialogs managed by this package on an MS. However, the full implications need to be understood by the implementation and carefully weighted before accepting these reasons as valid. If the reasons are not valid in their particular circumstances, the MS rejects such requests.

实现不拒绝与创建对话框的通道不同的通道上的审核或对话框操作请求可能有合理的原因。例如,系统管理员可能需要一个单独的通道来审核系统用户创建的对话框资源,并终止消耗过多系统资源的对话框。或者,系统监视器或资源代理可能需要一个单独的通道来审核此包在MS上管理的对话框。但是,在接受这些理由之前,实现需要理解全部含义并仔细权衡。如果理由在其特定情况下无效,MS将拒绝此类请求。

There can also be valid reasons for 'channel handover' including high availability support or where one AS needs to take over management of dialogs after the AS that created them has failed. This could be achieved by the Control Channels using the same channel identifier, one after another. For example, assume a channel is created with the identifier 'cfw1234' and the channel is used to create dialogs on the MS. This channel (and associated SIP dialog) then terminates due to a failure on the AS. As permitted by the Control Framework, the channel identifier 'cfw1234' could then be reused so that another channel is created with the same identifier 'cfw1234', allowing it to 'take over' management of the dialogs on the MS. Again, the implementation needs to understand the full implications and carefully weight them before accepting these reasons as valid. If the reasons are not valid for their particular circumstances, the MS uses the appropriate SIP mechanisms to prevent session establishment when the same channel identifier is used in setting up another Control Channel (see Section 4 of [RFC6230]).

“通道切换”也可能有合理的理由,包括高可用性支持,或者在创建对话框的AS失败后,AS需要接管对话框的管理。这可以通过一个接一个地使用相同信道标识符的控制信道来实现。例如,假设使用标识符“cfw1234”创建了一个通道,该通道用于在MS上创建对话。然后,该通道(以及相关的SIP对话)由于AS上的故障而终止。在控制框架允许的情况下,然后可以重用通道标识符“cfw1234”,以便使用相同标识符“cfw1234”创建另一个通道,从而允许其再次“接管”MS上的对话框管理,在接受这些理由之前,实施需要理解全部含义并仔细权衡它们。如果原因对其特定情况无效,则当在设置另一个控制信道时使用相同的信道标识符时,MS使用适当的SIP机制来防止会话建立(参见[RFC6230]第4节)。

8. IANA Considerations
8. IANA考虑

IANA has registered a new Media Control Channel Framework Package, a new XML namespace, a new XML schema, and a new MIME type.

IANA已经注册了一个新的媒体控制通道框架包、一个新的XML名称空间、一个新的XML模式和一个新的MIME类型。

IANA has further created a new registry for IVR prompt variable types.

IANA还为IVR提示变量类型创建了一个新的注册表。

8.1. Control Package Registration
8.1. 控制包注册

This section registers a new Media Control Channel Framework package, per the instructions in Section 13.1 of [RFC6230].

根据[RFC6230]第13.1节中的说明,本节注册了一个新的媒体控制通道框架包。

Package Name: msc-ivr/1.0 Published Specification(s): RFC 6231 Person & email address to contact for further information: IETF MEDIACTRL working group (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org).

包名称:msc ivr/1.0发布规范:RFC 6231联系人和电子邮件地址,以获取更多信息:IETF MEDIACTRL工作组(mediactrl@ietf.org),Scott McGlashan(smcg。stds01@mcglashan.org).

8.2. URN Sub-Namespace Registration
8.2. URN子命名空间注册

This section registers a new XML namespace, "urn:ietf:params:xml:ns:msc-ivr", per the guidelines in RFC 3688 [RFC3688].

本节根据RFC 3688[RFC3688]中的指南注册了一个新的XML名称空间“urn:ietf:params:XML:ns:msc ivr”。

  URI: urn:ietf:params:xml:ns:msc-ivr
  Registrant Contact: IETF MEDIACTRL working group (mediactrl@ietf.org),
     Scott McGlashan (smcg.stds01@mcglashan.org).
  XML:
     BEGIN
     <?xml version="1.0"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
       <head>
        <title>Media Control Channel Framework IVR
               Package attributes</title>
       </head>
       <body>
        <h1>Namespace for Media Control Channel
            Framework IVR Package attributes</h1>
        <h2>urn:ietf:params:xml:ns:msc-ivr</h2>
          <p>See <a href="http://www.rfc-editor.org/rfc/rfc6231.txt">
          RFC 6231</a>.</p>
       </body>
      </html>
     END
        
  URI: urn:ietf:params:xml:ns:msc-ivr
  Registrant Contact: IETF MEDIACTRL working group (mediactrl@ietf.org),
     Scott McGlashan (smcg.stds01@mcglashan.org).
  XML:
     BEGIN
     <?xml version="1.0"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
       <head>
        <title>Media Control Channel Framework IVR
               Package attributes</title>
       </head>
       <body>
        <h1>Namespace for Media Control Channel
            Framework IVR Package attributes</h1>
        <h2>urn:ietf:params:xml:ns:msc-ivr</h2>
          <p>See <a href="http://www.rfc-editor.org/rfc/rfc6231.txt">
          RFC 6231</a>.</p>
       </body>
      </html>
     END
        
8.3. XML Schema Registration
8.3. XML模式注册

This section registers an XML schema as per the guidelines in RFC 3688 [RFC3688].

本节根据RFC 3688[RFC3688]中的指南注册XML模式。

URI: urn:ietf:params:xml:ns:msc-ivr Registrant Contact: IETF MEDIACTRL working group (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). Schema: The XML for this schema can be found in Section 5 of this document.

URI:urn:ietf:params:xml:ns:msc ivr注册人联系人:ietf MEDIACTRL工作组(mediactrl@ietf.org),Scott McGlashan(smcg。stds01@mcglashan.org). 模式:此模式的XML可以在本文档的第5节中找到。

8.4. MIME Media Type Registration for application/msc-ivr+xml
8.4. 应用程序/msc ivr+xml的MIME媒体类型注册

This section registers the application/msc-ivr+xml MIME type.

本节注册应用程序/msc ivr+xml MIME类型。

Type name: application

类型名称:应用程序

Subtype name: msc-ivr+xml

子类型名称:msc ivr+xml

Required parameters: (none)

所需参数:(无)

Optional parameters: charset Indicates the character encoding of enclosed XML. Default is UTF-8.

可选参数:字符集表示封闭XML的字符编码。默认值为UTF-8。

Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], Section 3.2.

编码注意事项:使用XML,它可以使用8位字符,具体取决于所使用的字符编码。参见RFC 3023[RFC3023],第3.2节。

Security considerations: No known security considerations outside of those provided by the Media Control Channel Framework IVR Package.

安全注意事项:除了介质控制通道框架IVR包提供的安全注意事项外,没有已知的安全注意事项。

Interoperability considerations: This content type provides constructs for the Media Control Channel Framework IVR package.

互操作性注意事项:此内容类型为媒体控制通道框架IVR包提供构造。

Published specification: RFC 6231

已发布规范:RFC 6231

Applications that use this media type: Implementations of the Media Control Channel Framework IVR package.

使用此媒体类型的应用程序:媒体控制通道框架IVR包的实现。

      Additional information:
         Magic number(s):  (none)
         File extension(s):  (none)
         Macintosh file type code(s):  (none)
        
      Additional information:
         Magic number(s):  (none)
         File extension(s):  (none)
         Macintosh file type code(s):  (none)
        
      Person & email address to contact for further information:
         Scott McGlashan <smcg.stds01@mcglashan.org>
        
      Person & email address to contact for further information:
         Scott McGlashan <smcg.stds01@mcglashan.org>
        

Intended usage: LIMITED USE

预期用途:有限用途

Author/Change controller: The IETF

作者/变更控制者:IETF

Other information: None.

其他资料:无。

8.5. IVR Prompt Variable Type Registration Information
8.5. IVR提示变量类型注册信息

This specification establishes an IVR Prompt Variable Type registry for Control Packages and initiates its population as follows. New entries in this registry must be published in an RFC (either as an IETF submission or RFC Editor submission), using the IANA policy [RFC5226] "RFC Required".

本规范为控制包建立IVR Prompt变量类型注册表,并按如下方式启动其填充。必须使用IANA策略[RFC5226]“需要RFC”在RFC中发布此注册表中的新条目(作为IETF提交或RFC编辑器提交)。

   Variable Type      Control Package  Reference
   -------------      ---------------  ---------
       date            msc-ivr/1.0     [RFC6231]
       time            msc-ivr/1.0     [RFC6231]
       digits          msc-ivr/1.0     [RFC6231]
        
   Variable Type      Control Package  Reference
   -------------      ---------------  ---------
       date            msc-ivr/1.0     [RFC6231]
       time            msc-ivr/1.0     [RFC6231]
       digits          msc-ivr/1.0     [RFC6231]
        

The following information MUST be provided in an RFC in order to register a new prompt variable type:

为了注册新的提示变量类型,RFC中必须提供以下信息:

Variable Type: The value for the <variable> type attribute (Section 4.3.1.1.1). The RFC MUST specify permitted values (if any) for the format attribute of <variable> and how the value attribute is rendered for different values of the format attribute. The RFC MUST NOT weaken but MAY strengthen the valid values of <variable> attributes defined in Section 4.3.1.1.1 of this specification.

变量类型:<Variable>Type属性的值(第4.3.1.1.1节)。RFC必须为<variable>的format属性指定允许的值(如果有),以及如何为format属性的不同值呈现value属性。RFC不得削弱,但可增强本规范第4.3.1.1.1节中定义的<variable>属性的有效值。

Reference: The RFC number in which the variable type is registered.

引用:注册变量类型的RFC编号。

Control Package: The Control Package associated with the IVR variable type.

控制包:与IVR变量类型关联的控制包。

Person & address to contact for further information:

联系人和地址以获取更多信息:

9. Using VoiceXML as a Dialog Language
9. 使用VoiceXML作为对话语言

The IVR Control Package allows, but does not require, the MS to support other dialog languages by referencing an external dialog document. This section provides MS implementations that support the VoiceXML dialog language ([VXML20], [VXML21], [VXML30]) with additional details about using these dialogs in this package. This section is normative for an MS that supports the VoiceXML dialog language.

IVR控制包允许但不要求MS通过引用外部对话文档来支持其他对话语言。本节提供了支持VoiceXML对话框语言([VXML20]、[VXML21]、[VXML30])的MS实现,并提供了有关在此包中使用这些对话框的更多详细信息。本节是支持VoiceXML对话语言的MS的规范。

This section covers preparing (Section 9.1), starting (Section 9.2), terminating (Section 9.3), and exiting (Section 9.4) VoiceXML dialogs as well as handling VoiceXML call transfer (Section 9.5).

本节包括准备(第9.1节)、启动(第9.2节)、终止(第9.3节)和退出(第9.4节)VoiceXML对话框以及处理VoiceXML呼叫转移(第9.5节)。

9.1. Preparing a VoiceXML Dialog
9.1. 准备VoiceXML对话框

A VoiceXML dialog is prepared by sending the MS a request containing a <dialogprepare> element (Section 4.2.1). The type attribute is set to "application/voicexml+xml" and the src attribute to the URI of the VoiceXML document that is to be prepared by the MS. For example:

VoiceXML对话框是通过向MS发送包含<dialogprepare>元素的请求来准备的(第4.2.1节)。type属性设置为“application/voicexml+xml”,src属性设置为将由MS准备的voicexml文档的URI。例如:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare type="application/voicexml+xml"
                   src="http://www.example.com/mydialog.vxml"
                   fetchtimeout="15s"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogprepare type="application/voicexml+xml"
                   src="http://www.example.com/mydialog.vxml"
                   fetchtimeout="15s"/>
   </mscivr>
        

The VoiceXML dialog environment uses the <dialogprepare> request as an opportunity to fetch and validate the initial document indicated by the src attribute along with any resources referenced in the VoiceXML document marked as prefetchable. The maxage and maxstale attributes, if specified, control how the initial VoiceXML document is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout attribute is not defined in VoiceXML for an initial document, but the MS MUST support this attribute in its VoiceXML environment.

VoiceXML对话框环境使用<dialogprepare>请求作为获取和验证由src属性指示的初始文档以及标记为可预取的VoiceXML文档中引用的任何资源的机会。maxage和maxstale属性(如果指定)控制如何使用HTTP获取初始VoiceXML文档(请参见[RFC2616])。请注意,VoiceXML中没有为初始文档定义fetchtimeout属性,但MS必须在其VoiceXML环境中支持该属性。

If a <params> child element of <dialogprepare> is specified, then the MS MUST map the parameter information into a VoiceXML session variable object as described in Section 9.2.3.

如果指定了<dialogprepare>的<params>子元素,则MS必须将参数信息映射到VoiceXML会话变量对象中,如第9.2.3节所述。

The success or failure of the VoiceXML document preparation is reported in the MS response. For example, if the VoiceXML document cannot be retrieved, then a 409 error response is returned. If the document is syntactically invalid according to VoiceXML, then a 400 response is returned. If successful, the response includes a dialogid attribute whose value the AS can use in <dialogstart> element to start the prepared dialog.

在MS响应中报告VoiceXML文档准备的成功或失败。例如,如果无法检索VoiceXML文档,则返回409错误响应。根据VoiceXML,如果文档在语法上无效,则返回400响应。如果成功,响应将包括一个dialogid属性,其值AS可在<dialogstart>元素中用于启动准备好的对话框。

9.2. Starting a VoiceXML Dialog
9.2. 启动VoiceXML对话框

A VoiceXML dialog is started by sending the MS a request containing a <dialogstart> element (Section 4.2.2). If a VoiceXML dialog has already been prepared using <dialogprepare>, then the MS starts the dialog indicated by the prepareddialogid attribute. Otherwise, a new VoiceXML dialog can be started by setting the type attribute to "application/voicexml+xml" and the src attribute to the URI of the VoiceXML document. For example:

VoiceXML对话框通过向MS发送包含<dialogstart>元素的请求来启动(第4.2.2节)。如果已使用<dialogprepare>准备VoiceXML对话框,则MS将启动prepareddialogid属性指示的对话框。否则,可以通过将type属性设置为“application/VoiceXML+xml”,将src属性设置为VoiceXML文档的URI来启动新的VoiceXML对话框。例如:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s"/>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s"/>
   </mscivr>
        

The maxage and maxstale attributes, if specified, control how the initial VoiceXML document is fetched using HTTP (see [RFC2616]). Note that the fetchtimeout attribute is not defined in VoiceXML for an initial document, but the MS MUST support this attribute in its

maxage和maxstale属性(如果指定)控制如何使用HTTP获取初始VoiceXML文档(请参见[RFC2616])。请注意,VoiceXML中没有为初始文档定义fetchtimeout属性,但MS必须在其初始文档中支持该属性

VoiceXML environment. Note also that support for <dtmfsub> subscriptions (Section 4.2.2.1.1) and their associated dialog notification events is not defined in VoiceXML. If such a subscription is specified in a <dialogstart> request, then the MS sends a 439 error response (see Section 4.5).

VoiceXML环境。还请注意,VoiceXML中未定义对<dtmfsub>订阅(第4.2.2.1.1节)及其相关对话框通知事件的支持。如果在<dialogstart>请求中指定了此类订阅,则MS将发送439错误响应(参见第4.5节)。

The success or failure of starting a VoiceXML dialog is reported in the MS response as described in Section 4.2.2.

启动VoiceXML对话框的成功或失败将在MS响应中报告,如第4.2.2节所述。

When the MS starts a VoiceXML dialog, the MS MUST map session information into a VoiceXML session variable object. There are 3 types of session information: protocol information (Section 9.2.1), media stream information (Section 9.2.2), and parameter information (Section 9.2.3).

当MS启动VoiceXML对话框时,MS必须将会话信息映射到VoiceXML会话变量对象中。有3种类型的会话信息:协议信息(第9.2.1节)、媒体流信息(第9.2.2节)和参数信息(第9.2.3节)。

9.2.1. Session Protocol Information
9.2.1. 会话协议信息

If the connectionid attribute is specified, the MS assigns protocol information from the SIP dialog associated with the connection to the following session variables in VoiceXML:

如果指定了connectionid属性,则MS会将与连接相关联的SIP对话框中的协议信息分配给VoiceXML中的以下会话变量:

session.connection.local.uri Evaluates to the SIP URI specified in the 'To:' header of the initial INVITE.

session.connection.local.uri计算结果为初始邀请的“to:”标头中指定的SIP uri。

session.connection.remote.uri Evaluates to the SIP URI specified in the 'From:' header of the initial INVITE.

session.connection.remote.uri计算为初始邀请的“From:”标头中指定的SIP uri。

session.connection.originator Evaluates to the value of session.connection.remote (MS receives inbound connections but does not create outbound connections).

session.connection.originator计算为session.connection.remote的值(MS接收入站连接,但不创建出站连接)。

session.connection.protocol.name Evaluates to "sip". Note that this is intended to reflect the use of SIP in general, and does not distinguish between whether the connection accesses the MS via SIP or SIP Secure (SIPS) procedures.

session.connection.protocol.name的计算结果为“sip”。请注意,这是为了反映SIP的一般使用,并不区分连接是通过SIP还是SIP安全(SIPS)过程访问MS。

session.connection.protocol.version Evaluates to "2.0".

session.connection.protocol.version的计算结果为“2.0”。

session.connection.redirect This array is populated by information contained in the 'History-Info' header [RFC4244] in the initial INVITE or is otherwise undefined. Each entry (hi-entry) in the 'History-Info' header is mapped, in the order it appeared in the 'History-Info' header, into an element of the session.connection.redirect array. Properties of each element of the array are determined as follows:

session.connection.redirect此数组由初始邀请中“History Info”标头[RFC4244]中包含的信息填充,或者未定义。“历史信息”标题中的每个条目(hi条目)都按照其在“历史信息”标题中出现的顺序映射到session.connection.redirect数组的元素中。数组中每个元素的属性确定如下:

uri Set to the hi-targeted-to-uri value of the History-Info entry

uri设置为历史信息项的hi目标uri值

pi Set to 'true' if hi-targeted-to-uri contains a 'Privacy=history' parameter, or if the INVITE 'Privacy' header includes 'history'; 'false' otherwise

如果针对uri的hi包含“Privacy=history”参数,或者如果邀请“Privacy”标头包含“history”,则pi设置为“true”否则为假

si Set to the value of the 'si' parameter if it exists; undefined otherwise

si设置为“si”参数的值(如果存在);未另行定义

reason Set verbatim to the value of the 'Reason' parameter of hi-targeted-to-uri

reason将verbatim设置为目标为uri的hi的'reason'参数的值

session.connection.aai Evaluates to the value of a SIP header with the name "aai" if present; undefined otherwise.

session.connection.aai计算为名为“aai”(如果存在)的SIP头的值;否则未定义。

session.connection.protocol.sip.requesturi This is an associative array where the array keys and values are formed from the URI parameters on the SIP Request-URI of the initial INVITE. The array key is the URI parameter name. The corresponding array value is obtained by evaluating the URI parameter value as a string. In addition, the array's toString() function returns the full SIP Request-URI.

session.connection.protocol.sip.requesturi这是一个关联数组,其中数组键和值由初始INVITE的sip请求URI上的URI参数组成。数组键是URI参数名。通过将URI参数值作为字符串进行求值,可以获得相应的数组值。此外,数组的toString()函数返回完整的SIP请求URI。

session.connection.protocol.sip.headers This is an associative array where each key in the array is the non-compact name of a SIP header in the initial INVITE converted to lowercase (note the case conversion does not apply to the header value). If multiple header fields of the same field name are present, the values are combined into a single comma-separated value. Implementations MUST at a minimum include the 'Call-ID' header and MAY include other headers. For example, session.connection.protocol.sip.headers["call-id"] evaluates to the Call-ID of the SIP dialog.

session.connection.protocol.sip.headers这是一个关联数组,其中数组中的每个键都是初始INVITE中sip头的非压缩名称,转换为小写(注意,大小写转换不适用于头值)。如果存在具有相同字段名的多个标题字段,则这些值将合并为一个逗号分隔的值。实现必须至少包括“Call ID”头,还可能包括其他头。例如,session.connection.protocol.sip.headers[“call id”]计算为sip对话框的调用id。

If a conferenceid attribute is specified, then the MS populates the following session variables in VoiceXML:

如果指定了conferenceid属性,则MS将在VoiceXML中填充以下会话变量:

session.conference.name Evaluates to the value of the conferenceid attribute.

session.conference.name计算为conferenceid属性的值。

9.2.2. Session Media Stream Information
9.2.2. 会话媒体流信息

The media streams of the connection or conference to use for the dialog are described in Section 4.2.2, including use of <stream> elements (Section 4.2.2.2) if specified. The MS maps media stream information into the VoiceXML session variable session.connection.protocol.sip.media for a connection, and session.conference.media for a conference. In both variables, the value of the variable is an array where each array element is an object with the following properties:

第4.2.2节描述了用于对话的连接或会议的媒体流,包括<stream>元素(第4.2.2.2节)的使用(如有规定)。MS将媒体流信息映射到VoiceXML会话变量session.connection.protocol.sip.media(用于连接)和session.conference.media(用于会议)。在这两个变量中,变量的值都是一个数组,其中每个数组元素都是具有以下属性的对象:

type This required property indicates the type of the media associated with the stream (see Section 4.2.2.2 <stream> type attribute definition).

类型此必需属性表示与流关联的媒体类型(参见第4.2.2.2节<流>类型属性定义)。

direction This required property indicates the directionality of the media relative to the endpoint of the dialog (see Section 4.2.2.2 <stream> direction attribute definition).

方向此必需属性表示媒体相对于对话框端点的方向性(参见第4.2.2.2节<流>方向属性定义)。

format This property is optional. If defined, the value of the property is an array. Each array element is an object that specifies information about one format of the media stream. The object contains at least one property called name whose value is the subtype name of the media format [RFC4855]. Other properties may be defined with string values; these correspond to required and, if defined, optional parameters of the format.

格式化此属性是可选的。如果已定义,则该属性的值为数组。每个数组元素都是一个对象,用于指定有关媒体流的一种格式的信息。该对象至少包含一个名为name的属性,其值为媒体格式[RFC4855]的子类型名称。其他属性可以用字符串值定义;这些参数对应于格式的必需参数和可选参数(如果已定义)。

As a consequence of this definition, when a connectionid is specified there is an array entry in session.connection.protocol.sip.media for each media stream used by the VoiceXML dialog. For an example, consider a connection with bidirectional G.711 mu-law audio sampled at 8kHz where the dialog is started with

根据此定义,当指定connectionid时,VoiceXML对话框使用的每个媒体流在session.connection.protocol.sip.media中都有一个数组项。例如,考虑在8kHz采样的双向G.711MU法律音频的连接,其中对话开始。

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <stream media="audio" direction="recvonly"/>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <stream media="audio" direction="recvonly"/>
    </dialogstart>
   </mscivr>
        

In this case, session.connection.protocol.sip.media[0].type evaluates to "audio", session.connection.protocol.sip.media[0].direction evaluates to "recvonly" (i.e., the endpoint only receives media from the dialog -- the endpoint does not send media to the dialog), session.connection.protocol.sip.media[0].format[0].name evaluates to "PCMU", and session.connection.protocol.sip.media[0].format[0].rate evaluates to "8000".

在本例中,session.connection.protocol.sip.media[0]。类型的计算结果为“音频”,session.connection.protocol.sip.media[0]。方向的计算结果为“recvonly”(即端点仅从对话框接收媒体,而不向对话框发送媒体),session.connection.protocol.sip.media[0]。格式[0]。名称的计算结果为“PCMU”,和session.connection.protocol.sip.media[0]。格式[0]。速率计算为“8000”。

Note that the session variable is updated if the connection or conference media session characteristics for the VoiceXML dialog change (e.g., due to a SIP re-INVITE).

请注意,如果VoiceXML对话框的连接或会议媒体会话特征发生更改(例如,由于SIP重新邀请),则会更新会话变量。

9.2.3. Session Parameter Information
9.2.3. 会话参数信息

Parameter information is specified in the <params> child element of <dialogprepare> and <dialogstart> elements, where each parameter is specified using a <param> element. The MS maps parameter information into VoiceXML session variables as follows:

参数信息在<dialogprepare>和<dialogstart>元素的<params>子元素中指定,其中每个参数都使用<param>元素指定。MS将参数信息映射到VoiceXML会话变量中,如下所示:

session.values This is an associative array mapped to the <params> element. It is undefined if no <params> element is specified. If a <params> element is specified in both <dialogprepare> and <dialogstart> elements for the same dialog, then the array is first initialized with the <params> specified in the <dialogprepare> element and then updated with the <params> specified in the <dialogstart> element; in cases of conflict, the <dialogstart> parameter value take priority. Array keys and values are formed from <param> children of the <params> element. Each array key is the value of the name attribute of a <param> element. If the same name is used in more than one <param> element, then the array key is associated with the last <param> in document order. The corresponding value for each key is an object with two required properties: a "type" property evaluating to the value of the type attribute, and a "content" property evaluating to the content of the <param>. In addition, this object's toString() function returns the value of the "content" property as a string.

session.values这是映射到<params>元素的关联数组。如果未指定<params>元素,则它是未定义的。如果在同一对话框的<dialogprepare>和<dialogstart>元素中都指定了<params>元素,则首先使用<dialogprepare>元素中指定的<params>初始化数组,然后使用<dialogstart>元素中指定的<params>更新数组;在冲突的情况下,<dialogstart>参数值优先。数组键和值由<params>元素的<param>子元素构成。每个数组键都是<param>元素的name属性的值。如果在多个<param>元素中使用相同的名称,则数组键将与文档顺序中的最后一个<param>相关联。每个键对应的值是一个具有两个必需属性的对象:一个“类型”属性求值为type属性的值,另一个“内容”属性求值为<param>的内容。此外,该对象的toString()函数以字符串形式返回“content”属性的值。

For example, a VoiceXML dialog started with one parameter:

例如,VoiceXML对话框以一个参数开始:

   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <params>
      <param name="mode">playannouncement</param>
     </params>
    </dialogstart>
   </mscivr>
        
   <mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
    <dialogstart connectionid="ssd3r3:sds345b"
                 type="application/voicexml+xml"
                 src="http://www.example.com/mydialog.vxml"
                 fetchtimeout="15s">
     <params>
      <param name="mode">playannouncement</param>
     </params>
    </dialogstart>
   </mscivr>
        

In this case, session.values would be defined with one item in the array where session.values['mode'].type evaluates to "text/plain" (the default value), session.values['mode'].content evaluates to "playannouncement", and session.values['mode'].toString() also evaluates to "playannouncement".

在这种情况下,session.values将使用数组中的一个项进行定义,其中session.values['mode'].type的计算结果为“text/plain”(默认值),session.values['mode'].content的计算结果为“playannouncement”,session.values['mode'].toString()的计算结果也为“playannouncement”。

The MS sends an error response (see Section 4.2.2) if a <param> is not supported by the MS (e.g., the parameter type is not supported).

如果MS不支持<param>(例如,不支持参数类型),MS将发送错误响应(见第4.2.2节)。

9.3. Terminating a VoiceXML Dialog
9.3. 终止VoiceXML对话框

When the MS receives a request with a <dialogterminate> element (Section 4.2.3), the MS throws a 'connection.disconnect.hangup' event into the specified VoiceXML dialog. Note that if the immediate attribute has the value true, then the MS MUST NOT return <params> information when the VoiceXML dialog exits (even if the VoiceXML dialog provides such information) -- see Section 9.4.

当MS收到带有<dialogterminate>元素(第4.2.3节)的请求时,MS将向指定的VoiceXML对话框抛出“connection.disconnect.hangup”事件。请注意,如果immediate属性的值为true,则当VoiceXML对话框退出时,MS不得返回<params>信息(即使VoiceXML对话框提供此类信息)——请参见第9.4节。

If the connection or conference associated with the VoiceXML dialog terminates, then the MS throws a 'connection.disconnect.hangup' event into the specified VoiceXML dialog.

如果与VoiceXML对话框关联的连接或会议终止,则MS将向指定的VoiceXML对话框抛出“connection.disconnect.hangup”事件。

9.4. Exiting a VoiceXML Dialog
9.4. 退出VoiceXML对话框

The MS sends a <dialogexit> notification event (Section 4.2.5.1) when the VoiceXML dialog is complete, has been terminated, or exits due to an error. The <dialogexit> status attribute specifies the status of the VoiceXML dialog when it exits and its <params> child element specifies information, if any, returned from the VoiceXML dialog.

当VoiceXML对话框完成、终止或因错误退出时,MS发送<dialogexit>通知事件(第4.2.5.1节)。<dialogexit>status属性指定VoiceXML对话框退出时的状态,其<params>子元素指定从VoiceXML对话框返回的信息(如果有)。

A VoiceXML dialog exits when it processes a <disconnect> element, an <exit> element, or an implicit exit according to the VoiceXML form interpretation algorithm (FIA). If the VoiceXML dialog executes a <disconnect> and then subsequently executes an <exit> with namelist information, the namelist information from the <exit> element is discarded.

VoiceXML对话框在根据VoiceXML表单解释算法(FIA)处理<disconnect>元素、<exit>元素或隐式退出时退出。如果VoiceXML对话框执行<disconnect>,然后使用名称列表信息执行<exit>,则<exit>元素中的名称列表信息将被丢弃。

The MS reports namelist variables in the <params> element of the <dialogexit>. Each <param> reports on a namelist variable. The MS set the <param> name attribute to the name of the VoiceXML variable. The MS sets the <param> type attribute according to the type of the VoiceXML variable. The MS sets the <param> type to 'text/plain' when the VoiceXML variable is a simple ECMAScript value. If the VoiceXML variable is a recording, the MS sets the <param> type to the MIME media type of the recording and encodes the recorded content as CDATA in the <param> (see Section 4.2.6.1 for an example). If the VoiceXML variable is a complex ECMAScript value (e.g., object, array, etc.), the MS sets the <param> type to 'application/json' and converts the variable value to its JSON value equivalent [RFC4627]. The behavior resulting from specifying an ECMAScript object with circular references is not defined.

MS在<dialogexit>的<params>元素中报告名称列表变量。每个<param>报告一个名称列表变量。MS将<param>name属性设置为VoiceXML变量的名称。MS根据VoiceXML变量的类型设置<param>type属性。当VoiceXML变量是简单的ECMAScript值时,MS将<param>类型设置为“text/plain”。如果VoiceXML变量是录制,则MS将<param>类型设置为录制的MIME媒体类型,并将录制的内容编码为<param>中的CDATA(示例请参见第4.2.6.1节)。如果VoiceXML变量是复杂的ECMAScript值(例如,对象、数组等),则MS将<param>类型设置为“application/json”,并将变量值转换为其等效的json值[RFC4627]。未定义使用循环引用指定ECMAScript对象所产生的行为。

   If the expr attribute is specified on the VoiceXML <exit> element
   instead of the namelist attribute, the MS creates a <param> element
   with the reserved name '__exit'.  If the value is an ECMAScript
   literal, the <param> type is 'text/plain' and the content is the
   literal value.  If the value is a variable, the <param> type and
        
   If the expr attribute is specified on the VoiceXML <exit> element
   instead of the namelist attribute, the MS creates a <param> element
   with the reserved name '__exit'.  If the value is an ECMAScript
   literal, the <param> type is 'text/plain' and the content is the
   literal value.  If the value is a variable, the <param> type and
        
   content are set in the same way as a namelist variable; for example,
   an expr attribute referencing a variable with a simple ECMAScript
   value has the type 'text/plain' and the content is set to the
   ECMAScript value.  To allow the AS to differentiate between a
   <dialogexit> notification event resulting from a VoiceXML
   <disconnect> from one resulting from an <exit>, the MS creates a
   <param> with the reserved name '__reason', the type 'text/plain', and
   a value of "disconnect" (without brackets) to reflect the use of
   VoiceXML's <disconnect> element, and the value of "exit" (without
   brackets) to an explicit <exit> in the VoiceXML dialog.  If the
   VoiceXML session terminates for other reasons (such as encountering
   an error), this parameter MAY be omitted or take on platform-specific
   values prefixed with an underscore.
        
   content are set in the same way as a namelist variable; for example,
   an expr attribute referencing a variable with a simple ECMAScript
   value has the type 'text/plain' and the content is set to the
   ECMAScript value.  To allow the AS to differentiate between a
   <dialogexit> notification event resulting from a VoiceXML
   <disconnect> from one resulting from an <exit>, the MS creates a
   <param> with the reserved name '__reason', the type 'text/plain', and
   a value of "disconnect" (without brackets) to reflect the use of
   VoiceXML's <disconnect> element, and the value of "exit" (without
   brackets) to an explicit <exit> in the VoiceXML dialog.  If the
   VoiceXML session terminates for other reasons (such as encountering
   an error), this parameter MAY be omitted or take on platform-specific
   values prefixed with an underscore.
        

Table 2 provides some examples of VoiceXML <exit> usage and the corresponding <params> element in the <dialogexit> notification event. It assumes the following VoiceXML variable names and values: userAuthorized=true, pin=1234, and errors=0. The <param> type attributes ('text/plain') are omitted for clarity.

表2提供了VoiceXML<exit>用法的一些示例以及<dialogexit>通知事件中相应的<params>元素。它假定以下VoiceXML变量名称和值:userAuthorized=true,pin=1234,errors=0。为清晰起见,<param>类型属性('text/plain')被省略。

   +------------------------+------------------------------------------+
   | <exit> Usage           | <params> Result                          |
   +------------------------+------------------------------------------+
   | <exit>                 | <params> <param                          |
   |                        | name="__reason">exit</param> </params>   |
   | <exit expr="5">        | <params> <param                          |
   |                        | name="__reason">exit</param> <param      |
   |                        | name="__exit">5</param> </params>        |
   | <exit expr="'done'">   | <params> <param                          |
   |                        | name="__reason">exit</param> <param      |
   |                        | name="__exit">'done'</param> </params>   |
   | <exit                  | <params> <param                          |
   | expr="userAuthorized"> | name="__reason">exit</param> <param      |
   |                        | name="__exit">true</param> </params>     |
   | <exit namelist="pin    | <params> <param                          |
   | errors">               | name="__reason">exit</param> <param      |
   |                        | name="pin">1234</param> <param           |
   |                        | name="errors">0</param> </params>        |
   +------------------------+------------------------------------------+
        
   +------------------------+------------------------------------------+
   | <exit> Usage           | <params> Result                          |
   +------------------------+------------------------------------------+
   | <exit>                 | <params> <param                          |
   |                        | name="__reason">exit</param> </params>   |
   | <exit expr="5">        | <params> <param                          |
   |                        | name="__reason">exit</param> <param      |
   |                        | name="__exit">5</param> </params>        |
   | <exit expr="'done'">   | <params> <param                          |
   |                        | name="__reason">exit</param> <param      |
   |                        | name="__exit">'done'</param> </params>   |
   | <exit                  | <params> <param                          |
   | expr="userAuthorized"> | name="__reason">exit</param> <param      |
   |                        | name="__exit">true</param> </params>     |
   | <exit namelist="pin    | <params> <param                          |
   | errors">               | name="__reason">exit</param> <param      |
   |                        | name="pin">1234</param> <param           |
   |                        | name="errors">0</param> </params>        |
   +------------------------+------------------------------------------+
        
                 Table 2: VoiceXML <exit> Mapping Examples
        
                 Table 2: VoiceXML <exit> Mapping Examples
        
9.5. Call Transfer
9.5. 呼叫转移

While VoiceXML is at its core a dialog language, it also provides optional call transfer capability. It is NOT RECOMMENDED to use VoiceXML's call transfer capability in networks involving application servers. Rather, the AS itself can provide call routing

虽然VoiceXML的核心是一种对话语言,但它还提供可选的呼叫转移功能。不建议在涉及应用服务器的网络中使用VoiceXML的呼叫转移功能。相反,AS本身可以提供呼叫路由

functionality by taking signaling actions based on the data returned to it, either through VoiceXML's own data submission mechanisms or through the mechanism described in Section 9.4. If the MS encounters a VoiceXML dialog requesting call transfer capability, the MS SHOULD raise an error event in the VoiceXML dialog execution context: an error.unsupported.transfer.blind event if blind transfer is requested, error.unsupported.transfer.bridge if bridge transfer is requested, or error.unsupported.transfer.consultation if consultation transfer is requested.

通过VoiceXML自己的数据提交机制或第9.4节中描述的机制,基于返回给它的数据采取信号操作。如果MS遇到请求呼叫转移功能的VoiceXML对话框,则MS应在VoiceXML对话框执行上下文中引发错误事件:如果请求盲转移,则引发error.unsupported.transfer.blind事件;如果请求桥接转移,则引发error.unsupported.transfer.bridge事件,如果请求咨询转移,则返回error.unsupported.transfer.consultation。

10. Contributors
10. 贡献者

Asher Shiratzky provided valuable support and contributions to the early versions of this document.

Asher Shiratzky为本文件的早期版本提供了宝贵的支持和贡献。

The authors would like to thank the IVR design team consisting of Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, Mary Barnes, and Steve Buko, who provided valuable feedback, input, and text to this document.

作者要感谢由Roni Even、Lorenzo Miniero、Adnan Saleem、Diego Besprosvan、Mary Barnes和Steve Buko组成的IVR设计团队,他们为本文件提供了宝贵的反馈、输入和文本。

11. Acknowledgments
11. 致谢

The authors would like to thank Adnan Saleem, Gene Shtirmer, Dave Burke, Dan York, Steve Buko, Jean-Francois Bertrand, Henry Lum, and Lorenzo Miniero for expert reviews of this work.

作者要感谢Adnan Saleem、Gene Shtimer、Dave Burke、Dan York、Steve Buko、Jean-Francois Bertrand、Henry Lum和Lorenzo Miniero对这项工作的专家评论。

Ben Campbell carried out the RAI expert review on this specification and provided a great deal of invaluable input. Donald Eastlake carried out a thorough security review.

Ben Campbell对本规范进行了RAI专家评审,并提供了大量宝贵的意见。唐纳德·伊斯特莱克进行了彻底的安全审查。

12. References
12. 工具书类
12.1. Normative References
12.1. 规范性引用文件

[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.

[RFC2045]Freed,N.和N.Borenstein,“多用途Internet邮件扩展(MIME)第一部分:Internet邮件正文格式”,RFC 20451996年11月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998.

[RFC2277]Alvestrand,H.,“IETF字符集和语言政策”,BCP 18,RFC 2277,1998年1月。

[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

[RFC2616]菲尔丁,R.,盖蒂斯,J.,莫卧儿,J.,弗莱斯蒂克,H.,马斯特,L.,利奇,P.,和T.伯纳斯李,“超文本传输协议——HTTP/1.1”,RFC 2616,1999年6月。

[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

[RFC2818]Rescorla,E.,“TLS上的HTTP”,RFC2818,2000年5月。

[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[RFC3023]Murata,M.,St.Laurent,S.,和D.Kohn,“XML媒体类型”,RFC 3023,2001年1月。

[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.

[RFC3688]Mealling,M.“IETF XML注册表”,BCP 81,RFC 3688,2004年1月。

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,2005年1月。

[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and Registration Procedures", BCP 13, RFC 4288, December 2005.

[RFC4288]Freed,N.和J.Klensin,“介质类型规范和注册程序”,BCP 13,RFC 4288,2005年12月。

[RFC4574] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006.

[RFC4574]Levin,O.和G.Camarillo,“会话描述协议(SDP)标签属性”,RFC 45742006年8月。

[RFC4627] Crockford, D., "The application/json Media Type for JavaScript Object Notation (JSON)", RFC 4627, July 2006.

[RFC4627]Crockford,D.,“JavaScript对象表示法(json)的应用程序/json媒体类型”,RFC4627,2006年7月。

[RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", BCP 47, RFC 4647, September 2006.

[RFC4647]Phillips,A.和M.Davis,“语言标记的匹配”,BCP 47,RFC 4647,2006年9月。

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,2008年5月。

[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.

[RFC5234]Crocker,D.和P.Overell,“语法规范的扩充BNF:ABNF”,STD 68,RFC 5234,2008年1月。

[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009.

[RFC5646]Phillips,A.和M.Davis,“识别语言的标记”,BCP 47,RFC 5646,2009年9月。

[RFC6230] Boulton, C., Melanchuk, T., and S. McGlashan, "Media Control Channel Framework", RFC 6230, May 2011.

[RFC6230]Boulton,C.,Melanchuk,T.,和S.McGrashan,“媒体控制渠道框架”,RFC 6230,2011年5月。

[SRGS] Hunt, A. and S. McGlashan, "Speech Recognition Grammar Specification Version 1.0", W3C Recommendation, March 2004.

[SRGS]Hunt,A.和S.McGrashan,“语音识别语法规范1.0版”,W3C建议,2004年3月。

[VXML20] McGlashan, S., Burnett, D., Carter, J., Danielsen, P., Ferrans, J., Hunt, A., Lucas, B., Porter, B., Rehor, K., and S. Tryphonas, "Voice Extensible Markup Language (VoiceXML) Version 2.0", W3C Recommendation, March 2004.

[VXML20]McGrashan,S.,Burnett,D.,Carter,J.,Danielsen,P.,Ferrans,J.,Hunt,A.,Lucas,B.,Porter,B.,Rehor,K.,和S.Tryphonas,“语音可扩展标记语言(VoiceXML)2.0版”,W3C建议,2004年3月。

[VXML21] Oshry, M., Auburn, RJ., Baggia, P., Bodell, M., Burke, D., Burnett, D., Candell, E., Carter, J., McGlashan, S., Lee, A., Porter, B., and K. Rehor, "Voice Extensible Markup Language (VoiceXML) Version 2.1", W3C Recommendation, June 2007.

[VXML21]Oshry,M.,Auburn,RJ.,Baggia,P.,Bodell,M.,Burke,D.,Burnett,D.,Candell,E.,Carter,J.,McGlashan,S.,Lee,A.,Porter,B.,和K.Rehor,“语音可扩展标记语言(VoiceXML)版本2.1”,W3C建议,2007年6月。

[W3C.REC-SMIL2-20051213] Jansen, J., Layaida, N., Michel, T., Grassel, G., Koivisto, A., Bulterman, D., Mullender, S., and D. Zucker, "Synchronized Multimedia Integration Language (SMIL 2.1)", World Wide Web Consortium Recommendation REC-SMIL2- 20051213, December 2005, <http://www.w3.org/TR/2005/REC-SMIL2-20051213>.

[W3C.REC-SMIL2-20051213]Jansen,J.,Layaida,N.,Michel,T.,Grassel,G.,Koivisto,A.,Bulterman,D.,Mullender,S.,和D.Zucker,“同步多媒体集成语言(SMIL 2.1)”,万维网联盟建议REC-SMIL2-20051213,2005年12月<http://www.w3.org/TR/2005/REC-SMIL2-20051213>.

[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Third Edition)", W3C Recommendation, February 2004.

[XML]Bray,T.,Paoli,J.,Sperberg McQueen,C M.,Maler,E.,和F.Yergeau,“可扩展标记语言(XML)1.0(第三版)”,W3C建议,2004年2月。

[XMLSchema:Part2] Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes Second Edition", W3C Recommendation, October 2004.

[XMLSchema:Part2]Biron,P.和A.Malhotra,“XMLSchema第2部分:数据类型第二版”,W3C推荐,2004年10月。

12.2. Informative References
12.2. 资料性引用

[CCXML10] Auburn, R J., "Voice Browser Call Control: CCXML Version 1.0", W3C Candidate Recommendation (work in progress), April 2010.

[CCXML10]Auburn,R J.,“语音浏览器呼叫控制:CCXML 1.0版”,W3C候选人推荐(正在进行的工作),2010年4月。

[H.248.9] "Gateway control protocol: Advanced media server packages", ITU-T Recommendation H.248.9.

[H.248.9]“网关控制协议:高级媒体服务器包”,ITU-T建议H.248.9。

[IANA] IANA, "RTP Payload Types", available from http://www.iana.org.

[IANA]IANA,“RTP有效负载类型”,可从http://www.iana.org.

[MIME.mediatypes] IANA, "MIME Media Types", available from http://www.iana.org.

[MIME.mediatypes]IANA,“MIME媒体类型”,可从http://www.iana.org.

[MIXER-CP] McGlashan, S., Melanchuk, T., and C. Boulton, "A Mixer Control Package for the Media Control Channel Framework", Work in Progress, January 2011.

[MIXER-CP]McGlashan,S.,Melanchuk,T.,和C.Boulton,“媒体控制频道框架的混音控制包”,正在进行的工作,2011年1月。

[RFC2897] Cromwell, D., "Proposal for an MGCP Advanced Audio Package", RFC 2897, August 2000.

[RFC2897]克伦威尔,D.,“MGCP高级音频包提案”,RFC 28972000年8月。

[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.

[RFC3261]Rosenberg,J.,Schulzrinne,H.,Camarillo,G.,Johnston,A.,Peterson,J.,Sparks,R.,Handley,M.,和E.Schooler,“SIP:会话启动协议”,RFC 3261,2002年6月。

[RFC4240] Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network Media Services with SIP", RFC 4240, December 2005.

[RFC4240]Burger,E.,Van Dyke,J.,和A.Spitzer,“具有SIP的基本网络媒体服务”,RFC 42402005年12月。

[RFC4244] Barnes, M., "An Extension to the Session Initiation Protocol (SIP) for Request History Information", RFC 4244, November 2005.

[RFC4244]Barnes,M.,“请求历史信息会话启动协议(SIP)的扩展”,RFC 4244,2005年11月。

[RFC4267] Froumentin, M., "The W3C Speech Interface Framework Media Types: application/voicexml+xml, application/ssml+xml, application/srgs, application/srgs+xml, application/ ccxml+xml, and application/pls+xml", RFC 4267, November 2005.

[RFC4267]Froumentin,M.“W3C语音接口框架媒体类型:应用程序/voicexml+xml、应用程序/ssml+xml、应用程序/srgs、应用程序/srgs+xml、应用程序/ccxml+xml和应用程序/pls+xml”,RFC 4267,2005年11月。

[RFC4281] Gellens, R., Singer, D., and P. Frojdh, "The Codecs Parameter for "Bucket" Media Types", RFC 4281, November 2005.

[RFC4281]Gellens,R.,Singer,D.,和P.Frojdh,“桶”媒体类型的编解码器参数”,RFC 42812005年11月。

[RFC4730] Burger, E. and M. Dolly, "A Session Initiation Protocol (SIP) Event Package for Key Press Stimulus (KPML)", RFC 4730, November 2006.

[RFC4730]Burger,E.和M.Dolly,“按键刺激(KPML)的会话启动协议(SIP)事件包”,RFC 4730,2006年11月。

[RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals", RFC 4733, December 2006.

[RFC4733]Schulzrinne,H.和T.Taylor,“DTMF数字、电话音和电话信号的RTP有效载荷”,RFC 47332006年12月。

[RFC4855] Casner, S., "Media Type Registration of RTP Payload Formats", RFC 4855, February 2007.

[RFC4855]Casner,S.,“RTP有效负载格式的媒体类型注册”,RFC 48552007年2月。

[RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server Control Markup Language (MSCML) and Protocol", RFC 5022, September 2007.

[RFC5022]Van Dyke,J.,Burger,E.,和A.Spitzer,“媒体服务器控制标记语言(MSCML)和协议”,RFC 5022,2007年9月。

[RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol Requirements", RFC 5167, March 2008.

[RFC5167]Dolly,M.和R.Een,“媒体服务器控制协议要求”,RFC 51672008年3月。

[RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup Language (MSML)", RFC 5707, February 2010.

[RFC5707]Saleem,A.,Xin,Y.,和G.Sharratt,“媒体服务器标记语言(MSML)”,RFC 57072010年2月。

[VXML30] McGlashan, S., Burnett, D., Akolkar, R., Auburn, RJ., Baggia, P., Barnett, J., Bodell, M., Carter, J., Oshry, M., Rehor, K., Young, M., and R. Hosn, "Voice Extensible Markup Language (VoiceXML) Version 3.0", W3C Working Draft, August 2010.

[VXML30]McGlashan,S.,Burnett,D.,Akolkar,R.,Auburn,RJ.,Baggia,P.,Barnett,J.,Bodell,M.,Carter,J.,Oshry,M.,Rehor,K.,Young,M.,和R.Hosn,“语音可扩展标记语言(VoiceXML)3.0版”,W3C工作草案,2010年8月。

[XCON-DATA-MODEL] Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, "Conference Information Data Model for Centralized Conferencing (XCON)", Work in Progress, April 2011.

[XCON-DATA-MODEL]Novo,O.,Camarillo,G.,Morgan,D.,和J.Urpalainen,“集中会议的会议信息数据模型(XCON)”,正在进行的工作,2011年4月。

Authors' Addresses

作者地址

Scott McGlashan Hewlett-Packard

斯科特·麦克拉桑·惠普公司

   EMail: smcg.stds01@mcglashan.org
        
   EMail: smcg.stds01@mcglashan.org
        

Tim Melanchuk Rainwillow

蒂姆·梅兰丘克·雷威洛

   EMail: timm@rainwillow.com
        
   EMail: timm@rainwillow.com
        

Chris Boulton NS-Technologies

克里斯·博尔顿技术公司

   EMail: chris@ns-technologies.com
        
   EMail: chris@ns-technologies.com