メニュー

Expand
ページを評価:

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

If you wish to manually connect to a specific geographic edge location that is closest to the location of your communications infrastructure, you may do so by pointing your communications infrastructure to any of the following localized SIP URIs:

  • {example}.sip.ashburn.twilio.com (北米バージニア)
  • {example}.sip.umatilla.twilio.com (北米オレゴン)
  • {example}.sip.dublin.twilio.com (欧州アイルランド)
  • {example}.sip.frankfurt.twilio.com (欧州 フランクフルト)
  • {example}.sip.singapore.twilio.com (アジア太平洋シンガポール)
  • {example}.sip.tokyo.twilio.com (アジア太平洋東京)
  • {example}.sip.sao-paulo.twilio.com (South America São Paulo)
  • {example}.sip.sydney.twilio.com (アジア太平洋シドニー)

If you are looking for a list of legacy SIP localized URIs, visit here.

リクエスト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.

Step 2: Allow Twilio’s IP addresses and ports

To ensure that your communications infrastructure doesn’t block communication, you must update your allow list. See the SIP documentation for details.

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

Now that Twilio’s IPs and ports are allowed in your system and your SIP Domain is created, you can send SIP requests to Twilio. If you used the example URL from Step 1, you will hear:

“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.

Simply add UUI SIP header as part of the SIP message before sending it to Twilio. The headers will be sent as request parameters in the webhook requested from your server. For example, if you send the following SIP headers in your SIP message:

User-to-User: 123456789;encoding=hex

Twilio will prepend the UUI header with SipHeader_ prefix in webhook request to your server. For example,

SipHeader_User-to-User "123456789;encoding=hex".

ページを評価:

ヘルプが必要ですか?

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

        
        
        

        フィードバックくださりありがとうございます!

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

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        ステップ1

        Get link

        Get a free personal referral link here

        ステップ2:

        Give $10

        Your user signs up and upgrade using link

        ステップ3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more