如果没有在 Twilio 中接听号码,如何录制语音邮件?

How to record a voicemail if a number is not picked up in Twilio?

我在 PHP 项目中使用 Twilio,目前我可以使用其 API 拨打电话和发送短信,如下所示:

        $client = new \Services_Twilio($AccountSid, $AuthToken);
        try {
            // Initiate a new outbound call
            $call = $client->account->calls->create(
                "<From Number>",
                $input['phone'],
                array("url" => "http://demo.twilio.com/welcome/voice/")
            );
            //echo "Started call: " . $call->sid;
            \Session::flash("success","Calling to ". $input['phone'] ."");
        }

但现在客户想在电话未接听时发送语音消息。

这里是 Twilio 开发人员布道者。

这就是它的工作原理。当有人呼叫您的 Twilio 号码时,Twilio 会为您的 phone 号码创建一个 HTTP request, a webhook, to a URL you set in the number admin in your Twilio console

URL 需要用一些 TwiML 来响应,这只是一些 XML 标记来告诉 Twilio 如何处理调用。

听起来,在您的情况下,您想拨打自己的号码并在一段时间后接收消息而不是继续响铃。为此,您需要两个端点。第一个应该进行拨号,第二个是我们将在呼叫被重定向到语音邮件后重定向的地方。

因此,第一个端点 TwiML 应该看起来有点像这样,使用 <Dial> 转发呼叫:

<Response>
  <Dial timeout="30" action="/voicemail.php">
    <Number>YOUR_PHONE_NUMBER</Number>
  </Dial>
</Response>

我们使用timeout attribute to set how long you want the phone to ring for. You can set that between 5 and 600 seconds. The action attribute is the endpoint we direct the call to once the timeout finishes. That endpoint will then read the caller a message to tell them to leave a message using <Say> for text to speech, then <Record>的消息。

<Response>
  <Say voice="alice">Your call could not be answered at the moment. Please leave a message.</Say>
  <Record action="/hangup.php"/>
</Response>

我在 <Record> 标记中添加了一个额外的操作,它只是挂断电话。看起来像这样:

<Response>
  <Hangup/>
</Response>

还有其他属性可以与 <Record> 一起使用。最重要的是,recordingStatusCallback attribute 需要一个 URL,当有新录音时,您的应用程序将收到通知。

要更深入地了解这方面的内容,请查看 guide on recording phone calls in PHP

如果有帮助请告诉我。

1) 创建一个 mp3 作为问候语。将其存储在网络上的某个位置并保存 URL。 我将我的保存为我管理的 wordpress 网站上的媒体文件。如果您不创建自己的问候语,它将使用 Twilio 默认问候语。 2) 我使用两个 twilio 工具路由到语音信箱。 Twiml 和 Twimlets。 通过转到主所有者仪表板并选择 "runtime" 然后选择 "Twimls" 创建 Twiml bin。下面的代码可以在 Twiml 中使用。更改消息 URL、电子邮件、超时长度和 Phone 数字。 我同时给两个人打电话,如果都没有接听,就会转到语音信箱。音频文件将发送到您提供的电子邮件。代码中的 twimlet 有效 - “http://twimlets.com/voicemail”具有不同的参数。

TWIML 代码:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Dial timeout="30" action="http://twimlets.com/voicemail?Email=test@test.com&amp;Message=http://test.com/wp-content/uploads/2019/01/voicemail1.mp3">
    <Number>703-555-1212</Number>
    <Number>540-555-1212</Number>
  </Dial>
</Response>