当电话正在等待Twiml中的应答客户端时如何播放保持音乐

时间:2020-02-07 16:10:48

标签: php twilio twilio-php twilio-twiml

我正在用Twilio Twiml构建一个呼叫系统,其中用户呼叫我的Twilio号码,并且需要输入要参加的代码:

callsip.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>

我希望用户在等待答案时听音乐,我尝试在 myfile.php 中添加Enqueue标签:

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

hold_music.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>

但是我有点迷失了,正在播放保持音乐,但没有呼叫Twilio客户。

我该如何解决?

我需要您的帮助。

2 个答案:

答案 0 :(得分:0)

将保留的音乐添加到呼叫流中需要被叫方应答时播放音乐的媒体资源。完成此操作的一种方法是在Twilio控制台here中启用座席会议,并将初始呼叫者作为Gather操作URL逻辑的一部分添加到该会议,然后Create an Agent Conference Participant将该ConferenceSID与Early Media一起使用为假。

请注意,您将无法使用原始CallersID进行拨号,除非该号码是Verified CallerID(您也可以在帐户中使用Twilio号码作为呼出CallerID)。另外,请确保考虑到被叫方未应答的情况,这样原始呼叫者就不会留在会议上,永远听音乐。

艾伦

答案 1 :(得分:0)

在hold_music.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>

这对我有用