Exotel call working for "From" user not for "To" user?

441 Views Asked by At
<?php 
#Link to developer portal  for connect to agent https://developer.exotel.com/api/#call-agent
$post_data = array(
'From'     => "from_number",
'To'       => "to_number",
'Url'      => "http://my.exotel.com/Exotel/exoml/start_voice/0000000000",
'CallerId' => "000",
'CallType' => "trans" 
); 
$api_key     = "api_key"; 
$api_token   = "api_token"; 
$exotel_sid  = "sid";
#Replace <subdomain> with the region of your account
#<subdomain> of Singapore cluster is @api.exotel.com
#<subdomain> of Mumbai cluster is @api.in.exotel.com 
$url = "https://" . $api_key .  ":"  . $api_token . "@api.exotel.com/v1/Accounts/" .     $exotel_sid . "/Calls/connect"; 
$ch  = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
$http_result = curl_exec($ch);
curl_close($ch);
echo "<pre>";
print "Response = ".print_r($http_result);
?>

HI, Take a look This is my curl code for connecting two mobiles through exotel server. I am getting call to 'From' number. After picked up the call it says the number is not properly setup and asking to use app bazaar. But I linked my number in app bazaar eventhough i am getting this note. Can anyone help me out, where i am wrong?

2

There are 2 best solutions below

0
On

This (it says the number is not properly set up) error message comes when you are giving To and URL both the parameters in one request. In your case, you are trying to make a connect customer to a flow call. Please comment To.

<?php 
#Link to developer portal  for connecting to agent https://developer.exotel.com/api/#call-agent
$api_key     = "api_key"; 
$api_token   = "api_token"; 
$exotel_sid  = "sid";
$flow_id = "flow_id"; //FlowId will be available in the app bazaar page. Eg: 261787.
$post_data = array(
'From'     => "from_number",
'Url'      => "http://my.exotel.com/".$exotel_sid."/exoml/start_voice/".$flow_id, 
'CallerId' => "044-481-37003",
'CallType' => "trans" 
); 
#Replace <subdomain> with the region of your account
#<subdomain> of Singapore cluster is @api.exotel.com
#<subdomain> of Mumbai cluster is @api.in.exotel.com 
$url = "https://" . $api_key .  ":"  . $api_token . "@api.exotel.com/v1/Accounts/" .     $exotel_sid . "/Calls/connect"; 
$ch  = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
$http_result = curl_exec($ch);
curl_close($ch);
echo "<pre>";
print "Response = ".print_r($http_result);
?>

Try out this code.

0
On

In case you want to make call between two number, you just need to pass From, To and CallerId in post data (no need to pass URL as it is to connect customer to a call flow) and make sure you pass CallerId as 04448137003 i.e without - in numbers.