XIKEW.COM - 公读宝典 - freeswitch INCOMPATIBLE_DESTINATION 报错 - 公读宝典,freeswitch,sdp,webrtc,jssip,candidate - 今天发生了一个故障,web端通过JSSIP接入汇呼产品客户反馈了一个报错remote - Incompatible SDP,花了不少时间特此记录一下

freeswitch INCOMPATIBLE_DESTINATION 报错
FREESWITCH SDP CANDIDATE JSSIP 6/8/2022 2:11:45 PM 阅读:26

今天发生了一个故障,web端通过JSSIP接入汇呼产品客户反馈了一个报错remote - Incompatible SDP,花了不少时间特此记录一下 关键字: freeswitch,sdp,webrtc,jssip,candidate

相关介绍

问题说明

客户再使用JSSIP客户端时反馈一个报错 remote - Incompatible SDP

freeswitch的报错代码是 INCOMPATIBLE_DESTINATION 于是网络查了很多关键字,都没有解决问题

最后还在日志中发现如下异常

2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4295 Save audio Candidate cid: 1 proto: udp type: host addr: 172.168.1.14:50241
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4340 Searching for rtp candidate.
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4340 Searching for rtcp candidate.
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4387 Look for Relay Candidates as last resort
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4340 Searching for rtp candidate.
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4340 Searching for rtcp candidate.
2022-06-08 12:00:57.412493 [DEBUG] switch_core_media.c:4393 sofia/internal/XXXXX no suitable candidates found.

这里查了一下 candidate

从日志中,可以看到在媒体协商的过程,有一个“no suitable candidates found”的信息。意思是webrtc中的ice框架没有找到合适的可选媒体地址。

同时,SDP中又有“a=candidate: udp 172.168.1.14 50241”的信息。

日志看起来比较奇怪,明明打印出来的有candidate信息,为什么又说找不到合适的candidate。

后来了解到Rfc1918规定的地址段如下,一般情况下,内网地址都要按照这3个网段来配置: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

所以 172.168.1.14 实际上被认为是 公网ip,而且是属于美国:worried:,所以解决思路只要放行公网ip就可以了

于是最后修改 internal 配置

<param name="apply-candidate-acl" value="rfc1918.auto"/>

<!--增加-->
<param name="apply-candidate-acl" value="wan.auto"/>

重启问题解决!:grinning: