我在我的iOS应用程序中使用pjsip 2.5.5。在仅启用IPV6的网络中运行应用程序时,sip注册无效。但如果我为启用IPV4的网络运行相同的代码,它适用于sip注册。我没有得到遗漏的地方或者我们如何获得确切问题的描述?是否需要添加任何标志或任何其他支持才能将库用于网络IPV4和IPV6?任何线索都对我很有帮助。
答案 0 :(得分:0)
AFAIK pjsip不支持双栈IPv4 / IPv6。您需要为IPv4和IPv6创建单独的传输。
答案 1 :(得分:0)
我之前的iOS应用程序存在同样的问题。以下是我的步骤。
1)我重新编译pjsip库以支持ipv6,添加" #define PJ_HAS_IPV6"到config.h。您可以参考的详细信息 https://trac.pjsip.org/repos/wiki/IPv6#IPv6Supportinpjlib
2)ipv4地址更改为域。可能需要更改一些配置,这是后端开发人员配置,所以我不知道详细信息。
3)创建ipv6传输并添加SIP帐户。详细代码如下https://trac.pjsip.org/repos/wiki/IPv6#IPv6Supportinpjlib。
如果一切正常,您现在可以注册。但是无法拨打电话。
我修复了ipv6 make call,请参考https://github.com/johanlantz/pj-nat64。我把代码pj-nat64()放到我的项目和配置中。