如何使用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

当您在本地测试应用程序时,我们推荐使用ngroktest your webhook URLs。我也写了why I like using ngrok to test Twilio applications

因此,我会考虑确保Twilio可以访问您的应用程序。一旦它可以,你的<Conference>应该开始工作。

+0

比你先生。这意味着上面的代码没有错误。我需要克服本地网络的解决方案,对吧? –

+0

如果我在我们的开发服务器(即活动服务器)上测试,那么就没有问题了吧? –

+0

我在该代码中看不到会导致应用程序错误消息的错误。您也可以在[Twilio信息中心的警报]部分查看这个原因(https://www.twilio.com/user/account/monitor/alerts)。如果你有一堆关于“11200 HTTP检索失败”的警报,那么Twilio无法访问你的应用程序。您可以公开部署测试,也可以使用ngrok等工具来公开您的本地应用程序。 – philnash