
技术-VOIP
文章平均质量分 82
求真得真
空空如常,求真得真
展开
-
freeswitch配置视频对接
freeswitch是一款简单好用的VOIP开源软交换平台。随着4G/5G网络的完善,视频呼叫的需求慢慢变多,本文介绍使用fs对接视频线路的配置方案。fs配置视频比较容易,但是视频质量要求参数配置的正确,需要多测试和调整。目前fs中的264应该只支持透传模式。空空如常求真得真。原创 2025-04-25 17:43:33 · 272 阅读 · 0 评论 -
FreeSWITCH中SIP网关(Gateway)操作
通过灵活运用Sofia模块的网关操作命令,可实现FreeSWITCH与外部SIP服务的高效对接。监控常态化:定期执行检查网关健康度。空空如常求真得真。原创 2025-04-18 17:53:04 · 573 阅读 · 0 评论 -
DTMF从2833到inband的方案
freeswitch是一款简单好用的VOIP开源软交换平台。之前的文章中介绍过通过dialplan拨号计划配置的方法,实现2833到inband的转换,但是实际生产环境中的场景会更复杂,无法预先在dialplan中设置好相关参数和函数。根据sip协议的规范,在媒体协商的过程中,如果已经有183SDP或update的SDP了,则200SDP会被忽略。原创 2025-03-28 17:54:01 · 900 阅读 · 0 评论 -
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 · 421 阅读 · 0 评论 -
spandsp_start_dtmf的bug及修复
freeswitch是一款简单好用的VOIP开源软交换平台。之前的文章中介绍过DTMF从2833到inband的转换,其中inband到2833的转换使用了“spandsp_start_dtmf”,这个函数在转换的过程中有缺陷。因为需要对inband的媒体流做缓存,所以该处理会产生40ms左右的语音时延。空空如常求真得真。原创 2025-01-23 17:53:52 · 730 阅读 · 0 评论 -
号码变换配置对接运营商IMS
freeswitch是一款简单好用的VOIP开源软交换平台。fs直接对接运营商,调试过程中的号码变换规则比较容易出问题。本文档记录一个较为通用的对接IMS配置方案。标准模板可以解决90%的问题,剩下10%需要定制。空空如常求真得真。原创 2024-11-01 17:46:33 · 860 阅读 · 0 评论 -
freeswitch的话单处理
freeswitch是一款简单好用的VOIP开源软交换平台。如果对cdr话单要求不高,可以直接使用fs的原始话单文件,使用脚本做一些简单的统计。fs暂时没发现有内置的话单统计和报表模块。自己实现吧。空空如常求真得真。原创 2024-10-25 17:34:12 · 618 阅读 · 0 评论 -
记录一次fs配置导致串线的问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs在实际的使用过程中也会经常碰到莫名其妙的问题,大部分都是配置问题。fs的docker模式挺好用的,但是有不少要注意的坑。空空如常求真得真。原创 2024-09-20 17:45:41 · 633 阅读 · 0 评论 -
sipp模拟uas发送reinvite
freeswitch是一款简单好用的VOIP开源软交换平台。在更新了sipp模拟update的配置方案之后,我希望对比一下fs对update和reinvite的处理流程。本文档记录sipp的配置方案,该方案中包含了update和reinvite的信令。sipp很灵活,可以帮助我们在测试中构建各种模拟场景。先比对update消息和reinvite消息的处理流程,再针对具体问题进行优化。空空如常求真得真。原创 2024-09-13 17:28:02 · 1060 阅读 · 0 评论 -
sipp模拟uas发送update
freeswitch是一款简单好用的VOIP开源软交换平台。但是fs在处理update消息时候有BUG,为了复现问题,使用sipp模拟uas,发送update并发送DTMF码。本文档记录sipp的配置方案。sipp很灵活,可以帮助我们在测试中构建各种模拟场景。修复方案有多种,后续安排上。空空如常求真得真。原创 2024-08-30 17:56:02 · 778 阅读 · 1 评论 -
condition字符串匹配问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs使用dialplan配置文件执行业务流程,condition条件变量的配置是必然会使用的,这里记录一次配置过程中的错误示范。fs的dialplan配置很方便,但是也容易出错。空空如常求真得真。原创 2024-08-07 17:45:14 · 708 阅读 · 0 评论 -
在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 · 790 阅读 · 1 评论 -
fs.1.10 ON rockeylinux8 dockerfile模式
freeswitch是一款简单好用的VOIP开源软交换平台。rockeylinux8 docker上编译安装fs.1.10的流程记录,本文使用dockerfile模式。编译出的docker镜像还是比较大,需要持续瘦身。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。原创 2024-06-14 17:58:41 · 1048 阅读 · 0 评论 -
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 · 978 阅读 · 0 评论 -
freeswitch官方仓库
在使用源代码编译安装freeswitch的过程中,我们经常需要一些依赖库,其中freeswitch官方的yum源仓库是最齐全最方便的。但是,freeswitch仓库的配置和使用需要先在signalwire网站注册账号并获取PAT(personal access token)。fs官方仓库的依赖更全更方便。signalwire的账号注册有点麻烦,需要梯子,最新的登录还需要手机验证码,国内的验证码很难收到。空空如常求真得真。原创 2024-05-30 17:42:55 · 1492 阅读 · 0 评论 -
记录freeswitch的一个2833问题
freeswitch是一款简单好用的VOIP开源软交换平台。运营商内部新老系统混用,互联互通的问题较多,其中以DTMF码的问题最多,花样也多。临时方案覆盖面不足,无法保证所有线路都能通过该方式修正该问题。正式方案应该修改fs的200OK携带payload,可以动态的跟随update保持一致。空空如常求真得真。原创 2024-05-17 17:25:42 · 759 阅读 · 0 评论 -
记录一次fs通话无声的问题
freeswitch是一款简单好用的VOIP开源软交换平台。fs的实际应用中,由于网络、配置等问题,经常会产生通话无声的问题。实际生产环境中,网络和各种配置的异常情况特别多,需要根据实际情况一步步分析解决。fs不能仅仅关注服务本身的问题,服务器,网络的问题也都需要了解一点。在没有静态路由的场景下,网卡到fs服务的媒体流转发也会失败。空空如常求真得真。原创 2024-04-30 17:31:27 · 823 阅读 · 0 评论 -
centos6.5重启docker容器死机问题
近期在整理服务问题,使用docker容器重新部署服务。过程中有不少坑,主要是系统配置和系统版本的问题。抛弃centos6的时候到了。空空如常求真得真。原创 2024-04-19 17:32:56 · 1105 阅读 · 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 · 948 阅读 · 0 评论 -
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 · 706 阅读 · 0 评论 -
使用docker-compose管理freeswitch容器
之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器。但是当我们需要同时管理多个docker容器的时候,还是使用docker-compose更简单。docker-compose简化了多个docker容器的管理难度。对于docker集群的部署,使用docker-compose很方便。空空如常求真得真。原创 2024-03-16 11:10:31 · 1361 阅读 · 0 评论 -
centos docker服务问题
docker的应用版本正式上线,结果一上线就出各种幺蛾子。本文档主要介绍centos系统安装docker和启动的问题解决方法。docker registry的私服镜像使用方便。docker-compose管理镜像启动配置。空空如常求真得真。原创 2024-02-28 17:43:53 · 1239 阅读 · 0 评论 -
获取当天剩余时间
业务测试的过程中,本来有一个时间函数“获取当天剩余时间”,其中使用了localtime()和mktime(),但是在压力测试的过程中发现,两个time函数都不是线程安全的,多线程并发的时候会产生一些随机的错误,结果就是获得的interval时间错误,进而影响到业务流程。fs是多线程架构,对于大并发场景下的压力测试要特别注意线程安全的问题。为了尽可能的提高性能,也有很多技术手段可以不使用加锁的方式解决。空空如常求真得真。原创 2024-02-23 17:45:31 · 318 阅读 · 0 评论 -
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 · 1287 阅读 · 0 评论 -
freeswitch on centos dockerfile模式
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录,本文使用dockerfile模式。centos系统后续的维护问题需要关注。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。原创 2024-01-19 18:20:15 · 1164 阅读 · 0 评论 -
freeswitch on centos docker
freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。原创 2024-01-10 17:35:08 · 1126 阅读 · 0 评论 -
CENTOS docker拉取私服镜像
docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker镜像的拉取。centos6版本太老,docker的使用过程中问题较多,centos7相对简单容易。本文档主要介绍centos系统安装docker和拉取docker私服镜像的步骤和问题解决。尽快切换掉centos6系统。docker registry的私服镜像使用更方便。docker镜像包的瘦身工作要持续进行。空空如常求真得真。原创 2023-12-29 17:39:38 · 1431 阅读 · 1 评论 -
freeswitch on debian docker
freeswitch是一款简单好用的VOIP开源软交换平台。因为centos系统期限的原因,尝试在debian的docker上使用fs。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。原创 2023-12-22 17:51:23 · 1385 阅读 · 0 评论 -
freeswitch如何解决sip信令的NAT问题
freeswitch是一款简单好用的VOIP开源软交换平台。公网环境复杂多变,客户环境更是各种稀奇古怪的问题。fs在针对sip信令的NAT问题有针对性的参数设置。本文讨论的范围限于fs的公网地址正常没有在NAT后面的两种常见场景。其他更多更复杂的NAT场景暂不讨论。本文仅仅讨论了两种比较简单常见的NAT问题,公网环境中的NAT问题更加的复杂多变。对于NAT问题的通用思路是想办法找到对方或自己的公网地址,在消息传递过程中使用各种手段透传过NAT网关。空空如常求真得真。原创 2023-12-08 17:44:43 · 1015 阅读 · 0 评论 -
freeswitch设置多个execute_on_media
freeswitch是一款简单好用的VOIP开源软交换平台。fs中有非常多的接口和通道变量,使用方式多变。官方文档有时候也仅仅是介绍了最基本的使用方法和格式。execute_on大部分源码在switch_channel.c中。思考为什么测试结果中,先执行log1,再执行log0。空空如常求真得真。原创 2023-11-23 17:34:36 · 4058 阅读 · 1 评论 -
freeswitch的一个性能问题
freeswitch是一款简单好用的VOIP开源软交换平台。在fs的使用过程中,会遇到各种各样的问题,各种问题中,性能问题是最头疼的。最近在测试某些场景的时候,压测会造成fs的内存占用持续升高,并在达到某个临界点的时候击溃fs的端口服务,导致全部sip呼叫响应503。fs启动打开的端口超过一定数目(1000)之后,会有内存占用过大和内存持续升高的问题。在删除多余的端口资源后,测试恢复正常。具体原因需要对sofia模块代码走读确定。空空如常求真得真。原创 2023-11-17 17:30:24 · 567 阅读 · 0 评论 -
sipp3.6多方案压测脚本
SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。有时候我们需要模拟现网的生产环境来压测,就需要同时有多个sipp脚本运行,并且需要不断的调整呼叫并发。通过python脚本的子进程功能,我们可以很方便的实现sipp的多方案压测功能。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。原创 2023-10-26 17:54:48 · 581 阅读 · 0 评论 -
DOCKER本地仓库
随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用。试用了docker的本地仓库功能,简单易上手,记录下来以备后用。首先删除本地自定义镜像,然后从registry重新下载。Docker镜像的本地库是CI自动化流程的必要步骤。Docker的registry镜像简单易上手。空空如常求真得真。原创 2023-10-12 17:09:50 · 771 阅读 · 0 评论 -
HOMER7配置告警
HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具。HOMER是一款强大的、运营商级、可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应用程序,并可以使用即时搜索、处理和存储大量的信令、RTC事件、日志和统计信息。在HOMER7的框架中,内置有prometheus、grafana、alertmanager等模块,并在grafana中有默认的sip overview指标监控界面。本文介绍如何通过grafana对sip监控指标设置告警的操作。原创 2023-09-28 16:36:03 · 320 阅读 · 0 评论 -
paddlespeech asr脚本demo
paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。本文介绍利用ps中的asr功能实现批量处理音频文件的demo。ps的asr功能中有多个模型可选,目前测试中的“conformer_wenetspeech”识别准确率较高。识别速度有待提高,音频长度的限制也待解决。空空如常求真得真。原创 2023-09-14 17:50:03 · 912 阅读 · 0 评论 -
freeswitch sofia协议栈调试
freeswitch是一款简单好用的VOIP开源软交换平台。fs内部使用sofia的sip协议栈,本文介绍如何调试跟踪sofia协议栈。freeswitch使用sofia sip协议栈,有需要关注sip协议栈的同学可以通过debug模式调试sip处理流程。空空如常求真得真。原创 2023-09-08 17:49:58 · 452 阅读 · 0 评论 -
paddlespeech on centos7
paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。paddlespeech整体是比较简单易用的,但是安装部署依然有很多坑,本文为探坑而写。paddlespeech提供了语音相关的基础能力,降低了音频模型的使用门槛。在paddlespeech的基础上,完善的产品还需要很多的包装工作和业务开发。空空如常求真得真。原创 2023-09-08 15:09:58 · 1425 阅读 · 0 评论 -
PRACK消息
PRACK消息是sip协议的扩展,在RFC3262中定义,标准的名称是sip协议中的可靠临时响应。本文简单介绍标准中对PRACK消息流程的描述,以及fs配置PRACK的方式。freeswitch对PRACK的处理和RFC标准基本一致。如果呼叫场景中早期媒体比较重要,而且因为网络问题经常丢失,就需要开启100rel来保证早期媒体的可靠消息。空空如常求真得真。原创 2023-08-25 17:22:55 · 578 阅读 · 0 评论 -
freeswitch的mod_xml_curl模块动态获取configuration
freeswitch是一款简单好用的VOIP开源软交换平台。mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置。mod_xml_curl模块动态获取config数据,方便对批量的fs集中统一管理配置。未解决问题。configuration类型的配置数据动态刷新的边界在哪里,我们可以把哪些配置数据放在web服务统一管理。如何解决web服务不可用的本地xml配置问题,本地xml配置与web动态配置不一致的问题。空空如常求真得真。原创 2023-08-11 17:56:52 · 1422 阅读 · 0 评论 -
freeswitch的mod_xml_curl模块动态获取dialplan
freeswitch是一款简单好用的VOIP开源软交换平台。mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取dialplan配置。mod_xml_curl模块动态获取dialplan数据,控制呼叫流程。未解决问题。如何更灵活的控制从web服务和本地xml文件获取配置。如何缓存web服务的xml配置。如何解决web服务不可用的时候,呼叫流程问题。空空如常求真得真。原创 2023-08-04 17:14:19 · 1447 阅读 · 0 评论