我要在哪里,用户单击#,然后IVR控件返回主菜单。

但是,当用户单击#时,表示发生致命错误。

我是IVR域的新手,请帮帮我。

<?xml version='1.0' encoding='iso-8859-1' ?>
<vxml application='http://intx.dev.spokn.com/airtelintx/global.vxml' version='2.0'>
  <log expr='[vxml_root_page] This log is after property element' />
  <property name='termchar' value=' '></property>
  <property name='inputmodes' value='dtmf'></property>
  <log expr='[vxml_root_page] This log is after property element' />
  <form id='main_menu'>
    <var expr='0' name='errorcount' />
    <var expr='3' name='maxerrors' />
    <field name='ivr_input'>
      <grammar mode='dtmf' root='main_choices' type='application/srgs+xml' version='1.0' xml:lang='en-US' xmlns='http://www.w3.org/2001/06/grammar'>
        <rule id='main_choices'>
          <one-of>
            <item>
              1
            </item>
            <item>
              2
            </item>
            <item>
              3
            </item>
            <item>
              #
            </item>
          </one-of>
        </rule>
      </grammar>
      <prompt>
        Choose which country you would like to go.
        For USA, press  1.
        For UK, press 2.
        For Canada, press  3.
        Press # to return to the main menu.
      </prompt>
      <nomatch>
        <if cond='errorcount == maxerrors'>
          <goto next='#exit' />
          <else />
          <assign expr='errorcount + 1' name='errorcount' />
          Oops that was an invalid input
          <reprompt />
        </if>
      </nomatch>
      <noinput>
        <if cond='errorcount == maxerrors'>
          <goto next='#exit' />
          <else />
          <assign expr='errorcount + 1' name='errorcount' />
          No input detected. Please try again.
          <reprompt />
        </if>
      </noinput>
      <filled>
        <if cond='ivr_input == 1'>
          <log expr="'[vxml_reply] ivr_input choice 1, record'" />
          <log expr="'[vxml_reply] ivr_input choice 1, record'" />
          <log expr="'[vxml_reply] The calling Number callerid'">
            <value expr='callerid'></value>
          </log>
          <submit expr="application.apphost + application.appuri + '/ivr/confirm_country.vxml'" namelist='ivr_input callerid' />
        </if>
        <if cond='ivr_input == 2'>
          <log expr="'[vxml_reply] ivr_input choice 2, record'" />
          <log expr="'[vxml_reply] ivr_input choice 2, record'" />
          <log expr="'[vxml_reply] The calling Number callerid'">
            <value expr='callerid'></value>
          </log>
          <submit expr="application.apphost + application.appuri + '/ivr/confirm_country.vxml'" namelist='ivr_input callerid' />
        </if>
        <if cond='ivr_input == 3'>
          <log expr="'[vxml_reply] ivr_input choice 3, record'" />
          <log expr="'[vxml_reply] ivr_input choice 3, record'" />
          <log expr="'[vxml_reply] The calling Number callerid'">
            <value expr='callerid'></value>
          </log>
          <submit expr="application.apphost + application.appuri + '/ivr/confirm_country.vxml'" namelist='ivr_input callerid' />
        </if>
        <if cond='ivr_input == #'>
          <log expr="'[vxml_reply] ivr_input choice #, record'" />
          <log expr="'[vxml_reply] ivr_input choice #, record'" />
          <log expr="'[vxml_reply] The calling Number callerid'">
            <value expr='callerid'></value>
          </log>
          <submit expr="application.apphost + application.appuri + '/ivr/main_menu.vxml'" namelist='ivr_input callerid' />
        </if>
      </filled>
    </field>
  </form>
  <error>
    <log>
      APP ERROR!!!
      <value expr='_event' />
    </log>
    A fatal error occurred. Please contact a customer service representative.
    <disconnect />
  </error>
  <catch event=''>
    <log>
      UNHANDLED EVENT!!!
      <value expr='_event' />
    </log>
    Sorry, there was a problem processing your request. Please try again later.
    <disconnect />
  </catch>
</vxml>

我想这应该可以完成工作,即分配termchar值“”,用户可以输入#作为输入。
<property name='termchar' value=' '></property>

我出现错误:=
swi:SBjsi|501|SBjsi:ECMAScript engine exception|errmsg=SyntaxError: illegal character|line=1|linetxt=ivr_input == #|tokentxt=#\n

最佳答案

在大多数平台上,“#”键是终止符。这可以通过在应用程序中设置属性“termchar”来更改。如果要查看用户是否按下了“termchar”,则可以使用阴影变量“termchar”来查看他们按下的内容。有关此属性和shadow变量的更多详细信息,可以引用VoiceXML Specification

10-04 17:16