Twilio TwiML:在客户端挂机后不要记录

时间:2015-02-11 19:57:08

标签: twilio 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试图联系客户端进行连接和来电,如果没有响应,则转到语音信箱。

然而,如果我回答然后挂断,它仍然会转到语音邮件。我怎么能挂断而不是转到语音信箱?

2 个答案:

答案 0 :(得分:2)

Twilio开发者传道者在这里。

你实际上可以达到你想要的效果,但方式略有不同。

如果您将动作传递给<Dial>,请执行以下操作:

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

然后,一旦呼叫完成,您将需要一些东西来处理对该动作的回调。以下是Ruby与Sinatra的一个例子(尽管你可以用你想要的任何语言来做到这一点):

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参数会告诉您呼叫发生了什么,因此如果它因忙碌,错过,取消或因任何原因而失败,您可以转到语音信箱,否则呼叫已完成,您只能挂机。 / p>

让我知道这是否有帮助。

答案 1 :(得分:0)

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

Twilm按照它的顺序执行。

您要做的是为拨号指定回拨页。

然后,如果它已经完成,你会想要挂起

如果没有完成,您就会收到语音邮件。

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

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