SIPトランキング

SIPトランキングを使用して、既存の電話システムをElevenLabs Agentsに接続

概要

SIP(Session Initiation Protocol)トランキングを使用すると、既存の電話インフラをElevenLabs Agentsに直接接続できます。 このインテグレーションにより、すべてのお客様は既存の電話システムを利用しながら、ElevenLabsの高度な音声AI機能を活用できます。

SIPトランキングでは、次のことができます。

  • Private Branch Exchange(PBX)またはSIP対応電話システムをElevenLabsの音声AIプラットフォームに接続する
  • 既存の電話インフラを変更せずに、通話をAIエージェントへルーティングする
  • 着信通話と発信通話の両方を処理する
  • セキュリティを強化するために、暗号化されたTLSトランスポートとメディア暗号化を活用する

SIPを初めて使用する場合は、SIP、SBC、SDP、RTP、 MTUなど、このガイドで使用する用語をわかりやすく説明したSIPリファレンスをご覧ください。

静的IPSIPサーバー

ElevenLabsは、セキュリティポリシーでIP許可リストを必要とするエンタープライズのお客様向けに、静的IPアドレスを持つSIPサーバーを提供しています。

静的IPインフラでは、米国、EU、インド、シンガポールの複数リージョンに分散した256アドレスを含む/24IPアドレスブロックを使用します。ファイアウォール設定で、この/24ブロック全体を許可リストに追加する必要があります。

デフォルト(米国/国際)環境では、SIPエンドポイントとしてsip-static.rtc.elevenlabs.ioを使用してください。 分離リージョンでは、sip-static.rtc.<region>.residency.elevenlabs.ioを使用します。<region>はデータレジデンシーリージョンコードです(例:eu、in、sg)。これらのエンドポイントを使用する場合、すべてのトラフィックはそのリージョン内からのみ発信されます。リージョンごとの個別の許可リスト設定は利用できません。利用可能なリージョンの一覧はデータレジデンシーをご覧ください。

この機能はエンタープライズアカウントで利用でき、テスト目的でエンタープライズトライアル中にも有効化できます。アクセスをリクエストするには、support@elevenlabs.ioまでサポートにメールするか、担当者にお問い合わせください。詳細は、営業へのお問い合わせをご利用ください。

SIPトランキングの仕組み

SIPトランキングは、電話インフラとElevenLabsプラットフォームの間に直接接続を確立します。

  1. 着信通話:SIPトランクからの通話は、設定したSIP INVITEアドレスを使用してElevenLabsプラットフォームにルーティングされます。
  2. 発信通話:ElevenLabsが開始した通話は、設定したホスト名を使用してSIPトランクにルーティングされ、エージェントが外線発信できるようになります。
  3. 認証:シグナリングの接続セキュリティは、Digest認証(ユーザー名/パスワード)またはシグナリングの送信元IPに基づくAccess Control List(ACL)認証によって維持されます。
  4. シグナリングとメディア:初期通話設定(シグナリング)は、暗号化通信のためのTLSを含む複数のトランスポートプロトコルをサポートしています。通話が確立されると、実際のオーディオデータ(RTPストリーム)は、メディア暗号化設定に基づいて暗号化できます。

トランスポートセキュリティ:証明書と暗号スイート

TLSトランスポートを使用する場合、SIPシグナリングが交換される前に、両側でTLSハンドシェイクが実行されます。ハンドシェイク中に、証明書を検証し、暗号スイートをネゴシエートします。接続を受け入れる側はTLSサーバーとして動作し、証明書を提示します。接続を開始する側はTLSクライアントとして動作し、証明書を検証します。ElevenLabsではTLS 1.2以降が必要です。

役割は通話の方向によって異なります:

  • ElevenLabsへの着信通話:システム側が接続を開始するため、ElevenLabsはTLSサーバーとして動作します。ElevenLabsはsip.rtc.elevenlabs.io用の有効な証明書を提示し、システム側はTLSクライアントとしてそれを検証します。
  • ElevenLabsからの発信通話:ElevenLabsが設定済みのアドレスへの接続を開始するため、SIPサーバーまたはSBCがTLSサーバーとして動作します。システム側は有効で信頼された証明書を提示する必要があり、ElevenLabsはTLSクライアントとしてそれを検証します。

