Implementando o Voice Gateway no Docker

Estas instruções destinam-se à configuração do IBM® Voice Gateway em seu próprio mecanismo de Docker para uma instalação no local. Para implementações de nuvem, consulte Implementando o Voice Gateway no Kubernetes noIBM Cloud Kubernetes Service.

Antes de iniciar

Implementando o Voice Gateway

  1. Somente Docker Machine: antes de ser possível efetuar login no Docker, execute este comando por meio da linha de comandos para configurar o shell para apontar para a Docker Machine:

    Windows:

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

    UNIX e Mac OS X:

     eval "$(docker-machine env default)"
    
  2. Puxe as imagens mais recentes do Docker do SIP Orchestrator (voice-gateway-so) e do Media Relay (voice-gateway-mr):

     docker pull ibmcom/voice-gateway-so:latest
    
     docker pull ibmcom/voice-gateway-mr:latest
    
  3. Acesse o diretório no qual você clonou o repositório sample.voice.gateway em sua máquina e abra o diretório docker, que contém os arquivos de configuração de amostra a seguir:

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

      Esses arquivos de amostra são pré-configurados com a configuração mínima de cada implementação e apontam para as imagens mais recentes do voice gateway. Será necessário modificar o arquivo para seu tipo de implementação para incluir suas credenciais de serviço do Watson. Para assistentes do agente, configure também os eventos de relatório de transcrição.

    • Copie o arquivo relacionado a seu tipo de implementação para um novo arquivo denominado docker-compose.yml. Mantenha o arquivo no mesmo diretório.

    • No novo arquivo docker-compose.yml, preencha qualquer variável de ambiente em branco, como as credenciais para os serviços do Watson.

      ...
        # Creds para Exemplo do IBM Cloud STT
        #Se você tiver um nome do usuário e senha especificados em seu serviço, use
        - WATSON_STT_USERNAME=9h7f54cb-5epb-80d6-45c3-da41d2bf7a71
        - WATSON_STT_PASSWORD=asxNzDLpIJ6F
        - WATSON_STT_URL=https://stream.watsonplatform.net/speech-to-text/api
        #Caso contrário, se você tiver um apikey associado a seu serviço, 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
      ...
      

      Para obter uma listagem completa de todas as variáveis, veja Variáveis do ambiente de configuração.

      Dica: para localizar o ID da área de trabalho do Watson Assistant, acesse a visualização Áreas de trabalho dentro da ferramenta Watson Assistant. Na qualificação que você deseja integrar, clique no ícone Ações () e selecione Visualizar detalhes.

      Nota: para o parâmetro de configuração WATSON_CONVERSATION_URL no arquivo docker-compose.yml, use apenas a parte do URI que vai até e inclui o nível api. Por exemplo,

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

      Importante: se não estiver implementando em uma nuvem pública, certifique-se de também definir as variáveis da lista de desbloqueio para evitar ataques de negação de serviço (DoS) e outras sessões indesejadas de origens externas, que poderiam incorrer em cobranças desnecessárias de serviço do Watson e afetar o desempenho do Voice Gateway. Por padrão, essas variáveis são comentadas nos arquivos do Compose.

        - WHITELIST_TO_URI=2345556789
      

      Para obter mais informações, veja Colocando na lista de aplicativos confiáveis os responsáveis pela chamada e os destinatários

  4. No diretório no qual você modificou o arquivo docker-compose.yml, crie um arquivo .env e configure a variável EXTERNAL_IP. Esses comandos supõem que você esteja usando vi para edição, mas é possível usar qualquer editor.

    Para a maioria das instalações do Docker, o endereço IP que é possível configurar é o IP do sistema local. Para a Máquina Docker, que executa os contêineres em uma máquina virtual, determine o endereço IP da MV executando o comando docker-machine ip.

    1. Insira os comandos a seguir para criar o arquivo .env e abri-lo para edição.

      touch .env
      vi .env
      
    2. Insira i para alternar para o modo de edição. Na parte superior do arquivo .env, inclua a linha a seguir:

      EXTERNAL_IP=<endereço IP do sistema local ou a MV da Máquina Docker>
      
    3. Pressione a tecla Esc para sair do modo de edição, e insira :wq para sair do editor.

  5. Crie e inicialize os contêineres, executando o comando a seguir:

     docker-compose up
    

    Dicas:

    • Caso o comando docker-compose não seja localizado, deve-se instalar o Docker Compose.
    • Se você vê um erro grpc: the connection is unavailable quando inicia os contêineres, reinicie o daemon do Docker e tente o comando novamente.
    • Se você vê o erro a seguir na inicialização, é provável que tenha outro aplicativo atendendo na porta 5060. Encerre os aplicativos em conflito e tente o comando novamente.
      Bind for 0.0.0.0:5060 failed: port is already allocated
      

O Que Fazer em Seguida

Depois de implementar o Voice Gateway no Docker Engine, teste a implementação conforme descrito em Introdução ao Voice Gateway.

É possível configurar ainda mais sua implementação do Voice Gateway editando o arquivo docker-compose.yml para incluir ou mudar as variáveis de configuração e, em seguida, reimplementar os contêineres. É possível usar as definições de configuração ideais que estão incluídas na liberação mais recente, configurando a variável de ambiente USE_OPTIMAL_CONFIGURATION. Consulte Usando as definições de configuração ideais .

Protegendo informações confidenciais: tanto o armazenamento em cache quanto a coleta de gravação de áudio do Text to Speech estão desativados por padrão. Se você ativar esses recursos, tome as medidas adequadas para proteger e minimizar dados sensíveis ao implementar o Voice Gateway. Recomenda-se criptografar o disco no qual o Voice Gateway é implementado. A criptografia do disco rígido pode proteger qualquer gravação ou resposta de Text to Speech armazenada no sistema de arquivos, porque elas podem conter informações confidenciais. Criptografar o disco rígido criptografa somente os dados armazenados no Voice Gateway. Deve-se executar etapas adicionais para proteger dados nos serviços que são integrados ao Voice Gateway.