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