如何使用Twilio的<dial>动词处理语音邮件

时间:2015-11-25 16:29:32

标签: twilio twiml twilio-php

我知道在打电话时,Twilio可以检测到答录机,并做出不同的反应。

但是,如果我使用reader = command.executereader() 动词,则没有明显的地方可以添加此功能,即使它基本上是相同的。

我想要的流程是:

  • 客户输入电话号码
  • Twilio致电客户并播放语音留言
  • Twilio拨打座席号码,可能是手机号码
  • 如果代理接听,请将客户连接到代理
  • 如果座席忙碌或未接听电话,则可能会拨打座席的语音信箱。
    • 终止对座席的调用
    • 记录来自客户的语音邮件
    • 将语音邮件发送给代理商

2 个答案:

答案 0 :(得分:4)

来自<Dial>动词(强调我的)official docs

  

这是Dial最简单的情况。 Twilio将拨打415-123-4567。如果有人回答,Twilio会将呼叫者连接到被叫方。如果呼叫者挂断,则Twilio会话结束。 如果线路忙,如果没有应答,或者被叫方挂断,则<Say>退出,并且在呼叫流程之前为呼叫者执行<?xml version="1.0" encoding="UTF-8"?> <!-- page located at http://example.com/simple_dial.xml --> <Response> <Dial>415-123-4567</Dial> <Say>Goodbye</Say> </Response> 动词结束。

<Record>

<Say>动词之后放置<?xml version="1.0" encoding="UTF-8"?> <Response> <Dial timeout="9001">415-123-4567</Dial> <Say>Please leave a message</Say> <Record action="/process_new_voicemail" /> </Response> 动词听起来就像您要找的那样。您可以将默认值30s更改为超时,如下所示:

lxc-devel

答案 1 :(得分:0)

我确信这已经很晚了,但希望它有所帮助。听起来你可能只需要屏幕通话。 基本上,你可以问问代理人&#34;如果您没有收到输入,您拨打接听电话并挂机。

我不确定您使用的语言是什么,但这里有一个很棒的php / Laravel教程来解释: https://www.twilio.com/docs/tutorials/walkthrough/ivr-screening/php/laravel

关键部分在这里:

$dialCommand = $response->dial(
    ['action' => route('agent-voicemail', ['agent' => $agent->id], false),
     'method' => 'POST']
);
$dialCommand->number(
    $numberToDial,
    ['url' => route('screen-call', [], false)]
);

请注意,dial命令使用&#39; action&#39;指定在呼叫结束时发送POST请求的位置,即POST到/ agent-voicemail。

然后,拨打该号码以及&#39;&#39;参数这是代理人在接听双方之后但在连接双方之前请求的位置。

/ screen-call路由然后要求代理接受呼叫,如果没有收到任何输入,它将挂起并向初始设置/代理 - 语音邮件路由发出POST请求。

此方法将处理您的方案,因为如果它转到语音邮件,将不会收到任何输入,并且呼叫将结束。