前回のTwilio講座 入門編⑥では、Programmable Voiceの具体的な使い方についてご紹介いたしました。
今回のTwilio講座 入門編⑦では、Programmable Voiceでご用意している電話回線以外の音声プラットフォーム「SIP」と「WebRTC Client」の概要についてご紹介します。
■Twilio講座 入門シリーズ■
【Twilio講座 入門編①】コミュニケーションAPIのTwilioとは?
【Twilio講座 入門編②】アカウントの種類と無料アカウント作成方法
【Twilio講座 入門編③】Twilio管理画面(コンソール)
【Twilio講座 入門編④】電話番号を購入するために必要な手続き
【Twilio講座 入門編⑤】Programmable Voiceとは?
【Twilio講座 入門編⑥】Programmable Voiceの使い方|自動音声応答IVRを作ってみよう!
【Twilio講座 入門編⑦】SIPとWebRTC Clientを使った音声通話の概要
【Twilio講座 入門編⑧】Programmable SMSを使ってSMSを送信してみよう!
目次
SIPとは?
一般的に、電話線には大きく分けて2つの通信が流れています。
一つは音声をやりとりするための「通話路網」です。そしてもう一つは通話の制御(受話器をあげた、ダイアルした、相手を呼び出した、電話を切ったなど)を行うための「信号網」です。
SIPとは「Session Initiation Protocol」の略で、インターネット上で「信号網」を模倣したものです。
同じように「通話路網」を模倣したものはRTP(Real-time Transport Protocol)と呼ばれており、インターネット上で通話を行うときは、SIPとRTPがセットで利用されます。
SIP Interfaceとは?
Twilioで提供しているSIP Interfaceは、TwiMLアプリケーションとSIPを繋ぐインターフェースです。SIP Interfaceを利用することによってTwiMLアプリケーションと接続でき、Twilioのメリットを最大限利用することができます。
SIPでは電話番号の代わりに、SIP URLという識別子を使ってコールを受発信します。専用のSIPフォンアプリを使ったり、オフィスにSIP電話環境が構築されたりしている場合、デスクに置かれているそれぞれの電話機にはこのSIP URLが付与されています。
SIPでは一般的にIP-PBX(IPベースの電話交換機)と呼ばれる設備が必要で、各電話機をこのIP-PBXにRegister(登録)することで内線として使用できます。

Twilio SIP Interfaceでは、このRegisterサーバーの役割を担う「SIP Registration」というサービスも提供しています。ご自身でSIP Registerに対応する設備が持てない方は、これを使うことでお使いのSIPフォンやSIPフォンアプリをTwilioにRegisterすることができます。
Programmable VoiceでSIPフォンに電話をかける
Programmable Voiceを使ってSIPフォン(SIP URLを持つ電話機)に電話をかけるには、Dial動詞を使う必要があります。
以下は「user0101000@example.com」というSIP URLを持つ電話機に対して、SIPで電話をかけるTwiMLの例です。
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Sip>sip:user0101000@example.com</Sip>
</Dial>
</Response>
※詳しいドキュメントについてはこちらをご参照ください。
SIP Trunkingとは?
SIP Interfaceに似ているサービスとして、Twilioでは「Elastic SIP Trunking」というサービスも提供しています。こちらはお客様の環境で動いているIP-PBX(IPベースの電話交換機)とTwilioを仮想的なパイプで繋げるものです。
IP-PBXから先は各オフィスで契約している電話キャリアと接続されています。つまり外線はキャリア網を使って一般電話網で通信し、オフィス内は内線通話で通信する……という仕組みです。TwilioのElastic SIP Trunkingを使うと、この『外線のキャリア網』にTwilioが加わるイメージでご利用いただけます。
SIP Trunkingの仕組み
通常のProgrammable Voiceでは電話がかかってくると、Twilioに指定されたURLを実行するという動作をします。SIP TrunkingではSIP/RTPプロトコルを使い、その通話をそのままご自身が指定したIP-PBXまでSIPでコールを受け渡します。Twilioで何かを処理するわけではなく、コールをSIP経由でそのままご自身のIP-PBXへ渡すという動作をするわけです。
各サービスとの違いを簡単に示した図は以下の通りです。

