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

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

O 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 uma API dedicada. Essa solução se integra perfeitamente a um ambiente Linux, utilizando tecnologias robustas como o Symfony para o framework web e o MariaDB para gerenciamento de dados. Como um gateway SMS, o RaspiSMS permite que indivíduos, empresas e entusiastas de automação residencial configurem facilmente um hub SMS independente sem depender de serviços pagos de operadoras terceirizadas como Twilio ou Free Mobile.

Entre as principais vantagens do RaspiSMS está a capacidade de usar seu Raspberry Pi não apenas como um simples modem GSM, mas também como um hub de automação capaz de interagir com sistemas de automação residencial como Jeedom ou Domoticz. Essa capacidade abre possibilidades interessantes, principalmente para o envio de alertas SMS personalizados, gerenciamento de campanhas de SMS em massa ou acionamento de ações remotas via PiSMS ou PlaySMS, duas alternativas semelhantes no mesmo ecossistema.

  • As principais funcionalidades do RasppiSMS incluem:
  • Gerenciamento multiusuário baseado em um sistema seguro com chave de API.
  • Criação e gerenciamento de grupos de contatos para listas de e-mail dinâmicas.
  • Agendamento de mensagens SMS personalizadas ou em massa.

Suporte nativo para dongles 3G/4G compatíveis com Gammu, permitindo integração direta via porta USB.

Uma interface web intuitiva acessível de qualquer dispositivo na rede local ou de longa distância.

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.

  • https://www.youtube.com/watch?v=I1-7vJMhkio
  • 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.

<!– 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"
“} –>
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.
  • 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. Em comparação com outras soluções como PlaySMS ou PiSMS, o RaspiSMS se destaca pela facilidade de instalação, pelo modo totalmente auto-hospedado e pela compatibilidade nativa com o sistema operacional Raspberry Pi, tornando-se uma opção preferencial para a adoção de um gateway SMS personalizado de código aberto.

  • https://www.youtube.com/watch?v=zIJVpEon4sE
  • Melhores práticas, dicas e opções avançadas para otimizar o uso do RaspiSMS no Raspberry Pi
  • Além da instalação e configuração básicas, aproveitar ao máximo o RaspiSMS requer seguir algumas recomendações para otimizar a segurança, o desempenho e a integração em ambientes Linux complexos. A experiência adquirida no gerenciamento de gateways SMS revela diversas áreas para melhoria e opções avançadas interessantes.
  • Aqui está uma lista de boas práticas essenciais:

Proteção de acesso:

Use um certificado SSL via Let’s Encrypt para criptografar as comunicações HTTP e evitar a interceptação de chaves de API ou senhas.