SBC の構成と検証

このページでは、SBC の構成と検証の手順について説明します。

サポートされているベンダーとファームウェア

構成を開始する前に、サポートされている SBC ベンダーまたはモデルとファームウェア バージョンの表を確認してください。

サポートされている SBC シグナリングとメディア プロトコル

サポートされているシグナリング プロトコルとメディア プロトコルは、SBC シグナリング プロトコルとメディア プロトコルのドキュメントで指定されています。AES_CM_128_HMAC_SHA1_80 は、サポートされている唯一の SRTP 暗号スイートです。

SBC の TLS 構成

承認済みの認証局ベンダーから SBC の TLS 証明書をリクエストします。ワイルドカード証明書はサポートされていません。

TLS 証明書内で、SBC の完全修飾ドメイン名(FQDN)を共通名(CN)属性またはサブジェクト代替名(SAN)属性のいずれかで指定する必要があります。複数の SBC に対して 1 つの TLS 証明書をリクエストする場合は、証明書の SAN にすべての SBC の FQDN を含める必要があります。

承認済みの認証局ベンダー

  • DigiCert
  • Entrust DataCard
  • GlobalSign
  • GoDaddy
  • Sectigo(旧称 Comodo)

SBC TLS を構成する

  1. リクエストされた TLS 証明書と関連するルート CA 証明書を SBC の信頼チェーンにインストールします。
  2. Google の信頼できるルート CA を SBC の信頼チェーンにインストールします。Google ルート証明書を取得するには:

    1. Google の信頼されているルート CA をダウンロードします。
    2. GTS Root R1(GTSR1)を抽出します。
    3. 必要に応じて、GlobalSign Root CA 証明書を抽出します。
    4. ルート証明書を SBC キーストアにアップロードします。
    5. SBC の相互認証を有効にします。
  3. サポートされている TLS バージョンと暗号スイートを構成します。TLS バージョン 1.2 以降がサポートされています。サポートされている暗号スイート:

    • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
    • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • HTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    • TLS_AES_256_GCM_SHA384
    • TLS_CHACHA20_POLY1305_SHA256
    • TLS_AES_128_GCM_SHA256

GTP で SIP トランクを作成する

  1. 統合コンソールに移動して、プロジェクトを選択します。
  2. [SIP トランク] タブに移動し、[SIP トランクを追加] をクリックします。
  3. 必須項目をすべて入力します。
  4. [作成] をクリックします。

電話接続のネットワーク要件を確認する

ネットワークと接続の要件の表については、コンセプトとトラブルシューティングのページをご覧ください。

GTP への SIP 接続用に SBC を構成する

サポート対象の認定済み SBC ベンダーのいずれかを使用して SBC をデプロイしている場合は、そのベンダーに固有の詳細な手順について、SBC シグナリングとメディア プロトコルのドキュメントをご覧ください。

特定の地域化された GTP の SIP サーバー(us.telephony.goog など)をターゲットとする TCP ポート 5672 経由で TLS を使用するように SIP プロファイルが構成されていることを確認します。SIP と SIPREC の統合構成:

  • Dialogflow 仮想エージェントに接続するユースケースでは、SBC で SIP 統合を構成します。
  • 会話型 AI エージェント アシストまたはインサイトのユースケースでは、メディア ストリームのコピーが GTP にフォークされるように、SBC で SIPREC 統合を構成します。特定の SBC ベンダーで SIPREC を使用する場合は、別途ライセンスが必要な機能を購入して有効にする必要がある場合があります。

SIP OPTIONS ping を使用した SIP 接続テスト

お客様の SBC から GTP への SIP OPTIONS ping テストを実施し、SBC が GTP から SIP 200 OK を受信することを確認します。SIP 200 OK が受信されない場合は、SIP のトラブルシューティングのセクションをご覧ください。

会話型 AI の会話の SIP ヘッダー構成

  1. SIP INVITE 中に SIP ヘッダー(Call-Info または UUI)を構成して、Conversational AI の会話 ID を設定します。
  2. Call-Info SIP ヘッダーを使用します。サポートされていない場合は、User-to-User-Info(UUI)SIP ヘッダーを使用できます。詳しくは、SIP ヘッダーをご覧ください。
  3. (省略可)参加者のロール(END_USERHUMAN_AGENT)とメディア ストリームの順序を構成します。詳しくは、参加者の役割のセクションをご覧ください。
  4. (省略可)特定の会話に追加のパラメータを設定するには、MatchIntentRequest API を呼び出します。詳細については、追加パラメータのセクションをご覧ください。

テスト通話を行う

テスト通話を行い、SIP とメディアが GTP SIP サーバー(74.125.88.128/25)と RTP メディア サーバー(74.125.39.0/24)に転送されていることを確認します。SIP 200 OK レスポンス メッセージが表示されるはずです。

SIP 400's エラー レスポンス コードが返された場合は、GTP が SIP ヘッダーまたは SIP メディア SDP 構成のいずれかを拒否したことを示している可能性があります。詳細については、トラブルシューティングのセクションをご覧ください。SIP 600's エラー レスポンス コードを受け取った場合は、割り当てに関連する問題が発生している可能性があります。

Dialogflow の会話履歴を確認する

このセクションは、Dialogflow 仮想エージェントをデプロイする場合にのみ適用されます。

前のテスト呼び出しで SIP 200 OK レスポンスが返された場合は、Conversational AI Google Cloud プロジェクトの Dialogflow の会話履歴を確認して、新しい会話がログに記録され、呼び出し情報ヘッダーで指定された会話 ID が含まれていることを確認します。

(省略可) Google Cloud ログ エクスプローラを確認する

Conversational AI Google Cloud プロジェクトのログ エクスプローラの「incoming_call」ログで、Dialogflow のアクティビティを確認します。

  1. 次のクエリを使用して Dialogflow の着信通話アクティビティを確認し、[クエリを実行] をクリックします。

    logName="projects/$PROJECT_ID/logs/dialogflow.googleapis.com%2Fincoming_call

    $PROJECT_ID = テレフォニー統合の構成に使用した Google Cloud プロジェクト ID。

  2. または、ログ エクスプローラの [すべてのログ名] プルダウン ボックスに移動して、ログ名 incoming_call を検索します。選択して [適用] をクリックします。

  3. Dialogflow がGoogle Cloud プロジェクトのログ エクスプローラで会話を正常に作成したことを確認します(この手順は、監査ロギングが Dialogflow API で有効になっている場合にのみ適用されます)。次のクエリを使用して、特定の Google Cloud プロジェクトと会話プロファイルから Dialogflow の会話作成イベントを確認し、[クエリを実行] をクリックします。

    protoPayload.serviceName=~"dialogflow"
    protoPayload.methodName=~"google.cloud.dialogflow.*.Conversations.CreateConversation"
    protoPayload.request.conversation.conversationProfile="projects/$PROJECT_ID/locations/global/conversationProfiles/$CONVERSATION_PROFILE_ID"