记录一次fs通话无声的问题

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

fs的实际应用中,由于网络、配置等问题,经常会产生通话无声的问题。

环境

CentOS 7.9

freeswitch 1.10.7

问题描述

部署一台新服务器,作为SBC,对接B路,部署简图如下。

A -- fs1 -- fs2(fs3媒体服务器) -- B

其中fs2和fs3是已有的老服务,运行正常。fs1是新部署的SBC,作为AB路通话的中转服务。

 

fs1部署配置完成后,开始测试,A发起呼叫B,B接听,但是AB都无声。

查看fs1的日志,均正常。

通过sngrep抓包,查看信令也正常,媒体流收发正常。

通过fs1本地录音,录音文件中有A路声音,没有B路声音。

通过fs2抓包,信令正常。

通过fs3抓包,fs3没有收到fs1的媒体流。

问题分析

fs1上的sngrep中显示,B路的媒体流正常,说明fs1上B路的网卡上有正常的媒体流。

fs1的本地录音中没有B路声音,结合上一条,B路媒体流到达了fs1的网卡,但是没有进入fs1服务。

fs3的抓包显示,fs1的媒体流没有到达fs3的网卡。

初步分析,fs1的B路网卡上的媒体流不正常,网卡配置问题的可能性比较大。

解决方案

查看fs1的服务器配置,发现fs1到fs3的静态路由没有配置。

$ route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 120.xxx.xxx.xx 0.0.0.0 UG 301 0 0 bond0

10.0.129.0 10.55.55.110 255.255.255.0 UG 0 0 0 bond1

10.0.132.0 10.55.55.110 255.255.255.0 UG 0 0 0 bond1

10.55.55.0 0.0.0.0 255.255.255.0 U 300 0 0 bond1

120.xxx.xxx.xx 0.0.0.0 255.255.255.128 U 301 0 0 bond0

172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0

 

添加完后,AB路通话正常。

总结

实际生产环境中,网络和各种配置的异常情况特别多,需要根据实际情况一步步分析解决。

fs不能仅仅关注服务本身的问题,服务器,网络的问题也都需要了解一点。

在没有静态路由的场景下,网卡到fs服务的媒体流转发也会失败。

 

空空如常

求真得真

 

posted @ 2024-04-30 17:32  求真得真  阅读(32)  评论(0编辑  收藏  举报