Я слегка не соглашусь с ответом Цахи Левента-Леви.
Проблема в том, что IP-адрес, который вы указали в заголовках Via, Contact, From / To, SDP и т. Д., Должен быть глобально маршрутизируемым. Если вы находитесь за NAT, вам, очевидно, нужно будет указать свой внешний IP-адрес.
Реализация ICE, использование STUN и т. Д. Позволяет вам делать это автоматически , но вы всегда можете решить программу вручную.
В частности, просмотрев таблицу маршрутизации вашей машины, вы можете определить, находится ли вызываемая вами машина за NAT или нет (благодаря знанию того, что рабочие машины находятся за этой VPN NAT, а локальные машины включены или нет). эта подсеть, а все остальное работает через NAT вашего роутера). С помощью этой информации вы можете узнать внешний / удаленный адрес NAT каким-либо образом (STUN дает это автоматически, но ваш интернет-маршрутизатор может иметь статический адрес, или вы можете связаться с HTTP-сервером, способным вернуть ваш внешний адрес или ...). Если у вас есть этот внешний / внешний адрес, вы можете поместить адрес, где это необходимо - ваш заголовок контакта, SDP c = заголовки и т. П.