如何在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>
答案 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>
希望这有帮助!