twilio动态语音网址号码?

时间:2015-06-10 18:49:20

标签: php twilio

我在PHP应用程序中使用twlio REST API拨打电话。

一切正常,但应该如此。

但是,如果需要,我需要允许用户使用自己的电话号码。

为此,我不知道应该如何继续,因为我当前的twilio语音URL是一个静态URL(带有XML输出的PHP文件),其中包含来电者ID!

我可以通过rest api简单验证这些数字并将它们添加到我的twilio帐户中,但是如何动态地在我的应用程序中使用这些数字而不是手动将它们添加到语音URL页面?

这是我的语音网页:

<?php
header('Content-type: text/xml');

// put a phone number you've verified with Twilio to use as a caller ID number
$callerId = "+44XXXXXXXX0";

// put your default Twilio Client name here, for when a phone number isn't given
$number   = "Michelle";

// get the phone number from the page request parameters, if given
if (isset($_REQUEST['PhoneNumber'])) {
    $number = htmlspecialchars($_REQUEST['PhoneNumber']);
}

// wrap the phone number or client name in the appropriate TwiML verb
// by checking if the number given has only digits and format symbols
if (preg_match("/^[\d\+\-\(\) ]+$/", $number)) {
    $numberOrClient = "<Number>" . $number . "</Number>";
} else {
    $numberOrClient = "<Client>" . $number . "</Client>";
}
?>

<Response>
    <Dial callerId="<?php echo $callerId ?>">
          <?php echo $numberOrClient ?>
    </Dial>
</Response> 

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

REVISED

要允许用户在拨打电话时选择自己的来电显示,我们假设您已经在网络用户界面中提供了一种方式,让他们指定自己的电话号码,以便您可以使用{{3 }}。

验证后,您可以将自己的电话号码保存到用户个人资料中,由$UserVerifiedCallerID表示,以便您可以轻松将该号码传递到客户端脚本。

var params = {
    "PhoneNumber": $("#number").val(),
    "VerifiedCallerID": "<?php echo $UserVerifiedCallerID; ?>"
};
Twilio.Device.connect(params);

当Twilio回复您的REST API脚本以获取用于处理该呼叫的TwiML时,Twilio将发送VerifiedCallerID参数,您可以使用该参数来设置$callerId

<?php
header('Content-type: text/xml');

// Grab the VerfiedCallerID from the request
$callerId = $_REQUEST['VerifiedCallerID'];

...

现在,当您的用户拨打电话时,他们自己的验证来电显示将显示而不是硬编码。