I’ve a set of devices deployed at customer sites, each device is equipped with a GSM module and a SIM card. At the moment the software we’ve written gets the devices to call home on a regular basis (every 4 hours) with a status / and sensor reading update. This is all done using MQTT, we preserve the MQTT session, so when the device connects the Mosquitto server sends it any pending messages, providing any pending updates / configuration changes.
However, there are times when we need to reach out to these devices in the middle of their 4 hour time window. This is usually for an urgent update, or notification.
The problem is these devices, being on a mobile network, don’t have a publicly accessible IP address. We could pay extra for this from the provider, but the prices are really silly.
An alternative might be to create a permanent connection to the devices via a VPN link, but this adds additional data traffic, forces the devices online constantly, and increases our AWS bill.
There has to be a simpler way of doing this? – Has any one encountered similar issues / any solutions out there?