1

我正在尝试使用开源 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 重用相同的代码库。

4

2 回答 2

4

端口设置为 0 是完全合法的,并且是 SDP 提供/应答模型的一部分。事实上,这可能意味着您的 SDP 报价有问题。例如,如果您支持 PCMA 编解码器,而对等方仅支持 PCMU,他将拒绝端口设置为 0 的 SDP 提议。提议被拒绝可能有很多原因,但编解码器不兼容可能是最常见的。

如果需要,要真正调试它,您可能需要查看数据包(例如使用 Wireshark)。

于 2011-09-09T15:38:16.743 回答
1

您问“......但想知道是否有更好的方法,以及端口 0 是否是合法值。”

端口 0 在SDP中是完全合法的。特别是,RFC 3264 第 5.1 节中的 SIP 提供/应答模型表示

A port number of zero in the offer indicates that the
stream is offered but MUST NOT be used.
于 2011-09-09T10:34:22.863 回答