Atrás do NAT para atrás da conexão NAT

Eu me deparei com um problema interessante. Basicamente, tenho 2 telefones celulares que estão atrás de NATs. Quero me comunicar diretamente entre os 2 dispositivos usando UDP.

Sei que, se eu iniciar uma conexão dos telefones para um servidor, posso enviar os dados de volta à conexão (ou seja, enviá-los da mesma porta que recebeu a mensagem para o mesmo IP e porta de onde foram recebidos) . Para que eu possa me comunicar facilmente entre os 2 dispositivos, conectando os dois telefones ao servidor. Em seguida, envie os dados para o servidor e reencaminhe-os novamente para os telefones. Isso ignora quaisquer problemas transversais de NAT que eu possa encontrar.

No entanto, prefiro usar o servidor para apontar os 2 dispositivos um para o outro e depois deixá-los se comunicar diretamente. Como eu faria isso? É possível sem usar algo como uPnP?

Qualquer ajuda seria muito apreciada!

Editar: Encontrei este documentohttp://www.brynosaurus.com/pub/net/p2pnat/ Parece que a tradução para gancho de cabelo é o que eu busco, mas não parece ser amplamente suportada. Eu me pergunto o quão bom é o suporte do ISP móvel para UPnP.

questionAnswers(2)

yourAnswerToTheQuestion