Serviços de codec externos

A partir do IBM Voice Gateway Versão 1.0.3, os usuários podem implementar microsserviços externos que oferecem suporte para mais codecs de áudio para chamadas manipuladas pelo IBM Voice Gateway. Esses microsserviços expõem uma interface de websocket que pode ser usada para estabelecer uma conexão com o IBM Voice Gateway para fins de codificação e decodificação de áudio. A lista dos serviços de codec externos suportados atualmente inclui:

Incluindo o suporte de codec G.729 em uma implementação existente do IBM Voice Gateway

Para uma instalação local, é possível implementar o Serviço de codec G.729 como parte do ambiente do IBM Voice Gateway no Docker. O Serviço de codec G.729 é empacotado como uma imagem separada do Docker que pode ser configurada e implementada juntamente com as imagens principais do SIP Orchestrator e do Media Relay.

Antes de iniciar

Implementando no mecanismo de Docker

Para obter informações de configuração completas para iniciar as implementações do Docker, consulte Implementando o Voice Gateway no Docker

  1. Em um arquivo docker-compose.yml existente, inclua uma nova seção de serviço de contêiner do Docker para a seção g729.codec.service:
     services:
       sip.orchestrator:
         ...
       media.relay:
         ...
       g729.codec.service:
         image: ibmcom/voice-gateway-codec-g729:latest
    
  2. No mesmo arquivo, na configuração do Media Relay, defina a variável de ambiente EXTERNAL_AUDIO_TRANSFORMS. Como seu valor, especifique um URI do websocket que aponte para o serviço Codec G.729. Essa variável especifica quais serviços de codec o Media Relay deve usar para codificação e decodificação de áudio.

     # docker-compose.yml
     services:
       media.relay:
        ...
         environment:
           - SDP_ADDRESS=${EXTERNAL_IP}
           ...
           - EXTERNAL_AUDIO_TRANSFORMS=ws://g729.codec.service:9001
    
  3. Inicie os contêineres executando o comando a seguir:

     docker-compose up
    
  4. Faça um teste com um telefone SIP que suporte o codec G.729. Ao configurar o cliente SIP, tenha em mente as seguintes considerações:

    • Se você executar o cliente SIP na mesma máquina que o Voice Gateway, certifique-se de configurar o cliente SIP para usar uma porta diferente de 5060 (por exemplo, 5062) para evitar conflitos de porta.
    • Configure o cliente SIP para atender em um endereço IP para o qual o Voice Gateway pode rotear. Por exemplo, o cliente SIP pode ser configurado por padrão para atender em um endereço de loopback e será necessário alterar essa configuração.
    • Desative o IPv6 no cliente SIP.

    Para testar o Voice Gateway, chame o URI de SIP a seguir de seu telefone SIP:

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

Implementando no Kubernetes

Para obter informações de configuração completas para iniciar as implementações do Kubernetes, consulte Implementando o Voice Gateway em um cluster Kubernetes.

  1. Em um arquivo deploy.yml existente, inclua uma nova seção de contêiner para a seção 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. No mesmo arquivo, na configuração do Media Relay, defina a variável de ambiente EXTERNAL_AUDIO_TRANSFORMS. Como seu valor, especifique um URI do websocket que aponte para o serviço Codec G.729. Essa variável especifica quais serviços de codec o Media Relay deve usar para codificação e decodificação de áudio.

     # 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. Implemente seu cluster Kubernetes especificando seu arquivo de configuração de implementação no comando kubectl create.

      kubectl create -f deploy.yaml
    
  4. Verifique se seu cluster está em execução com o comando kubectl get pods.

    O comando exibe o status de todos os pods em seu cluster.

       >kubectl get pods
       NAME                   READY     STATUS    RESTARTS   AGE
       vgw-4151379926-7xbz5   2/2       Running   0          6s
    
  5. Faça um teste com um telefone SIP que suporte o codec G.729. Ao configurar o cliente SIP, tenha em mente as seguintes considerações:

    • Se você executar o cliente SIP na mesma máquina que o Voice Gateway, certifique-se de configurar o cliente SIP para usar uma porta diferente de 5060 (por exemplo, 5062) para evitar conflitos de porta.
    • Configure o cliente SIP para atender em um endereço IP para o qual o Voice Gateway pode rotear. Por exemplo, o cliente SIP pode ser configurado por padrão para atender em um endereço de loopback e será necessário alterar essa configuração.
    • Desative o IPv6 no cliente SIP.

    Para testar o Voice Gateway, chame o URI de SIP a seguir de seu telefone SIP:

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