📄 vxml_8h-source.html
字号:
00113 <span class="comment"> * Revision 1.16 2002/08/28 08:04:31 craigs</span>00114 <span class="comment"> * Reorganised VXMLSession class as per contributed code</span>00115 <span class="comment"> *</span>00116 <span class="comment"> * Revision 1.15 2002/08/28 05:10:27 craigs</span>00117 <span class="comment"> * Added ability to load resources via URI</span>00118 <span class="comment"> * Added cache</span>00119 <span class="comment"> *</span>00120 <span class="comment"> * Revision 1.14 2002/08/27 02:19:13 craigs</span>00121 <span class="comment"> * Added <break> command in prompt blocks</span>00122 <span class="comment"> * Fixed potential deadlock</span>00123 <span class="comment"> *</span>00124 <span class="comment"> * Revision 1.13 2002/08/15 04:11:16 robertj</span>00125 <span class="comment"> * Fixed shutdown problems with closing vxml session, leaks a thread.</span>00126 <span class="comment"> * Fixed potential problems with indirect channel Close() function.</span>00127 <span class="comment"> *</span>00128 <span class="comment"> * Revision 1.12 2002/08/08 01:03:19 craigs</span>00129 <span class="comment"> * Added function to re-enable automatic call clearing on script end</span>00130 <span class="comment"> *</span>00131 <span class="comment"> * Revision 1.11 2002/08/06 07:44:56 craigs</span>00132 <span class="comment"> * Added lots of stuff from OpalVXML</span>00133 <span class="comment"> *</span>00134 <span class="comment"> * Revision 1.10 2002/07/29 15:08:34 craigs</span>00135 <span class="comment"> * Added autodelete option to PlayFile</span>00136 <span class="comment"> *</span>00137 <span class="comment"> * Revision 1.9 2002/07/29 15:03:58 craigs</span>00138 <span class="comment"> * Added access to queue functions</span>00139 <span class="comment"> * Added autodelete option to AddFile</span>00140 <span class="comment"> *</span>00141 <span class="comment"> * Revision 1.8 2002/07/29 14:15:47 craigs</span>00142 <span class="comment"> * Added asynchronous VXML execution</span>00143 <span class="comment"> *</span>00144 <span class="comment"> * Revision 1.7 2002/07/17 08:34:12 craigs</span>00145 <span class="comment"> * Fixed deadlock problems</span>00146 <span class="comment"> *</span>00147 <span class="comment"> * Revision 1.6 2002/07/17 06:08:43 craigs</span>00148 <span class="comment"> * Added additional "sayas" classes</span>00149 <span class="comment"> *</span>00150 <span class="comment"> * Revision 1.5 2002/07/10 13:14:55 craigs</span>00151 <span class="comment"> * Moved some VXML classes from Opal back into PTCLib</span>00152 <span class="comment"> *</span>00153 <span class="comment"> * Revision 1.4 2002/07/05 06:27:26 craigs</span>00154 <span class="comment"> * Removed unused member variables</span>00155 <span class="comment"> * Added OnEmptyAction callback</span>00156 <span class="comment"> *</span>00157 <span class="comment"> * Revision 1.3 2002/07/02 06:23:51 craigs</span>00158 <span class="comment"> * Added recording functions</span>00159 <span class="comment"> *</span>00160 <span class="comment"> * Revision 1.2 2002/06/27 05:39:18 craigs</span>00161 <span class="comment"> * Fixed Linux warning</span>00162 <span class="comment"> *</span>00163 <span class="comment"> * Revision 1.1 2002/06/27 05:28:17 craigs</span>00164 <span class="comment"> * Initial version</span>00165 <span class="comment"> *</span>00166 <span class="comment"> *</span>00167 <span class="comment"> */</span>00168 00169 <span class="preprocessor">#ifndef _VXML_H</span>00170 <span class="preprocessor"></span><span class="preprocessor">#define _VXML_H</span>00171 <span class="preprocessor"></span>00172 <span class="preprocessor">#ifdef P_USE_PRAGMA</span>00173 <span class="preprocessor"></span><span class="preprocessor">#pragma interface</span>00174 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00175 <span class="preprocessor"></span>00176 <span class="preprocessor">#include <queue></span>00177 00178 <span class="preprocessor">#include <<a class="code" href="pipechan_8h.html">ptlib/pipechan.h</a>></span>00179 00180 <span class="preprocessor">#include <<a class="code" href="pxml_8h.html">ptclib/pxml.h</a>></span>00181 <span class="preprocessor">#include <<a class="code" href="delaychan_8h.html">ptclib/delaychan.h</a>></span>00182 <span class="preprocessor">#include <<a class="code" href="pwavfile_8h.html">ptclib/pwavfile.h</a>></span>00183 <span class="preprocessor">#include <<a class="code" href="ptts_8h.html">ptclib/ptts.h</a>></span>00184 <span class="preprocessor">#include <<a class="code" href="url_8h.html">ptclib/url.h</a>></span>00185 00186 <span class="keyword">class </span><a class="code" href="classPVXMLSession.html">PVXMLSession</a>;00187 <span class="keyword">class </span>PVXMLDialog;00188 <span class="keyword">class </span><a class="code" href="classPVXMLSession.html">PVXMLSession</a>;00189 00190 <span class="keyword">class </span><a class="code" href="classPVXMLTransferOptions.html">PVXMLTransferOptions</a>;00191 <span class="keyword">class </span><a class="code" href="classPVXMLTransferResult.html">PVXMLTransferResult</a>;00192 00193 <span class="comment">// these are the same strings as the Opal equivalents, but as this is PWLib, we can't use Opal contants</span><a name="l00194"></a><a class="code" href="vxml_8h.html#a0">00194</a> <span class="preprocessor">#define VXML_PCM16 "PCM-16"</span><a name="l00195"></a><a class="code" href="vxml_8h.html#a1">00195</a> <span class="preprocessor"></span><span class="preprocessor">#define VXML_G7231 "G.723.1"</span><a name="l00196"></a><a class="code" href="vxml_8h.html#a2">00196</a> <span class="preprocessor"></span><span class="preprocessor">#define VXML_G729 "G.729"</span>00197 <span class="preprocessor"></span><a name="l00198"></a><a class="code" href="vxml_8h.html#a3">00198</a> <span class="preprocessor">#define PVXML_HAS_FACTORY 1</span>00199 <span class="preprocessor"></span><a name="l00200"></a><a class="code" href="classPVXMLGrammar.html">00200</a> <span class="keyword">class </span><a class="code" href="classPVXMLGrammar.html">PVXMLGrammar</a> : <span class="keyword">public</span> <a class="code" href="classPObject.html">PObject</a>00201 {00202 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPVXMLGrammar.html">PVXMLGrammar</a>, <a class="code" href="classPObject.html">PObject</a>);00203 <span class="keyword">public</span>:00204 <a class="code" href="classPVXMLGrammar.html#a0">PVXMLGrammar</a>(<a class="code" href="classPXMLElement.html">PXMLElement</a> * <a class="code" href="classPVXMLGrammar.html#n0">field</a>);<a name="l00205"></a><a class="code" href="classPVXMLGrammar.html#a1">00205</a> <span class="keyword">virtual</span> BOOL <a class="code" href="classPVXMLGrammar.html#a1">OnUserInput</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> <span class="comment">/*ch*/</span>) { <span class="keywordflow">return</span> TRUE; }<a name="l00206"></a><a class="code" href="classPVXMLGrammar.html#a2">00206</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPVXMLGrammar.html#a2">Stop</a>() { }00207 <a name="l00208"></a><a class="code" href="classPVXMLGrammar.html#a3">00208</a> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPVXMLGrammar.html#a3">GetValue</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPVXMLGrammar.html#n1">value</a>; }<a name="l00209"></a><a class="code" href="classPVXMLGrammar.html#a4">00209</a> <a class="code" href="classPXMLElement.html">PXMLElement</a> * <a class="code" href="classPVXMLGrammar.html#a4">GetField</a>() { <span class="keywordflow">return</span> <a class="code" href="classPVXMLGrammar.html#n0">field</a>; }00210 <a name="l00211"></a><a class="code" href="classPVXMLGrammar.html#s4">00211</a> <span class="keyword">enum</span> <a class="code" href="classPVXMLGrammar.html#s4">GrammarState</a> { 00212 <a class="code" href="classPVXMLGrammar.html#s4s0">FILLED</a>, <span class="comment">// got something that matched the grammar</span>00213 <a class="code" href="classPVXMLGrammar.html#s4s1">NOINPUT</a>, <span class="comment">// timeout or still waiting to match</span>00214 <a class="code" href="classPVXMLGrammar.html#s4s2">NOMATCH</a>, <span class="comment">// recognized something but didn't match the grammar</span>00215 <a class="code" href="classPVXMLGrammar.html#s4s3">HELP</a> }; <span class="comment">// help keyword</span>00216 <a name="l00217"></a><a class="code" href="classPVXMLGrammar.html#a5">00217</a> <a class="code" href="classPVXMLGrammar.html#s4">GrammarState</a> <a class="code" href="classPVXMLGrammar.html#a5">GetState</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPVXMLGrammar.html#n2">state</a>; }00218 00219 <span class="keyword">protected</span>:<a name="l00220"></a><a class="code" href="classPVXMLGrammar.html#n0">00220</a> <a class="code" href="classPXMLElement.html">PXMLElement</a> * <a class="code" href="classPVXMLGrammar.html#n0">field</a>;<a name="l00221"></a><a class="code" href="classPVXMLGrammar.html#n1">00221</a> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPVXMLGrammar.html#n1">value</a>;<a name="l00222"></a><a class="code" href="classPVXMLGrammar.html#n2">00222</a> <a class="code" href="classPVXMLGrammar.html#s4">GrammarState</a> <a class="code" href="classPVXMLGrammar.html#n2">state</a>;00223 };00224 00225 00227 <a name="l00228"></a><a class="code" href="classPVXMLMenuGrammar.html">00228</a> <span class="keyword">class </span><a class="code" href="classPVXMLMenuGrammar.html">PVXMLMenuGrammar</a> : <span class="keyword">public</span> <a class="code" href="classPVXMLGrammar.html">PVXMLGrammar</a>00229 {00230 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPVXMLMenuGrammar.html">PVXMLMenuGrammar</a>, <a class="code" href="classPVXMLGrammar.html">PVXMLGrammar</a>);00231 <span class="keyword">public</span>:00232 <a class="code" href="classPVXMLMenuGrammar.html#a0">PVXMLMenuGrammar</a>(<a class="code" href="classPXMLElement.html">PXMLElement</a> * <a class="code" href="classPVXMLGrammar.html#n0">field</a>);00233 };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -