在TWIML等待答案时播放音乐

问题描述:

如何在等待成功连接时拨号并向呼叫者分发音乐?在TWIML等待答案时播放音乐<dial>

下面的代码等待音乐做<dial>前结束(这是逻辑)

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Play>http://com.twilio.music.ambient.s3.amazonaws.com/gurdonark_-_Plains.mp3</Play> 
    <Dial timeout="10" callerId="+1234567890"> 
     <Number url="whisper?id=1">+1122334455</Number> 
     <Number url="whisper?id=2">+1122334466</Number> 
     <Number url="whisper?id=3">+1122334477</Number> 
    </Dial> 
</Response> 

注:这将是很好使用会议功能。可能与<Enqueue>有什么关系?

Twilio开发人员在这里传播。

你可以用<Enqueue>来做到这一点。以下是它的工作方式:

您需要替换<Play>s然后<Dial>s的TwiML。这将是一个动态的行动,因为您需要make the three simultaneous calls using the REST API而不是TwiML。您将返回的TwiML会将您的原始呼叫者放入您建议的队列中,并播放他们的音乐。在PHP会看起来有点像:

<?php 
// Get the PHP helper library from twilio.com/docs/php/install 
require_once '/path/to/vendor/autoload.php'; 
use Twilio\Rest\Client; 

// Your Account Sid and Auth Token from twilio.com/user/account 
$sid = "your_account_sid"; 
$token = "your_auth_token"; 
$client = new Client($sid, $token); 

$numbers = array('+1122334455', '+1122334466', '+1122334477'); 

foreach ($numbers as $number) { 
    $call = $client->calls->create(
     $number, $YOUR_CALLER_ID, 
     array("url" => "http://example.com/dial_queue") 
); 
} 

header("content-type: text/xml"); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 
<Response> 
    <Enqueue waitUrl="http://com.twilio.music.ambient.s3.amazonaws.com/"> 
    dialling 
    </Enqueue> 
</Response> 

http://example.com/dial_queue你就需要返回TwiML该用户拨打被叫用户到原始调用者的URL。您的原始示例中有一个低语网址,您可以通过将其内联到TwiML中来实现。

您拨打您在原 <Enqueue>使用的 <Queue>
<Response> 
    <Say>Your custom message</Say> 
    <Dial> 
    <Queue>dialling</Queue> 
    </Dial> 
</Response> 

注意。如果该系统将用于多个调用者,那么您可能需要为他们生成唯一的队列名称。

最后要做的事情是在呼叫连接时取消另外两个呼叫,如果没有呼叫应答,取消队列。我会把它留给你,因为我确信有很多方法可以用你自己的设置来实现它。

让我知道这是否有帮助。

+0

'$ YOUR_CALLER_ID'是什么?它是原始呼叫者的号码(被重定向的号码),还是用户的Twilio号码? – kyle

+1

这是一个Twilio号码,或者它可以是您的Twilio帐户中可用于拨打电话的经过验证的号码。 – philnash