我運行坐在亞馬遜ec2上的星號服務器,並使用android sip sdk編寫我的voip應用程序。一切正常,除了一個,當我的voip應用程序嘗試連接到具有雙NAT網絡的SIP服務器時。我無法接聽電話。在雙NAT環境中的Android SIP
從星號控制檯,我可以清楚地看到與錯誤的IP地址的SIP註冊。
我的3G服務提供商使用雙NAT,所謂的公共IP分配給我的實際上是一個NAT私有IP。
當我做谷歌什麼是我的IP,我有不同的IP。這清楚地表明我在雙NAT網絡中。
如果我用csipsimple嘗試相同的場景,它使用正確的IP註冊。沒有STUN的幫助。
ip-10-236-xxx-xxx*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status
5000/5000 10.120.1.242 D A 42964 UNREACHABLE
在看「10.120.1.242」,這不是真正的公共我想有,但私有IP從我的3G服務提供商。
我知道許多親這裏必須建議我忘掉android sdk sip,去pjsip。但由於密切的源代碼授權,它花費了我不少。
任何人都知道如何解決這個問題,而無需切換到pjsip?我看到有一個選項「出站代理地址」爲android sdk sip,不知道這是否有幫助?