问题
I am extremely new to twilio, I created a test account on twilio, they gave me a number.
Now I want to forward call coming to that given(given by twilio) to any other number. I am able to do this from twilio's website.
But, I want to make this happen through my application, where 1. On one side, there is my number and 2. one other side, there is a textbox, in which I will give the number, on which the calls will be forwarded and 3. a save button, which will save the changes, after pressing which, whenever someone calls on the number given by twilio, that incoming call will be forwarded to the number specified in textbox
I want to achieve this functionality through PHP
But am totally unknown to twilio.
Hoping for help.
Any help will be greatly appreciated.
Thanks in advance for helping.
回答1:
You can actually achieve this using TwiML which is plain XML. Just point the voice URL of your twilio number to an endpoint on your app that outputs this:
<?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>
So when a call comes in you check where is the call coming in from, number a or number b. Then if it is from a you get the forward number for a (ie. c) and if it is for b you get the forward number for b (ie. d).
回答2:
Twilio developer evangelist here.
If you're completely new to Twilio then I suggest you take a look through our PHP quickstart for voice. The tutorials there will get you off the ground working with Twilio and then you'll be able to customise your application the way you want.
If you then come across some problems, you can post here at StackOverflow with the code you've tried and people here will try to help.
回答3:
$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;
}
来源:https://stackoverflow.com/questions/32500015/twilio-basic-and-call-forwarding