第8回 Twilioを使って電話をかけてみる

スポンサーリンク

twilioを使って電話をかけてみます。

目的

電話をかける

開発

今回は、下記2種類の方法で機能を実装してみます。


TwiMLを使う場合

Dial には下記名詞(拡張機能)が用意されている。

  • Number:より複雑な属性付きの電話番号の記述が可能
  • Client:Twilioクライアントの指定
  • Sip:SIP接続の指定
  • Conference:同時に多人数で通話を実現
  • Queue:キュールームの生成。

今回は、名詞は使わずにシンプルに電話を転送。

dial.xml

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-JP">電話を転送します。</Say>
<Dial callerId="+xxxxxxxxxx">+□□□□□□□□□□</Dial>
</Response>

1行目の

<?xml version="1.0" encoding="UTF-8"?>

は、xml宣言文と言われる一行。以降の文章構造はxmlで書いていきますよと宣言している。

2行目と5行目にある

<Response>
</Response>

は、TwiMLのルート要素。命令動詞は必ずこのResponseをネストするように記述していく必要がある。

3〜4行目の部分が命令動詞。

3行目の Say で発信者に対して「電話を転送します。」と読み上げる命令を出す。
4行目の Dial で実際に入力された宛先へ電話をかける命令を出す。
属性の
+xxxxxxxxxxには、取得したtwilio番号を指定。
+□□□□□□□□□□には、宛先の電話番号を入力。

<Say language="ja-JP">電話を転送します。</Say>
<Dial callerId="+xxxxxxxxxx">+□□□□□□□□□□</Dial>

dial.xmlファイルの記述が完了したら、サーバにアップロード。
後は、twilio番号とdial.xmlとのひも付けを行う。
ひも付け方法はこちら
※それぞれの環境にあわせてURLの入力を変更する必要があります。

ひも付けが完了したら実際にtwilio番号にコール。
宛先の番号へ電話が転送されたら成功。


REST APIを使う場合

まずは、RESTAPIを使う為にライブラリーをダウンロードします。
ライブラリーのダウンロードはこちらに書いてます。

dial.php

<?php 
// ライブラリーまでのパス 
require('/path/to/twilio-php/Services/Twilio.php'); 

// twilioの管理ページ内の「アカウント」よりsidとautotokenを確認 
$account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
$auth_token = '[AuthToken]'; 

// インスタンスの作成 
$client = new Services_Twilio($account_sid, $auth_token); 

// 電話発信処理実行 
$client->account->calls->create(array( 
    // twilio番号
    '+□□□□□□□□□□', 
    // 宛先の番号
    '+xxxxxxxxxx', 
    // 宛先の番号に繋がったら実行したいファイル
    'http://example.com/hoge.xml'
));
?>

ライブラリーをダウンロードしたらサーバにフォルダーごとアップロード。
そのフォルダー内にある Twilio.php までのパスを3行目のrequireのパスに設定。

6〜7行目にある SID と authToken は管理ページ内にて確認可能。
確認方法:「アカウント」→「API クレデンシャル」

10行目で、インスタンスを作成。引数に SID と authTokenの値を使用。

13行目で、createメソッドを使ってダイヤル処理開始。
第三引数のURLにはダイヤルが繋がったら実行するプログラムを指定。電話を転送したい場合はこちらで Dial 動詞を使って書くとバッチリ。

設定が終わったら dial.php をデプロイ。
dial.phpへアクセスすると、宛先に電話がかかることを確認。
実際に電話がかかったら成功。

参考文献

Dial命令動詞の概要:https://jp.twilio.com/docs/api/twiml/dial
・電話の発信に必要なのは、たった数行のコードだけ(Dial – 属性):https://www.youtube.com/watch?v=HXnSNe44oEQ

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

フォローする

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