0

我正在使用 twilio 制作呼叫筛选应用程序,我使用 url 属性为被呼叫者提供选项,但我无法回到呼叫者的观点。

<?php
    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>
    <Say>please hold while we locate mike</Say>
        <Dial>
            <Number url="hello-monkey-name.php">+12154678556</Number>
            <Number url="hello-monkey-name.php">+12123645995</Number>
       </Dial>
</Response>

url 属性将被调用者发送到“hello-monkey-name.php”,它为他/她提供了三个选项。

<?php
    session_start();
$var_value = $_SESSION['RecordingUrl'];
    // now greet the caller
    header("content-type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";

?>
<Response>
   // <Play><?php echo $_REQUEST['RecordingUrl']; ?></Play>
    <Say> is calling <Say/>
    <Gather numDigits="1" action="hello-monkey-called.php" method="POST">
        <Say>To accept the call, press 1.  To send call to voicemail, press 2. to hangup,            press 3</Say>
    </Gather>
</Response>

一旦被调用者按下一个按钮,它就会发送到“hello-monkey-called.php”,在那里它会收集数字并决定它需要做什么,我可以让它完成通话并挂断通话,但是当我无法得到它时将呼叫转接到语音信箱 sip 地址。如果它有帮助的话,我如何让它回到调用者的角度的任何想法都可以为该部分编码。

<?php

    // if the caller pressed anything but 1 or 2 send them back
    if($_REQUEST['Digits'] != '1' and $_REQUEST['Digits'] != '2' and $_REQUEST['Digits']     != '3') {
    header("Location: hello-monkey-name.php");
    die;
}

header("content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
>
<Response>
<?php if ($_REQUEST['Digits'] == '1') { ?>
<?php } elseif ($_REQUEST['Digits'] == '2') { ?>
    <Dial>
        <Sip> vm.johnsmith@junctionnetworks.com <Sip/>
    <Dial/>
<?php } elseif ($_REQUEST['Digits'] == '3') { ?>
        <Hangup/>
<?php } ?>
</Response>
4

1 回答 1

0

Twilio 布道者在这里。

一些想法开始。首先,与往常一样,您可以检查 Twilio 仪表板中的调试器,以确保那里没有与此相关的任何内容。

其次,您的 SIP 服务器是否需要您对其进行身份验证才能连接?如果是这样,您可以使用 <Sip> 名词上的用户名和密码属性指定您的凭据。

最后,您可以通过连接<Dial> 动词的动作参数来判断发生了什么。当 Twilio 尝试拨打 Sip 地址时,我们会向Dial 动词上指定的 URL发送一些额外的SIP 特定参数。其中之一是调用 DialSipResponseCode,这是我们在发送 SIP INVITE 后得到的响应代码。

希望有帮助。

德文

于 2013-06-26T19:25:32.540 回答