如何使用Twilio与waitUrl实现电话会议?

时间:2016-04-15 10:13:30

标签: twilio conference twilio-click-to-call

使用Twilio会议时我遇到了一个小问题。 当我运行代码时,它会调用参与者号码。 当参与者接听电话时,播放“有一个应用程序错误,抱歉”的音频。 我想在接听电话时播放等待的URL音频。 这是我用过的代码。

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>

我已经google了谷歌并且谷歌搜索了10天但没有得到任何适当的解决方案。 请您提供电话会议的工作示例和等待网址?

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

我注意到您的代码会将您正在拨打的电话的网址设置为192.168.0.19192.168.x.x范围内的IP地址往往是您自己网络的本地地址。因此,Twilio将无法访问该网址并检索将该呼叫定向到会议所需的TwiML

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

因此,我们一直在考虑确保Twilio能够覆盖您的应用程序。一旦可以,您的<Conference>应该开始工作。