1

我想要在哪里,用户点击 # 并且 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
4

2 回答 2

1

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

于 2012-01-10T13:56:49.743 回答
0

标记内的 if 条件应该是

<if cond='ivr_input == '#''>

它工作正常。是的!!!

于 2011-12-14T11:25:51.453 回答