SMS Gateway との統合

SMS Gateway と統合して、音声通話中のカスタマーと音声エージェントの間での SMS メッセージングを有効にするように、IBM® Voice Gateway を構成できます。

発信者との音声通話中に、Voice Gateway が SMS Gateway と統合されます。 Watson Assistant から smsActSendSMS アクションを受け取った後、Voice Gateway は、SMS Gateway によって提供される REST API を使用して論理チャネルを作成します。 SMS パイプと呼ばれるこのチャネルには、発信者とテナント・エージェントの番号の固有のリファレンスが、SMS 交換に関するコンテキストとともに含まれています。

Voice Gateway は、SMS パイプのリファレンスを使用して、smsActSendSMS 要求に指定されたアウトバウンド・メッセージを SMS Gateway へ送信します。 次に、このメッセージが発信者に転送されて、SMS メッセージング対話が開始されます。 発信者が SMS メッセージで Voice Gateway に応答すると、そのインバウンド・メッセージが SMS Gateway に送信され、そこから Voice Gateway へ転送されます。 音声通話が完了するか、Voice Gateway が REST API を使用してパイプを削除すると、SMS メッセージング対話は終了します。

SMS Gateway 統合を使用することにより、Voice Gateway と発信者の間で SMS メッセージを交換でき、SMS パイプを経由して SMS メッセージを Voice Gateway にルーティングできます。

SMS Gateway REST API 操作のコード例および 説明については、『REST API を使用した SMS セッションの制御』を参照してください。

始めに

SMS Gateway と Voice Gateway の統合の構成

SMS Gateway との統合を作成するには、以下のステップを実行する必要があります。

Voice Gateway デプロイメントの構成

SMS Gateway 統合は、シングルテナント・デプロイメントと JSON 構成のマルチテナント Voice Gateway デプロイメントの両方でサポートされます。 どちらのデプロイメントの場合も、デプロイメント構成ファイル内の WEB_HOOK_HOST および HTTP_HOST は必須の構成変数です。

{
  "smsPipe": {
      "url": "https://host:port/sms.gateway/smsPipe",
      "username": "U53rnam3",
      "password": "pa55c0d3",
      "tenantPhoneNumber": "+12345556789",
      "readTimeout": 5,
      "connectTimeout": 2,
      "expirationInterval": 1200,
      "enableInboundSMS": true
    }
  }
      - SMS_GW_URL=https://host:port/sms.gateway/smsPipe
      - SMS_GW_USERNAME=U53rnam3
      - SMS_GW_PASSWORD=pa55c0d3
      - TENANT_PHONE_NUMBER=+12345556789
      - ENABLE_INBOUND_SMS=`True`
      - SMS_GW_READ_TIMEOUT=5


      - WEB_HOOK_HOST=vgwHostName
      - HTTP_HOST=*

IBM Cloud での SMS Gateway デプロイメントのパブリック IP アドレスの検出

IBM Cloud Kubernetes Service での SMS Gateway デプロイメントの url パラメーターまたは SMS_GW_URL 環境変数を構成するには、ibmcloud cs workers コマンドを使用できます。

  1. IBM Cloud にログインします。

    ibmcloud login --sso
    
  2. クラスターの IP アドレスを見つけます。

    ibmcloud cs workers <cluster_name_or_id>
    
  3. その IP アドレスを使用して、http://<public IP>:port/sms.gateway/smsPipe のフォーマットで url または SMS_GW_URL の値を作成します。

    - SMS_GW_URL=http://100.11.11.11:99999/sms.gateway/smsPipe
    

    Voice Gateway デプロイメントと SMS Gateway デプロイメントが同じノードで稼働している場合は、パブリック IP アドレスではなくサービス名を使用できます。

    - SMS_GW_URL=http://sms-gateway:9080/sms.gateway/smsPipe
    

vgwActSendSMS アクションの追加およびインテントの構成

送信する SMS メッセージ・テキストは、Watson Assistant ダイアログまたは SOE のいずれかから vgwActSendSMS コマンドを使用して送信できます。 会話セッション中にダイアログ・ノードがトリガーされると、Voice Gateway は SMS メッセージを発信者に送信します。 メッセージを定義するには、ダイアログ・ノード応答の JSON に以下のアクションを追加します。 Watson Assistant、SMS Gateway、および Voice Gateway のカスタマイズについての例および情報は、『アクション・タグ』にある vgwActSendSMS、『アクションおよび状態の定義』、および、『SMS Gateway の資料』にあるサンプルを参照してください。

