Implementando SMS Gateway no Docker
Siga estas instruções para implementar SMS Gateway em seu próprio mecanismo Docker para um ambiente local. Para implementações de nuvem, consulte Implementando o SMS Gateway no Kubernetes no IBM Cloud Kubernetes Service.
Antes de iniciar
-
Crie um número de telefone com recursos SMS e crie o serviço IBM Watson™ Assistant conforme descrito em Introdução ao SMS Gateway.
-
Instale o Docker no host no qual você planeja executar o gateway. O mecanismo de Docker fornece um tempo de execução leve para o contêiner SMS Gateway.
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.
-
Certifique-se de que uma das seguintes portas esteja aberta para a conexão com o provedor SMS:
- Conexões seguras: porta 9443
- Conexões não seguras: porta 9080
Implementando o SMS Gateway
-
Apenas máquina Docker: antes de poder efetuar login no Docker, execute este comando a partir da linha de comandos para configurar o shell para apontar para o mecanismo de Docker.
Windows:
@FOR /f "tokens=*" %i IN ('docker-machine env default --shell cmd') DO @%iUNIX e Mac OS X:
eval "$(docker-machine env default)" -
Altere para um diretório a partir do qual você deseja implementar o SMS Gateway e obter a imagem do Docker mais recente:
docker pull ibmcom/voice-gateway-sms:latest -
Acesse o diretório no qual você clonou o repositório sample.voice.gateway em sua máquina e abra o diretório
sms/docker, que contém o arquivo de configuraçãodocker-compose.ymlde amostra.O arquivo de amostra é pré-configurado com a configuração mínima e aponta para a imagem mais recente. Para obter uma listagem completa de todas as variáveis, consulte Variáveis de ambiente de configuração do SMS Gateway.
- Copie o arquivo de amostra no diretório no qual você obteve a imagem do Docker.
-
Modifique o arquivo para configurar o Watson Assistant, seu provedor SMS e o número de telefone do locatário.
-
Para o Watson Assistant, especifique as credenciais de serviço e o ID da área de trabalho. Para obter mais informações de como localizar as credenciais de serviço, consulte Credenciais de serviços do Watson.
Dica: para localizar o ID da área de trabalho do Watson Assistant, acesse a visualização Áreas de trabalho dentro da ferramenta Watson Assistant. No espaço de trabalho que você quer integrar, clique no ícone Ações (⋮) e selecione Visualizar detalhes.
Por exemplo:
environment: - WATSON_CONVERSATION_URL=https://gateway.watsonplatform.net/conversation/api/ - WATSON_CONVERSATION_USERNAME=9h7f54cb-d9ed-46b3-8492-e9a9bf555021 - WATSON_CONVERSATION_PASSWORD=InWtiUpYhF1Z - WATSON_CONVERSATION_WORKSPACE_ID=a23de67h-e527-40d5-a867-5c0ce9e72d0d -
Para o provedor de SMS, especifique a URL da API e as credenciais de login.
O nome do usuário é mapeado para o SID da conta, e a senha é mapeada para o token de autenticação. Você pode localizar esses valores no console para seu provedor SMS.
Por exemplo:
- SMS_PROVIDER_URL=https://api.twilio.com - SMS_PROVIDER_USERNAME=A23de67h0236e5e7c7f1ead4499h7f54cb - SMS_PROVIDER_PASSWORD=9h7f54cb3b1d3736e19ac64aa23de67h -
Para o número do telefone do locatário, especifique o número do telefone completo do provedor de SMS. Use o formato de número exato que o provedor de SMS exige. Por exemplo, para especificar um número do telefone do Twilio, inclua um sinal de mais (+) e os códigos do país e de área. Para o RestcommONE, não inclua o sinal de mais (+).
Por exemplo:
- TENANT_PHONE_NUMBER=+12345556789 -
Opcional: se você deseja permitir que os usuários criem sessões de SMS enviando uma mensagem SMS para o gateway, configure
ALLOW_SESSION_CREATE_VIA_SMScomotrue. Por padrão, as sessões de SMS somente podem ser criadas usando a API de REST.Por exemplo:
- ALLOW_SESSION_CREATE_VIA_SMS=true
-
-
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 administra o contêiner 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.
- Insira os comandos a seguir para criar o arquivo
-
Crie e inicialize o contêiner executando o seguinte comando:
docker-compose upDepois de iniciar o contêiner, você verá um número de mensagens, conforme o servidor SMS Gateway é implementado.
Dicas:
- Caso o comando
docker-composenão seja localizado, deve-se instalar o Docker Compose. - Se você vir um erro
grpc: a conexão está indisponívelao iniciar o contêiner, reinicie o daemon Docker e tente o comando novamente. - Se você vir o erro a seguir na inicialização, provavelmente você tem outro aplicativo de atendimento na porta especificada. Encerre os aplicativos em conflito e tente o comando novamente.
Falha na ligação para 0.0.0.0:9080: a porta já está alocada
- Caso o comando
O Que Fazer em Seguida
Depois de implementar o SMS Gateway no Docker, configure um webhook e teste sua implementação, conforme descrito em Introdução ao SMS Gateway.
É possível realizar configurações adicionais em sua implementação do SMS Gateway ao editar o arquivo docker-compose.yml para incluir ou mudar as variáveis de configuração e, em seguida, implementar seu contêiner
novamente.
Reimplementando o SMS Gateway
-
Pare o contêiner do SMS Gateway em execução.
docker stop -
Remova o contêiner.
docker rm vgw-sms-gateway -
Após fazer quaisquer atualizações de configuração, crie e inicialize o contêiner novamente.
docker-compose up