両側が互いの証明書を信頼し、少なくとも1つの共通する暗号スイートを共有していることを確認してください。満たされない場合、通話が確立される前にTLSハンドシェイクが失敗します。これらの用語の定義については、SIPリファレンスを参照してください。

後続接続

BYEやREFERなどの一部のダイアログ内リクエストでは、元の接続がすでに閉じている場合に新しいTLS接続が必要になることがあります。こうした後続接続の証明書の動作は、最初の通話セットアップとは異なります:

  • ElevenLabsへの後続接続:システム側は、レスポンスで返されたContactヘッダーのアドレスへの接続を確立します。このアドレスは、<ip>.hosts.rtc.elevenlabs.io形式の特定のSIPサーバーに解決されます。そのサーバーは*.hosts.rtc.elevenlabs.ioに有効な証明書を提示し、システム側がTLSクライアントとして検証します。
  • ElevenLabsからの後続接続:ElevenLabsがBYEまたはREFERのためにTLS接続を開始する場合、最上位のViaヘッダー内のアドレスに接続します。このアドレスはIPアドレスであることがよくあります。通常、システム側はそのIPアドレスではなく完全修飾ドメイン名(FQDN)に有効な証明書を返します。この証明書を検証するには、電話番号設定のリモートドメインフィールドを設定してください。受信した証明書が有効なドメインのいずれかが設定済みのリモートドメインと一致すると、検証は成功します。それ以外の場合は失敗します。

TLS経由の発信BYEまたはREFERリクエストで証明書の検証に失敗する場合は、SIP サーバーの証明書が発行されているFQDNを、電話番号設定のリモートドメインフィールドに追加してください。

ElevenLabs SIPトランクへの発信

ElevenLabsプラットフォームへの通話を開始する際は、適切なSIP URI形式を使用する必要があります。ElevenLabs SIPトランクのURIは、シグナリングに使用するトランスポートによって異なります:

  • TCP:sip:sip.rtc.elevenlabs.io:5060;transport=tcp
  • TLS:sip:sip.rtc.elevenlabs.io:5061;transport=tls
  • UDP:sip:sip.rtc.elevenlabs.io:5060;transport=udp(実験的機能。テスト用途にのみ使用し、本番環境では使用しないでください)

通話するには、識別子を含む完全なSIP URIを作成します。たとえば、電話番号+19991234567にTCP経由で発信する場合:

sip:+19991234567@sip.rtc.elevenlabs.io:5060

ここで:

  • +19991234567は識別子です(通常はE.164形式の電話番号)
  • 識別子には、1000やjohnなどの任意の文字列値も使用できます

よくある間違い:識別子なしで、sip@sip.rtc.elevenlabs.io:5060に直接通話を開始しないでください。 SIP URIには、sip:プレフィックスの後、@記号の前に電話番号または識別子を含める必要があります。

SIP URI形式:SIP URIは sip:identifier@domain:port形式に従います。通話を適切にルーティングするには、識別子が必要です。

要件

SIPトランキングを設定する前に、以下を確認してください:

  1. SIP対応のPBXまたは電話システム
  2. ElevenLabsに接続する電話番号
  3. SIPトランク設定への管理者アクセス
  4. SIPトラフィックを許可する適切なファイアウォール設定
  5. TLSサポート:セキュリティを強化するため、SIPトランクプロバイダーがTLSトランスポートをサポートしていること
  6. オーディオコーデックの互換性: システムはG.722またはG.711(PCMUまたはPCMA)オーディオコーデックの少なくとも1つをサポートするか、システム側でオーディオをリサンプリングできる必要があります。これは、直接WebSocket接続用にエージェントで設定されているオーディオ形式とは独立しています。

SIPトランキングの設定

1

電話番号に移動

ElevenLabs Agentsダッシュボードの電話番号セクションに移動します。

2

SIPトランクをインポート

「番号をインポート」ボタンをクリックし、「SIPトランクから」を選択して設定ダイアログを開きます。

「SIPトランクから」オプションを含む番号インポートメニュー
3

