VXML.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:8k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. #ifndef _VXML_H
  2. #define _VXML_H
  3. /****************License************************************************
  4.  * Vocalocity OpenVXI
  5.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public License
  8.  * as published by the Free Software Foundation; either version 2
  9.  * of the License, or (at your option) any later version.
  10.  *  
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  20.  * registered trademarks of Vocalocity, Inc. 
  21.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  22.  * by Vocalocity.
  23.  ***********************************************************************/
  24. #include "VXItypes.h"
  25. enum VXMLElementType {
  26.   NODE_ASSIGN,
  27.   NODE_AUDIO,
  28.   NODE_BLOCK,
  29.   NODE_CANCEL,
  30.   NODE_CATCH,
  31.   NODE_CHOICE,        // 5
  32.   NODE_CLEAR,
  33.   NODE_DATA,
  34.   NODE_DISCONNECT,
  35.   NODE_ELSE,
  36.   NODE_ELSEIF,        // 10
  37.   NODE_ENUMERATE,
  38.   NODE_EXIT,
  39.   NODE_FIELD,
  40.   NODE_FILLED,
  41.   NODE_FOREACH,       // 15
  42.   NODE_FORM,
  43.   NODE_GOTO,
  44.   NODE_GRAMMAR,
  45.   NODE_IF,
  46.   NODE_INITIAL,       // 20
  47.   NODE_LINK,
  48.   NODE_LOG,
  49.   NODE_MENU,
  50.   NODE_MARK,
  51.   NODE_META,          // 25
  52.   NODE_OBJECT,
  53.   NODE_OPTION,
  54.   NODE_PARAM,
  55.   NODE_PROMPT,
  56.   NODE_PROPERTY,      // 30
  57.   NODE_RECORD,
  58.   NODE_RETURN,
  59.   NODE_REPROMPT,
  60.   NODE_SCRIPT,
  61.   NODE_SUBDIALOG,     // 35
  62.   NODE_SUBMIT,
  63.   NODE_THROW,
  64.   NODE_TRANSFER,
  65.   NODE_VALUE,
  66.   NODE_VAR,           // 40
  67.   NODE_VXML,
  68.   DEFAULTS_ROOT,
  69.   DEFAULTS_LANGUAGE
  70. };
  71. enum VXMLAttributeType {
  72.   ATTRIBUTE__ITEMNAME,
  73.   ATTRIBUTE_AAI,
  74.   ATTRIBUTE_AAIEXPR,
  75.   ATTRIBUTE_ACCEPT,
  76.   ATTRIBUTE_APPLICATION,
  77.   ATTRIBUTE_ARCHIVE,
  78.   ATTRIBUTE_ARRAY,
  79.   ATTRIBUTE_AUDIOBASE,
  80.   ATTRIBUTE_BARGEIN,
  81.   ATTRIBUTE_BARGEINTYPE,
  82.   ATTRIBUTE_BASE,
  83.   ATTRIBUTE_BEEP,
  84.   ATTRIBUTE_BRIDGE,
  85.   ATTRIBUTE_CHARSET,
  86.   ATTRIBUTE_CLASSID,
  87.   ATTRIBUTE_CODEBASE,
  88.   ATTRIBUTE_CODETYPE,
  89.   ATTRIBUTE_COND,
  90.   ATTRIBUTE_CONNECTTIME,
  91.   ATTRIBUTE_CONTENT,
  92.   ATTRIBUTE_COUNT,
  93.   ATTRIBUTE_DATA,
  94.   ATTRIBUTE_DEST,
  95.   ATTRIBUTE_DESTEXPR,
  96.   ATTRIBUTE_DTMF,
  97.   ATTRIBUTE_DTMFTERM,
  98.   ATTRIBUTE_ENCTYPE,
  99.   ATTRIBUTE_EVENT,
  100.   ATTRIBUTE_EVENTEXPR,
  101.   ATTRIBUTE_EXPR,
  102.   ATTRIBUTE_EXPRITEM,
  103.   ATTRIBUTE_FETCHAUDIO,
  104.   ATTRIBUTE_FETCHHINT,
  105.   ATTRIBUTE_FETCHTIMEOUT,
  106.   ATTRIBUTE_FINALSILENCE,
  107.   ATTRIBUTE_HTTP_EQUIV,
  108.   ATTRIBUTE_ID,
  109.   ATTRIBUTE_ITEM,
  110.   ATTRIBUTE_LABEL,
  111.   ATTRIBUTE_MAXAGE,
  112.   ATTRIBUTE_MAXSTALE,
  113.   ATTRIBUTE_MAXTIME,
  114.   ATTRIBUTE_MESSAGE,
  115.   ATTRIBUTE_MESSAGEEXPR,
  116.   ATTRIBUTE_METHOD,
  117.   ATTRIBUTE_MODAL,
  118.   ATTRIBUTE_MODE,
  119.   ATTRIBUTE_NAME,
  120.   ATTRIBUTE_NAMEEXPR,
  121.   ATTRIBUTE_NAMELIST,
  122.   ATTRIBUTE_NEXT,
  123.   ATTRIBUTE_NEXTITEM,
  124.   ATTRIBUTE_ROOT,
  125.   ATTRIBUTE_SCOPE,
  126.   ATTRIBUTE_SLOT,
  127.   ATTRIBUTE_SRC,
  128.   ATTRIBUTE_SRCEXPR,
  129.   ATTRIBUTE_TAGFORMAT,
  130.   ATTRIBUTE_TIMEOUT,
  131.   ATTRIBUTE_TRANSFERAUDIO,
  132.   ATTRIBUTE_TYPE,
  133.   ATTRIBUTE_VALUE,
  134.   ATTRIBUTE_VALUETYPE,
  135.   ATTRIBUTE_VERSION,
  136.   ATTRIBUTE_WEIGHT,
  137.   ATTRIBUTE_XMLLANG,
  138.   ATTRIBUTE_XMLNS
  139. };
  140. typedef const VXIchar * const VXML_SYMBOL;
  141. // Attribute values
  142. static VXML_SYMBOL ATTRVAL_TRANSFERTYPE_BRIDGE   = L"bridge";
  143. static VXML_SYMBOL ATTRVAL_TRANSFERTYPE_BLIND    = L"blind";
  144. static VXML_SYMBOL ATTRVAL_TRANSFERTYPE_CONSULTATION = L"consultation";
  145. // Standard Event definitions
  146. static VXML_SYMBOL EV_CANCEL             = L"cancel";
  147. static VXML_SYMBOL EV_TELEPHONE_HANGUP   = L"connection.disconnect.hangup";
  148. static VXML_SYMBOL EV_TELEPHONE_TRANSFER = L"connection.disconnect.transfer";
  149. static VXML_SYMBOL EV_EXIT               = L"exit";
  150. static VXML_SYMBOL EV_HELP               = L"help";
  151. static VXML_SYMBOL EV_NOINPUT            = L"noinput";
  152. static VXML_SYMBOL EV_NOMATCH            = L"nomatch";
  153. static VXML_SYMBOL EV_MAXSPEECH          = L"maxspeechtimeout";
  154. static VXML_SYMBOL EV_ERROR_BADFETCH     = L"error.badfetch";
  155. static VXML_SYMBOL EV_ERROR_BADURI       = L"error.badfetch.baduri";
  156. static VXML_SYMBOL EV_ERROR_BADDIALOG    = L"error.badfetch.baddialog";
  157. static VXML_SYMBOL EV_ERROR_APP_BADURI   = L"error.badfetch.applicationuri";
  158. static VXML_SYMBOL EV_ERROR_SEMANTIC     = L"error.semantic";
  159. static VXML_SYMBOL EV_ERROR_ECMASCRIPT   = L"error.semantic.ecmascript";
  160. static VXML_SYMBOL EV_ERROR_RECORD_PARAM = L"error.semantic.recordparameter";
  161. static VXML_SYMBOL EV_ERROR_BAD_THROW    = L"error.semantic.no_event_in_throw";
  162. static VXML_SYMBOL EV_ERROR_NO_GRAMMARS  = L"error.semantic.nogrammars";
  163. static VXML_SYMBOL EV_ERROR_NOAUTHORIZ   = L"error.noauthorization";
  164. static VXML_SYMBOL EV_ERROR_NORESOURCE   = L"error.noresource";
  165. static VXML_SYMBOL EV_UNSUPPORT_FORMAT   = L"error.unsupported.format";
  166. static VXML_SYMBOL EV_UNSUPPORT_OBJECT   = L"error.unsupported.objectname";
  167. static VXML_SYMBOL EV_UNSUPPORT_LANGUAGE = L"error.unsupported.language";
  168. static VXML_SYMBOL EV_UNSUPPORT_TRANSFER = L"error.unsupported.transfer";
  169. static VXML_SYMBOL EV_UNSUPPORT_RECORD_M = L"error.unsupported.record.modal";
  170. static VXML_SYMBOL EV_UNSUPPORT_BUILTIN  = L"error.unsupported.builtin";
  171. // Transfer events
  172. static VXML_SYMBOL EV_TELEPHONE_NOAUTHORIZ = L"error.connection.noauthorization";
  173. static VXML_SYMBOL EV_TELEPHONE_BAD_DEST = L"error.connection.baddestination";
  174. static VXML_SYMBOL EV_TELEPHONE_NOROUTE  = L"error.connection.noroute";
  175. static VXML_SYMBOL EV_TELEPHONE_NORESOURCE = L"error.connection.noresource";
  176. static VXML_SYMBOL EV_TELEPHONE_UNSUPPORT_BLIND = L"error.unsupported.transfer.blind";
  177. static VXML_SYMBOL EV_TELEPHONE_UNSUPPORT_BRIDGE = L"error.unsupported.transfer.bridge";
  178. static VXML_SYMBOL EV_TELEPHONE_UNSUPPORT_CONSULTATION = L"error.unsupported.transfer.consultation";
  179. static VXML_SYMBOL EV_TELEPHONE_UNSUPPORT_URI = L"error.unsupported.uri";
  180.  
  181. // Outside VXML specification
  182. static VXML_SYMBOL EV_ERROR_BAD_GRAMMAR  = L"error.grammar";
  183. static VXML_SYMBOL EV_ERROR_BAD_INLINE   = L"error.grammar.inlined";
  184. static VXML_SYMBOL EV_ERROR_BAD_CHOICE   = L"error.grammar.choice";
  185. static VXML_SYMBOL EV_ERROR_BAD_OPTION   = L"error.grammar.option";
  186. static VXML_SYMBOL EV_ERROR_RECOGNITION  = L"error.recognition";
  187. static VXML_SYMBOL EV_ERROR_RECORD       = L"error.record";
  188. static VXML_SYMBOL EV_ERROR_TRANSFER     = L"error.transfer";
  189. static VXML_SYMBOL EV_ERROR_OBJECT       = L"error.object";
  190. static VXML_SYMBOL EV_ERROR_STACK_OVERFLOW = L"error.interpreter.stack_overflow";
  191. static VXML_SYMBOL EV_ERROR_LOOP_COUNT     = L"error.interpreter.max_loop_count_exceeded";
  192. // Property names
  193. static const VXIchar * const PROP_BARGEIN             = L"bargein";
  194. static const VXIchar * const PROP_BARGEINTYPE         = L"bargeintype";
  195. static const VXIchar * const PROP_COMPLETETIME        = L"completetimeout";
  196. static const VXIchar * const PROP_CONFIDENCE          = L"confidencelevel";
  197. static const VXIchar * const PROP_INCOMPLETETIME      = L"incompletetimeout";
  198. static const VXIchar * const PROP_INPUTMODES          = L"inputmodes";
  199. static const VXIchar * const PROP_INTERDIGITTIME      = L"interdigittimeout";
  200. static const VXIchar * const PROP_MAXNBEST            = L"maxnbest";
  201. static const VXIchar * const PROP_SENSITIVITY         = L"sensitivity";
  202. static const VXIchar * const PROP_SPEEDVSACC          = L"speedvsaccuracy";
  203. static const VXIchar * const PROP_TERMCHAR            = L"termchar";
  204. static const VXIchar * const PROP_TERMTIME            = L"termtimeout";
  205. static const VXIchar * const PROP_TIMEOUT             = L"timeout";
  206. static const VXIchar * const PROP_UNIVERSALS          = L"universals";
  207. static const VXIchar * const PROP_MAXSPEECHTIME       = L"maxspeechtimeout";
  208. static const VXIchar * const PROP_RECORDUTTERANCE     = L"recordutterance";
  209. static const VXIchar * const PROP_RECORDUTTERANCETYPE = L"recordutterancetype";
  210. #endif