【问题标题】:How can I handle reaching voicemail using Twilio's <dial> verb如何使用 Twilio 的 <dial> 动词处理到达语音邮件
【发布时间】:2015-11-25 16:29:31
【问题描述】:

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

但是,如果我使用 &lt;dial&gt; 动词,则没有明显的地方可以添加此功能,即使它本质上是相同的。

我的预期流程是:

  • 客户输入他们的电话号码
  • Twilio 呼叫客户并播放语音消息
  • Twilio 拨打代理号码,可能是手机
  • 如果代理接听,请将客户连接到代理
  • 如果座席忙或没有接听电话,呼叫可能会转到座席的语音信箱。
    • 终止对代理的呼叫
    • 录制客户的语音邮件
    • 向代理发送语音邮件

【问题讨论】:

    标签: twilio twilio-twiml twilio-php


    【解决方案1】:

    来自&lt;Dial&gt;动词上的official docs(强调我的)

    这是 Dial 最简单的情况。 Twilio 将拨打 415-123-4567。如果有人接听,Twilio 会将呼叫者连接到被叫方。如果呼叫者挂断,则 Twilio 会话结束。 如果线路占线、无人接听或被叫方挂断&lt;Dial&gt; 退出并在呼叫流程结束前为呼叫者执行&lt;Say&gt; 动词。 em>

    <?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>
    

    &lt;Say&gt; 动词之后放置一个&lt;Record&gt; 动词听起来就像您要找的一样。您可以像这样更改默认值 30 秒的超时时间:

    <?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>
    

    【讨论】:

    • 如果线路占线或对方挂断,这将起作用。不幸的是,如果语音信箱接听,它将无法正常工作;除非呼叫者到达语音邮件的末尾并导致其挂断电话。不过感谢您对此的研究。
    • @M1ke 我不太清楚你所说的“如果语音邮件回答”是什么意思。如果&lt;Dial&gt; 没有回答,&lt;Dial&gt; 动词的超时将导致呼叫继续到 &lt;Say&gt;&lt;Record&gt; 动词。这不是你想要完成的吗?
    • 如果您的意思是代理可能的手机有一个语音信箱可以应答呼叫,这有点超出 Twilio 的范围,因为呼叫连接到代理的移动运营商而不是 Twilio。您可以将超时设置为比语音信箱响铃时间更短,但如果代理的电话处于关机状态,您就没有太多选择了。
    【解决方案2】:

    我确定这已经晚了,但希望它可以帮助一些人。听起来您可能只需要筛选呼叫。 基本上,您可以要求您拨打的“代理”接听电话,如果您没有收到输入则挂断。

    我不确定你使用的是什么语言,但这里有一个很棒的 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)]
    );
    

    请注意,拨号命令使用“操作”来指定在呼叫结束时发送 POST 请求的位置,即 POST 到 /agent-voicemail。

    然后,号码与“url”参数一起拨打这是在座席接听后但在连接双方之前将请求的位置。

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

    此方法将处理您的情况,因为如果它转到语音信箱,将不会收到任何输入并且通话将结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多