基本設定を入力

次の情報を入力して基本設定を完了します:

  • ラベル:電話番号を説明する名前
  • 電話番号:接続するE.164形式の電話番号(例:+15551234567)
ラベルと電話番号フィールドを含むSIPトランクの基本設定
4

着信設定を構成

メディア暗号化とアクセス制御を含め、SIPトランクに着信した通話をElevenLabsが処理する方法を設定します:

  • メディア暗号化:RTPメディアストリームの暗号化を設定します:
    • 無効:メディア暗号化なし
    • 許可:暗号化されたメディアストリームを許可
    • 必須:暗号化されたメディアストリームを必須化
  • 許可する番号(任意):この番号への発信を許可する電話番号。すべての番号を許可するには空欄のままにします。
  • 許可する送信元IPアドレス(任意):TCP/TLSトランスポートでのみ機能し、UDPでは機能しません。このトランクへの通話送信を許可するIPアドレスまたはCIDR範囲です。すべてのアドレスを許可するには、0.0.0.0/0のままにします。
  • リモートドメイン(任意):通話の発信元となるSIPサーバーのFQDNドメインを指定します。例:example.pstn.twilio.com。これらのドメインはTLS証明書の検証に使用されます。TLSを使用しない場合は、このフィールドを空欄のままにしてください。
  • 認証(任意):着信通話の認証に使用するダイジェスト認証情報を入力します。
    • SIPトランクのユーザー名:SIPダイジェスト認証のユーザー名
    • SIPトランクのパスワード:SIPダイジェスト認証のパスワード
メディア暗号化、許可する番号、許可する送信元IPアドレス、リモートドメイン、認証を含む着信設定
5

発信設定を構成

電話番号への通話をElevenLabsが送信する先を設定します:

  • アドレス:SIP INVITEの送信先となるホスト名またはIPアドレス(例:sip.telnyx.com)。完全なSIP URIではなく、ホスト名またはIPアドレスのみを指定してください。TLSを使用する場合は、有効な証明書を持つホスト名を使用してください。

  • トランスポートタイプ:SIPシグナリングのトランスポートプロトコルを選択します:

    • TCP:標準のTCPトランスポート
    • TLS:セキュリティを強化する暗号化TLSトランスポート
    • UDP:コネクションレス型トランスポート(実験的機能。本番環境ではTCPまたはTLSを使用してください)
  • メディア暗号化:RTPメディアストリームの暗号化を設定します:

    • 無効:メディア暗号化なし
    • 許可:暗号化されたメディアストリームを許可
    • 必須:暗号化されたメディアストリームを必須化
  • 有効なコーデック:発信通話用にSDPで提供するコーデック(G.722、PCMU、PCMA)。SIPプロバイダーが特定のコーデックのみをサポートしている場合に役立ちます。

  • カスタムヘッダー(任意):発信通話に含めるカスタムSIPヘッダーを追加します。「ヘッダーを追加」をクリックして、プロバイダーで必要なヘッダー名と値を入力します。必要に応じて複数のヘッダーを追加できます。カスタムヘッダーは、通話のルーティングと識別、請求とトラッキング、プロバイダー固有の要件に使用できます。

  • 認証(任意):SIPトランクプロバイダーで必要な場合は、ダイジェスト認証情報を入力します。

    • SIPトランクのユーザー名:SIPダイジェスト認証のユーザー名
    • SIPトランクのパスワード:SIPダイジェスト認証のパスワード

    空欄のままにすると、アクセス制御リスト(ACL)認証が使用されます。この場合、プロバイダーの設定でElevenLabsのIPアドレスを許可リストに追加する必要があります。

アドレス、トランスポートタイプ、メディア暗号化、有効なコーデック、カスタムヘッダー、認証を含む発信設定

セキュリティのベストプラクティス:最大限のセキュリティのために、必須のメディア暗号化とTLSトランスポートを使用してください。これにより、シグナリングとメディアの両方がエンドツーエンドで暗号化されます。

認証方式:

  • ダイジェスト認証:ユーザー名/パスワード認証情報を使用した安全な認証(推奨)
  • ACL認証:アクセス制御にIPアドレスの許可リストを使用

