2015-05-06 2 views
1

Я хочу, чтобы немедленно прекратить вызов, как только вызов инициализируется пользователь получает одно кольцоTwillio вызов разъединение после того как пользователь recieves одно кольцо

это мои маршруты

Route::any('missedCall','[email protected]'); 
Route::any('callForMissedCall',function(){ 
    $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"? ><Response/>'); 
    $xml->addChild('Dial timeout="0"'); 
    $header['Content-Type'] = 'application/xml'; 
    return Response::make($xml->asXML(), '200', $header); 
}); 

и функции что я звоню с первого маршрута

public function missedCall(Request $request) 
    { 
     $data = $request->all(); 
     if (isset($data['id'])) { 
      Response::json(array("status"=>'failure',"msg"=>'Missing argument')); 
     } 
     $regDetails = RegistrationDetails::find($data['id']); 

     if (!$regDetails) 
      return Response::json(array("status"=>"failure","msg"=>"No  data is present")); 
     $phone_no = $regDetails->phone_no; 
     $country = $regDetails->country; 
     if (!$country) 
      return Response::json(array("status"=>"failure","msg"=>"Country missing")); 
     $countryData = Country::where('name',"LIKE",$country)->first(); 

     $phnCode = $countryData->phonecode; 
     $phone = "+".$phnCode.$phone_no; 
     $twilio = Twilio::call($phone,  $_ENV['app_url']."/callForMissedCall"); 
    } 

Приведенный выше код заканчивается только после того, как пользователь выбирает вызов. Любое решение вокруг этого .. Заранее спасибо

ответ

0

Твилио евангелист здесь.

Мы только что представили новую функцию под названием Call Progress Events, которая дает вам более подробные уведомления по мере продвижения вызова. Я не уверен, что мы можем сообщить вам, что звонок сделал ровно одно кольцо, но я знаю, что мы можем сказать вам, что это «звонок» и «ответ».

Если вы обнаружите «звонок», вы можете впоследствии прекратить вызов.

надеюсь, что это поможет.

0

После этой ссылки с twillio https://www.twilio.com/docs/api/twiml/dial
я был в состоянии реализовать свое призвание .. это не вполне возможно завершить вызов, но один может следовать моему коду, чтобы увидеть, как я был в состоянии достигнуть этого

public function missedCall($id) 
{ 
    if (isset($id)) { 
     Response::json(array("status"=>'failure',"msg"=>'Missing argument')); 
    } 
    $regDetails = RegistrationDetails::find($id); 

    if (!$regDetails) 
     return Response::json(array("status"=>"failure","msg"=>"No data is present")); 
    $phone_no = $regDetails->phone_no; 
    $country = $regDetails->country; 
    if (!$country) 
     return Response::json(array("status"=>"failure","msg"=>"Country missing")); 
    $countryData = Country::where('name',"LIKE",$country)->first(); 

    $phnCode = $countryData->phonecode; 
    $phone = "+".$phnCode.$phone_no; 
    $twilio = Twilio::call($phone, $_ENV['app_url']."/callForMissedCall"); 
} 

на XML часть его

Route::any('callForMissedCall',function(){ 
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><Response/>'); 
$xml->addChild('Dial'); 
$header['Content-Type'] = 'application/xml'; 
return Response::make($xml->asXML(), '200', $header); 

});

Смежные вопросы