Если я вас правильно понимаю, у вас есть устройство под названием HUB, которое установлено в вашем доме и напрямую подключено к Интернету через ADSL (другими словами, оно не подключено к домашнему маршрутизатору), а также имеет модуль GSM, поэтому он также подключен к Интернету через мобильную сеть.
Вы хотите подключиться к этому концентратору из любой точки мира с помощью своих телефонов, и вы хотите подключиться к нему через Интернет, а не через GSM.
Таким образом, вопрос заключается в том, как телефоны получают текущий общедоступный интернет-адрес вашего концентратора. Варианты:
- Дайте HUB статический IPv4-адрес (исключено, потому что ваш провайдер не разрешает это).
- Дайте HUB статический IPv6-адрес
- Используйте службу динамического DNS : назначьте имя, подобное
hub.milad.dyndns.org
текущему IPv4-адресу вашего концентратора, который обновляется при изменении вашего общедоступного IPv4-адреса. Есть много таких сервисов, гугл. - Отправляйте всем своим телефонам SMS-сообщения всякий раз, когда меняется публичный IPv4. Это, вероятно, будет означать x SMS в день, где x - номер вашего телефона.
- Сделайте так, чтобы ваш телефон запрашивал HUB через SMS всякий раз, когда он хочет с ним связаться. Это будет означать 2 SMS за попытку контакта.
Вы можете обезопасить SMS, добавив криптографический хеш, основанный на некотором общем секрете между HUB и вашим приложением. DynDNS защищен, требуя пароль.
Ни один из них не мешает злоумышленнику угадать или просканировать IPv4 вашего HUB, поэтому вам также следует обеспечить защищенную связь с HUB, по крайней мере, требуя подобного криптографического хэша.
Криптографические библиотеки существуют для этого, Google.