ダイジェスト認証を強く推奨します。動的IPアドレスでは管理が複雑になり得るIP許可リストに依存せず、より高いセキュリティを提供します。

アドレスフィールドでは、AIエージェントからの発信通話をElevenLabsが送信する先を指定します。sip:プロトコルプレフィックスを付けず、ホスト名またはIPアドレスのみを入力してください。

6

セットアップを完了

「インポート」をクリックして設定を完了します。

クライアントデータとパーソナライゼーション

通話メタデータを適切に転送し追跡できるようにするため、webhookペイロードとSIP INVITEリクエストに以下のカスタムSIPヘッダーを含めてください:

  • X-CALL-ID:通話の一意の識別子
  • X-CALLER-ID:発信者の識別子

これらのヘッダーにより、システムは通話メタデータを会話に関連付け、パーソナライゼーションのコンテキストを提供できます。

フォールバックヘッダーのサポート

上記の標準ヘッダーが存在しない場合、システムは自動的にTwilio固有のSIPヘッダーを探します:

  • sip.twilio.callSid:Twilioの一意の通話識別子

このフォールバックにより、設定を変更することなくTwilioのElastic SIP Trunkingとの互換性が確保されます。

処理フロー

サポート対象のヘッダーのいずれかを通じて関連メタデータを受信すると、caller_idおよび/またはcall_idを会話開始webhookとシステム動的変数で利用できます。

動的変数としての着信カスタムヘッダー

着信SIPトランキング通話のカスタムSIP X-ヘッダーは、会話内で動的変数として自動的に公開されます。

ヘッダー名は、X-プレフィックスを削除し、小文字に変換し、ハイフンをアンダースコアに置き換え、sip_プレフィックスを追加して正規化されます。たとえば、X-Contact-IDは{{sip_contact_id}}になり、X-Campaign-IDは{{sip_campaign_id}}になります。

これらの変数は、エージェントプロンプト、最初のメッセージ、ツールで使用し、発信者から提供されたコンテキストに合わせて会話をパーソナライズできます。値は会話履歴の電話タブでも確認できます。

X-Call-IDやX-Caller-IDなどの予約済みヘッダーは、引き続きsystem__call_sidと system__caller_idにマッピングされます。着信カスタムヘッダーでこれらのシステム変数を上書きすることはできません。

動的変数からのBYEヘッダー

通話が終了すると、ElevenLabsはダイアログを終了するためにSIP BYEを送信します。SIPトランク設定で動的変数をヘッダー名にマッピングすることで、そのBYEにカスタムヘッダーを付加できます。

API経由でSIPトランク電話番号を作成または更新する際に、inbound_trunk_configまたはoutbound_trunk_configでattributes_to_headersを設定します。各エントリーは、動的変数名をBYEに含めるSIPヘッダー名にマッピングします:

"inbound_trunk_config": {
"attributes_to_headers": {
"dynamic_variable_name": "bye_header_name"
}
}

ヘッダー値には、会話終了時点での動的変数の最終値が使用されます。エージェントツール、webhookオーバーライド、その他の実行時更新によって通話中に設定された値も、BYEに反映されます。

たとえば、attributes_to_headersに"disposition_code": "X-Disposition"が含まれており、会話終了時のdisposition_code動的変数がresolvedの場合、BYEにはX-Disposition: resolvedが含まれます。

エージェントを電話番号に割り当てる

SIPトランク電話番号をインポートした後、ElevenLabsエージェントに割り当てることができます:

  1. ElevenAgentsダッシュボードの電話番号セクションに移動します
  2. インポートしたSIPトランク電話番号を選択します
  3. 「エージェントを割り当て」をクリックします
  4. この番号への通話を処理するエージェントを選択します

トラブルシューティング

接続に問題がある場合:

  1. ElevenLabs側とプロバイダー側の両方でSIPトランク設定を確認します
  2. 設定したトランスポートプロトコルとポート(TCPは5060、TLSは5061)でSIPシグナリングトラフィックをファイアウォールが許可していること、および許可リストが適用されていないことを確認します
  3. アドレスのホスト名が正しい形式で、アクセス可能であることを確認します
  4. ダイジェスト認証情報あり/なしの両方でテストします
  5. TLSトランスポートを使用している場合は、プロバイダーのTLS証明書が有効で適切に設定されていることを確認します
  6. 異なるトランスポートタイプ(TCPまたはTLS。UDPサポートは実験的機能)を試し、TLS固有の問題を切り分けます

