In one of my recent projects, I needed a reliable way to send large volumes of SMS messages using local SIM cards instead of relying entirely on third-party SMS providers.
The solution was a self-hosted SMS gateway running on a Linux server, connected to an 8-port Quectel GSM modem. Each port hosts a local SIM card, allowing the system to distribute outgoing messages across multiple mobile network connections.
At the software layer, I used SMSTools3 as the SMS daemon responsible for queueing, processing, and dispatching messages to the GSM devices. Applications can simply drop messages into a queue, while the SMS gateway handles the delivery process in the background.
High-Level Architecture
- Application / CRM / Web Platform
- SMS Queue
- SMSTools3 Service
- Quectel 8-Port GSM Modem
- Local SIM Cards
- Mobile Network
One advantage of this setup is having complete control over the infrastructure. Since everything runs on-premise, there are no external API dependencies, and local SIM cards can often provide more cost-effective messaging for specific use cases.
From a DevOps perspective, the Linux server is responsible for modem monitoring, queue management, service health checks, logging, and automated recovery in case a GSM port becomes unavailable.
Traditional telecom hardware can still be combined with modern software and automation practices to solve real-world business problems.
While cloud SMS providers remain a great option for many projects, self-hosted GSM gateways can still be a practical solution when local carrier integration, cost optimization, or infrastructure control is a priority.