Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Inbound - Sending SIP to Twilio

概要

TwilioのProgrammable Voice SIP製品では、既存のSIP通信インフラ(たとえばIP-PBX, SBCなど)とTwilioとのSIPセッションを開始し、TwiMLREST APIを使用して高度な音声アプリケーションを作成できます。 Twilioが中間に入り、あなたの通信インフラ、PSTN、またはブラウザーおよびモバイルAppにルーティングされる通話を可能にします。 アプリケーションの構築とテストを始められるようにあなたの通信インフラと相互にやりとりを行えるようTwilioを構成するにあたっては、いくつかの短いステップがあります。

Programmable Voice SIP ダイアグラム

動作の仕組み

TwilioのクラウドにSIP送信を行うには、Twilio SIPドメインを作成する必要があります。 SIPドメインは、SIPのトラフィックを受け入れ可能なTwilioアカウントと紐づけられたカスタムDNSホストネームです。 もし誰かがそのドメイン(たとえば sip:hanako@example.sip.us1.twilio.com) を使用してSIPのリクエストを行なった場合、インターネットを経由してTwilioにルーティングされます。 TwilioからSIPリクエストを受信したとき、SIPドメインは認証基準の判断と、それに引き続いて、着信のSIP通話をどのように処理すべきかの指示を提供するアプケーションへのWebhookのために構成されたURLの検索に使用されます。 Twilioから開発者のアプリケーションへのデータの受け渡しを参照してください。

はじめましょう

Log in to the Console and select Programmable Voice from the vertical menu on the left side of the view which will bring you to the Dashboard. Now navigate to SIP Domains/Endpoints.

ステップ1: Twilio Voice SIPドメイン/エンドポイントの作成

Voice SIPエンドポイント画面の赤い+印をクリックします

わかりやすい名前

SIPドメインに対して、MyCompanyJP などといった分かりやすい名前を付けます

SIP URI / ドメイン名

このプロパティーで、インフラから公開インターネットを経由してTwilioによってホストされた正しいサーバーにルーティングするために使用されるグローバルに一意なSIPドメインを指定できます。

SIPリクエストは下記のようなSIP URIを使用します:sip:hanako@example.sip.twilio.com

Twilioは着信リクエストを処理し、選択された認証メソッドを使用してそれを認証します。 リクエストが認証されると、続いて述べるようにリクエストされたURLのWebhookを呼び出します。 同じSIPドメイン内のすべてのユーザーは、同じアプリケーションURLにWebhookします。

Domain names can contain letters, numbers, and “-”. By default, every account has its own Twilio Account SID reserved as a domain.

すでに存在するドメインを作成しようとすると、エラーが表示されます。 既存のドメインのサブドメインの作成は、元のドメインを所有している場合には許可されます。 たとえば、foo.example.sip.twilio.com は、すでにexample.sip.twilio.com というドメインをすでに持っている場合にのみ作成できます。 

サブアカウントでは、マスターアカウントのSIPドメインのサブドメインを作成できます。 ドメイン作成用のREST APIもあります。

ローカライズ済みSIP URI

ご使用の通信インフラに最寄りの、特定の地理的リージョンに手動で接続したい場合は、通信インフラを以下のローカライズ済みSIP URIを指してこれを行えます。

  • {example}.sip.us1.twilio.com (北米バージニア)
  • {example}.sip.us2.twilio.com (北米オレゴン)
  • {example}.sip.ie1.twilio.com (欧州アイルランド)
  • {example}.sip.de1.twilio.com (欧州 フランクフルト)
  • {example}.sip.sg1.twilio.com (アジア太平洋シンガポール)
  • {example}.sip.jp1.twilio.com (アジア太平洋東京)
  • {example}.sip.br1.twilio.com (South America São Paulo)
  • {example}.sip.au1.twilio.com (アジア太平洋シドニー)

リクエストURL (Webhook)

