RaspiSMS: o método simples para transformar seu Raspberry Pi em uma central de envio e recebimento de SMS.

Compreendendo o RaspiSMS: uma solução de código aberto para transformar um Raspberry Pi em um gateway SMS

RaspiSMS é um aplicativo de código aberto projetado especificamente para aproveitar o poder do Raspberry Pi para enviar e receber mensagens SMS por meio de uma interface web ou API dedicada. Esta solução se encaixa perfeitamente no universo Linux, aproveitando tecnologias robustas como Symfony para estrutura web e MariaDB para gerenciamento de dados. Como gateway de SMS, o RaspiSMS permite que indivíduos, empresas ou entusiastas da automação residencial configurem facilmente um centro de SMS autônomo, sem recorrer a serviços pagos de operadoras terceirizadas como Twilio ou FreeMobile.

Entre as grandes vantagens do RaspiSMS, encontramos a possibilidade de utilizar o seu Raspberry Pi não apenas como um simples modem GSM, mas também como uma central de automação capaz de interagir com sistemas de automação residencial como Jeedom ou Domoticz. Esta capacidade abre perspetivas interessantes, nomeadamente para o envio de alertas SMS personalizados, a gestão de campanhas massivas de SMS ou o desencadeamento de ações remotas via PiSMS ou PlaySMS, duas alternativas semelhantes no mesmo universo.

Os principais recursos do RaspiSMS incluem:

  • Gestão multiusuário baseada em um sistema seguro com chave API.
  • Criação e gerenciamento de grupos de contatos para listas de e-mail dinâmicas.
  • Programação de envios de SMS personalizados ou em massa.
  • Suporte nativo para chaves 3G/4G compatíveis com Gammu, permitindo integração direta através da porta USB.
  • Interface web intuitiva acessível a partir de qualquer máquina na rede local ou estendida.

Essa diversidade funcional torna o RaspiSMS uma ferramenta essencial para administradores de sistemas Linux que desejam automatizar o envio de notificações sem depender de serviços externos. Também é útil em ambientes profissionais onde o controle total sobre os dados de SMS é obrigatório. Comparado a ferramentas como o SMSTools3, que muitas vezes exigem configuração complexa, o RaspiSMS prioriza a acessibilidade, mantendo uma profundidade de funcionalidade adequada para uso avançado.

Graças à sua arquitetura modular, o RaspiSMS se adapta facilmente a diferentes versões do Raspberry Pi, do modelo 4 aos modelos mais recentes, como o Raspberry Pi 5, e até mesmo a outras distribuições Linux compatíveis. Sua comunidade ativa no GitHub garante o desenvolvimento contínuo com atualizações regulares para melhorar a segurança e a compatibilidade com novos modems GSM.

Instalando e configurando o RaspiSMS no Raspberry Pi OS: um guia detalhado e boas práticas

A instalação do RaspiSMS em um Raspberry Pi requer preparação cuidadosa, principalmente na escolha do hardware e na instalação das dependências de software apropriadas. Para garantir o desempenho ideal, recomenda-se o uso de um Raspberry Pi 4 ou superior, com o sistema operacional Raspberry Pi OS baseado em Debian Bookworm, que garante compatibilidade com PHP 8.4 e MariaDB, essenciais para o RaspiSMS.

  • Antes da instalação, certifique-se de que:
  • O Raspberry Pi possui um cartão SD de pelo menos 32 GB, preferencialmente 64 GB, para amplo armazenamento de logs e dados.
  • Um modem 3G/4G compatível com Gammu está conectado com um cartão SIM ativo, idealmente um plano empresarial para garantir uma transmissão confiável.

O usuário que realiza a instalação possui privilégios de sudo e a máquina está configurada com um endereço IP estático para facilitar o acesso SSH.

A instalação começa com a atualização dos pacotes do sistema usando `apt-get update`, seguida pela instalação dos componentes necessários, como Apache2 para o servidor web, MariaDB para o banco de dados, Gammu e gammu-smsd para gerenciamento do modem e PHP 8.4 com suas extensões. Uma etapa crucial é a criação de um banco de dados dedicado especificamente ao RaspiSMS, protegendo o MariaDB com o uso de `mysql_secure_installation` para definir uma senha segura para o usuário root.

