Se eu entendi corretamente, você tem um dispositivo chamado HUB que está instalado em sua casa e está conectado diretamente à Internet via ADSL (em outras palavras, não está conectado ao seu roteador doméstico) e, além disso, tem um Módulo GSM, por isso também está conectado à internet através da rede móvel.
Você deseja alcançar esse HUB de qualquer lugar com seus telefones e deseja acessá-lo pela Internet, não por meio do GSM.
Portanto, a questão é como os telefones obtêm o endereço de Internet público atual do seu HUB. As opções são:
- Forneça ao HUB um endereço IPv4 estático (descartado, porque seu ISP não permite isso).
- Forneça ao HUB um endereço IPv6 estático
- Use um serviço DNS dinâmico : atribua um nome como
hub.milad.dyndns.org
ao endereço IPv4 atual do hub atualizado quando o endereço IPv4 público for alterado. Existem muitos desses serviços, google. - Envie todos os seus telefones a um SMS sempre que o IPv4 público for alterado. Isso provavelmente significará x SMS por dia, em que x é o número de seus telefones.
- Peça ao seu telefone para consultar o HUB via SMS sempre que quiser entrar em contato. Isso significará 2 SMS por tentativa de contato.
Você pode tornar o SMS seguro adicionando um hash criptográfico baseado em algum segredo compartilhado entre o HUB e seu aplicativo. O DynDNS é seguro, exigindo uma senha.
Nenhum deles impede que um invasor adivinhe ou escaneie o IPv4 do seu HUB, então você também deve tornar a comunicação com o HUB segura, exigindo pelo menos um hash criptográfico similar.
Bibliotecas criptográficas existem para isso, google.