概述

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. 使用maven命令 创建基于Scala的flink项目

    windows下 mvn archetype:generate ^ -DarchetypeGroupId=org.apache.flink ^ -DarchetypeArtifactId=flink- ...

  2. net.sf.json.JSONObject,将MySQL数据库的数据读出转化为json数据

    maven依赖: 1 <dependency> 2 <groupId>net.sf.json-lib</groupId> 3 <artifactId>j ...

  3. 网络设备性能指标之pps

    基本概念: Bps:Byte per second 每秒传输多少字节 bps: bits per second 每秒传输多少位 ,这个也叫做端口速率 pps:Packet Per Second(包每秒 ...

  4. DM数据库金融行业案例(水贴一波)

      最近没遇到啥有意思的案例,都是些很简单的案例,但是又好久没写过博客了,决定水一波帖子,保持更新. 今天这个是任总老婆小王同学提供的金融SQL案例,难是不难,但是远程的时候网络卡得要命, 心累. 慢 ...

  5. 4 PyExecJS模块

    PyExecJS模块 pyexecjs是一个可以帮助我们运行js代码的一个第三方模块. 其使用是非常容易上手的. 但是它的运行是要依赖能运行js的第三方环境的. 这里我们选择用node作为我们运行js ...

  6. AtCoder Grand Contest 037(without F)

    AGC037 A - Dividing a String 洛谷传送门 AGC037A 分析 考虑每一段长度只可能是一或二,设 \(dp[i]\) 表示以 \(i\) 为结尾的前缀最多可以分成多少段. ...

  7. #K-D Tree#洛谷 2093 [国家集训队]JZPFAR

    题目 平面上有 \(n\) 个点.现在有 \(m\) 次询问,每次给定一个点 \((px, py)\) 和一个整数 \(k\), 输出 \(n\) 个点中离 \((px, py)\) 的距离第 \(k ...

  8. #网络流,二分#洛谷 3324 [SDOI2015]星际战争

    题目 分析 二分答案,然后建图判断可行性 代码 #include <cstdio> #include <cctype> #include <queue> #defi ...

  9. 重磅官宣 | 第二届OpenHarmony技术峰会,邀您共启智联未来

      "下一个技术未来在哪里?" 11月4日  技术大咖齐聚北京为你解答 一场主论坛+八大开源领域分论坛 探究终端操作系统十大技术挑战方向 与全球开源操作系统技术领袖.实践专家.一线 ...

  10. SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用

    SQL DELETE 语句 SQL DELETE 语句用于删除表中的现有记录. DELETE 语法 DELETE FROM 表名 WHERE 条件; 注意:在删除表中的记录时要小心!请注意DELETE ...