1

我有这样的 twiml:

<Response>
    <Dial timeout="12">
    <Client>Robbie</Client>
    </Dial>
    <Say>
    The person you are trying to reach is currently unavailable. Please leave a message at the beep.
    </Say>
    <Record action="/voicemail/fdasjhklewu/" maxLength="90" method="GET" timeout="7"/>
    </Response>

在这里,twilio 尝试联系客户端以连接和来电,然后如果没有响应,它会转到语音邮件。

但是,如果我接听然后挂断,它仍然会转到语音信箱。如何挂断而不转到语音信箱?

4

2 回答 2

2

Twilio 开发人员布道者在这里。

您实际上可以实现您想要的,但方式略有不同。

如果你<Dial>像这样传递一个动作:

<Response>
  <Dial action='/after_dial'>
    <Client>Robbie</Client>
  </Dial>
</Response>

然后,一旦调用完成,您将需要一些东西来处理对该操作的回调。这是一个带有 Sinatra 的 Ruby 示例(尽管您可以使用任何您想要的语言来执行此操作):

post '/after_dial' do
  content_type 'text/xml'
  if ['busy', 'no-answer', 'failed', 'canceled'].include?(params['DialCallStatus'])
    "<Say>
       The person you are trying to reach is currently unavailable. Please leave a message at the beep.
     </Say>
     <Record action="/voicemail/fdasjhklewu/" maxLength="90" method="GET" timeout="7"/>"
  else
    "<Hangup/>"
  end
end

DialCallStatus参数告诉您呼叫发生了什么,因此如果它因任何原因忙、未接、取消或失败,您可以转到语音信箱,否则呼叫已完成,您可以挂断。

让我知道这是否有帮助。

于 2015-02-12T11:51:50.333 回答
0

我不认为有办法做你想做的事。

Twilm 是按照它进入的顺序执行的。

您想要做的是为拨号指定一个回叫页面。

然后如果它完成了你会想挂断

如果没有完成,您将发送语音邮件。

他是网站上的例子。请记住,如果是客户端或电话,您将使用相同的逻辑

https://www.twilio.com/docs/howto/voicemail

于 2015-02-11T22:37:00.317 回答