第18回 TwilioのHelperライブラリーを使って通話中に処理をアップデートしてみる

スポンサーリンク

twilioのhelperライブラリーを使って通話中の通話をアップデートしてみます。
通話中のアップデートですが、通話をリアルタイムに変更して

  • 通話中に新しい処理を開始
  • 通話を終了したりする

こと等が可能。

目的

通話中に新しい処理を行う。

開発

PHPライブラリーのダウンロード:https://github.com/twilio/twilio-php
※ダウンロードすると幾つかのファイルがあるが、実際に使用するファイルは /Services/ のみ。この /Services/ を作業をしているワークフォルダーにアップロード。

これでPHPライブラリーを使用する準備完了。

準備も整ったので実際にREST APIを使ってプログラミング。

REST APIの概要:https://jp.twilio.com/docs/api/rest
まずは①から。

実際に作ったファイルは下記です。

say.xml

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp" loop="0">テキスト読み上げループ処理中。</Say>
</Response>

Say 命令動詞を使って「テキスト読み上げループ処理中。」というテキストを読み上げる。

newProcess.php

// ライブラリーまでのパス
require('Services/Twilio.php');
 
// 管理ページから AccountSID と AuthToken を確認して入力。
$sid = "your sid"; 
$token = "your auth token";

// インスタンスを作成
$client = new Services_Twilio($sid, $token);
	 
$startPage = 0;
$perPageRows = 50;

// いま通話中のsidを取得
foreach ($client->account->calls->getIterator($startPage, $perPageRows, array(
    "Status" => "in-progress"
)) as $key ) {
	// sid取得
$sid = $key->sid;
}

// 更新処理
$call = $client->account->calls->get($sid);
$call->update(array(
        "Url" => "http://example.com/hoge.xml",
    	"Method" => "POST"
));

print $call->sid;

15行目〜20行目で通話履歴を取得。
Statusは、 in-progress を指定。
ステータスの種類については詳しく下記でまとめられてます。
https://jp.twilio.com/docs/api/rest/call#call-status-values

newProcess.xml

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp">通話中に処理を変えたよ。</Say>
</Response>

実際に変更する処理を TwiML を使って書きます。
上記のsay.xmlと処理は同じです。Say 命令動詞を使って「通話中に処理を変えたよ。」というテキストを読みあげます。

【処理の流れ】
①twilio番号へダイヤルする。

②twilio番号に紐付けられた say.xml が実行されて、「テキスト読み上げループ処理中。」という読み上げループ処理命令が実行される。

③ループ処理中(通話中)に newProcess.php を実行。

say.xml から newProcess.xml へ処理が移動する。

気になる方は是非ともお試しを。

参考文献

・helperライブラリーの概要:https://jp.twilio.com/docs/libraries
・知っておくべきのTwilio機能、接続中の通話を更新(update):https://www.youtube.com/watch?v=d1CnB0pPwoU

スポンサーリンク
スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク