2015-12-27 2 views
2

Я установил номер twilio. Когда приходит вызов, вызывающий абонент приветствуется приветственным сообщением, а затем вызов пересылается на мой мобильный телефон. Если вызов не отвечает, вызов переходит к сообщению голосовой почты, сообщая вызывающему абоненту оставить сообщение, и вызов переходит к голосовой почте. Все это прекрасно. Но если на вызов будет дан ответ, и я повесил трубку, поток не остановится. Он переходит к сообщению голосовой почты. Теперь мой вопрос:twilio - стоп-поток при завершении вызова

Как остановить поток, когда заканчивается вызов?

Это мой код:

<?php 
header('content-type: text/xml'); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 
<Response> 
<Play>http://example.com/telephone/sounds/welcome-message.mp3</Play> 
<Dial record="true" timeout="25"> 
<Number url="http://example.com/telephone/wisper.php"> 
+4581732211 
</Number> 
</Dial> 
<Play>http://example.com/telephone/sounds/no-answer.mp3</Play> 
<Record transcribe="true" transcribeCallback="http://twimlets.com/[email protected]"/> 
</Response> 
+0

ли мой ответ решить проблему? –

ответ

1

В вашем коде, как набор и запись происходит в том же файле TwiML. Поэтому условное исполнение невозможно.

Чтобы решить эту проблему,

1. Переместите запись в другой файл. (Say recording.php)

2. Затем укажите URL-адрес нового файла (recording.php) в действии во время набора. Когда циферблат будет завершен, twilio отправит запрос на этот URL-адрес, и выполнение будет продолжено с TwiML, полученным от этого URL-адреса.

3. Проверьте значение параметра запроса DialCallStatus в recording.php. Если набран набранный вызов, значение будет completed или answered (В случае конференции). Маршрут вызова соответственно в recording.php

dial.php

<?php 
header('content-type: text/xml'); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 
<Response> 
    <Play>http://example.com/telephone/sounds/welcome-message.mp3</Play> 
    <Dial record="true" timeout="25" action="http://example.com/telephone/recording.php"> 
     <Number url="http://example.com/telephone/wisper.php"> 
      +4581732211 
     </Number>  
    </Dial> 
</Response> 

recording.php

<?php 
header('content-type: text/xml'); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
$dial_call_status = $_REQUEST['DialCallStatus']; 
if($dial_call_status == "completed" || $dial_call_status == "answered"){ 
?> 
    <Response> 
     <Hangup/> 
    </Response> 
<?php 
}else{ 
?> 
    <Response> 
      <Play>http://example.com/telephone/sounds/no-answer.mp3</Play> 
      <Record transcribe="true" transcribeCallback="http://twimlets.com/[email protected]"/> 
    </Response> 
<?php 
} 
?> 
+0

Спасибо человеку !!! Ты человек дня! Это было именно то, что мне нужно! – Lars

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