概述

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服务的媒体流转发也会失败。

空空如常

求真得真

记录一次fs通话无声的问题的更多相关文章

  1. Nuxt.js 踩坑记录,(1)引入fs包报错

    今天又是码农的一天. 但是写着写着,不知道为啥就页面就报错了, 如图所示,我在db/app.js下引入了fs这个模块,提示我npm install,我也照做了,但是仍然报错. 通过各种百度,踩坑,最终 ...

  2. Hadoop问题记录:Wrong FS: hdfs://hp5-249:9000/, expected: file:///

    一般在对文件操作的时候可能出现这个问题,可能是打开文件的时候出错,也可能是对文件夹进行遍历的时候出问题. 出现这样的问题通常是在eclipse中执行hadoop的时候出现,直接切换到shell下发送命 ...

  3. android 获取通话记录

    在manifest添加以下权限<uses-permission android:name="android.permission.READ_CALL_LOG" />&l ...

  4. 每天学点node系列-fs文件系统(续)

    理想如果不向现实做一点点屈服,那么理想也将归于尘土. 创建目录 异步创建目录 path<string> | <Buffer> | <URL> options < ...

  5. nodejs入门API之fs模块

    fs模块下的类与FS常量 fs模块下的主要方法 fs的Promise API与FileHandle类 一.fs模块下的类 1.1 fs.Dir:表示目录流的类,由 fs.opendir().fs.op ...

  6. 【算法学习记录-排序题】【PAT A1016】Phone Bills

    A long-distance telephone company charges its customers by the following rules: Making a long-distan ...

  7. 【腾讯Bugly干货分享】QQ电话适配iOS10 Callkit框架

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58009392302e4725036142fc Dev Club 是一个交流移动 ...

  8. LINUX命令总结 -------来自 水滴娃娃 的CSDN

    LINUX命令总结 标签: LINUX命令总结 2014-01-27 15:54 41039人阅读 评论(1) 收藏 举报  分类: linux(1)  版权声明:本文为博主原创文章,未经博主允许不得 ...

  9. linux 命令总结(转载)

    linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Lin ...

  10. TCL S960T刷机包 乐蛙OS5 稳定版 平滑 优化

    ROM简介 乐蛙OS5完美的最终稳定版 Ver14.10.17 温馨提示:一定要明确系统双成一个完整的包画刷入前开发版,否则会造成系统异常,请务必备份手机刷机前的信息和数据,刷机过程中,为了避免因数据 ...

随机推荐

  1. nohup操作

    nohup操作 背景:vscode 连接服务器远程运行时经常会出现断连需要重新输入密码,如果是在终端跑程序那么中断后无法再恢复在终端的输出,为了能够让程序保留实验结果或需要长时间跑程序而无需值守,需要 ...

  2. CPU上下文切换 CPU的调度策略

    CPU上下文切换 就是先把前一个任务的CPU上下文(也就是CPU寄存器和程序计数器)保存起来,然后加载新任务的上下文,到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务. 根据任 ...

  3. druid开启sql监控平台

    1.maven导入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid< ...

  4. copy 导入包含特殊符号的文本

    客户提供了一份数据记录需要导入数据库,但是文本中有一个列的内容是反斜杠"\" ,因为""是特殊的转义字符,需要使用两个"\"才能表示,如果直 ...

  5. 大模型提示工程之Prompt框架和示例

    今天和大家分享一下:大模型提示工程之Prompt框架和示例: TAG框架 任务(Task): 开发一个新的手机应用,旨在帮助用户更好地管理他们的日常健康. 行动(Action): 进行市场调研,设计用 ...

  6. 使用OHOS SDK构建libpng

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/glennrp/libp ...

  7. Numpy数组索引和切片

    数组可以通过索引或切片的方式进行访问或修改,数组切片x[start:stop:step],与Ptyhon内置的list标准索引和切片类似,只是数组产生的是一个非副本视图,根据条件索引的值如果修改,直接 ...

  8. C++调用Python-2:调用Python函数,返回数字

    # mytest.py def hello(): print("this is test python print hello world") return 123 #includ ...

  9. openGauss/MogDB数据库安装部署之xlog目录设置

    openGauss/MogDB 数据库安装部署之 xlog 目录设置 本文出处:https://www.modb.pro/db/176915 关于 xlog xlog 文件是一个记录事务日志的文件,它 ...

  10. Device Partner平台合作伙伴认证和数据安全保护

     Device Partner平台是面向AIoT产业链伙伴的一站式服务平台,伙伴可以通过平台获取最新的产品.服务与解决方案,实现智能硬件产品的开发.认证.量产和推广等全生命周期的管理,加入Harmon ...