Twilio basic和呼叫转移

Twilio basic和呼叫转移,twilio,twilio-php,twilio-click-to-call,Twilio,Twilio Php,Twilio Click To Call,我对twilio非常陌生,我在twilio上创建了一个测试帐户,他们给了我一个号码 现在我想把那个给定的(由twilio给定的)电话转接到任何其他号码。我可以在twilio的网站上做这件事 但是,我想通过我的应用程序实现这一点,在哪里 1.一边是我的电话号码和电话号码 2.另一边是一个文本框,我会在其中给出电话号码,电话会在上面转发 和 3.一个保存按钮,按下后将保存更改,每当有人拨打twilio提供的号码时,该来电将被转接到文本框中指定的号码 我想通过PHP实现这个功能 但我对twilio一无

我对twilio非常陌生,我在twilio上创建了一个测试帐户,他们给了我一个号码

现在我想把那个给定的(由twilio给定的)电话转接到任何其他号码。我可以在twilio的网站上做这件事

但是,我想通过我的应用程序实现这一点,在哪里 1.一边是我的电话号码和电话号码 2.另一边是一个文本框,我会在其中给出电话号码,电话会在上面转发 和 3.一个保存按钮,按下后将保存更改,每当有人拨打twilio提供的号码时,该来电将被转接到文本框中指定的号码

我想通过PHP实现这个功能

但我对twilio一无所知

希望得到帮助

任何帮助都将不胜感激


提前感谢您的帮助。

这里是Twilio开发者福音传道者

如果你对Twilio完全陌生,那么我建议你看看我们的网站。那里的教程将使您开始使用Twilio,然后您将能够以您想要的方式定制您的应用程序


如果您遇到一些问题,您可以在StackOverflow上发布您尝试过的代码,这里的人会尽力提供帮助。

您实际上可以使用TwiML实现这一点,TwiML是纯XML。只需将您的twilio号码的语音URL指向应用程序上输出以下内容的端点:

<?php
header("content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>';
$forward_to="";
if($_REQUEST['To'] == $number_a){
    $forward_to ='forward  number'; //this is already defined by your users, so it much be stored somewhere...
}elseif($_REQUEST['''] == $number_b){
    $forward_to ='forward  number'; //this is already defined by your users, so it much be stored somewhere...
}
?>

<Response>
    <Dial>
        <Number><?php echo $forward_to; ?></Number>
    </Dial>
</Response>
$success\u flag=false;
$phone_number_array=“”;
$phone\u number\u array=json\u decode($\u POST['phone\u number\u array'],true);
$phone\u number\u数组=数组映射($trim',$phone\u number\u数组);
$forward_number_array=“”;
$forward\u number\u array=json\u decode($\u POST['forward\u number\u array'],true);
$forward\U number\U array=阵列映射('trim',$forward\U number\U array);
$arrResponse=$forward\u number\u数组;
试一试{
对于($counter=0;$counteraccount->传入电话号码->getIterator(0,50,数组(
“PhoneNumber”=>$phone\u number\u数组[$counter]
))作为$number
) {
$voice_url=”http://twimlets.com/forward?PhoneNumber=“$forward_number_数组[$counter];
$number->更新(数组)(
“VoiceUrl”=>$voice\u url,
));
$success\u flag=true;
}
}       
}捕获(例外$e){
$success\u flag=false;
$error=“\n\n转发号码错误:”.$e;
文件内容(“debug\u file.txt”、打印($error,true)、文件附加);
}
如果($success\u flag==false){
$response=“未找到任何记录”;
回音$应答;
}否则{
$response=“已成功保存更改”;
回音$应答;
}   

感谢您的回复,我已获得1。可用号码2。目前拥有或购买的号码,但我无法找到api,可以提供各自用户的当前余额,所以是否有任何api来获取各自用户的当前余额?你的帮助现在是,将来也是appreciated@PJBrunet很抱歉你这么想。我们一直在寻求改进我们的文档和教程,因此,如果您有时间,我非常感谢您能与我分享哪些教程您遇到了问题,我们可以专门工作来改进它们。我的电子邮件地址是philnash@twilio.com.@philnash看看上面的答案。不需要安装任何东西,我将它粘贴到nano上,几分钟后我的新电话号码就可以使用了。然而你的网站想要我安装很多我不需要的臃肿的垃圾:Composer、Packagist、Laravel、PHP助手库,真恶心!我只是需要一个快速的解决方案。我很忙,没有时间做这些。就我个人而言,我喜欢你的curl文档,我首先看了那里,但仅仅打电话/接电话,我在你的网站上没有找到curl解决方案。在这里,我找到了在几分钟内不费吹灰之力地拨打/接听电话的解决方案。@PJBrunet非常感谢,我们的教程非常适合帮助那些使用完整应用程序的人,他们可能需要Composer,甚至想要集成Twilio的完整框架,如Laravel。这些教程成为功能更全面的应用程序和集成的起点。如果您正在寻找简单的呼叫转移,那么我建议您调查一下哪些是在Twilio上托管的,哪些是只返回TwiML的。甚至不需要PHP。@philnash是的,不幸的是,许多人目光短浅,过度设计“完整应用程序”,使其变得比必要的更复杂,即使解决方案只是一个标题+一个文本字符串。(我30多年前通过Pascal&C库学到了这一课。)只要两行代码,我就可以很容易地粘贴到“完整应用程序”中。与curl一样,我在后端系统中使用这些一行程序来发送短信、照片、表情符号、回复文本等。谢天谢地,Twilio很容易使用,我计划在我的客户和所有商业项目中更广泛地使用它。感谢ecorvo的回复,但我有多个购买的号码,与之相反,将有文本框,用户将在其中给出相应的号码,用户希望在其上转接呼叫。那么,上面的xml将如何区分哪个号码,呼叫需要转发给谁呢?那么,您是希望在呼叫进入时进行路由选择,还是希望对其进行预先设置?我希望在呼叫进入时进行路由选择,它应该被转发,但不知道具体怎么做我想你会在来电前预先定义好这个,例如,如果把这个号码转发给这个号码等等。。。但是,如果你想在飞行中完成这项工作,它就有点复杂了。您需要将来电者置于等待状态,同时提醒某人有来电,然后此时该人将手动转接来电。这就是你想要的吗?我想,你所谓的预定义,是我唯一想要的。我想在下面的方式:有两个号码(a,b)没有转发了。但是,通过
$success_flag = false;
$phone_number_array = "";
$phone_number_array = json_decode($_POST['phone_number_array'], true);
$phone_number_array=array_map('trim',$phone_number_array);

$forward_number_array = "";
$forward_number_array = json_decode($_POST['forward_number_array'], true);
$forward_number_array=array_map('trim',$forward_number_array);  
$arrResponse = $forward_number_array;

try {
    for ($counter=0; $counter < count($phone_number_array); $counter++) { 

        foreach ($client->account->incoming_phone_numbers->getIterator(0, 50, array(
                "PhoneNumber" => $phone_number_array[$counter]
            )) as $number
        ) {
            $voice_url = "http://twimlets.com/forward?PhoneNumber=" . $forward_number_array[$counter];
                $number->update(array(
                "VoiceUrl" => $voice_url,
            ));
            $success_flag = true;

        }
    }       
} catch (Exception $e) {
    $success_flag = false;
    $error = "\n\nError in forward numbers : " . $e;
    file_put_contents("debug_file.txt", print_r($error, true), FILE_APPEND);

}

if($success_flag==false){
    $response = "no records found";
    echo $response;
}else{
    $response = "Changes saved successfully";
    echo $response;
}