twilio只有在按下特定键后才说动词

时间:2014-04-11 06:08:18

标签: php twilio

如何在twilio中使用替代操作?我想要做的是捕获一个特定的键(*)。如果按下此键,它将执行另一项操作,而不是默认操作。这是我现在拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather finishOnKey="*" action="/another_thing" method="POST">
      <Say>Hi this is the initial message</Say>
    </Gather>

    <Say>Hi this is the default message. Please enter a 3 digit number</Say>
    <Gather numDigits="3" action="/save_number" method="POST" />
</Response>

所以基本上我想在按下*键时提交到another_thing路由。但是当我按下*键时,当前正在发生的事情是它会转到聚集下方的说动词。所以它说Hi this is the default message. Please enter a 3 digit number而不是我的预期,它将转到another_thing并输出那里的内容。

这可能与twilio或我做错了吗?请帮忙。提前谢谢!

如果这对我another_path

的帮助有帮助
<?xml version="1.0" encoding="UTF-8"?>
<Response>
   <Say>Hey whats up!</Say>
</Response>

1 个答案:

答案 0 :(得分:2)

Twilio Evangelist在这里。

所以,你走在正确的轨道上。您需要为默认消息使用单独的TwiML路由,然后一切都应该没问题。我还建议您使用numDigits代替finishOnKey。如果您使用finishOnKey,则实际上并未发送该字符。 <Gather>的文档中有更多信息。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Gather numDigits="1" action="/another_thing" method="POST">
    <Say>Hi this is the initial message</Say>
  </Gather>
</Response>

这个TwiML会运行,如果来电者没有按任何键,<Gather>会超时(你可以调整timeout="3"的长度),但它仍然会向/another_thing提出请求。请注意,超时在<Say>完成后开始。

/another_thing路线中,您可以检查Twilio发送的Digits参数,并决定该怎么做。如果他们没有按一个键:

<Response>
  <Say>Hi this is the default message. Please enter a 3 digit number</Say>
  <Gather numDigits="3" action="/save_number" method="POST" />
</Response>

按原样按下*键:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>Hey whats up!</Say>
</Response>

希望这有帮助!