Некоторое время я играл с SipDemo в Android 2.3.
SDK.
Документация на странице разработчика Android хорошо написана, но она
не много. Это ничего не объясняет о IP, портах, NAT и STUN.
Я знаю, как этот материал должен работать, но там не сказано, как
Android SIP API справляется с этим. Или вообще обрабатывает NAT ...
Здесь кто-то упомянул, что API делает некоторые тесты для публичного IP
и порт, но я впервые это читаю:
http://code.google.com/p/android/issues/detail?id=14043&can=1&q=sip%20ip&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars
Так что я не уверен, что это правда. По крайней мере, для меня это не сработало.
Но теперь к моей проблеме:
При развертывании SipDemo как-либо на моем устройстве, подключенном к WiFi
или эмулятору, предоставьте мои учетные данные (я знаю, что они работают с
SipDroid и другие SIP-приложения) SipDemo отображает «регистрацию»
не удалось".
Я немного понюхал и обнаружил пакеты, отправленные на SipServer
все включают устройства или эмуляторы локальных IP, а не общедоступные мои NAT
один. Что-то вроде Via: SIP / 2.0 / UDP 192.168.0.106:53230
Сервер правильно отвечает, что IP-адреса RFC1918 недопустимы.
Я добавил STUN-тест в SipDemo и успешно получил свой
публичный IP и порт. Но я не могу найти способ передать это моему
создал SipProfile или SipManager.
Мой вопрос:
Кто-нибудь когда-либо делал приложение, работающее с SIP API, за
NAT?
Как API обрабатывает NAT? Как я могу передать полученную информацию
из моего собственного клиента STUN в SIP API?
Я знаю SipDroid и множество других реализаций SIP, но они
все не используют встроенный API.