我正在尝试使用开源Java SIP客户端Jitsi进行视频聊天。 为了消除所有网络和代理问题,我设置了自己的SIP代理Asterisk,并且两个客户端都在同一个LAN上。我还将Asterisk配置为中继RTP数据包或在对等体之间进行直接通信。
以上错误来自Asterisk和chan_sip.c:8915(asterisk-10.0.0-beta)。 Asterisk代码检查端口0。
我遇到了上述问题。我可以尝试修改Jitsi代码以不使用端口0,但想知道是否有更好的方法,如果端口0是一个合法的值开始。
BTW,我成功地使用2台Xlite(来自CounterPath的商业软件)在彼此之间传输H263视频。我无法让Xlite与Jitsi合作,也不让两个Jitsi客户端发送视频。我想使用Java客户端,因为我更适应Java。而且我也希望将来能够为Android重用相同的代码库。
答案 0 :(得分:4)
设置为0的端口是完全合法的,是SDP提供/应答模型的一部分。事实上,这可能意味着您的SDP优惠有问题。例如,如果您支持PCMA编解码器且对等端仅支持PCMU,则他将拒绝SDP提供,并将端口设置为0.可能有一些原因导致提议被拒绝但编解码器不兼容可能是最常见的。
如果你想要真正调试它,你可能需要查看数据包(例如Wireshark)。
答案 1 :(得分:1)
你问“......但是想知道是否有更好的方法,如果端口0是合法的价值,那就开始了。”
端口0在SDP中完全合法。特别是,RFC 3264 section 5.1中的SIP提供/答案模型表示
A port number of zero in the offer indicates that the
stream is offered but MUST NOT be used.