Twilio TwiML:客户端挂断后不记录

Twilio TwiML: Don't record after client hangs up

我的双胞胎是这样的:

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

但是,如果我接听然后挂断,它仍会转到语音信箱。我怎样才能挂断电话而不转到语音信箱?

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

Twilm 按照它进来的顺序执行。

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

那么如果它完成了你会想要挂断电话

如果没有完成,您将进行语音邮件。

他是网站上的例子。请记住,如果它是客户端或 phone

,您将使用相同的逻辑

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

这里是 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 参数告诉您通话发生了什么,因此如果通话忙、未接、取消或因任何原因失败,您可以转到语音信箱,否则通话已完成,您可以挂断电话.

让我知道这是否有帮助。