In a market where the usual messaging services do not work, we went through four generations: hardware GSM gateways, direct operator integrations, automation of a closed operator portal and, finally, our own Android application turning ordinary phones into gateways. All generations ran through one queue and one set of templates.
The first generation was hardware GSM gateways. The second was direct operator integrations: one over SOAP, another over REST through an aggregator, with routing by which operator the number belongs to.
The third generation appeared when no API was granted at all: headless automation of the closed operator web portal. The fourth is our own Android application in Kotlin with dual SIM and a watchdog, turning ordinary phones into gateways for inbound SMS: the login codes arrive on them.
All four generations ran through one queue and one set of templates for 12 brands, so changing the delivery channel never meant rewriting the senders. The volume is about 7.5 thousand messages a week.