- 博客(143)
- 收藏
- 关注
原创 rtpengine的docker化
本文介绍了使用Docker部署rtpengine媒体转发服务的实践过程。由于rtpproxy对多网卡支持不足,作者选择基于CentOS7.9环境编译rtpengine 13.1.1.6版本,通过Dockerfile构建自定义镜像,并配置与kamailio的联动。详细说明了源码获取、Docker镜像构建步骤及docker-compose部署配置,特别注意rtpengine需以前台模式运行。最终实现了kamailio+rtpengine的媒体转发方案,虽然配置比rtpproxy复杂,但功能更为强大,为后续方案优
2025-07-25 18:02:46
443
原创 Kamailio 5.8.3与rtpengine双网卡SBC集成要点
本文总结了Kamailio 5.8.3与rtpengine在双网卡模式下的集成配置关键点,包括:1)rtpengine模块的核心配置与方向控制flags;2)dispatcher模块实现公私网网关负载均衡;3)路由逻辑中网络方向识别与媒体流处理。重点在于通过direction标志控制rtpengine接口选择,并配合dispatcher实现双向呼叫的流量分发,同时支持音视频及RTCP媒体流转发。
2025-07-11 17:51:50
385
原创 Kamailio SIP+RTP双网卡SBC呼叫流程与媒体处理说明
本文档详细介绍了基于kamailio_sbc_dual_nic.cfg配置文件的双网卡SBC部署方案。核心组件包括Kamailio(5.8.3)负责SIP信令处理,rtpengine(mr13.1.1.6)管理媒体流转发,以及dispatcher模块实现网关负载均衡。文档重点阐述了公网与私网用户间的双向呼叫流程,包括SIP信令处理和rtpengine的媒体协商机制,特别是direction参数对接口选择的关键作用。同时说明了dispatcher模块的负载均衡原理和Kamailio配置要点,强调了对音视频和R
2025-06-27 18:02:13
1042
原创 Rtpengine 全面指南 (mr13.1.1.6):启动参数、配置详解及双网卡SBC部署实例
《Rtpengine媒体代理配置指南》摘要 本文详细解析了rtpengine mr13.1.1.6版本的配置方法,重点包括: 进程启动参数的完整说明,涵盖接口绑定、端口范围、性能限制等关键选项 配置文件rtpengine.conf的参数详解,支持INI格式的多节配置 双网卡SBC服务器场景分析,阐述公私网媒体流转发原理 提供典型双网卡配置实例,包含公网/私网接口定义和NG控制协议设置 特别强调了interface参数的核心作用,通过逻辑接口名称实现精准的媒体路径控制。文档还指出与SIP代理(如Kamaili
2025-06-20 17:53:19
363
原创 freeswitch使用hiredis的limit功能
本文介绍了FreeSWITCH中limit模块的hiredis后端模式配置方法。相比hash模式,hiredis模式基于Redis实现,具有持久化和更好的集群支持优势。文章详细说明了在CentOS7.9环境下编译安装mod_hiredis模块、配置hiredis连接参数、以及在dialplan中应用limit规则的完整步骤。测试结果显示该模式能成功统计呼叫并发量,并通过Redis代理实现集群扩展。虽然性能与稳定性仍需验证,但hiredis模式为FreeSWITCH的并发控制提供了更灵活的解决方案。
2025-06-13 18:00:50
645
原创 Predixy的docker化
摘要:为解决hiredis只能连接单实例Redis而无法对接Redis Cluster的问题,本文采用Predixy作为代理中间件实现协议转换。详细介绍了基于CentOS 7.9的部署过程,包括1.0.5版本Predixy的源码编译、Docker镜像构建、集群配置文件(predixy.conf和cluster.conf)的配置要点,以及通过Docker-Compose的启动方式。测试验证显示FreeSWITCH已成功通过Predixy(10.55.55.136:7777)代理访问Redis Cluster集
2025-05-30 17:51:38
984
原创 FreeSWITCH Jitter Buffer 技术解析与应用指南
freeswitch是一款简单好用的VOIP开源软交换平台。Jitter Buffer(抖动缓冲器)是实时语音通信中解决网络抖动和延迟问题的核心技术。FreeSWITCH通过STFU(Sort Transportable Framed Utterances)库实现该功能,自1.6版本起,所有媒体相关变量统一采用"rtp_"前缀,取代历史版本中的"sip_"前缀。该功能默认禁用,需通过特定配置激活。
2025-05-16 17:56:06
498
原创 freeswitch配置视频对接
freeswitch是一款简单好用的VOIP开源软交换平台。随着4G/5G网络的完善,视频呼叫的需求慢慢变多,本文介绍使用fs对接视频线路的配置方案。fs配置视频比较容易,但是视频质量要求参数配置的正确,需要多测试和调整。目前fs中的264应该只支持透传模式。空空如常求真得真。
2025-04-25 17:43:33
383
原创 FreeSWITCH中SIP网关(Gateway)操作
通过灵活运用Sofia模块的网关操作命令,可实现FreeSWITCH与外部SIP服务的高效对接。监控常态化:定期执行检查网关健康度。空空如常求真得真。
2025-04-18 17:53:04
674
原创 DTMF从2833到inband的方案
freeswitch是一款简单好用的VOIP开源软交换平台。之前的文章中介绍过通过dialplan拨号计划配置的方法,实现2833到inband的转换,但是实际生产环境中的场景会更复杂,无法预先在dialplan中设置好相关参数和函数。根据sip协议的规范,在媒体协商的过程中,如果已经有183SDP或update的SDP了,则200SDP会被忽略。
2025-03-28 17:54:01
978
原创 fs的proxy_media模式失效
freeswitch是一款简单好用的VOIP开源软交换平台。在fs的使用过程中,某些场景只需要对rtp媒体做透传,又不需要任何处理。在fs1.6的版本中,我们可以使用proxy_media来代理媒体的转发,媒体的协商由AB路端对端处理,fs不处理媒体协商,也不处理媒体流,包括录音,dtmf检测等,仅仅原样转发媒体流。但是在fs的1.10.7版本中,proxy_media模式失效了。同步测试了fs1.6.19版本和fs1.10.7版本,其中1.6版本是可以正常使用proxy_media模式的。
2025-03-14 17:50:31
449
原创 spandsp_start_dtmf的bug及修复
freeswitch是一款简单好用的VOIP开源软交换平台。之前的文章中介绍过DTMF从2833到inband的转换,其中inband到2833的转换使用了“spandsp_start_dtmf”,这个函数在转换的过程中有缺陷。因为需要对inband的媒体流做缓存,所以该处理会产生40ms左右的语音时延。空空如常求真得真。
2025-01-23 17:53:52
772
原创 号码变换配置对接运营商IMS
freeswitch是一款简单好用的VOIP开源软交换平台。fs直接对接运营商,调试过程中的号码变换规则比较容易出问题。本文档记录一个较为通用的对接IMS配置方案。标准模板可以解决90%的问题,剩下10%需要定制。空空如常求真得真。
2024-11-01 17:46:33
932
原创 freeswitch的话单处理
freeswitch是一款简单好用的VOIP开源软交换平台。如果对cdr话单要求不高,可以直接使用fs的原始话单文件,使用脚本做一些简单的统计。fs暂时没发现有内置的话单统计和报表模块。自己实现吧。空空如常求真得真。
2024-10-25 17:34:12
674
原创 记录一次fs配置导致串线的问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs在实际的使用过程中也会经常碰到莫名其妙的问题,大部分都是配置问题。fs的docker模式挺好用的,但是有不少要注意的坑。空空如常求真得真。
2024-09-20 17:45:41
657
原创 sipp模拟uas发送reinvite
freeswitch是一款简单好用的VOIP开源软交换平台。在更新了sipp模拟update的配置方案之后,我希望对比一下fs对update和reinvite的处理流程。本文档记录sipp的配置方案,该方案中包含了update和reinvite的信令。sipp很灵活,可以帮助我们在测试中构建各种模拟场景。先比对update消息和reinvite消息的处理流程,再针对具体问题进行优化。空空如常求真得真。
2024-09-13 17:28:02
1100
原创 sipp模拟uas发送update
freeswitch是一款简单好用的VOIP开源软交换平台。但是fs在处理update消息时候有BUG,为了复现问题,使用sipp模拟uas,发送update并发送DTMF码。本文档记录sipp的配置方案。sipp很灵活,可以帮助我们在测试中构建各种模拟场景。修复方案有多种,后续安排上。空空如常求真得真。
2024-08-30 17:56:02
852
2
原创 condition字符串匹配问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs使用dialplan配置文件执行业务流程,condition条件变量的配置是必然会使用的,这里记录一次配置过程中的错误示范。fs的dialplan配置很方便,但是也容易出错。空空如常求真得真。
2024-08-07 17:45:14
748
原创 在python docker中安装ESL库
功能需求,把python脚本移植到docker中。因为python脚本中有使用freeswitch的ESL接口,所以需要安装python-ESL依赖库。本文记录在python:3.10.14-slim的docker镜像上编译安装python-ESL依赖库的流程。python基础镜像更换为python:3.10.14-slim,镜像大小只有150M左右。使用python镜像来运行外部脚本,脱离fs本身的docker容器限制。空空如常求真得真。
2024-06-28 17:47:07
828
1
原创 fs.1.10 ON rockeylinux8 dockerfile模式
freeswitch是一款简单好用的VOIP开源软交换平台。rockeylinux8 docker上编译安装fs.1.10的流程记录,本文使用dockerfile模式。编译出的docker镜像还是比较大,需要持续瘦身。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。
2024-06-14 17:58:41
1057
原创 fs.1.10 ON rockylinux8 docker镜像制作
freeswitch是一款简单好用的VOIP开源软交换平台。rockylinux docker上编译安装fs1.10版本的流程记录。fs.1.10版本比1.6版本的安装依赖要更多,最终产生的镜像大小也更大。后续继续整理fs.1.10镜像的dockerfile模式。空空如常求真得真。
2024-06-07 18:04:56
1017
原创 freeswitch官方仓库
在使用源代码编译安装freeswitch的过程中,我们经常需要一些依赖库,其中freeswitch官方的yum源仓库是最齐全最方便的。但是,freeswitch仓库的配置和使用需要先在signalwire网站注册账号并获取PAT(personal access token)。fs官方仓库的依赖更全更方便。signalwire的账号注册有点麻烦,需要梯子,最新的登录还需要手机验证码,国内的验证码很难收到。空空如常求真得真。
2024-05-30 17:42:55
1586
原创 记录freeswitch的一个2833问题
freeswitch是一款简单好用的VOIP开源软交换平台。运营商内部新老系统混用,互联互通的问题较多,其中以DTMF码的问题最多,花样也多。临时方案覆盖面不足,无法保证所有线路都能通过该方式修正该问题。正式方案应该修改fs的200OK携带payload,可以动态的跟随update保持一致。空空如常求真得真。
2024-05-17 17:25:42
821
原创 记录一次fs通话无声的问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs的实际应用中,由于网络、配置等问题,经常会产生通话无声的问题。实际生产环境中,网络和各种配置的异常情况特别多,需要根据实际情况一步步分析解决。fs不能仅仅关注服务本身的问题,服务器,网络的问题也都需要了解一点。在没有静态路由的场景下,网卡到fs服务的媒体流转发也会失败。空空如常求真得真。
2024-04-30 17:31:27
897
原创 centos6.5重启docker容器死机问题
近期在整理服务问题,使用docker容器重新部署服务。过程中有不少坑,主要是系统配置和系统版本的问题。抛弃centos6的时候到了。空空如常求真得真。
2024-04-19 17:32:56
1131
1
原创 fs.1.10 ON CENTOS7 dockerfile模式
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs.1.10的流程记录,本文使用dockerfile模式。编译出的docker镜像还是比较大,需要持续瘦身。centos系统后续的维护问题需要关注。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。
2024-04-11 18:10:07
964
原创 fs.1.10 ON CENTOS7 docker镜像制作
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs1.10版本的流程记录。fs.1.10版本比1.6版本的安装依赖要更多,最终产生的镜像大小也更大。后续继续整理fs.1.10镜像的dockerfile模式。空空如常求真得真。
2024-03-27 11:41:55
722
原创 使用docker-compose管理freeswitch容器
之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器。但是当我们需要同时管理多个docker容器的时候,还是使用docker-compose更简单。docker-compose简化了多个docker容器的管理难度。对于docker集群的部署,使用docker-compose很方便。空空如常求真得真。
2024-03-16 11:10:31
1409
原创 centos docker服务问题
docker的应用版本正式上线,结果一上线就出各种幺蛾子。本文档主要介绍centos系统安装docker和启动的问题解决方法。docker registry的私服镜像使用方便。docker-compose管理镜像启动配置。空空如常求真得真。
2024-02-28 17:43:53
1258
原创 获取当天剩余时间
业务测试的过程中,本来有一个时间函数“获取当天剩余时间”,其中使用了localtime()和mktime(),但是在压力测试的过程中发现,两个time函数都不是线程安全的,多线程并发的时候会产生一些随机的错误,结果就是获得的interval时间错误,进而影响到业务流程。fs是多线程架构,对于大并发场景下的压力测试要特别注意线程安全的问题。为了尽可能的提高性能,也有很多技术手段可以不使用加锁的方式解决。空空如常求真得真。
2024-02-23 17:45:31
332
原创 freeswitch的主被叫号码
freeswitch是一款简单好用的VOIP开源软交换平台。sip信令中对于主被叫号码有多个头域显示,不同的配置参数又有多种头域组合,当我们在使用fs处理信令时,应该如何设置和获取主被叫号码在恰当的头域中。fs收到invite信令时,通过“caller_id_number”获取主叫号码的头域优先级,Remote-Party-ID,P-Asserted-Identity,From。fs收到invite信令时,通过“destination_number”获取的被叫号码是requestline中的号码。
2024-02-02 17:34:08
1403
原创 freeswitch on centos dockerfile模式
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录,本文使用dockerfile模式。centos系统后续的维护问题需要关注。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。
2024-01-19 18:20:15
1190
原创 freeswitch on centos docker
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。
2024-01-10 17:35:08
1146
原创 CENTOS docker拉取私服镜像
docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker镜像的拉取。centos6版本太老,docker的使用过程中问题较多,centos7相对简单容易。本文档主要介绍centos系统安装docker和拉取docker私服镜像的步骤和问题解决。尽快切换掉centos6系统。docker registry的私服镜像使用更方便。docker镜像包的瘦身工作要持续进行。空空如常求真得真。
2023-12-29 17:39:38
1448
1
原创 freeswitch on debian docker
freeswitch是一款简单好用的VOIP开源软交换平台。因为centos系统期限的原因,尝试在debian的docker上使用fs。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。
2023-12-22 17:51:23
1403
原创 freeswitch如何解决sip信令的NAT问题
freeswitch是一款简单好用的VOIP开源软交换平台。公网环境复杂多变,客户环境更是各种稀奇古怪的问题。fs在针对sip信令的NAT问题有针对性的参数设置。本文讨论的范围限于fs的公网地址正常没有在NAT后面的两种常见场景。其他更多更复杂的NAT场景暂不讨论。本文仅仅讨论了两种比较简单常见的NAT问题,公网环境中的NAT问题更加的复杂多变。对于NAT问题的通用思路是想办法找到对方或自己的公网地址,在消息传递过程中使用各种手段透传过NAT网关。空空如常求真得真。
2023-12-08 17:44:43
1214
原创 freeswitch设置多个execute_on_media
freeswitch是一款简单好用的VOIP开源软交换平台。fs中有非常多的接口和通道变量,使用方式多变。官方文档有时候也仅仅是介绍了最基本的使用方法和格式。execute_on大部分源码在switch_channel.c中。思考为什么测试结果中,先执行log1,再执行log0。空空如常求真得真。
2023-11-23 17:34:36
4147
1
原创 freeswitch的一个性能问题
freeswitch是一款简单好用的VOIP开源软交换平台。在fs的使用过程中,会遇到各种各样的问题,各种问题中,性能问题是最头疼的。最近在测试某些场景的时候,压测会造成fs的内存占用持续升高,并在达到某个临界点的时候击溃fs的端口服务,导致全部sip呼叫响应503。fs启动打开的端口超过一定数目(1000)之后,会有内存占用过大和内存持续升高的问题。在删除多余的端口资源后,测试恢复正常。具体原因需要对sofia模块代码走读确定。空空如常求真得真。
2023-11-17 17:30:24
635
原创 sipp3.6多方案压测脚本
SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。有时候我们需要模拟现网的生产环境来压测,就需要同时有多个sipp脚本运行,并且需要不断的调整呼叫并发。通过python脚本的子进程功能,我们可以很方便的实现sipp的多方案压测功能。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。
2023-10-26 17:54:48
622
原创 DOCKER本地仓库
随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用。试用了docker的本地仓库功能,简单易上手,记录下来以备后用。首先删除本地自定义镜像,然后从registry重新下载。Docker镜像的本地库是CI自动化流程的必要步骤。Docker的registry镜像简单易上手。空空如常求真得真。
2023-10-12 17:09:50
782
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人