TwilioPHP-SDKの4.xで書かれたこんなカンファレンスへの誘導と、完了後にsayするconference_complet.phpへのdial発信
着信のwebhookで起動します。
include './twilio-php/Services/Twilio.php';
include './twilio-php/Services/Twilio/Capability.php';
$response = new Services_Twilio_Twiml();
$dial = $response->dial(array(
'action' => "https://***.com/conference_complet.php",
"method" => "GET",
));
$dial->conference("My Conference", array(
"startConferenceOnEnter" => "true",
"waitUrl" => "https://***.com/conference_wait.php",
"endConferenceOnExit" => "true",
"beep" => "true",
));
print $response;
dialの部分を下記のようにTwilio-PHP-SDK ver5.xで書いたのですが、print responseでXMLのDOMエラーが発生しました。
PHP Fatal error: Method Twilio\\TwiML\\VoiceResponse::__toString() must not throw an exception, caught DOMException: Invalid Character Error
conferenceは動くので、dialに問題があるようです。
$response = new VoiceResponse();
$dial = $response->dial([
'action' => "https://***.com/conference_complet.php",
"method" => "GET",
));
print $response;
4.xで出力されるTwiMLは下記のようになっており、Dial要素の中はConferenceなので、dialにはactionなどのパラメータしか入力していないのですが、5.xではエラーになります
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial action="https://***.com/conference_complet.php" method="GET">
<Conference startConferenceOnEnter="true" waitUrl="https://***.com/conference_wait.php" endConferenceOnExit="true" beep="true">My Conference</Conference>
</Dial>
</Response>
下記のようにdialの引数を変更すると、動作します。
$response = new VoiceResponse();
$dial = $response->dial("",[
'action' => "https://***.com/conference_complet.php",
"method" => "GET",
));
print $response;
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial action="https://***.com/conference_complet.php" method="GET">
<Conference startConferenceOnEnter="true" waitUrl="https://***.com/conference_wait.php" endConferenceOnExit="true" beep="true">My Conference</Conference>
</Dial>
</Response>