{
"command" : "vgwActSendSMS",
"parameters" : {
"message" : "This is a test message"
}
}

SMS Gateway からの SMS メッセージの受信

SMS メッセージを受け取った後、Voice Gateway は、ターンを開始し、発信者から SMS メッセージを受け取ったことを示すワード「vgwSMSMessage」が入ったテキスト更新を Watson Assistant に送信します。

SMS メッセージを受け取った後に発信者との会話に中断が生じないことを確実にするため、Voice Gateway は、意図しないバージインを回避するために、進行中の音声トランザクションがあるかどうかを検証します。 Voice Gateway は、その時点で発信者からの発話または Dual-Tone Multi-Frequency シグナルを収集中である場合は、現行トランザクションが完了するのを待機します。

収集が完了するか、タイムアウトになると、Voice Gateway は、Watson Assistant サービスへのターンを開始します。

発信者からの入力が検出されない場合、Voice Gateway は、すぐに Watson Assistant サービスへのターンを開始し、「vgwSMSMessage」テキスト更新を送信します。

SMS メッセージを送信できない場合の障害処理

発信者に SMS メッセージを送信できない場合、Voice Gateway は、すぐに Watson Assistant サービスへの turn イベントを開始します。 Watson Assistant サービスは、SMS メッセージを発信者に送信できなかったことを示すワード「vgwSMSFailed」が入ったテキスト更新を受け取ります。 適切な応答で障害メッセージを処理するための、#vgwSMSFailed に対するインテントを作成することによって、Voice Gateway がどのように応答するのかをカスタマイズできます。 『サービス・オーケストレーション・エンジンを介した接続』を参照してください。

Voice Gateway と SMS メッセージをやり取りするときの Watson Assistant コンテキストの管理

SMS と音声は、発信者と通信するための 2 つの別々のチャネルであるため、チャネルごとに独立したコンテキストを維持することが重要です。 Voice Gateway は、vgwActSendSMS を含んでいる Watson Assistant からの応答で受け取った、現行ワークスペース・コンテキストを保存します。 発信者が SMS メッセージで応答すると、Voice Gateway はこのコンテキストを Watson Assistant または SOE に渡して戻します。 このコンテキストは、vgwSMSContext 状態変数に入って Watson Assistant に渡されます。 そうすると、SOE またはワークスペースは、インバウンド SMS メッセージの関連コンテキストにアクセスして、メッセージの目的を判別できます。

オプション・パラメーター

Watson Assistant ダイアログで、SMS Gateway との統合構成を定義するオプション・パラメーターを指定できます。 vgwActSendSMS アクション内に構成パラメーターを定義すると、Voice Gateway テナント構成はオーバーライドされます。 定義できるパラメーターのリストについては、『Voice Gateway のアクション・タグおよび状態変数』で vgwActSendSMS についての項目を参照してください。

セキュリティー証明書の組み込み

SMS Gateway にインバウンド・メッセージが到着すると、そのメッセージは、Voice Gateway が SMS Gateway への SMS パイプ要求を作成するときに指定する Voice Gateway の URL に送信されます。 Voice Gateway URL は、WEB_HOOK_HOSTHTTP_PORT または HTTPS_PORT の各構成変数で指定される値を使用して生成されます。 URL スキームは、SMS_GW_URL 構成変数の値に基づいています。 例えば、SMS_GW_URL 変数で使用されるスキームが https の場合、Voice Gateway URL も https スキームを使用します。 Watson Assistant API を使用すると SMS Gateway サーバー URL も指定できます。

SMS Gateway にインバウンド・メッセージが到着すると、そのメッセージはこの URL に送信されます。 SMS Gateway サーバー URL をデプロイメント構成内の SMS_GW_URL または url 値で定義することによって、Voice Gateway から SMS Gateway REST API への要求を保護できます。

統合された SMS Gateway インスタンスと Voice Gateway インスタンスの間で受け渡されるデータを暗号化するには、それぞれに対してセキュリティー証明書を構成する必要があります。

  1. SMS Gateway サーバーおよび Voice Gateway サーバーごとに、署名者証明書を生成します。
  2. Voice Gateway において、各 SMS Gateway からの署名者証明書を各 Voice Gateway サーバー鍵ファイルに追加します。 『Voice Gateway の保護』を参照してください。
  3. SMS Gateway において、各 Voice Gateway からの署名者証明書を各 SMS Gateway サーバー鍵ファイルに追加します。 『SMS Gateway 用の SSL および TLS 暗号化の構成』を参照してください。