Docker での Voice Gateway のデプロイ

以下の説明は、オンプレミスのインストール済み環境用の独自の Docker エンジンに IBM® Voice Gateway をセットアップするためのものです。 クラウドのデプロイメントについては、IBM Cloud Kubernetes Service 内の Kubernetes への Voice Gateway のデプロイを参照してください。

始めに

Voice Gateway のデプロイ

  1. Docker Machine のみ: Docker にログインするには、その前に、コマンド・ラインから以下のコマンドを実行して、Docker Engine を指すようにシェルを設定します。

    Windows:

     @FOR /f "tokens=*" %i IN ('docker-machine env default --shell cmd') DO @%i
    

    UNIX および Mac OS X:

     eval "$(docker-machine env default)"
    
  2. 以下のように、SIP Orchestrator (voice-gateway-so) と Media Relay (voice-gateway-mr) の最新の Docker イメージをプルします。

     docker pull ibmcom/voice-gateway-so:latest
    
     docker pull ibmcom/voice-gateway-mr:latest
    
  3. ご使用のマシン上の sample.voice.gateway リポジトリーを複製したディレクトリーに移動し、docker ディレクトリーを開きます。このディレクトリーには、以下のサンプル構成ファイルが入っています。

    • docker-compose-self-service.yml
    • docker-compose-agent-assist.yml

      これらのサンプル・ファイルは、各実装用の最小構成を指定して事前構成されており、Voice Gateway の最新のイメージを指しています。 ご使用の実装タイプ用のファイルを変更して、Watson サービス資格情報を含める必要があります。 エージェント・アシスタントの場合は、書き起こしレポート・イベントも構成します。

    • ご使用の実装タイプに関連したファイルを docker-compose.yml という名前の新規ファイルにコピーします。 同じディレクトリー内にファイルを保管します。

    • 新規ファイル docker-compose.yml で、Watson サービスの資格情報など、ブランクの環境変数がある場合は、その環境変数に入力してください。

      ...
        # Creds for IBM Cloud STT Example
        #If you have a username and password specified in your service use
        - WATSON_STT_USERNAME=9h7f54cb-5epb-80d6-45c3-da41d2bf7a71
        - WATSON_STT_PASSWORD=asxNzDLpIJ6F
        - WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api
        #Otherwise if you have an apikey associated with your service use
        - WATSON_STT_APIKEY=MssmPWlXKeXkOeeZ1o93va5kSAzlqMSligZkso_FSopY
        - WATSON_STT_TOKEN_SERVICE_PROVIDER_URL=https://iam.cloud.ibm.com/identity/token
        - WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api
      ...
      

      すべての変数の完全なリストについては、『構成環境変数』を参照してください。

      ヒント: Watson Assistant ワークスペース ID を見つけるには、Watson Assistant ツール内の「ワークスペース」ビューに移動します。 統合したいスキル上で「アクション」アイコン () をクリックし、「詳細の表示」を選択します。

      注: docker-compose.yml ファイルの WATSON_CONVERSATION_URL 構成パラメーターでは、api レベルまで (このレベルを含む) の URI の部分のみを使用します。 例えば、次のとおりです。

       - WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/api
      

      重要: パブリック・クラウドにデプロイする場合は、サービス妨害 (DoS) 攻撃や、外部ソースからの望まないセッションを防止するために、ホワイトリスト変数も必ず定義してください。これらが発生すると、Watson サービスの不要な課金を招き、Voice Gateway のパフォーマンスに影響するおそれがあります。 デフォルトでは、該当する変数は、Compose ファイルでコメント化されています。

        - WHITELIST_TO_URI=2345556789
      

      詳しくは、『発信者および着信者のホワイトリスト登録』を参照してください。

  4. docker-compose.yml ファイルを変更したディレクトリー内に .env ファイルを作成し、EXTERNAL_IP 変数を設定します。 以下のコマンドでは編集に vi を使用することを想定していますが、任意のエディターを使用できます。

    ほとんどの Docker インストール済み環境では、設定する IP アドレスはローカル・システムの IP です。 仮想マシンでコンテナーを実行する Docker Machine の場合、docker-machine ip コマンドを実行することによって、VM の IP アドレスを判別してください。

    1. 以下のコマンドを入力して、.env ファイルを作成し、編集するために開きます。

      touch .env
      vi .env
      
    2. i を入力して編集モードに切り替えます。 .env ファイルの先頭に以下の行を追加します。

      EXTERNAL_IP=<IP address of local system or Docker Machine VM>
      
    3. Esc キーを押して編集モードを終了し、:wq と入力してエディターを終了します。

  5. 以下のコマンドを実行して、コンテナーを作成して開始します。

     docker-compose up
    

    ヒント:

    • docker-compose コマンドがない場合は、Docker Compose をインストールする必要があります。
    • コンテナーの開始時に grpc: the connection is unavailable エラーが表示された場合、Docker デーモンを再始動し、コマンドを再試行します。
    • 開始時に以下のエラーが表示された場合、恐らく、別のアプリケーションがポート 5060 を listen しています。 競合しているアプリケーションをすべてシャットダウンし、コマンドを再試行します。
      Bind for 0.0.0.0:5060 failed: port is already allocated
      

次の作業

Docker Engine 上に Voice Gateway をデプロイした後、Voice Gateway の開始で説明しているように、デプロイメントをテストします。

docker-compose.yml ファイルを編集して構成変数を追加または変更した後、コンテナーを再デプロイすることにより、Voice Gateway デプロイメントをさらに構成できます。 USE_OPTIMAL_CONFIGURATION 環境変数を設定することにより、最新のリリースに含まれている最適な構成設定を使用できます。 最適な構成設定の使用 (Using optimal configuration settings) を参照してください。

機密情報の保護: Text to Speech キャッシュおよび音声録音収集の両方がデフォルトで無効化されます。 これらのフィーチャーを有効にする場合は、Voice Gateway をデプロイする際に、機密データを保護および軽減するための適切な手段を講じてください。 Voice Gateway がデプロイされるディスクを暗号化することをお勧めします。 ファイル・システムにキャッシュされた録音または Text to Speech 応答には機密情報が含まれている可能性があるため、ハード・ディスク暗号化によってそれらを保護できます。 ハード・ディスク暗号化によって暗号化されるのは、Voice Gateway に保管されたデータのみです。 Voice Gateway と統合されたサービス内のデータを保護するには、追加ステップを実行する必要があります。