如何使用Twilio与waitUrl实现电话会议?
问题描述:
我在使用Twilio会议时遇到了一个小问题。 当我运行代码时,它会调用参与者号码。 当参与者接听电话时,播放带有“有应用错误,对不起”的音频。 我想在选择手机时播放等待的URL音频。 这是我用过的代码。如何使用Twilio与waitUrl实现电话会议?
require_once('Services/Twilio.php');
$API_VERSION = '2010-04-01';
$ACCOUNT_SID = 'ACf4c0952bf89b57ce2a600b6f6b388c9';
$AUTH_TOKEN = '{{ auth token }}';
$client = new TwilioRestClient($ACCOUNT_SID, $AUTH_TOKEN);
$participants = array('+917201990754');
foreach ($participants as $participant)
{
$vars = array(
'From' => '+1 510-491-0176',
'To' => $participant,
'Url' => 'http://192.168.0.19/twilio/conference.xml');
$response = $client->request("/$API_VERSION/Accounts/$ACCOUNT_SID/Calls", "POST", $vars);
if ($response->isError)
{
echo "Something went terribly wrong. {$response->ErrorMessage}";
}
else {
echo '<ul>';
foreach ($response->ResponseXml->Conferences->Conference as $conference)
{
echo '<li>'.$conference->FriendlyName.'</li>';
$response2 = $client->request("/$API_VERSION/Accounts/$ACCOUNT_SID/Conferences/{$conference->Sid}/Participants", "GET");
echo '<ul>';
foreach ($response2->ResponseXml->Participants->Participant as $participant)
{
echo '<li>'.$participant->CallSid.'</li>';
}
echo '</ul>';
}
echo '</ul>';
}
}
下面是我用过的xml代码。
<Response>
<Dial hangupOnStar="true">
<Conference>YourConference</Conference>
</Dial>
<Gather action="http://example.com/processConferenceMenu?confName=YourConference" numDigits="1">
<Say>To mute all participants, press one</Say>
<Say>To leave the conference, press two</Say>
</Gather>
我有谷歌,谷歌搜索和它自10天,但没有得到任何妥善的解决办法。 请您提供等待网址的电话会议工作示例吗?
答
Twilio开发者传道这里。
我注意到您的代码设置了您要拨打192.168.0.19
的电话的URL。 192.168.x.x
范围内的IP地址通常位于您自己的网络中。因此,Twilio将无法访问该URL并检索将呼叫引导到会议所需的TwiML。
当您在本地测试应用程序时,我们推荐使用ngrok至test your webhook URLs。我也写了why I like using ngrok to test Twilio applications。
因此,我会考虑确保Twilio可以访问您的应用程序。一旦它可以,你的<Conference>
应该开始工作。
比你先生。这意味着上面的代码没有错误。我需要克服本地网络的解决方案,对吧? –
如果我在我们的开发服务器(即活动服务器)上测试,那么就没有问题了吧? –
我在该代码中看不到会导致应用程序错误消息的错误。您也可以在[Twilio信息中心的警报]部分查看这个原因(https://www.twilio.com/user/account/monitor/alerts)。如果你有一堆关于“11200 HTTP检索失败”的警报,那么Twilio无法访问你的应用程序。您可以公开部署测试,也可以使用ngrok等工具来公开您的本地应用程序。 – philnash