「Raspberry Pi 3でtwilioを使ってSMSメッセージの送信」でtwilioを使ってSMSメッセージを発信しましたが、今回は、Twilioの電話番号を購入します。また、購入したTwilioの電話番号を使って、PHP言語により発着信の処理を行います。
Twilioの電話番号の購入
Twilioで電話番号の購入するために、「Twilio for KDDI Web Communications」からログインして、「#電話番号」の「番号を購入」をクリックすると次の画面が表示され、購入する番号が設定できます。
「COUNTRY」を「Japan」にして「機能」の「Voice」をクリックして検索ボタンを押すと次の画面が表示され、電話番号の一覧が表示されます。
希望する電話番号の購入ボタンを押して購入すると、次の設定画面が表示されます。
Twilio PHP Helper Libraryのインストール
PHP言語を使ってTwilioのAPIとやり取りするためには、Twilio PHP Helper Libraryが必要になります。作成したPHPコードと同じディレクトリーにSDKのダウンロードファイルを展開し、SDKに同梱された autoload ファイルをPHPコード内で require します。
Twilioの電話番号で電話を受けると音声メッセージを再生
購入したTwilioの電話番号に発信者がダイアルしたときに音声メッセージを再生するため、通話着信時のWebhookにより、Webアプリケーションにリクエストを送信するようその番号を設定します。 通話着信時のWebhookは、サイドメニューの電話番号を選択し、表示されたManageNumbersボタンを押すと、購入した電話番号が表示されるので、その電話番号をクリックすると次の画面が表示されます。この画面上の「通話着信時のWebhook」欄に、下記で作成するPHPコード「incom.php」のURLを設定します。
次のようなPHPコード「incom.php」を作成すると、サーバに設置して上記で設定した通話着信時のWebhookのURLから呼び出されます。sayメソッドにより、着信時に流したい音声メッセージを記述します。
require '/xxxx/twilio-php-master/Twilio/autoload.php'; use Twilio\Twiml; $response = new Twiml; $response->say("トモソフトでございます", ['language' => 'ja-jp']); echo $response;
固定電話もしくは携帯電話から、購入したTwilioの電話番号に電話を掛けると、音声「トモソフトでございます」が流れます。
Twilioの電話番号に着信した電話の転送
Twilioの電話番号に着信した電話を他の電話機に転送します。「通話着信時のWebhook」欄に、下記で作成するPHPスクリプト「forward.php」のURLを設定します(使用する画面については上記を参照してください)。
転送用のPHPコード「forward.php」を次に示します。dialメソッドのcallerIdに購入したTwilioの電話番号を設定し、numberメソッドに相手電話番号を設定します。なお、Twilioからのリクエスト中のすべての電話番号はE.164形式となります。たとえば、「080-1234-5678」は「+818012345678」となります。
<?php require '/xxxxx/twilio-php-master/Twilio/autoload.php'; use Twilio\Twiml; $response = new Twiml(); $dial = $response->dial(['callerId' => 'xxxx']); $dial->number('xx'); echo $response;
固定電話もしくは携帯電話から、購入したTwilioの電話番号に電話を掛けると、登録された電話機に電話が転送されます。
Twilioの電話番号から電話を掛ける
Twilioで購入した電話番号からの他の電話機に電話をかけます。電話をかけるためのPHPコード「call.php」を次に示します。calls->createメソッドにより、呼び出し元、呼び出し先、音声メッセージを設定します。
require '/xxxx/twilio-php-master/Twilio/autoload.php'; use Twilio\Rest\Client; $account_sid = 'ACxxxx'; $auth_token = 'xx'; $client = new Client($account_sid, $auth_token); $call_from = "xxx"; $call_to = "xxx"; $calls = $client->calls->create( $call_to, $call_from, array( 'Url' => "http://demo.twilio.com/docs/voice.xml", ));
作成したPHPコード「call.php」をサーバにアップロードして、そのURLをブラウザからアクセスすると、PHPコード「call.php」で記述された相手電話機に着信し、受けると、「http://demo.twilio.com/docs/voice.xml」で設定された音声が相手電話機に流れます。