我正在尝试让 Gigaset C470 IP 在我的互联网连接上工作。我已经确定了设备和路由器(位于 DSL 调制解调器和 LAN 之间的 pfSense)的正确配置,以便我可以拨打电话和接听来电。
拨出电话没有任何问题。但是,来电时,音频仅在通话的第一秒有效 - 一秒过去后,两个方向都没有音频。通话保持畅通,直到一端挂断。
pfSense 外部接口上的数据包捕获显示发生了以下情况:
- 我得到了一个 SIP
INVITE
- Gigaset 回应
100 Trying
道180 Ringing
- 我接听电话,Gigaset 回复道
200 OK
- 两个方向都有 RTP 流量
- 通话一秒钟后,Gigaset
INVITE
向呼叫方回复了一条新消息 - 再增加 0.1 秒的双向 RTP 流量
- 在这 0.1 秒之后,SIP 提供商会响应
100 Trying
,然后200 OK
- 随后
100 Trying
不再有传入 RTP 流量。仍有传出 RTP 流量,但双方都听不到对方的声音。
查看所使用的编解码器,在第一个之后,双方都选择了 G.711 INVITE
。据我从跟踪中得知,RDP 流量确实使用了 G.711。重新INVITE
提出了一组与原始略有不同的编解码器INVITE
,但双方显然同意继续使用 G.711。
然而,这INVITE
似乎导致远端停止发送或接受此呼叫的任何进一步 RTP – 但为什么呢?我该怎么办呢?
答案1
确保在 200 OK 答案中获得一个单一的编解码器。
如果某些服务器收到带有 SDP 中的多个编解码器的 200 OK,它们将向您发送第二次重新邀请。
要解决此问题,请查看日志中的当前 OK。从列表中提取一个编解码器(您首选的编解码器)。然后在您的 Gigaset 设备中仅允许该编解码器。
这应该可以解决问题。