Twilio TwiML Binsを使ってサーバーレスで電話転送を作ってみた
こんにちは、昴です。 今回はTwilioの機能の一つであるTwiML Binsを使って、サーバーやStudioフローを使わずに、簡単な電話転送の仕組みを作ってみました。
はじめに
Twilioで電話の着信制御を行う際、一般的にはGUIでフローを作成できる「Twilio Studio」や、Node.jsなどでロジックを書く「Twilio Functions」、あるいは自前のWebサーバーを用意する方法が取られます。
しかし、「ただ電話を転送したいだけ」「決まったメッセージを流すだけ」といった非常にシンプルな要件の場合、TwiML Binsという機能を使うのが最も手軽で高速です。 TwiML Binsは、Twilioが解釈するXML言語(TwiML)をTwilioのサーバー上に直接保存できる機能です。
今回はこれを使って、着信した電話を自分の携帯電話に転送する設定を行ってみます。
前提・検証環境
本記事の手順を進めるにあたり、以下の環境および権限が必要です。
- Twilioアカウントが開設済みであること
- 通話機能を持つTwilio電話番号(US番号やJP番号など)を購入済みであること
実践
TwiML Binの作成
それでは早速TwiML Binを作成していきます。Twilioコンソールのサイドバーから TwiML Bins > My TwiML Bins を開きます。サイドバーにない場合は検索窓で「TwiML」と入力するとすぐにたどり着けます。画面上の「+(プラス)」ボタンをクリックして新規作成します。

作成画面が表示されるので、以下のように設定します。
- Friendly Name: Simple Call Forward(任意の名前)
- TwiML: 以下のXMLコードを入力します。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-JP">お電話ありがとうございます。担当者に転送します。</Say>
<Dial>+819012345678</Dial>
</Response>

コードの内容は下記になります。
- <Say>: 指定したテキストを読み上げます。language="ja-JP" を指定することで日本語で発話されます。
- <Dial>: 指定した電話番号に転送します。番号はE.164形式(+81から始まり、先頭の0を除いた形)で記述してください。
ここまで入力が完了したら、Createで作成します。
電話番号接続
続いて作成したTwiML Binを、実際のTwilio電話番号に紐付けます。サイドバーのPhone Numbers > Manage > Active numbers へ移動し、設定したい電話番号を選択します。
ConfigureタブのVoice Configurationまで移動し、「A call comes in」の項目を設定します。プルダウンから TwiML Bin を選択し、右側のプルダウンで、先ほど作成した Simple Call Forward を選択します。

選択が完了したら、画面下の「Save Configuration」で設定を保存します。
確認
設定したTwilioの電話番号に、スマホから電話をかけ、下記を確認します。
- 「お電話ありがとうございます。担当者に転送します。」という自動音声が流れること。
- その後、<Dial>タグで指定した転送先の電話番号に着信が入ること。(今回の設定した番号では繋がらずに終了)
上記が確認できれば成功です。 サーバーを用意する必要も、Studioでウィジェットを繋ぐ必要もなく、わずか数行のXMLだけで実装が完了しました。
まとめ
今回はTwiML Binsを使って、最もシンプルに電話転送を実装する方法をご紹介しました。 複雑な条件分岐(時間帯による制御やIVRなど)が必要な場合はTwilio Studioが便利ですが、単一の動作で完結する要件であれば、TwiML Binsが最適です。
本ブログが少しでも参考になれば幸いです。
告知
Twilio/SendGridセミナーを毎月開催しています
クラスメソッドでは毎月Twilio/SendGridのセミナーを実施しています。
クラスメソッドではTwilio/SendGridのセミナーを毎月開催しております。いずれもTwilio及びSendGridを良く知らない方向けに基本的な部分から解説する内容となっておりますので、今後Twilio/SendGridの導入を検討している方や、既に導入済で改めて基本的な部分を勉強したいと考える方は、是非お気軽にご参加いただければと思います。