O banco de dados deve ser criado com o conjunto de caracteres utf8mb4 para garantir o tratamento ideal de caracteres especiais em mensagens SMS. O usuário MySQL do RaspiSMS é configurado com privilégios específicos para limitar a superfície de ataque, o que contribui para a segurança geral do sistema de SMS. Em seguida, o código-fonte do RaspiSMS é obtido diretamente do seu repositório no GitHub. A configuração requer a adaptação de vários arquivos: phinx.yml para a conexão com o banco de dados,

env.php

para o ambiente de execução e a chave secreta da aplicação e

  • env.prod.php
  • para as configurações de rede, servidor de e-mail e gerenciamento de URLs. A geração de uma chave secreta forte usando o comando Linux atribui uma chave criptográfica essencial para a segurança da interface.
  • Os pacotes PHP necessários são instalados via Composer e o banco de dados é inicializado com as migrações fornecidas no projeto. A adição de um usuário administrador é feita pela linha de comando, garantindo um gerenciamento de acesso simplificado à interface.

Por fim, a configuração do servidor Apache é feita importando um arquivo específico para o RaspiSMS, habilitando o host virtual e o módulo de reescrita para garantir uma navegação tranquila e segura. O gerenciamento rigoroso de permissões de arquivos e pastas evita quaisquer problemas de permissão, principalmente atribuindo a propriedade ao usuário raspisms e ao grupo www-data.

Um serviço systemd personalizado do raspisms é criado para garantir a inicialização e o monitoramento automáticos.

A rotação de logs é implementada usando o logrotate para limitar o tamanho e o histórico dos arquivos de log. Os serviços são reiniciados para aplicar todas as alterações e validar a configuração.Esta instalação cuidadosa garante uma base estável para utilizar totalmente os recursos do RaspiSMS com segurança.

Configure o dongle 3G e integre o RaspiSMS ao seu sistema de automação residencial ou infraestrutura Linux.

Uma etapa fundamental para o uso confiável do RaspiSMS é configurar o modem 3G ou 4G que servirá como gateway SMS. O software Gammu é o núcleo dessa integração, gerenciando a comunicação com o modem USB por meio do protocolo AT. A detecção inicial é realizada usando o comando `gammu-detect`, que identifica automaticamente a porta USB do modem, geralmente `/dev/ttyUSB0`. A configuração adicional envolve a criação do arquivo `~/.gammurc`, onde você especifica a porta, o tipo de conexão (AT), os parâmetros de codificação Unicode e os logs. É importante usar a localidade `en_GB.utf8`, pois o Gammu espera respostas moduladas em inglês, especialmente para o processamento dos códigos PIN/PUK do cartão SIM.

A configuração do daemon gammu-smsd, responsável pelo gerenciamento da fila de SMS, é feita em /etc/gammu-smsdrc. Este arquivo especifica os caminhos para as pastas de entrada, saída, enviados e erros. Ele também permite definir os códigos PIN e PUK, essenciais para desbloquear o cartão SIM na inicialização.

Uma vez que o daemon esteja configurado e em execução, o RaspiSMS detecta o dongle 3G através de sua interface, onde o usuário pode criar um “telefone” especificando o modelo, o arquivo de configuração gammu-smsdrc e o código PIN. Essa abstração simplifica o envio e o recebimento de mensagens através da interface web. Para entusiastas de automação residencial, o RaspiSMS pode ser integrado a plataformas como Domoticz ou Jeedom, utilizando cenários de SMS para acionar ações automatizadas: por exemplo, enviar alertas de segurança via SMS em caso de intrusão detectada ou receber comandos SMS para controlar remotamente a rede doméstica.

Pontos-chave para uma integração bem-sucedida:

  • Confirmação da detecção correta do modem 3G usando o Gammu.
  • Configuração cuidadosa dos arquivos gammurc e gammu-smsdrc, incluindo os caminhos das pastas de mensagens.
  • Teste de envio e recebimento de SMS com o comando gammu para validar a comunicação do hardware antes de usar o RaspiSMS.
  • Configuração do usuário RaspiSMS na interface gráfica para gerenciamento de múltiplos telefones.
  • Integração com plataformas de automação residencial usando scripts personalizados para automatizar interações. Graças a essa abordagem técnica perfeitamente estruturada, o Raspberry Pi se torna um verdadeiro hub de comunicação SMS, programável e escalável para atender às necessidades de cada usuário Linux.