SIP INVITEの受領にともなってTwilioが呼び出すWebサーバーを指し示すURLを指定してください。 URLは着信通話の処理方法を指定したTwiMLを応答しなければなりません。 代わりに、静的なTwiML Binを指し示すURLを指定することもできます。

下記は静的なTwiMLの例として使用できるURLです。 TwilioがSIP INVITEを受け取り、認証されると、INVITEを受け取って通話が確立され、発信者に対して短いメッセージを読み上げます。

http://twimlets.com/message?Message%5B0%5D=Congratulations!%20You%20just%20made%20your%20first%20call%20with%20Twilio%20SIP.

Fallback URL

リクエストURLの呼び出しに失敗(無効なTwiMLなど)した際に呼び出される第二のURLを任意で指定することもできます。

Status Callback URL

任意で、開始 (initiated)発呼中 (ringing)応答 (answered)完了 (completed)、といった通話の進行状況に応じてWebhookリクエストを送信するURLを指定できます。

認証

認証は、SIPドメインを許可されたデバイスおよびユーザーからのアクセスのみに制限します。 少なくとも、アクセス制御リストまたはクレデンシャル・リストのいずれかを構成する必要があります。 上記の両方を構成している場合、ACLとクレデンシャルリストの両方がユーザーに課されます。

IPアクセス制御リスト (ACL)

構成済みの場合、Twilioはリスト中のIPアドレスから発信(Originating)されたSIPトラフィックのみを受け入れ、その他のすべてのパケットを排除します。 IPアドレスのワイルドカードはサポートされず、完全なIPアドレスを指定しなければなりません。 IPアクセス制御リストは一つ以上のSIPドメインに対して適用できます。 IP ACL作成用のREST APIもあります。

クレデンシャルリスト

クレデンシャル・リストはあなたのSIPドメインによって受け入れられるユーザー名とパスワードの組です。

If a Credential List is configured, your SIP INVITE will be challenged with a 407 Proxy Authentication Required requesting the appropriate user name and password.

それぞれのユーザーは下記の要件に従ったパスワードを設定する必要があります。

  • 12文字以上
  • 大文字、小文字を両方入れること
  • 少なくとも1桁の数字

Twilioはユーザー名に対して提供されたパスワードを平文で保存する代わりに、パスワードはダイジェスト認証の仕様に従ってMD5ハッシュが行われます。 一旦パスワードが設定されると、Twilioは保存されたパスワードを取得するすることはできなくなります。 クレデンシャルリスト一つ以上のSIPドメインに対して適用できます。

A REST API exists for creating Credential Lists.

ステップ2: TwilioのIPアドレスとポートのホワイトリストへの追加

通信インフラが通信をブロックしていないことを確認するには、ホワイトリストを更新する必要があります。 詳細については、SIPドキュメントを参照してください。

ステップ3: TwilioのSIPドメインへのSIPの送信開始

ホワイトリストの設定が終了し、SIPをTwilioに送る準備が出来ました。 ステップ1のサンプルURLを使用した場合、下記の文章が聞くことができるでしょう:

“Congratulations! You just made your first call with Twilio SIP.”

高度な機能

SIP Custom Headers

In order to better integrate with remote SIP applications, Twilio reads the headers that are sent in the SIP request and response messages. Twilio will read any headers beginning with the X- and prepended with SipHeader_ prefix in request parameters.

You can send multiple param & value pairs as part of the same header. For example, X-TestHeader: param1=value1;param2=value2;param3=value3

If you send headers without X- prefix, Twilio will not read the header. As a result, the header will not be passed in the output.

UUI (User-to-User Information) Header

In order to pass the contextual information of the caller, customers use UUI (User-to-User Information) header in SIP request messages. You can pass a UUI (User-to-User) header through a webhook as a parameter for incoming calls to Twilio.

UUI header will be prepended with SipHeader_ prefix in request parameters. For example, SipHeader_User-to-User "123456789;encoding=hex".

```

Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。