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
-
Instale o Docker no host no qual você planeja executar o gateway. O Docker Engine fornece um ambiente de execução leve para os contêineres que compõem o voice gateway, o SIP Orchestrator e o Media Relay. O Docker Community Edition e Enterprise Edition Versão 1.13 ou mais recente são suportados.
Sistemas Windows: observe que Docker para Windows requer o Windows 10 Pro de 64 bits. Em versões anteriores do Windows, deve-se instalar a máquina Docker como parte do Docker Toolbox. A implementação na Máquina Docker é um pouco diferente, conforme notado nas etapas de implementação.
-
Clone ou faça download do repositório GitHub sample.voice.gateway, que contém diálogos de amostra do Watson Assistant, arquivos de configuração e outros itens para ajudá-lo a começar.
-
Inscreva-se para um IBMid e uma conta IBM Cloud e crie os serviços do Watson a seguir:
- Speech to Text
- Text to Speech (somente autoatendimento)
- Watson Assistant (somente autoatendimento)
Anote as credencias para cada serviço que você criou. Você precisará especificar as credenciais na configuração do Voice Gateway.
Importante: para o Watson Assistant, será necessário incluir uma área de trabalho com um diálogo. É possível iniciar rapidamente importando o arquivo conversation/sample-conversation-en.json do repositório clonado do GitHub sample.voice.gateway. Para saber mais sobre como importar arquivos JSON, consulte Criando áreas de trabalho na documentação do Watson Assistant. Se você construir seu próprio diálogo em vez de usar a amostra, assegure-se de que ele inclua um nó com a condição
conversation_starte um nó com uma resposta padrão. -
Se você planejar implementar o Voice Gateway com a proteção de um firewall e desejar se conectar a esse gateway por meio de um tronco do SIP ou cliente do SIP que estiver fora do firewall, certifique-se de que todas as portas necessárias estejam abertas. Para obter mais informações, veja Configurações de porta para firewalls.
Implementando o Voice Gateway
-
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 @%iUNIX e Mac OS X:
eval "$(docker-machine env default)" -
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 -
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.ymlEsses 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_URLno arquivodocker-compose.yml, use apenas a parte do URI que vai até e inclui o nívelapi. Por exemplo,- WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/apiImportante: 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=2345556789Para obter mais informações, veja Colocando na lista de aplicativos confiáveis os responsáveis pela chamada e os destinatários
-
No diretório no qual você modificou o arquivo
docker-compose.yml, crie um arquivo.enve configure a variávelEXTERNAL_IP. Esses comandos supõem que você esteja usandovipara 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.-
Insira os comandos a seguir para criar o arquivo
.enve abri-lo para edição.touch .env vi .env -
Insira
ipara 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> -
Pressione a tecla Esc para sair do modo de edição, e insira
:wqpara sair do editor.
-
-
Crie e inicialize os contêineres, executando o comando a seguir:
docker-compose upDicas:
- Caso o comando
docker-composenão seja localizado, deve-se instalar o Docker Compose. - Se você vê um erro
grpc: the connection is unavailablequando 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
- Caso o comando
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.