我知道在打电话时,Twilio可以检测到答录机,并做出不同的反应。
但是,如果我使用reader = command.executereader()
动词,则没有明显的地方可以添加此功能,即使它基本上是相同的。
我想要的流程是:
答案 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请求。
此方法将处理您的方案,因为如果它转到语音邮件,将不会收到任何输入,并且呼叫将结束。