Site menu No GitHub: Gateway SMS
e-mail icon
Site menu

No GitHub: Gateway SMS

e-mail icon

2016.09.28

Este artigo expressa a opinião do autor na época da sua redação. Não há qualquer garantia de exatidão, ineditismo ou atualidade nos conteúdos. É proibida a cópia na íntegra. A citação de trechos é permitida mediante referência ao autor e este sítio de origem.

Recentemente, publiquei no GitHub um software que desenvolvi faz um tempinho: um gateway SMS. Foi um projeto com todas as qualidades subjetivas que tornam um trabalho prazeroso: objetivo bem específico, prazo relativamente curto, funcionamento autônomo, liberdade de escolha da tecnologia (usei Python — e foi Python 2 ainda, desculpe aí, Osvaldo) e uma equipe composta de velhos amigos.

O gateway SMS é essencialmente um despachante para mensagens SMS de celular. Basta jogar um arquivo CSV na "caixa de entrada"; e retirar os arquivos de confirmação de entrega, bem como SMS de resposta, na caixa de saída. Tipicamente, essa troca de arquivos ocorrerá com um sistema ERP/CRM.

O gateway foi desenvolvido para funcionar com o mínimo de supervisão. Basta que um e-mail esteja configurado para receber os eventuais avisos de problemas. Também é recomendado usar um "canário", ou seja, um celular corporativo que receba as mensagens SMS destinadas a clientes, de modo a obter uma confirmação positiva de que tudo está ok de uma ponta a outra.

O software foi construído para trabalhar com diversos provedores de SMS, que podem ser serviços como Zenvia, Mobipronto e outros (a Amazon também lançou um serviço desse tipo), ou mesmo as próprias operadoras de telefonia, para casos de uso de grande volume. Basta implementar a interface com o(s) serviço(s) e a lógica de decisão (para que serviço cada SMS deve ser roteado).

No momento, apenas o interfaceamento com Zenvia está no código-fonte, já que foi suficiente para o caso de uso inicial. O código-fonte é um bom exemplo prático de interfaceamento com esse provedor, devidamente depurado e testado. O modo "call-back" do Zenvia, de uso opcional, também está implementado.

Fico à disposição para tirar dúvidas, e naturalmente seria muito legal receber colaborações de código, caso alguém implemente a interface com outro provedor ou alguma outra melhoria.

e-mail icon