概述

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. mybatis @Param参数 记录

    报错信息 org.apache.ibatis.binding.BindingException: Parameter 'XX' not found. Available parameters are ...

  2. KingbaseES使用kbbench计算连接耗时

    前言 本文讨论一下KingbaseES数据库中如何计算数据库连接耗时.有这样一个场景,不借助第三方工具,在数据库服务端计算1000个数据库连接的总耗时,并取得每个连接耗时的平均值.怎样实现呢?我们可以 ...

  3. linux xfce 设置限制亮度滑块的最小亮度,在屏幕里的xfce设置亮度的最小亮度。

    参照 https://docs.xfce.org/xfce/xfce4-power-manager/preferences 使用代码 xfconf-query -c xfce4-power-manag ...

  4. RSA进阶(一)

    本篇为RSA进阶篇,继RSA入门 [RSA3]P1(扩展欧几里得) 题目 from Crypto.Util.number import * flag = b'******' m1 = bytes_to ...

  5. JDK11的新特性:新的HTTP API

    目录 简介 使用HTTP Client请求的基本流程 创建HTTP Client 创建HTTP Request 发送HTTP请求 异步HTTP请求 总结 JDK11的新特性:新的HTTP API 简介 ...

  6. Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析

    嵌入式服务器 Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中.这使得开发.测试和部署 Web ...

  7. MySQL-ERROR 1701 (42000)

    清空具有外键约束的表时报ERROR 1701(42000)的解决 mysql> truncate table events; ERROR 1701 (42000): Cannot truncat ...

  8. 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit

    1.问题描述 升级到4.0.0.59版本后,通过pushService.getToken获取华为的token时报如下错误:Illegal application identity. 解决方案 Mate ...

  9. SQL中使用年月日来进行分组

    SQL按年月日进行分组 select count(project_name), create_at from table_a group by date_format(create_at, '%Y%m ...

  10. 二、Unity调用Xcode封装方法

    1.开始封装Unity调用接口 我们在Xcode中 写的接口需要在extern "C"中(加上extern "C"后,会指示编译器这部分代码按C语言的进行编译) ...