ナビゲーションにスキップ

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. 認証:シグナリングの接続セキュリティは、ダイジェスト認証(ユーザー名/パスワード)またはシグナリング送信元IPに基づくアクセス制御リスト(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アドレス(任意):UDPではなくTCP/TLSトランスポートでのみ機能します。このトランクへの通話送信を許可する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許可リストに依存せず、より優れたセキュリティを提供します。

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

6

設定を完了

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

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

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

  • 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. TLS固有の問題を切り分けるため、異なるトランスポートタイプ(TCPまたはTLS。UDPサポートは実験的です)を試してください

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

  • 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. ネットワークに十分な帯域幅(通話あたり少なくとも100Kbps)があり、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トランクシステムは、これらのコーデックのいずれかをネイティブでサポートするか、システム要件に合わせてリサンプリングを行う必要があります

FAQ

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

ElevenLabsは、Twilio、Vonage、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レコードを提供しています。

次のステップ