外部コーデック・サービス

IBM Voice Gateway バージョン 1.0.3 以降では、ユーザーは、IBM Voice Gateway によって処理される通話の音声コーデックをサポートするために、外部のマイクロサービスをデプロイできます。 これらのマイクロサービスは、音声のエンコードおよびデコードのために、IBM Voice Gateway との接続を確立するために使用できる WebSocket インターフェースを公開します。 現在サポートされている外部コーデック・サービスのリストには、以下のものが含まれます。

既存 IBM Voice Gateway デプロイメントへの G.729 コーデック・サポートの追加

オンプレミス・インストールでは、IBM Voice Gateway 環境の一部として G.729 コーデック・サービス を Docker にデプロイします。 G.729 コーデック・サービスは、個別の Docker イメージとしてパッケージ化されており、コア SIP Orchestrator イメージおよび Media Relay イメージとともに構成およびデプロイします。

始めに

Docker Engine へのデプロイ

Docker デプロイメントで最初に行うすべてのセットアップについては、Docker への Voice Gateway のデプロイを参照してください。

  1. 既存の docker-compose.yml ファイルで、g729.codec.service セクションのための新規 Docker コンテナー・サービス・セクションを追加します。
     services:
       sip.orchestrator:
         ...
       media.relay:
         ...
       g729.codec.service:
         image: ibmcom/voice-gateway-codec-g729:latest
    
  2. 同じファイルで、Media Relay 構成の下に EXTERNAL_AUDIO_TRANSFORMS 環境変数を定義します。その値として、G.729 コーデック・サービスをポイントする WebSocket URI を指定します。この変数は、Media Relay が音声のエンコードおよびデコードに使用する必要があるコーデック・サービスを指定します。

     # docker-compose.yml
     services:
       media.relay:
        ...
         environment:
           - SDP_ADDRESS=${EXTERNAL_IP}
           ...
           - EXTERNAL_AUDIO_TRANSFORMS=ws://g729.codec.service:9001
    
  3. 以下のコマンドを実行して、コンテナーを開始します。

     docker-compose up
    
  4. G.729 コーデックをサポートする SIP 電話を使用してテストします。 SIP クライアントを構成する際には、以下の考慮事項に留意してください。

    • Voice Gateway と同じマシンで SIP クライアントを実行する場合は、必ず、ポートの競合を回避するために、5060 以外のポート (例えば、5062) を使用するように SIP クライアントを構成してください。
    • Voice Gateway がルーティングできる IP アドレス上で listen するように、SIP クライアントを構成してください。 例えば、ご使用の SIP クライアントはループバック・アドレス上で listen するようにデフォルトで構成されている場合がありますが、この設定を変更する必要があります。
    • SIP クライアントの IPv6 を無効にしてください。

    Voice Gateway をテストするには、SIP 電話から以下の SIP URI に通話します。

     sip:watson@<IP address of Voice Gateway>:5060
    

Kubernetes へのデプロイ

Kubernetes デプロイメントを開始するためのセットアップについて詳しくは、Kubernetes クラスターへの Voice Gateway のデプロイを参照してください。

  1. 既存の deploy.yml ファイルで、vgw-g729-codec-service セクションのための新規コンテナー・セクションを追加します。

     # deploy.yaml
     kind: Deployment
     containers:
       - name: vgw-media-relay
         image: ibmcom/voice-gateway-mr:latest
       ...
       - name: vgw-g729-codec-service
         image: ibmcom/voice-gateway-codec-g729:latest
       ...
    
  2. 同じファイルで、Media Relay 構成の下に EXTERNAL_AUDIO_TRANSFORMS 環境変数を定義します。その値として、G.729 コーデック・サービスをポイントする WebSocket URI を指定します。この変数は、Media Relay が音声のエンコードおよびデコードに使用する必要があるコーデック・サービスを指定します。

     # deploy.yaml
     kind: Deployment
     containers:
        - name: vgw-media-relay
            image: ibmcom/voice-gateway-mr:latest
            ports:
            - containerPort: 8080
              hostPort: 8080
              protocol: TCP
            lifecycle:
              preStop:
                exec:
                  command:
                  - "/opt/quiesce.sh"
            env:
            - name: SDP_ADDRESS
            ...
            - name: EXTERNAL_AUDIO_TRANSFORMS
              value: 'ws://localhost:9001'
    
  3. kubectl create コマンドでデプロイメント構成ファイルを指定して、Kubernetes クラスターをデプロイします。

      kubectl create -f deploy.yaml
    
  4. kubectl get pods コマンドを使用して、クラスターが稼働していることを確認します。

    このコマンドは、クラスター内のすべてのポッドの状況を表示します。

       >kubectl get pods
       NAME                   READY     STATUS    RESTARTS   AGE
       vgw-4151379926-7xbz5   2/2       Running   0          6s
    
  5. G.729 コーデックをサポートする SIP 電話を使用してテストします。 SIP クライアントを構成する際には、以下の考慮事項に留意してください。

    • Voice Gateway と同じマシンで SIP クライアントを実行する場合は、必ず、ポートの競合を回避するために、5060 以外のポート (例えば、5062) を使用するように SIP クライアントを構成してください。
    • Voice Gateway がルーティングできる IP アドレス上で listen するように、SIP クライアントを構成してください。 例えば、ご使用の SIP クライアントはループバック・アドレス上で listen するようにデフォルトで構成されている場合がありますが、この設定を変更する必要があります。
    • SIP クライアントの IPv6 を無効にしてください。

    Voice Gateway をテストするには、SIP 電話から以下の SIP URI に通話します。

     sip:watson@<IP address of Voice Gateway>:5060