Envio e gerenciamento de mensagens SMS com o RaspiSMS: interface web e API, processos detalhados

Após a instalação e configuração, a funcionalidade principal do RaspiSMS reside na sua capacidade de enviar e receber mensagens SMS, seja através da sua interface gráfica baseada na web ou via API de linha de comando, oferecendo assim uma ampla gama de utilizações para diversos perfis de utilizador.

  • A interface web proporciona uma experiência de utilizador simplificada para o envio de novas mensagens:
  • Aceda ao menu “Novo SMS” a partir da consola.
  • Introduza o texto da mensagem, um número ou um contacto guardado com gestão dinâmica de listas.
  • Escolha o número do remetente entre várias chaves 3G configuradas.

Envie imediatamente ou agende mensagens para entrega posterior.

<!– wp:code {"content":"
curl -X POST http://192.168.1.101/raspisms/api/scheduled/ -H "X-Api-Key: VOTRE_CLE_API" -d "text=Message depuis RaspiSMS" -d "numbers=%2B33123456789"
“} –>

Visualize as mensagens SMS enviadas para gerir o histórico e o estado de cada mensagem (enviada, pendente, erro).

  • A API REST do RaspiSMS também se adapta às necessidades de programadores e administradores de sistemas Linux ou Windows. A autenticação baseia-se numa chave de API única por utilizador, acessível no seu perfil através da interface. Esta chave garante um acesso seguro aos endpoints da API, permitindo a automatização completa do envio.
  • Exemplo de uso comum no Linux com cURL:

`curl -X POST http://192.168.1.101/raspisms/api/scheduled/ -H “X-Api-Key: YOUR_API_KEY” -d “text=Mensagem do RaspiSMS” -d “numbers=%2B33123456789″`

No Windows, um comando PowerShell similar está disponível através do `Invoke-WebRequest`, facilitando a integração em scripts ou ferramentas de administração.

Graças a esse método de interação dupla, o RaspiSMS é compatível com diversas plataformas e pode ser integrado a cadeias de processamento de TI mais complexas, por exemplo:

  • Envio de alertas automatizados a partir de scripts bash ou Python.
  • Interoperabilidade com serviços em nuvem via API para recuperação de dados.
  • “ Fluxos de trabalho automatizados em infraestruturas que executam Linux ou Windows. Comparado a outras soluções como PlaySMS ou PiSMS, RaspiSMS se destaca por sua simplicidade de instalação, seu modo auto-hospedado completo e sua compatibilidade nativa com a pilha Raspberry Pi OS, o que o torna uma opção preferida para a adoção de um gateway SMS de código aberto personalizado.
  • https://www.youtube.com/watch?v=zIJVpEon4sE Melhores práticas, conselhos e opções avançadas para otimizar o uso do RaspiSMS no Raspberry Pi
  • Além da instalação e configuração básicas, a exploração completa do RaspiSMS requer o cumprimento de certas recomendações para otimizar a segurança, o desempenho e a integração em ambientes Linux complexos. A experiência adquirida na gestão do SMS Gateway revela diversas áreas interessantes de melhoria e opções avançadas. Aqui está uma lista de práticas recomendadas essenciais:

Protegendo o acesso:

  • use um certificado SSL via Let’s Encrypt para criptografar trocas HTTP e evitar a interceptação de chaves de API ou senhas.
  • Executando backups regulares:
  • automatizar as exportações do banco de dados MariaDB e das configurações do Gammu para evitar qualquer perda.
  • Monitoramento de registros:
  • Seguir cuidadosamente os arquivos /var/log/raspisms/daemon.log e gammu.log ajuda a detectar rapidamente erros de hardware ou tentativas de acesso não autorizado.

Gerenciamento de cotas:

evite spam ou abuso configurando limites no número de SMS enviados por usuário ou intervalo de tempo.