Twilio 拒绝呼叫发送到语音邮件和电子邮件 Link 或语音邮件文件 (mp3)

Twilio Reject Call Send To Voicemail and Email Link or Voicemail File (mp3)

我的服务器上有一个简单的调用结构文件夹,其中包含 PHP 和 XML。为我的业务处理来电。

我似乎无法将它正确无误地转发到语音信箱。 (已于 2021 年 12 月 18 日解决 - 请参阅下面的 Voicemail.php 文件更新)

我现在唯一的问题是我希望将语音邮件通过电子邮件发送到邮箱,而不是只放在 Twilio 的控制台上。

呼叫的触发方式如下。

客户呼叫 -> 到 Webhook 的路由 -> 处理传入 -Call.XML

    <?xml version="1.0" encoding="UTF-8"?>
<Response>
    
    <Redirect>handle-extension.php</Redirect>
</Response>

然后Handle-Extension.PHP看起来像这样

<?php
    header('Content-type: text/xml');
    echo '<?xml version="1.0" encoding="UTF-8"?>';

    echo '<Response>';

    
        # @start snippet
        echo '<Say>Thank you for calling, My Business</Say>';
        echo '<Dial record="true" timeout="15" action="voicemail.php">';
        echo '<Number url="screen-caller.xml">+10000000000</Number>';
        echo '</Dial>';
        # @end snippet
    
    echo '</Response>';
?>

然后 Screen-Caller.XML 看起来像这样(这是我作为企业在接机时会听到的)

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather action="handle-screen-input.php" numDigits="1">
        <Say>Call for Your Business</Say>
        <Say>To accept the call, press 1.</Say>
        <Say>To reject the call, press 2.</Say>
    </Gather>

</Response>

当我按 1 时,我接到了电话,但当我按 2 时,我希望它转到语音信箱。

这是Handle-Screen-Input.PHP

<?php
    header('Content-type: text/xml');
    echo '<?xml version="1.0" encoding="UTF-8"?>';

    echo '<Response>';

    $user_pushed = (int) $_REQUEST['Digits'];

    if ($user_pushed == 1)
    {
        echo '<Say>Connecting, say hello.</Say>';
    }
    else {
        echo '<Hangup />';
    }

    echo '</Response>';
?>

我创建了另一个 Webhook,如果万一失败,它会转到 TwimLets 将语音邮件转发到电子邮件。

这是我在 Stack 的一篇帖子中找到的 voicemail.php 代码。

<?php
// echo "hello ";exit;
    header('content-type: text/xml');
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";

    file_put_contents('incoming_voicemail.log', "\n" .json_encode($_REQUEST) . "\n", FILE_APPEND);
?>
<Response>
  <Say voice="alice">Your call could not be answered at the moment. Please leave a voice message. 
  </Say>
  <Record recordingStatusCallback="/recording-complete.php"></Record>
</Response>

是否需要添加文件名“录音 -complete.php" 如果是这样,该结构是什么样的?

语音信箱有效,我只是缺少发送到电子邮件。

如有任何帮助,我们将不胜感激。谢谢

我终于弄明白了,我会回答我自己的问题,以防将来有人或目前遇到与我相同的问题。

在 voicemail.php 文件中,我将“记录”行更改为以下内容

  <Record action="mail.php"></Record>

然后我创建了一个 mail.php 文件来将录制的语音邮件 link 发送到我选择的电子邮件地址。

希望对您有所帮助。