Как играть в hold musi c, когда телефонный звонок ждет ответа клиента в Twiml - PullRequest
0 голосов
/ 07 февраля 2020

Я создаю систему вызовов с Twilio Twiml, где пользователь звонит на мой номер Twilio и должен ввести код для участия:

callip. php

<?php 
   echo header('content-type: text/xml');
   echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<Response>
 <Play>https://mywebsite.com/welcome.mp3</Play>
 <Gather numDigits="11" action="myfile.php">
    <Say voice="alice">Please enter your code</Say>
 </Gather>
</Response>

После ввода кода вызов переходит к клиентам Twilio:

myfile. php

<?php 
  echo header('content-type: text/xml');
  echo '<?xml version="1.0" encoding="UTF-8"?>';
  $code = $_POST['Digits'];
?>
<Response>
  <Dial timeout="20" record="record-from-answer" recordingStatusCallback="https://mywebsite.com/record.php" recordingStatusCallbackEvent="in-progress completed absent">
        <Client>
            <Identity>myuser</Identity>
            <Parameter name="code" value="<?php echo $code; ?>"/>
        </Client>
    </Dial>
</Response>

Я хочу, чтобы пользователь прослушал удерживая musi c, пока он ждет ответа, я попытался добавить тег Enqueue в myfile. php:

<Response>
<Enqueue waitUrl="https://mywebsite.com/hold_music.php">support</Enqueue>
...
</Response>

hold_musi c. php

<?php 
 echo header('content-type: text/xml');
 echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<Response>
  <Play loop="0">https://mywebsite.com/hold_music.mp3</Play>
</Response>

Но я немного растерялся, игра на удержании c играет, но клиенты Twilio не звонят.

Как это исправить?

Мне нужна ваша помощь.

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

В режиме Hold_musi c. php вы можете создать вызов, например https://www.twilio.com/docs/voice/make-calls

$call = $twilio->calls
               ->create("+14155551212", // to
                        "+15017122661", // from
                        ["url" => "http://demo.twilio.com/docs/voice.xml"]
               );

print($call->sid);

А затем по URL-адресу ответа вы можете присоединиться к обоим вызовам. значит

<Response>
   <Dial>
     <Queue url="about_to_connect.xml">support</Queue>
   </Dial>
</Response>

это работа для меня

0 голосов
/ 08 февраля 2020

Для добавления музыки c на удержание к вашему потоку вызовов требуется медиа-ресурс для воспроизведения музыки c, пока набираемый абонент отвечает. Один из способов выполнить sh - включить агентскую конференцию в консоли Twilio здесь и добавить первоначального абонента к этой конференции как часть логина URL действия Gather c, затем Создать. участник конференции Agent , использующий этот ConferenceSID с ранним носителем, установленным на False.

Обратите внимание, что вы не сможете набирать номер, используя исходный CallersID, если только этот номер не является Verified CallerID (Вы также можете использовать номер Twilio в своей учетной записи в качестве исходящего CallerID). Кроме того, не забудьте учесть случаи, когда набранный абонент не отвечает, чтобы исходящий абонент не оставался на конференции, слушая музыку c навсегда.

Алан

...