重要なネットワークアーキテクチャ情報:

  • ElevenLabsは共有アドレスsip.rtc.elevenlabs.ioの背後にある複数のSIPサーバーからSIPトラフィックを提供しています
  • これらのSIPサーバーはSIPサーバーと直接通信します
  • 分散インフラストラクチャのため、SIPリクエストは異なるIPアドレスから送信される場合があります
  • セキュリティポリシーにより着信トラフィックの許可リストが必要な場合は、サポートチームにお問い合わせください。

認証の問題で通話に失敗する場合:

  1. ダイジェスト認証を使用している場合は、SIPトランクのユーザー名とパスワードを再確認します
  2. SIPトランクプロバイダーのログで、具体的な認証エラーメッセージを確認します
  3. カスタムヘッダーを設定している場合は、プロバイダーの要件と一致していることを確認します
  4. 簡略化した設定(カスタムヘッダーなし)でテストし、認証の問題を切り分けます

TLSトランスポートまたはメディア暗号化に問題がある場合:

  1. SIPトランクプロバイダーがポート5061でTLSトランスポートをサポートしていることを確認します
  2. 証明書の有効性、有効期限、信頼チェーンを確認します
  3. 「必須」のメディア暗号化を使用する場合は、プロバイダーがSRTPメディア暗号化をサポートしていることを確認します
  4. 暗号化の問題を切り分けるため、「必須」を使用する前に「許可」のメディア暗号化でテストします
  5. TLS固有の問題を切り分けるためTCPトランスポートを試します(UDPサポートは実験的機能です)
  6. SIPトランクプロバイダーに連絡してTLSおよびSRTPのサポートを確認します

カスタムヘッダーに問題がある場合:

  1. プロバイダーで必要な正確なヘッダー名と値を確認します
  2. ヘッダー名で大文字と小文字が区別されるか確認します
  3. ヘッダー値にエスケープが必要な特殊文字が含まれていないことを確認します
  4. まずカスタムヘッダーなしでテストし、その後、段階的に追加します
  5. 着信カスタムヘッダーの動的変数については、ヘッダーにX-プレフィックスが使用されていることを確認し、会話履歴の電話タブを確認します
  6. サポートされているカスタムヘッダーについて、プロバイダーのドキュメントを確認します

通話は接続されるものの音声がない、または音声が一方向にしか流れない場合:

  1. RTPメディアストリーム用のUDPトラフィック(通常はポート10000~60000)をファイアウォールが許可していることを確認します
  2. RTPは動的IPアドレスを使用するため、ファイアウォールルールが特定の固定IPに制限されていないことを確認します
  3. RTPストリームをブロックしている可能性のあるネットワークアドレス変換(NAT)の問題を確認します
  4. 「必須」のメディア暗号化を使用している場合は、両方のエンドポイントがSRTPをサポートしていることを確認します
  5. 暗号化関連の音声問題を切り分けるため、「無効」のメディア暗号化でテストします

音声品質が低下する場合:

  1. ネットワークに十分な帯域幅(通話あたり少なくとも100 Kbps)があり、UDPトラフィックのレイテンシー/ジッターが低いことを確認します
  2. 特にUDP経路で、ネットワークの輻輳やパケット損失がないか確認します
  3. 両端でコーデック設定が一致していることを確認します
  4. メディア暗号化を使用している場合は、両方のエンドポイントがSRTP処理を効率的に処理できることを確認します
  5. 異なるメディア暗号化設定でテストし、品質の問題を切り分けます

