Externe Codec-Services

Ab IBM Voice Gateway Version 1.0.3 können Benutzer externe Mikroservices bereitstellen, um mehr Audiocodecs für Anrufe zu unterstützen, die von IBM Voice Gateway verarbeitet werden. Diese Mikroservices stellen eine WebSocketschnittstelle bereit, mit der eine Verbindung zu IBM Voice Gateway für Audiocodierungs- und Decodierungszwecke hergestellt werden kann. Die Liste der derzeit unterstützten externen Codec-Services umfasst Folgendes:

Einer vorhandenen IBM Voice Gateway-Bereitstellung Unterstützung für den Codec G.729 hinzufügen

Bei einer lokalen Installation können Sie den Codec-Service G.729 als Teil Ihrer IBM Voice Gateway-Umgebung unter Docker bereitstellen. Der Codec-Service G.729 ist als separates Docker-Image gepackt, das Sie konfigurieren und zusammen mit den SIP Orchestrator- und Media Relay-Images bereitstellen.

Vorbereitungen

In Docker Engine bereitstellen

Ausführliche Konfigurationsinformationen finden Sie unter Voice Gateway in Docker bereitstellen, um mit Docker-Bereitstellungen beginnen zu können.

  1. Fügen Sie in einer vorhandenen docker-compose.yml-Datei einen neuen Abschnitt für den Docker-Container-Service für den Abschnitt g729.codec.service hinzu:
     services:
       sip.orchestrator:
         ...
       media.relay:
    ...
       g729.codec.service:
         image: ibmcom/voice-gateway-codec-g729:latest
    
  2. Definieren Sie in derselben Datei unterhalb der Media Relay-Konfiguration die Umgebungsvariable EXTERNAL_AUDIO_TRANSFORMS. Geben Sie als zugehörigen Wert einen WebSocket-URI an, der auf den Codec-Service G.729 verweist. Diese Variable gibt an, welche Codec-Services Media Relay für die Audiocodierung und -decodierung verwenden soll.

     # docker-compose.yml
     services:
       media.relay:
        ...
         environment:
    
           - SDP_ADDRESS=${EXTERNAL_IP}
     ...
           - EXTERNAL_AUDIO_TRANSFORMS=ws://g729.codec.service:9001
    
  3. Initialisieren Sie die Container, indem Sie den folgenden Befehl absetzen:

    docker-compose up
    
  4. Verwenden Sie zum Testen ein SIP-Telefon, das den Codec G.729 unterstützt. Berücksichtigen Sie bei der Konfiguration des SIP-Clients die folgenden Hinweise:

    • Wenn Sie den SIP-Client auf derselben Maschine wie Voice Gateway ausführen, konfigurieren Sie den SIP-Client unbedingt so, dass ein anderer Port als der Port 5060 (z. B. 5062) verwendet wird, um Portkonflikte zu vermeiden.
    • Konfigurieren Sie den SIP-Client so, dass er an einer IP-Adresse empfangsbereit ist, an die Voice Gateway weiterleiten kann. Ihr SIP-Client könnte beispielsweise standardmäßig so konfiguriert sein, dass es an einer Loopback-Adresse empfangsbereit ist. Sie müssen dann diese Einstellung entsprechend ändern.
    • Inaktivieren Sie IPv6 im SIP-Client.

    Wenn Sie Voice Gateway testen möchten, rufen Sie von Ihrem SIP-Telefon den folgenden SIP-URI an:

         sip:watson@<IP-Adresse von Voice Gateway>:5060
    

In Kubernetes bereitstellen

Ausführliche Konfigurationsinformationen finden Sie unter Voice Gateway in einem Kubernetes-Cluster bereitstellen, um mit Kubernetes-Bereitstellungen beginnen zu können.

  1. Fügen Sie in einer vorhandenen deploy.yml-Datei einen neuen Containerabschnitt für den Abschnitt vgw-g729-codec-service hinzu:

     # 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. Definieren Sie in derselben Datei unterhalb der Media Relay-Konfiguration die Umgebungsvariable EXTERNAL_AUDIO_TRANSFORMS. Geben Sie als zugehörigen Wert einen WebSocket-URI an, der auf den Codec-Service G.729 verweist. Diese Variable gibt an, welche Codec-Services Media Relay für die Audiocodierung und -decodierung verwenden soll.

     # 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. Stellen Sie Ihren Kubernetes-Cluster bereit, indem Sie Ihre Bereitstellungskonfigurationsdatei mit dem Befehl kubectl create angeben.

     kubectl create -f deploy.yaml
    
  4. Vergewissern Sie sich, dass Ihr Cluster ausgeführt wird, indem Sie den Befehl kubectl get pods absetzen.

    Der Befehl zeigt den Status aller Pods in Ihrem Cluster an.

       >kubectl get pods
       NAME                   READY     STATUS    RESTARTS   AGE
       vgw-4151379926-7xbz5   2/2       Running   0          6s
    
  5. Verwenden Sie zum Testen ein SIP-Telefon, das den Codec G.729 unterstützt. Berücksichtigen Sie bei der Konfiguration des SIP-Clients die folgenden Hinweise:

    • Wenn Sie den SIP-Client auf derselben Maschine wie Voice Gateway ausführen, konfigurieren Sie den SIP-Client unbedingt so, dass ein anderer Port als der Port 5060 (z. B. 5062) verwendet wird, um Portkonflikte zu vermeiden.
    • Konfigurieren Sie den SIP-Client so, dass er an einer IP-Adresse empfangsbereit ist, an die Voice Gateway weiterleiten kann. Ihr SIP-Client könnte beispielsweise standardmäßig so konfiguriert sein, dass es an einer Loopback-Adresse empfangsbereit ist. Sie müssen dann diese Einstellung entsprechend ändern.
    • Inaktivieren Sie IPv6 im SIP-Client.

    Wenn Sie Voice Gateway testen möchten, rufen Sie von Ihrem SIP-Telefon den folgenden SIP-URI an:

         sip:watson@<IP-Adresse von Voice Gateway>:5060