Elastic SIP Trunking(SIPトランク)
はじめましょう: Twilio Elastic SIP Trunkの設定
はじめに
Twilio Elastic SIP Trunkingを使用するには、Twilioアカウントが必要です。まだアカウントがない場合は、 無料のTwilioアカウントにサインアップを実行します。
Elastic SIP Trunkの設定:
IPコミュニケーションインフラストラクチャとの接続
REST APIドキュメント:
要件
Twilio Elastic SIP Trunkingを使用するには、 以下を準備します。
- SIP対応ネットワークエレメント(例: セッションボーダー コントローラー、SIP通話サーバー、IP-PBX、SIP-PRI IADなど)とインターネットアクセス。
-
ピーク時の通話トラフィックに対応可能なインターネット帯域幅。ピーク帯域幅は 次の計算で求められます。
- SIPトランクのピーク帯域幅 = 最大同時通話数 x 100kbps
100kbpsは、G711コーデックに必要な帯域幅と十分なオーバーヘッドを考慮した値です。
ダッシュボード
コンソールにログインし、[Elastic SIP Trunking]セクションにアクセスします。 ダッシュボードが表示され、トランクの利用状況についての 高次の概要分、通話、コスト
左側のナビゲーションメニューには、次の項目へのリンクが含まれます。
- 概要: まずはこちらにアクセスします。チュートリアルドキュメントや、機能、価格の情報を確認できます。
- 管理: トランク、IPアクセスコントロールリスト、クレデンシャルリスト、ネットワーク情報にアクセスします。
管理
[Manage](管理)メニューの下にトランクに関するすべての設定が まとめられています。次のリンクを確認してください。
- トランク: 現在のSIPトランクのリスト。トランクの作成、削除、 設定を行います。
- IPアクセスコントロールリスト: IPアクセスコントロールリスト(SIPドメインへの到達を 許可された一連のIP)を管理します。
- クレデンシャルリスト: ユーザークレデンシャル(SIPドメインへの到達を許可された 一連のユーザー名とパスワード)を管理します。
- ネットワーク情報: コミュニケーションインフラストラクチャの設定に必要な、 Twilioのプラットフォームに関する重要情報です。
トランク
Twilio Elastic SIP Trunkingは、 IPベースのコミュニケーションインフラストラクチャをPSTNに接続し、 各種ブロードバンドインターネット接続によるグローバルな電話の 送受信を行うための、クラウドベースのソリューションです。
トランクは次の設定で構成されます。
- General: トランクのフレンドリー名を設定し、トランクの一意の識別子 (トランクSID)を確認します。
- ターミネーション: コミュニケーションインフラストラクチャからPSTNへの送信トラフィックを 発信するための設定を行います。
- オリジネーション: Twilio番号に着信するトラフィックのPSTNから コミュニケーションインフラストラクチャに通話を 配信する受信設定を行います。
- 番号: 番号を特定のトランクに関連付けることができ、現在トランクに 関連付けられているすべての番号を確認できます。
このトランクナビゲーションバーでは、すべてのElastic SIP Trunk を閲覧できます。また各トランクをクリックして、その設定を 変更できます。この画面からトランクを削除することも できます。
トランクを作成する
トランク trunksナビゲーションバーで[Create New Trunk]新しいトランクを作成)をクリックし、新しい トランクを作成します。この操作は、Getting Started セクションからも実行できます。
一般的な設定
これらの設定は、トラフィックの向きに関係なくすべてのトランクに 適用されます。
分かりやすい名前
トランクに分かりやすい名前を付けます。
トランクSID
このトランクの一意の識別子です。 トランクを作成すると自動的に割り当てられます。
通話の録音
このドロップダウンから、このトランクの通話録音を有効にできます。有効にすると、 すべての通話(オリジネーションとターミネーションの両トラフィック)が 従量課金方式で録音されます。単一チャネルまたはデュアルチャネルの録音オプションを 選択できます。トランクのデフォルト設定は「録音しない」です。次の選択ができます。
- 録音しない: このトランクでは、録音は行われません。
- 呼出から録音: 呼出音の開始時点から録音を開始します。
- 応答から録音: 応答した時点から録音を開始します。
- 呼出からデュアル録音: 呼出音の開始時点から録音を開始し、両トラックを別々に表示します。
- 応答からデュアル録音: 応答した時点から録音を開始し、両トラックを別々に表示します。
- Recording Trim(録音のカット): 有効にすると、録音から無音部分がカットされます。無効にすると、録音から無音部分がカットされません。
長時間通話
Elastic SIP Trunkingでの最長通話時間が、4時間から24時間に延長されました。このため、企業は4時間を超える通話が可能です。詳細はこちらをご覧ください。
セキュアトランキング
伝送中は、暗号化により通話メディアと関連シグナルの秘密を守ります。Transport Layer Security(TLS)がSIPシグナルを暗号化し、Secure Real-time Transport Protocol(SRTP)が通話内容とメディアパケットを暗号化します。TLSを有効にしてトラブルシューティングする方法については、こちらの[ブログ記事]で解説しています。
TLSプロトコルは、保護されていないチャネルを介して通信をするクライアントとサーバー間の接続保護を目的としています。RFC 5246、Transport Layer Security(TLS)プロトコル、バージョン1.2により、Transport Layer Security(TLS)プロトコルのバージョン1.2の仕様が規定されています。
TLS仕様:
- サポートされているTLSバージョン:
TLSv1.0
、TLSv1.1
、TLSv1.2
注意:セキュリティ要件への適合を強化するため、Elastic SIP Trunkingの発着信に対するTLSv1.0とTLSv1.1は廃止しました。
SIPインフラストラクチャで、TLSv1.0やTLSv1.1を使用する必要がある場合は、Twilioアカウントを設定し、コンソールの[Voice](音声)→[Settings](設定)→[Allow Deprecated SIP/TLS Versions](非推奨のSIP/TLSバージョンを許可)することでこれらの非推奨バージョンを許可できます。 この設定を有効にすると、SIPエンドポイントでは、Twilioとの間で送受信されるSIPシグナリングに非推奨のTLSv1.0とTLSv1.1バージョンを使用できます。 無効にすると、非推奨でないTLSv1.2+のみが許可されます。
SIPインフラストラクチャに接続する場合、TwilioではTLSバージョン1.2を使用してください。
- サポートされている暗号化:
ECDHE-ECDSA-AES128-GCM-SHA256
、ECDHE-RSA-AES128-GCM-SHA256
、ECDHE-ECDSA-AES128-SHA256
、ECDHE-RSA-AES128-SHA256
、ECDHE-ECDSA-AES256-GCM-SHA384
、ECDHE-RSA-AES256-GCM-SHA384
、ECDHE-ECDSA-AES256-SHA384
、ECDHE-RSA-AES256-SHA384
、AES128-GCM-SHA256
、AES128-SHA256
、AES128-SHA
、AES256-GCM-SHA384
、AES256-SHA256
、AES256-SHA
SRTPは、RTPとRTCPの暗号化を行います。RFC 4568(メディアストリーム用のセッション記述プロトコル(SDP)セキュリティ記述(SDES))では、新たに定義されたSDP暗号属性を使用し暗号化マテリアルを交換するように特別に設計されたプロトコルが定義されています。
SRTP仕様:
- トランキングオリジネーション: 指定される暗号スイートは1つだけです。
AES_CM_128_HMAC_SHA1_80
- トランキングのターミネーション: サポートされる暗号スイートには、
AES_CM_128_HMAC_SHA1_80
、AES_CM_128_HMAC_SHA1_32
が含まれます。両者の優先順位は任意です。 - オプションのマスターキー識別子(MKI)パラメーターはサポートされていません
セキュアトランキングが有効であると、暗号化されていない通話は拒否されます。「transport=tls
」パラメーターを指定し、
オリジネーション設定でTLSの使用を設定してください。いずれかのURIにトランスポートパラメーターが存在し、別のトランスポートが指定されている場合(transport=udpなど)、これは無視され、TLSが使われます。デフォルトでは、TLSにポート5061が使用されますが、オリジネーションURIで自由にポートを指定できます。
TwilioのルートCA証明書のインポート
TLSは、SIPエンドポイント間のSIPシグナリングを暗号化するために使用されます。 これを正しく機能させるためには、ネットワークの特定のデバイスがSSL証明書をインポートする必要があります。 Twilioでは、CA(Certificate Authority: 認証局)の証明書を使います。ネットワークで認証を確立するには、以下のルート証明書をコミュニケーションインフラストラクチャに必ず追加しましょう。TwilioのCA証明書をダウンロード
Twilioが、ドメイン(*.pstn.twilio.com
)の複数のサブドメインに使用できるワイルドカード証明書を使用している点に注意しましょう。ネットワーク要素でワイルドカード化された証明書をサポートしていない場合は、証明書の検証を無効にしてください。
AsteriskにおけるTLS/SRTPサポート
Asteriskには既定でchan_sip
ドライバーが含まれており、Twilio上で正常に動作します。しかし、何らかの理由でPJSIP
ドライバーをAsterisk上で使用する場合、以下の点にご注意ください:
- Asterisk 13.8 cert2は
PJSIP 2.5
がデフォルトであり、TLS/SRTP用途ではTwilio上で動作しません。暗号化なしの通話は動作します。 - Asterisk 13.8 cert2はまた、最新の
PJSIP
ドライバー(現行で2.5.5)を使用できます。ログ上では次のメッセージが表示されますが、Twilio上で正常に動作します。
PJSIP 2.5.5
では下記のエラーが表示されますが、通話は動作します。
Sep 27 13:03:56] ERROR[10886]: pjproject:0 >: tlsc0x7f217c03 RFC 5922 (section 7.2) does not allow TLS wildcard certificates.Advise your SIP provider, please!
次のリンクでは、バンドルされていないバージョンのPJSIP
をインストールするためのガイドを示します。 手順では、バージョンを2.5.5に読み替えてください。
SIP REFERを介した通話転送
通話転送を有効にすると、Twilioはコミュニケーションインフストラクチャから着信したSIP REFERを使用し、Refer-Toヘッダーのアドレス宛のINVITEメッセージを作成します。詳細については、こちらをご覧ください。
メディア設定
対称RTP
一般的に、IPコミュニケーションインフラストラクチャはSDPの公開IPアドレスを使用する必要があり、このアドレスに対してのみTwilioからメディアが送信されます。しかし、SIP非対応のNATをトラバースする場合、公開IPが分からずプライベートIPアドレスにSDPが含まれるようになると、音声が一方通行になる問題が生じることがあります、Twilioはこの問題を解決するために、着信するRTPメディアストリームを取得し、対称RTPを有効にしてその宛先にRTPを送信します。
対称RTPが有効になると、TwilioはリモートRTPストリームの発信元を検出し、(SDPでネゴシエートされた宛先ではなく)その宛先にRTPの送信を開始します。この設定では、RTP攻撃に対する脆弱性が増すことに注意してください。
対称RTPを無効にすると、TwilioはSDPでネゴシエートされた宛先にRTPを送信します。安全性が高いため、こちらの設定をお勧めします。
ターミネーション設定
ターミネーションの設定により、コミュニケーションインフラストラクチャから PSTNにトラフィックを送信できます。ターミネーションにトランクを 使用するには、ターミネーションSIP URIと、少なくとも1つの認証スキーム (IPアクセスコントロールリストかクレデンシャルリスト)が必要です。
ターミネーションURI
このトランクのターミネーションSIP URIを一意に認識するためのSIPドメイン名を 設定します。コミュニケーションインフラストラクチャからTwilioへSIPトラフィックを転送するために このSIP URIが使用されます。
{example}.pstn.twilio.com
ドメインの可読性を高めるために、ドットではなくダッシュを使用してください。 ただし、上位レベルドメインのb.pstn.twilio.comではなく、a.b.pstn.twilio.comのようなサブドメインが望ましい場合もあります。
a.b.pstn.twilio.comのようなサブドメインは、次の要件の元で作成できます。
- 最初に上位レベルドメイン(b.pstn.twilio.com)を作成する
- 上位レベルドメイン(b.pstn.twilio.com)は同一アカウントまたは親アカウントで作成する
コミュニケーションインフラストラクチャ(IP-PBXまたはSBC)にトランクを設定する{#prepare}
コミュニケーションインフラストラクチャにトランクを設定し、
それが{example}.pstn.twilio.com
を指すようにしてアウトバウンドトラフィックがTwilioに向かうようにします。
ローカライズターミネーションURI
コミュニケーションインフラストラクチャ拠点に最も近い特定地域のエッジロケーションに 手動で接続するには、コミュニケーションインフラストラクチャが次のいずれかの ローカライズターミネーションSIP URIを 参照するように設定します。
{example}.pstn.ashburn.twilio.com
(北米バージニア){example}.pstn.umatilla.twilio.com
(北米オレゴン){example}.pstn.dublin.twilio.com
(ヨーロッパアイルランド){example}.pstn.frankfurt.twilio.com
(ヨーロッパフランクフルト){example}.pstn.singapore.twilio.com
(アジア太平洋シンガポール){example}.pstn.tokyo.twilio.com
(アジア太平洋東京){example}.pstn.sao-paulo.twilio.com
(南米サンパウロ){example}.pstn.sydney.twilio.com
(アジア太平洋シドニー)
こちらから旧版ローカライズURIリストを参照できます。例: {example}.pstn.us1.twilio.com
ターミネーションURIによる冗長性
Twilio Elastic SIP Trunkingは、ターミネーションURIとしてFQDN({example}.pstn.twilio.com
)を使用します。コミュニケーションインフラストラクチャは、そのターミネーションURIを使用し、SIPトラフィックをTwilioに転送します。前節での説明のとおり、ローカライズターミネーションURIを使用できます。
例えば{example}.pstn.ashburn.twilio.com
です。この特定のFQDNは、次のDNS Aレコード内で解決されます。
タイプ | IPアドレス | TTL |
---|---|---|
A | 54.172.60.3 | 10 min |
A | 54.172.60.0 | 10 min |
A | 54.172.60.2 | 10 min |
A | 54.172.60.1 | 10 min |
信頼性を考慮して、それぞれのエッジロケーションに3~4個のIPアドレスが用意されています(IP addressesを参照)。これらのIPアドレスは、Twilioクラウド中のElastic SIP Trunkingサービスの一意の公開エッジをあらわし、複数の可用性ゾーンへの分散により信頼性を高めています。
単一のIPアドレスに固定せず、すべてのIPアドレスを活用し、あるIPが応答しない場合でもフェイルオーバーできるようにしてください。
一般的な戦略は、INVITEに対する応答がない場合は4秒後に次のIPアドレスを呼び出すことです。これはTwilio内でも行っており、Twilioに接続するキャリアに対しても指示している方法です。単一IPの背後にある単一の機器は、いつかは障害が発生するため、それを考慮に入れた上での包括的な解決策を講じ、またこれらの障害に備えるようにしてください。
さらに、Ashburnが完全に停止した場合は、別のエッジロケーションへのフェイルオーバーが推奨されます(例: 'ashburn'に接続する場合、'umatilla'にフェイルオーバーします)。ただし、信頼性を考慮して、エッジロケーションは3~4個の異なるIPアドレスを解決する点に注意してください。
認証
ターミネーショントラフィックのセキュリティ/信頼性を確保するために、認証の詳細を設定します。最低限ACLもしくはクレデンシャル認証の設定をする必要があります。両方を設定した場合、アクセスコントロールリストとクレデンシャルがともに必要となります。
ユーザークレデンシャルの設定を強くお勧めします。IP ACLだけでは、防御できないタイプの攻撃があります。
新しいアクセスコントロールリスト(ACL)を作成するには、次の手順に従います。
- [Authentication](認証)セクションから[Create IP Access Control List](IPアクセスコントロールリストを作成)をクリックします。
- アクセスコントロールリストには、IPアドレスリストの内容が 分かるような名前を付けます。例えば「ダラスデータセンターIP」などの名前にします。
- IPアドレスを新しいIPアクセスコントロールリストに追加します (これらは、コミュニケーションインフラストラクチャの 境界要素(SBCなど)により、アウトバウンドSIPトラフィックに使用されるIPアドレスです)。
- IPには、そのIPの内容が分かるような名前を付けます (「プロダクションSBC」など)。
- [Create ACL](ACLを作成)をクリックします。
新しいクレデンシャルリストを作成するには、次の手順に従います。
- [Authentication](認証)セクションから[Create Credential List](クレデンシャルリストを作成)をクリックします)。
- クレデンシャルリストには、認証するユーザーが 分かるような名前を付けます。例えば「「Admin, Twilio」(Twilio管理者)とします。
- ユーザー名を入力します(これらは、コミュニケーションインフラストラクチャの 境界要素(SBCなど)により、アウトバウンドSIPトラフィックのダイジェスト認証に使用される ユーザー名にします)。
- そのユーザーに対応するパスワードを入力します。
- [Create Credentials List](クレデンシャルリストを作成)をクリックします)。
ユーザークレデンシャルを使用する場合、SIP INVITEは、適切なユーザークレデンシャルを要求する
407 Proxy Authentication Required
リクエストにより、認証を試みます。
このステップを完了することで、トランクはターミネーション通話を コミュニケーションインフラストラクチャからTwilioを通じてPSTNに発信できるようになります。
ターミネーション通話で許可された発信者ID番号
発信者ID番号を指定します。アカウントのTwilio DIDに対応しているか、コンソールで検証、またはOutgoing Caller ID APIを使用して検証した発信者ID番号を指定します。
発信者ID番号がSIP INVITEのFromフィールドに指定されていない場合は、Remote-Party-IDまたはP-Asserted-Identityが使用されます。
試用版アカウントの場合、検証済みの発信者IDの使用に加え、検証済みの番号への発信のみに限定されます。この制約を解除するには、コンソールからアカウントをアップグレードしてください。
最初のターミネーション通話をする
INVITE sip:+15108675309@{example}.pstn.ashburn.twilio.com SIP/2.0
SIPからTwilioに送られる電話番号は、必ず
E.164形式(例: +12128675309
)にします。E.164形式を使用しないと、
SIP 400 Bad Request
応答が返されて通話が拒否されます。
E.164形式の番号には必ず+
を含めてください。プラスのプレフィックスが必要です。
オリジネーション設定
オリジネーション設定を行うことにより、PSTNからTwilio番号宛で コミュニケーションインフラストラクチャに送られる着信トラフィックを受信 できます。Twilioは100か国以上の電話番号に対応する真のグローバルSIPトランクを 提供します。オリジネーション用に設定する場合、このトランクに 1つ以上のTwilio番号を関連付けます。
このセクションで行うオリジネーション設定は、このトランクに関連付けられた すべての番号に適用されます。
オリジネーションSIP URI
オリジネーションSIP URIを設定します。これにより、コミュニケーションインフラストラクチャ (例: IP-PBX、SBC)へのネットワークエレメントエントリポイントを指定します。SIP URIのホスト部分は、IPアドレスまたは 完全修飾ドメイン名(FQDN)で指定できます。
sip:172.56.42.132
sip:mysbc.com
TwilioはPSTNからの呼び出し先のTwilio番号に基づき、SIP URIのユーザー部分を 自動的に設定します。例えば、PSTNから このトランクに関連付けられたTwilio番号+14158675309に受信した通話の場合、 コミュニケーションインフラストラクチャに送信されるURIは 次のようになります。
sip:+14158675309@172.56.42.132
sip:+14158675309@mysbc.com
または、オリジネーションSIP URIに特定のユーザー部分を設定する という方法もあります(例: 「anniebp」)。注: このトランクに関連付けられたすべての番号に 同じURIが使用されます。つまり、このトランクに関連付けられた Twilio番号(+14158675309)でPSTNから受信する通話の場合、 コミュニケーションインフラストラクチャに送信されるURIは すべての電話番号で次のようになります。
sip:anniebp@172.56.42.132
sip:anniebp@mysbc.com
注: トランキングのオリジネーション通話において、ダイヤルされたTwilio番号(+14158675309)は
常にSIPのDiversion
ヘッダーで伝達されます。
X-ヘッダー
オリジネーションSIP URIに、X-
接頭辞で始まる任意のSIPヘッダーを
付加すると、これらの送信が可能になります。例えば
sip:+14158675309@mysbc.com?X-myheader=foo
を設定した場合、
X-myheader:foo
をすべてのオリジネーション通話に送信できます。
transport
パラメーター
デフォルトでは、TwilioはUDPを介してコミュニケーションインフラストラクチャに発信SIPリクエストを送信します。これを、UDPではなくTCPを介して送信するようカスタマイズできます。変更する場合は、オリジネーションSIP URIで次のトランスポートパラメーターを使用します。
sip:anniebp@172.56.42.132;transport=tcp
または、SIPシグナリングにTLSを使用するようにカスタマイズするという方法もあります。TLSを使う場合、デフォルトのポートは5061ですが、別のポートを指定してもかまいません。変更する場合は、オリジネーションSIP URIでトランスポートパラメーターを使用し、オプションで別のポート番号を指定します。
sip:anniebp@172.56.42.132:5062;transport=tls
注記: sips
URIスキーマを使用してElastic SIP TrunkingのオリジネーションURIを設定し、エンドツーエンド暗号化を有効にすることは、Twilioではサポートされません。ただし、ポイントツーポイント暗号化のための、transport=tls
を使用したsip
URIスキーマはサポートされます。
Elastic SIP TrunkingのオリジネーションURIを設定してsips
スキーマを使用する場合、これらのsips
URIは、TLSトランスポートを使用したsip
URIと同様に処理されます。Twilioは代わりに、アウトバウンドメッセージでsip
スキーマとtransport=tls
を使用して、URIがルーティングされるように内部で効率的に調整します。これでTwilioとカスタマー機器の間でポイントツーポイント暗号化を実行できます。
Twilioでは、sips
スキーマを使用したTwilio SIP設定は避けてください。これらのURIの処理方法が、予期せぬ動作につながるおそれがあるためです。代わりに、sip
スキーマとTLSトランスポートを使用してください。この方法に、音声アーキテクチャとSuper Networkのセキュリティを組み合わせ、TwilioのSIP接続に効果的に暗号化を追加できます。
edge
パラメーター
Twilioからコミュニケーションインフラストラクチャへ発信SIPトラフィックを送信する地域エッジを指定するには、edge
パラメーターをオリジネーションSIP URIに含める必要があります。例えば、edge=dublin
パラメーターをオリジネーションSIP URIに含めると、欧州アイルランドのエッジロケーションからSIPトラフィックが送信されます。
sip:anniebp@172.56.42.132;edge=dublin
edge
パラメーターを指定しない場合、PSTN通話が着信したエッジロケーションから発信SIPトラフィックが送信されます。
注記: TwilioエッジロケーションのIPアドレスにSIPシグナルとRTPメディアトラフィックを許可する必要があります。
このパラメーターの旧称はregion
で、現在もサポートされています。こちらから旧版地域IDのリストを参照できます。例: sip:anniebp@172.56.42.132;region=ie1
複数のオリジネーションSIP URIの使用
異なる優先順位と重みを使用し、最大10のオリジネーションSIP URIを設定できます。
priorityフィールドにより、SIP URIの使用順が決まります。Twilioは常に、priorityの値が最も小さいSIP URIを最初に使用します。このSIP URIへのセッションが失敗した場合は、priorityの値がそれと同じまたはそれより大きいSIP URIを代わりに使用します。
1つのサービスに同じpriorityの値を持つ複数のオリジネーションSIP URIが存在する場合、Twilioはweightフィールドを基に、使用するSIP URIを決定します。重み値は、同じ優先度値を持つ他のSIP URIとの関連においてのみ適用されます。
Priority
はURIの重要度をランク付けします。値の範囲は0~65535であり、値が小さいほど重要度は高くなります。複数のURIが同じ優先度を持つ場合は、負荷率を決定にWeight
を使用します。値の範囲は1~65535です。値が大きいほど、URIの負荷率が高くなります。
オリジネーションSIP URIは、有効化または無効化できます。オリジネーションSIP URIが有効な場合、ルート選択の対象になります。有効ではない場合、トラフィックをコミュニケーションインフラストラクチャにルーティングする際に使用されません。
次の例では、priorityフィールドとweightフィールドの両方を使用し、負荷分散サービスとフェイルオーバーサービスを組み合わせて提供します。
オリジネーションSIP URI | 優先度 | 重み |
---|---|---|
sip:mysbc1.com | 10 | 60 |
sip:mysbc2.com | 10 | 20 |
sip:mysbc3.com | 10 | 20 |
sip:mysbc-backup.com | 20 | 10 |
最初の3行のSIP URIは、priorityがいずれも10であるため、Twilioはweightフィールドの値を使用して接続するサーバーを決定します。3つ値の合計は100であり、sip:mysbc1.com
が60%の確率で使用されます。sip:mysbc2.com
とsip:mysbc3.com
の2つのSIP URIは、それぞれリクエストの20%で使用されます。sip:mysbc1.com
が使用不可の場合、残りの2つの機械がそれぞれ50%の確率で選択され、均等に負荷を分担します。
priorityが10のサーバー3つすべてが使用不可の場合、priorityの値が次に小さいレコード、すなわちsip:mysbc-backup.com
が選択されます。
注記: いずれかのSIPステータスコード("2xx"、"400"、"404"、"405"、"410"、"416"、"482"、"484"、"486"、または"6xx")が返された場合、Twilioは次のオリジネーションSIP URIへのフェイルオーバーを行いません。特定のサーバーからSIPレスポンスがないまま4秒が経過すると、Twilioはフェイルオーバーします。
ディザスタリカバリURL
災害が発生して通話が上記のオリジネーションSIP URIに配信されない場合に備え、 Twilioの強力なスクリプト記述ツールTwiMLで構築されたアプリケーションを参照する ディザスタリカバリURLを設定できます。TwiMLを 使用し、ディザスタリカバリ計画で必要とされる通話管理機能(PBXの IVRなどの機能を複製するなど)を提供するアプリケーションを 構築できます。
- 'http://fallback.mycompany.com/index'
TwiMLアプリケーションの構築の詳細については、 TwilioクイックスタートとTwiML APIガイドをご覧ください。通話がディザスタリカバリURLに リダイレクトされた場合、通常のTwilio Voice料金が適用されることに 注意してください。Voiceの料金をご覧ください。
CNAM検索
CNAMは発信者ID名(Caller ID Name)の略称です。CNAMは発信者名を電話番号と併せて表示するために使用され、エンドユーザーが簡単に発信者を特定できるようにします。
CNAM検索を有効にすると、各発信者に対する発信者ID名が「From」と「Contact」、そして(該当する場合は)「P-Asserted-Identity」フィールドを通じてSIP INVITE内に挿入されます。
米国とカナダの番号に対するCNAM検索は、たとえデータが登録されていない場合でも、検索の回数に応じて課金が行われます。現在、(日本国内の番号を含む)国際番号に対する発信者ID名の検索リクエストに対してはnull値が返され、課金は行われません。
Twilioコンソールを使用してこの機能を有効にする:
コンソールでCNAM検索をオンにするには、コンソールにログインして[Elastic SIP Trunking]セクションにアクセスします。
トランクを選択したときに、(左側のサブメニューから)[Origination](オリジネーション)設定にアクセスします。ここでは、CNAM検索をオンにできるスイッチが見つかります。スイッチが「青く」光り、「ENABLED」(オン)と表示されている場合、設定が有効であることが分かります。
- CNAM検索は、トランク単位で必ずオンにします。
- CNAM検索は、米国とカナダの電話番号のみでサポートされます。
- CNAM検索は、成功した検索に対して課金されます(これはCNAMナショナルデータベースで番号に対する名前が利用できない場合も当てはまります)。AT&Tの番号の多くはCNAMナショナルデータベースに公開されていないことが知られています。
- CNAM検索は、通話自体が失敗した場合でも、検索の成功に応じて課金されます。
通話リダイレクト
通話リダイレクトにより、トランキングのオリジネーション通話をリダイレクトできます。コミュニケーションインフラストラクチャの着信INVITEのリダイレクトは、SIP 302(Moved Temporarily)で応答して行われます。この応答に含まれるコンタクトヘッダーフィールドに宛先の新しいアドレスが示されます。
- Twilioは1回の通話につき1回のリダイレクトが可能です。
- リダイレクト先からも別の宛先へのSIP 302応答が返される場合、通話は失敗します。
- TwilioはSIP 302応答の最初のURIを優先します。SIP
Contact
ヘッダーにURIが複数ある場合や、SIPContact
ヘッダーが複数ある場合、それぞれ最初の1つ以外は無視されます。
- Twilioドメイン(
*.sip.twilio.com
または*.pstn.twilio.com
)宛の通話リダイレクトはサポートされません。 - 登録済みのSIPエンドポイント宛ての通話の場合、リダイレクトは許可されません。
edge
パラメーターは、SIP 302コンタクトURIではサポートされません。リダイレクトされた通話は、発信元と同じ出力エッジロケーションを使用します。tnx
パラメーターは、SIP 302コンタクトURIではサポートされません。リダイレクトされた通話は、発信元と同じInterconnect接続を使用します。- オリジナルのINVITEにセキュアトランキングが使用されていた場合、リダイレクト通話もTLS/SRTPを使用します。
- オリジナルのINVITEに通話録音が使用されていた場合、リダイレクト通話も録音されます。
SIP Diversion
ヘッダー
トランキングオリジネーション
PSTNからTwilio番号宛で、コミュニケーションインフラストラクチャに送られる着信トラフィックをTwilioが受信すると、ダイヤルされたTwilio番号を示すSIP Diversion
ヘッダーが追加されます。このヘッダーは、通話がダイヤル先の番号からSIPトランクのオリジネーションSIP URIに転送されたことを示す履歴レコードとなります。このDiversion
ヘッダーの例を以下に示します。
Diversion: <sip:+14155550000@twilio.com>
トランキングのターミネーション
コミュニケーションインフラストラクチャからPSTNへの送信トラフィックをTwilioが受信するときに、通話が以前に転送されていた場合は、SIPメッセージにSIP Diversion
ヘッダーが含まれることがあります。Twilioは、受信するSIP Diversion
ヘッダーをキャリアに転送します。
悪意のあるDiversionヘッダーの追加を防ぐため、Twilioは、Twilioドメインが含まれるすべての受信Diversionヘッダーをチェックします。Twilioは、ヘッダーに含まれる電話番号が、Twilioアカウントに関連付けられている電話番号(アカウントが所有するTwilio番号または確認済みの発信者ID)と一致することを確認します。このチェックに合格しないヘッダーは削除されます。
数値
このタブでは、次を実行できます:
- トランクの新しいTwilio番号を購入する
- このトランクに現在関連付けられているすべてのTwilio番号を閲覧する
- このトランクに既存のTwilio番号を関連付ける
- このトランクからTwilio番号の関連付けを解除する
このトランクに現在関連付けられているすべてのTwilio番号を閲覧する
[Numbers](番号)セクションでは、このトランクに現在関連付けられているすべての
番号を閲覧できます。これらすべての番号は、同じオリジネーション設定と
一般的な設定を共有していることに注意してください。
特定の番号をクリックすると、その構成を閲覧/変更できます。
トランクの新しいTwilio番号を購入する
PSTNからTwilioトランク経由でコミュニケーションインフラストラクチャに着信する通話を
受信するには、Twilio電話番号が少なくとも1つ
必要です。
トランクに関する設定の変更をすべて確認し、
[Numbers](番号)セクションで[Buy a Number](番号を購入する)を選択してください。
国コードを選択し、番号で使用する任意のパターン(例: +14158675309)に一致する
空き番号を検索します。
購入したいTwilio番号を見つけ、手順を進めてその番号を購入し、番号の設定へと進んで
ください。
番号表示画面で、その番号の設定を変更
できます。
[Voice](音声)セクションで[SIP Trunking](SIPトランク)ラジオボタンを選択し、その下の
ドロップダウンリストでこの番号に関連付けるSIPトランクを
選択します。変更した設定は必ず保存してください。
このトランクに既存のTwilio番号を関連付ける
[Numbers](番号)セクションで[Associate a Number with this Trunk](この
トランクに番号を関連付ける)を選択すると、既存のすべてのTwilio番号のリストが表示されます。
このトランクに関連付ける番号を1つクリックします。
番号表示画面で、その番号の設定を
変更できます。[Voice](音声)セクションで[SIP Trunking](SIPトランク)ラジオ
ボタンを選択し、その下のドロップダウンリストでこの番号に関連付けるSIPトランクを
選択します。変更した設定は必ず保存してください。
このトランクからTwilio番号の関連付けを解除する
次に示すさまざまな方法により、トランクから番号の関連付けを解除できます。
- 関連付けを直接解除するには、特定のトランクの[Numbers](番号)セクションで
表示されている番号リストの電話番号のごみ箱ボタンをクリックします。 - 特定の番号の[Voice](音声)設定を別のトランクに変更するか、
アプリケーションまたはURLを使用するように設定します。 - その番号に関連付けられているトランクを削除します。
このとき、番号とトランクの関連付けは解除されますが、アカウントから番号が
リリースされるわけではありません。
Twilio電話番号は、毎月請求されます。頻繁に使用している
番号がある、将来使用するために予約しておきたい番号があるという場合以外は、
未使用の番号をリリースすることにより、コストを削減できます。番号をリリースするには、
[Voice and Messaging](音声とメッセージ)セクションで[Numbers](番号)をクリックし、
そのページから該当する番号をリリースします。
最初のオリジネーション通話を受信する
トランクのTwilio番号(例: +14158675309
)をダイヤルして
最初のテスト通話を行い、対応するコミュニケーションインフラストラクチャの
内線番号が呼び出されることを確認します。
トランクを削除する
次のいずれかの方法で、トランクを削除できます。
- [Trunks](トランク)セクションで表示されるトランクリストを使用します。このとき、 このトランクに関連付けられているすべての番号は、自動的にトランクとの関連付けを解除されますが、 リリースされるわけではありません。リリースするには、 [Voice and Messaging](音声とメッセージ)セクションの[Numbers](番号)をクリックし、 そのセクションから任意の番号をリリースします。
- トランク固有の設定画面には、 [Delete this Trunk](このトランクを削除)オプションがあります。
このとき、このトランクにそれまで関連付けられていたすべての番号が、自動的にトランク との関連付けを解除されますが、アカウントからリリースされるわけでは ありません。Twilio電話番号は、毎月請求されます。頻繁に使用して いる番号がある、将来使用するために予約しておきたい番号があるという場合以外は、 未使用の番号をリリースすることにより、コストを削減できます。番号をリリース するには、[Voice and Messaging](音声とメッセージ)セクションで[Numbers](番号) をクリックし、そのセクションから該当する番号をリリースします。
ネットワーク
コミュニケーションインフラストラクチャを準備し、SIP インフラストラクチャがTwilioと相互に接続できるようにします。
- Twilioプラットフォームの特定地域のエッジロケーションに手動で接続するには、 オプションでローカライズターミネーションURIを使用して、 TwilioトランクのターミネーションURIを設定します。
- すべてのTwilioシグナルとメディアのIPアドレス/ポートを ファイアウォールで許可します。
- このトランクに登録しないように、インフラストラクチャを設定します。
- インフラストラクチャが
Max-Forwards
で最小値20を送信して、 通話が正しく処理されるようにします。 - SIPからTwilioに送られる電話番号は、必ずE.164形式 にします。
- オプションとして、お客様のコミュニケーションインフラストラクチャからSIP OPTIONSメッセージをElastic SIP TrunkへのPingメカニズムとして発行できます(メッセージリクエストを、作成済みのターミネーションURI(
example.pstn.twilio.com
)に送信します); このようにするとTwilioプラットフォームは適切にレスポンスを返します。Pingは、10~15秒につき1 SIP OPTIONS以下を維持し、Twilioプラットフォームからリクエストがブロックされないようにしてください。
NAT越しでデプロイする
セッションボーダーコントローラーなしでNAT背後にデプロイしている場合、NAT変換バインディングを常に開放しておくことが重要です。
- シグナリングにUDPを使用する場合、SIP OPTIONSをTwilioに定期的に送信し、それが200 OKを返すことで達成できます。
- シグナリングにTCPまたはTLSを使用する場合、SIP OPTIONSをTwilioに、またはCR-LF keep-alives(定期的にダブルCRLFを送信して(「ping」)、TwilioからシングルCRLFの受信(「pong」)を待機)を定期的に送信すると達成できます。後者の場合オーバーヘッドは最小になります。
- メディアパケットはより頻繁に送信されるため、RTPに関しては通常問題は起こりにくくなります。
IPアドレス
以下に示すすべてのTwilioのIPアドレス範囲とポートについて、ファイアウォールでSIPシグナルとRTPメディアトラフィックを許可する必要があります。これは、耐障害性を高めるために異なるエッジロケーションに番号を分散させている場合に重要です(例、北米バージニアゲートウェイが停止した場合に北米オレゴンゲートウェイを使用する)。 メディアの発信元がどのエッジロケーションになるかは、edgeパラメーターを使用する場合を除き保証されません。どのPSTN-SIPゲートウェイからどのTwilioのエッジロケーションに通話を配信するかにより異なるためです。
こちらに、Twilio Elastic SIP TrunkingのIPアドレスの一覧が記載されています。
インフラストラクチャをTwilio Elastic SIP Trunkで設定する際に役立つ情報については、 SIPトランクの設定ガイドをご覧ください。