BYEに対する481レスポンスは通常、リクエストが通話のダイアログ状態を持たないSIPサーバーに到達したことを意味します。 これは多くの場合、最初のTCP接続がすでに閉じられ、BYEが200 OKレスポンスで返された特定のContact URIではなく、 汎用の共有アドレス(たとえばsip.rtc.elevenlabs.io)に再送信された場合に発生します。

  1. BYE用のTCP接続を再確立する場合は、リクエストがダイアログを処理した同じSIPサーバーに到達するよう、常にINVITEレスポンスのContactアドレスを送信先にしてください。
  2. 共有のsip.rtc.elevenlabs.ioアドレスにBYEを送信しないでください。リクエストが別のSIPノードに到達し、481で拒否される可能性があります。

Contactヘッダーとダイアログルーティングを規定する標準的な動作については、RFC 3261 セクション8.1.1.8を参照してください。

制限事項と考慮点

  • 同時通話数のサポートはサブスクリプションティアによって異なります。上限に達した際に着信者を拒否するのではなく保留にするには、通話キューを有効にしてください
  • 通話録音と分析機能を利用できますが、追加設定が必要になる場合があります
  • 発信機能はSIPトランクプロバイダーによって制限される場合があります
  • TLSサポート:暗号化トランスポートのために、SIPトランクプロバイダーがTLS 1.2以降をサポートしていることを確認してください
  • メディア暗号化:SRTPのサポートはプロバイダーによって異なります。暗号化を必須にする前に互換性を確認してください
  • オーディオ形式:ElevenLabsのSIPデプロイメントは、PCMUまたはPCMA(G.711、8kHz)、またはG.722(16kHz)コーデックを使用してオーディオを送受信します。これは、直接WebSocket接続用にエージェントで設定されているオーディオ形式とは独立しています。SIPトランクシステムは、これらのコーデックのいずれかをネイティブでサポートするか、システムの要件に合わせてリサンプリングを行う必要があります

よくある質問

はい。SIPトランキングを使用すると、既存の電話番号をポーティングせずにElevenLabsの ElevenAgentsへ直接接続できます。

ElevenLabsは、Twilio、Vonage、RingCentral、Sinch、Infobip、Telnyx、Exotel、Plivo、 Bandwidthなど、SIPプロトコル標準をサポートするほとんどの標準的なSIPトランクプロバイダーと互換性があります。セキュリティ強化のため、TLSトランスポートとSRTPメディア暗号化をサポートしています。

はい。本番環境ではTLSトランスポートを強く推奨します。SIPシグナリングを暗号化し、通話のセキュリティを強化します。必須のメディア暗号化と組み合わせることで、通信を包括的に保護できます。有効にする前に、SIPトランクプロバイダーがTLSをサポートしていることを必ず確認してください。

  • TCP:信頼性はありますが、シグナリングは暗号化されません - TLS:暗号化された信頼性の高いシグナリング (本番環境で推奨) - UDP:コネクションレスのシグナリング。現在は実験的機能です

UDPトランスポートは実験的機能であり、テスト専用です。本番環境や セキュリティが重要なアプリケーションでは、必ずTLSトランスポートを使用してください。

カスタムSIPヘッダーを使用すると、発信通話にプロバイダー固有の情報を含められます。一般的な用途には、通話ルーティング、請求コード、発信者識別、プロバイダー固有の要件への対応などがあります。

同時通話数はサブスクリプションプランによって異なります。エンタープライズプランでは通常、より多くの同時通話が可能です。上限に達すると、エージェントで通話キューイングが有効になっていない限り、着信は拒否されます。有効な場合は、空きが出るまで保留音とともに待機し、空き次第接続されます。

はい。既存のPBXシステムのルーティングルールを使用して、それぞれ異なるElevenLabsエージェントに接続された別の電話番号へ通話を振り分けられます。

はい。電話番号の形式は、SIP URIとインポートした電話番号の設定で一致している必要があります。先頭に+を付けてSIP URIを呼び出す場合(例: sip:+19991234567@sip.rtc.elevenlabs.io:5060)、電話番号も先頭に+を付けてインポートする必要があります(例:+19991234567)。同様に、先頭に+を付けずに呼び出す場合は、電話番号も+なしでインポートしてください。形式が一致しないと、通話を正しくルーティングできません。

はい。ElevenLabsは、RFC 3263準拠のSIPサーバー検出用にNAPTRおよびSRVレコードを提供しています。

次のステップ