Sinch SIPトランキング
Sinch SIPトランキング
Sinch Elastic SIP TrunkingをElevenLabs Agentsに接続します。
このガイドを始める前に、ElevenLabs SIPトランキングガイドとSinch Voice SIPトランキングガイドをお読みください。
概要
このガイドでは、Sinch VoiceアプリケーションをElevenLabs Agentsに直接接続する方法を説明します。このインテグレーションにより、Sinchの番号とルーティングを維持したまま、ElevenLabsがAI音声エージェントの体験を担います。
SinchでのSIPトランキングの仕組み
Sinch SIPトランクは、SinchネットワークとElevenLabsプラットフォーム間の双方向接続です。
- 着信通話:Sinch Voiceアプリケーションに割り当てられたDIDに着信があります。Sinchは、トランクの着信設定で静的エンドポイントとして構成されたElevenLabsの発信元アドレスに
INVITEを送信します。 - 発信通話:ElevenLabsが開始した通話は、アプリケーションの完全修飾ドメイン名(FQDN)のSIPアドレスに送信され、SinchがPSTNにルーティングします。
- 認証:Sinchでは発信認証(SIP認証情報)が必要で、トランクに到着するトラフィックにはACL認証(IP許可リスト)を使用できます。
要件
開始する前に、以下を用意してください。
- エージェントが設定された有効なElevenLabsアカウント
- Sinch Buildダッシュボードで音声アプリケーションを作成済みのSinchアカウント
- Sinchで購入し、アプリケーションに割り当てた電話番号(DID)を少なくとも1つ
着信通話の設定(SinchからElevenLabs)
アプリケーションの着信転送先をElevenLabs SIPアドレスに設定します。
ElevenLabs用の静的エンドポイントを追加する
アプリケーションの着信転送設定で、通話イベントハンドラーをSIP Forwardingに更新し、ElevenLabsの発信元アドレスを指定する静的SIP URIを追加します。
- DID:発信先にするSinchの電話番号
- アドレス:
sip.rtc.elevenlabs.io - ポートとトランスポート:
5061/TLS、5060/TCP
例:sip:15551234567@sip.rtc.elevenlabs.io:5061;transport=tls。
ElevenLabsワークスペースで分離されたデータレジデンシーリージョンまたは静的IPSIPインフラストラクチャを使用している場合は、sip.rtc.elevenlabs.ioではなく対応するエンドポイントを使用してください。利用可能なリージョンについては、データレジデンシーを参照してください。
発信通話の設定(ElevenLabsからSinch)
発信通話では、ElevenLabsがSinchアプリケーションにSIP INVITEを送信し、認証を行います。
SinchリージョンのFQDNを確認する
SinchリージョンのSIP FDQNを取得します。これはElevenLabsに入力する終端アドレスです。sip:プレフィックスは付けず、ホスト名のみを入力してください。
ElevenLabsでセットアップを完了する
発信通話をテストする
電話番号メニューまたは発信通話APIを使用して、エージェントからSinchアプリケーション経由で通話を発信します。
完全なリクエストスキーマについてはSIPトランク経由の発信通話を、発信キャンペーンの実行については一括通話を参照してください。
転送の設定
エージェントはtransfer_to_numberシステムツールを使用して、通話を担当者に引き継ぎます。
Sinchトランクで機能するのは会議転送のみです。SIP REFERおよびブラインド転送は失敗します。
会議転送
ElevenLabsはSinchトランク経由で宛先に発信し、両者を会議に接続した後、エージェントを切断します。
代わりにSinch Voice API v2を使用する
上記のセットアップでは、ElevenLabsが音声パス全体を担います。Sinchで通話制御を行う必要がある場合は、Sinch Voice API v2で通話に応答し、独自のロジックを適用してから、リレーサーバーなしでSVAMLを使用してElevenLabsエージェントへの第2レッグをブリッジできます。このモデルは、エージェントが参加する前に留守番電話検出、通話録音、番号マスキングなどのSinch機能を追加したい場合や、エージェントがより大きなSinch通話フローの一工程である場合に適しています。
その他の一般的なシナリオについては、SinchのSIP経由でElevenLabs AIエージェントを統合するチュートリアルを参照してください。
トラブルシューティング
着信通話を接続できない
- トランクの静的着信エンドポイントが、使用するポートとトランスポートで
sip.rtc.elevenlabs.ioを指定していることを確認してください。 - DIDがそのトランクに割り当てられていることを確認してください。
- ElevenLabsの番号が、先頭の
+を含めてSinchが送信する番号と一致していることを確認してください。 - エンドポイントまたはACLを変更した後は、少なくとも60秒待ってから再テストしてください。
- ファイアウォールがTCPの場合は5060、TLSの場合は5061でのSIPシグナリングを許可し、RTPをブロックしていないことを確認してください。
発信通話で403または407レスポンスを受信する
- ElevenLabsのSIPトランクのユーザー名とパスワードが、Sinchトランクの認証情報と一致していることを確認してください。
- アドレスフィールドには、
sip:プレフィックスなしでトランクのFQDNのみが入力されていることを確認してください。 - 宛先の国に対する国別権限がトランクで有効になっていることを確認してください。
- 表示する発信者IDが、そのトランクでSinchが受け入れる番号であることを確認してください。
- ACL認証を使用している場合、ElevenLabsのシグナリングは分散したアドレスプールから到着する点に注意してください。ダイジェスト認証に切り替えるか、静的IPインフラストラクチャに移行してください。
片方向音声または音声がない
- ファイアウォールがUDP経由のRTPを双方向で許可しており、特定の静的アドレスに制限されていないことを確認してください。
- メディア暗号化が一致していることを確認してください。TLSのSinchトランクではSRTPが必要なため、ElevenLabsでメディア暗号化を
AllowedまたはRequiredに設定します。 - 問題がTLSまたはSRTPに関連するものかを切り分けるため、TCPおよびメディア暗号化を無効にしてテストしてください。
- トランクでG711が提供されていることを確認してください。ElevenLabsはG711とG722をサポートしています。
エージェントが切断しても通話が終了しない
BYEに対する481レスポンスは通常、リクエストがその通話のダイアログ状態を持たないSIPサーバーに到達したことを意味します。共有のsip.rtc.elevenlabs.ioアドレスではなく、200 OKで返されたContact URIにダイアログ内リクエストを送信してください。TLS経由のBYEまたはREFERで証明書の検証に失敗する場合は、電話番号設定のリモートドメインフィールドに、トランクの証明書が発行されているFQDNを追加してください。
よくある質問
どのトランスポートを使用すべきですか?
本番環境では、SinchトランクでSRTPメディアと組み合わせた5061のTLSを使用してください。検証の開始点としては、5060のTCPが適しています。UDPはElevenLabsでは実験的な機能であり、本番トラフィックには使用しないでください。
互換性のあるオーディオコーデックはどれですか?
ElevenLabsはG711(8kHz)とG722(16kHz)をサポートしています。共通のコーデックとして、SinchトランクでG711を提供し続けてください。
発信者コンテキストを会話に渡すにはどうすればよいですか?
着信INVITEのカスタムX-ヘッダーは動的変数として公開されます。たとえば、X-Contact-IDは{{sip_contact_id}}になります。X-Call-IDとX-Caller-IDは、system__call_sidとsystem__caller_idにマッピングされます。完全な正規化ルールについては、SIPトランキングを参照してください。