Sobre o projeto

O SMS Gateway for Android é um aplicativo Android que transforma um smartphone em um gateway de SMS, permitindo que aplicativos e serviços enviem e recebam mensagens SMS programaticamente por meio de uma API ou ferramenta CLI. É distribuído sob a licença Apache-2.0 e é construído com Kotlin, Ktor, Room e Firebase. Recursos principais - Envie e receba SMS via API; não é necessário registro, e o modo local não exige conta alguma. - Compatível com Android 5.0 e versões posteriores. - Mensagens multipartes com particionamento automático, além de rastreamento do status das mensagens. - Visualizador de mensagens recebidas para SMS, Data SMS e MMS com abas e estatísticas. - Notificações em tempo real de SMS e MMS recebidos por meio de webhooks, incluindo a leitura de mensagens recebidas anteriormente. - Suporte a MMS: notificações de download com corpo e anexos, e envio de MMS com imagens, áudio, vídeo ou arquivos, com assunto e corpo de texto opcionais. - Eventos de webhook em lote quando várias mensagens chegam ao mesmo tempo. - Cancele mensagens pendentes, filtre mensagens por estado e tipo, e aplique limitação de taxa de envio por período. - Suporte a Data SMS para cargas binárias (comandos de IoT, mensagens criptografadas). - Agendamento por horário de funcionamento que pausa a fila fora das janelas configuradas. - Tela de diagnóstico da fila de webhooks mostrando entregas pendentes e tentativas. Segurança e privacidade - Criptografia ponta a ponta do conteúdo das mensagens e dos números de telefone dos destinatários antes que cheguem à API, descriptografados no dispositivo. - Suporte a servidor privado para que um backend possa ser executado na sua própria infraestrutura. Recursos avançados - Suporte a vários cartões SIM e a vários dispositivos: dispositivos conectados à mesma conta com Cloud ou Private server recebem mensagens distribuídas entre eles. Integração - Webhooks para eventos como sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started e system:ping. - Os webhooks são enviados diretamente do dispositivo, portanto o dispositivo precisa de uma conexão de internet de saída. Modos de operação - Local Server: o aplicativo executa um servidor HTTP no dispositivo, acessível na rede local, com credenciais de autenticação básica e documentação Swagger interativa em /docs. Exemplos de comandos curl e CLI são fornecidos para enviar mensagens de texto e MMS. - Cloud Server: conecta-se a api.sms-gate.app para dispositivos com endereços IP dinâmicos ou compartilhados; as mensagens recebidas são enviadas para acesso centralizado. Um servidor privado pode ser implantado em vez disso. Instalação - APKs pré-compilados estão disponíveis na página GitHub Releases, em uma build de lançamento segura e uma build de desenvolvimento insegura (tráfego em texto claro permitido, não para ambientes públicos). - Permissão obrigatória: SEND_SMS. Permissões opcionais: READ_PHONE_STATE (seleção de SIM), READ_SMS (leitura de mensagens anteriores), RECEIVE_SMS, RECEIVE_MMS e RECEIVE_WAP_PUSH (webhooks para SMS/MMS recebidos). Os casos de uso pretendidos incluem autenticação de dois fatores baseada em SMS, mensagens transacionais, lembretes, notificações e feedback do usuário. O README observa que o envio em lote não é recomendado devido a possíveis restrições das operadoras de telefonia móvel.