Twilioとお客様のIP-PBXはSIP/RTPで通信します。この区間がSIP Trunkingのサービスです。お客様のIP-PBX配下の電話機、つまり内線はSIPフォンで、同じくSIP/RTPで通信します。

通信に使う識別子も以下の通り。一般電話が電話番号を使うのに対して、SIP TrunkingではSIP URLを使います。

SIP Trunkingを使えば、Twilioで取得した日本の電話番号はもちろん、海外の電話番号もご自身のIP-PBXと紐付けることができます。
たとえば日米でビジネスを展開しているサービスの場合、アメリカのユーザーにはアメリカの電話番号を案内することで、エンドユーザーの通話料負担を軽減しつつコールセンターを日本にのみ集約させる……といったことが可能になるのです。
SIP Trunkingに向いているのはこんな方
SIP Trunkingは、すでにオフィスや組織にIP-PBXを中心とした内線・外線システムができあがっている企業に向いています。
特に以下のようなニーズに応えられるため、当てはまる方はぜひ検討してみてはいかがでしょうか。
- 既存の電話キャリアの回線契約を低コストで増やしたい
- 一時的なイベントに合わせて回線契約を増減させたい
- 現在の電話システムはそのままで、外線費用(電話キャリア側の費用)をもっと安く抑えたい
SIP Trunkingは短期的な変化にも対応できるため、たとえば「一時的なイベントでコールの増加が見込まれるため回線契約を増やしたいが、イベントが終わったらまた元の回線契約に戻したい」といった場合にもおすすめのサービスです。
SIP Trunkingを導入する際の注意点
SIP Trunkingを利用するには、ご自身の環境にあるIP-PBXの運用に精通している必要があります。Twilioから受けたSIPコールをどの内線に着信させるかなどを、IP-PBX側で制御する必要があるからです。
IP-PBX配下にある各SIPフォンから発信する際も、たとえば0発信(先頭に0をダイヤルしてかける)の場合は既存の電話キャリアを使い、1発信の場合はTwilio経由で発信する……といった制御ができます。これらは、IP-PBX側に設定する『ダイヤルプラン』で実現する範囲です。
SIP Trunkingの導入には「IP-PBXを構築して運用する」というハードルがありますが、本格的なコールセンターを安定したプロトコルの通信で実現できるという大きなリターンがあります。
詳しいドキュメントはこちらをご参照ください。
WebRTC Clientとは?
WebRTC Client(以下Client)はインターネット網を使った通信で完結するものです。WebRTCというプロトコルを使います。
Clientを利用する場合は、Twilioが提供する各種SDKを活用し、ご自身でClientアプリを開発する必要があります。ブラウザフォンやスマートフォン用のClientアプリなど「音声通話をするためのアプリケーション」を用意することで、Twilioを介してこれらのアプリケーション同士で通話したり、実装次第ではClientアプリから電話網へ発信したりすることも可能です。
詳しいドキュメントはこちらをご参照ください。
Clientアプリ同士の通信は電話網を使わずインターネットだけで完結するため、対電話通信に比べてコストが安いというメリットがあります。
一方で専用アプリケーションを開発する手間がかかったり、インターネット通信ゆえの「ネットワークに起因する不確定要素」があったりとデメリットもあります。またアプリケーションを搭載するスマートフォン・パソコン・タブレットなどとドライバーの相性をご自身で解決する必要もあるため、注意が必要です。
SIPとWebRTC Clientの違い
SIPもWebRTC Clientもインターネット網を使いますが、利用するプロトコルが違います。WebRTC ClientはWebRTCを利用しますが、SIPはSIP/RTPの2つのプロトコルを使います。SIP/RTPはWebRTCよりも歴史が長く、電話の世界で今も使われている安定性があるプロトコルです。
サービス |
通話料 |
開発コスト |
自由度 |
通話音質 |
Client |
低 |
高
|
高
|
ネットワーク品質に依存
|
SIP |
高 |
低
|
低
|
良い
|
TwilioにおけるSIPの通話料は、Clientと一般電話宛のちょうど中間の価格になっています。そのためコールセンターを運営しているなど、エンドユーザーとの通話音質を重視したいお客様の中には、SIP InterfaceやSIP Trunkingを選ぶ方もいらっしゃいます。
ClientとSIPをよく比較して、ご自身にとって最適なプラットフォームを選んでみてくださいね。