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

Implementando o SMS Gateway

  1. 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 @%i
    

    UNIX e Mac OS X:

    eval "$(docker-machine env default)"
    
  2. 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
    
  3. 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ção docker-compose.yml de 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.

  4. Copie o arquivo de amostra no diretório no qual você obteve a imagem do Docker.
  5. 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_SMS como true. 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
      
  6. 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 administra o contêiner 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.
  7. Crie e inicialize o contêiner executando o seguinte comando:

    docker-compose up
    

    Depois de iniciar o contêiner, você verá um número de mensagens, conforme o servidor SMS Gateway é implementado.

    Dicas:

    • Caso o comando docker-compose não seja localizado, deve-se instalar o Docker Compose.
    • Se você vir um erro grpc: a conexão está indisponível ao 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
      

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

  1. Pare o contêiner do SMS Gateway em execução.

    docker stop
    
  2. Remova o contêiner.

    docker rm vgw-sms-gateway
    
  3. Após fazer quaisquer atualizações de configuração, crie e inicialize o contêiner novamente.

    docker-compose up