自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

求真得真的博客

VOIP C PYTHON

  • 博客(119)
  • 收藏
  • 关注

原创 centos6.5重启docker容器死机问题

近期在整理服务问题,使用docker容器重新部署服务。过程中有不少坑,主要是系统配置和系统版本的问题。抛弃centos6的时候到了。空空如常求真得真。

2024-04-19 17:32:56 899 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 825

原创 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 605

原创 使用docker-compose管理freeswitch容器

之前的文章我们介绍过如何将freeswitch做成docker镜像,也使用命令行模式正常启动了fs的docker容器。但是当我们需要同时管理多个docker容器的时候,还是使用docker-compose更简单。docker-compose简化了多个docker容器的管理难度。对于docker集群的部署,使用docker-compose很方便。空空如常求真得真。

2024-03-16 11:10:31 1063

原创 centos docker服务问题

docker的应用版本正式上线,结果一上线就出各种幺蛾子。本文档主要介绍centos系统安装docker和启动的问题解决方法。docker registry的私服镜像使用方便。docker-compose管理镜像启动配置。空空如常求真得真。

2024-02-28 17:43:53 1108

原创 获取当天剩余时间

业务测试的过程中,本来有一个时间函数“获取当天剩余时间”,其中使用了localtime()和mktime(),但是在压力测试的过程中发现,两个time函数都不是线程安全的,多线程并发的时候会产生一些随机的错误,结果就是获得的interval时间错误,进而影响到业务流程。fs是多线程架构,对于大并发场景下的压力测试要特别注意线程安全的问题。为了尽可能的提高性能,也有很多技术手段可以不使用加锁的方式解决。空空如常求真得真。

2024-02-23 17:45:31 217

原创 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 427

原创 freeswitch on centos dockerfile模式

freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录,本文使用dockerfile模式。centos系统后续的维护问题需要关注。centos和rocky的方向需要验证和抉择一下。空空如常求真得真。

2024-01-19 18:20:15 952

原创 freeswitch on centos docker

freeswitch是一款简单好用的VOIP开源软交换平台。centos7 docker上编译安装fs的流程记录。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。

2024-01-10 17:35:08 1024

原创 CENTOS docker拉取私服镜像

docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker镜像的拉取。centos6版本太老,docker的使用过程中问题较多,centos7相对简单容易。本文档主要介绍centos系统安装docker和拉取docker私服镜像的步骤和问题解决。尽快切换掉centos6系统。docker registry的私服镜像使用更方便。docker镜像包的瘦身工作要持续进行。空空如常求真得真。

2023-12-29 17:39:38 1281 1

原创 freeswitch on debian docker

freeswitch是一款简单好用的VOIP开源软交换平台。因为centos系统期限的原因,尝试在debian的docker上使用fs。centos系统后续的维护问题需要关注。Debian系统的依赖包大多比较新,比centos要友好。Debian和rocky的方向需要验证和抉择一下。空空如常求真得真。

2023-12-22 17:51:23 1257

原创 freeswitch如何解决sip信令的NAT问题

freeswitch是一款简单好用的VOIP开源软交换平台。公网环境复杂多变,客户环境更是各种稀奇古怪的问题。fs在针对sip信令的NAT问题有针对性的参数设置。本文讨论的范围限于fs的公网地址正常没有在NAT后面的两种常见场景。其他更多更复杂的NAT场景暂不讨论。本文仅仅讨论了两种比较简单常见的NAT问题,公网环境中的NAT问题更加的复杂多变。对于NAT问题的通用思路是想办法找到对方或自己的公网地址,在消息传递过程中使用各种手段透传过NAT网关。空空如常求真得真。

2023-12-08 17:44:43 207

原创 freeswitch设置多个execute_on_media

freeswitch是一款简单好用的VOIP开源软交换平台。fs中有非常多的接口和通道变量,使用方式多变。官方文档有时候也仅仅是介绍了最基本的使用方法和格式。execute_on大部分源码在switch_channel.c中。思考为什么测试结果中,先执行log1,再执行log0。空空如常求真得真。

2023-11-23 17:34:36 341 1

原创 freeswitch的一个性能问题

freeswitch是一款简单好用的VOIP开源软交换平台。在fs的使用过程中,会遇到各种各样的问题,各种问题中,性能问题是最头疼的。最近在测试某些场景的时候,压测会造成fs的内存占用持续升高,并在达到某个临界点的时候击溃fs的端口服务,导致全部sip呼叫响应503。fs启动打开的端口超过一定数目(1000)之后,会有内存占用过大和内存持续升高的问题。在删除多余的端口资源后,测试恢复正常。具体原因需要对sofia模块代码走读确定。空空如常求真得真。

2023-11-17 17:30:24 186

原创 sipp3.6多方案压测脚本

SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。有时候我们需要模拟现网的生产环境来压测,就需要同时有多个sipp脚本运行,并且需要不断的调整呼叫并发。通过python脚本的子进程功能,我们可以很方便的实现sipp的多方案压测功能。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。

2023-10-26 17:54:48 243

原创 DOCKER本地仓库

随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用。试用了docker的本地仓库功能,简单易上手,记录下来以备后用。首先删除本地自定义镜像,然后从registry重新下载。Docker镜像的本地库是CI自动化流程的必要步骤。Docker的registry镜像简单易上手。空空如常求真得真。

2023-10-12 17:09:50 670

原创 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 186

原创 paddlespeech asr脚本demo

paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。本文介绍利用ps中的asr功能实现批量处理音频文件的demo。ps的asr功能中有多个模型可选,目前测试中的“conformer_wenetspeech”识别准确率较高。识别速度有待提高,音频长度的限制也待解决。空空如常求真得真。

2023-09-14 17:50:03 626

原创 freeswitch sofia协议栈调试

freeswitch是一款简单好用的VOIP开源软交换平台。fs内部使用sofia的sip协议栈,本文介绍如何调试跟踪sofia协议栈。freeswitch使用sofia sip协议栈,有需要关注sip协议栈的同学可以通过debug模式调试sip处理流程。空空如常求真得真。

2023-09-08 17:49:58 231

原创 paddlespeech on centos7

paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。paddlespeech整体是比较简单易用的,但是安装部署依然有很多坑,本文为探坑而写。paddlespeech提供了语音相关的基础能力,降低了音频模型的使用门槛。在paddlespeech的基础上,完善的产品还需要很多的包装工作和业务开发。空空如常求真得真。

2023-09-08 15:09:58 631

原创 PRACK消息

PRACK消息是sip协议的扩展,在RFC3262中定义,标准的名称是sip协议中的可靠临时响应。本文简单介绍标准中对PRACK消息流程的描述,以及fs配置PRACK的方式。freeswitch对PRACK的处理和RFC标准基本一致。如果呼叫场景中早期媒体比较重要,而且因为网络问题经常丢失,就需要开启100rel来保证早期媒体的可靠消息。空空如常求真得真。

2023-08-25 17:22:55 270

原创 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 1146

原创 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 1183

原创 freeswitch的mod_xml_curl模块

freeswitch是一款简单好用的VOIP开源软交换平台。随着fs服务的增多,每一台fs都需要在后台单独配置,耗时耗力,心力憔悴。如果有一个集中管理配置的配置中心,统一管理所有fs的配置,并可以实现动态的修改配置就好了。于是就发现了mod_xml_curl模块。mod_xml_curl模块默认不编译安装。进入“freeswitch/src/mod/xml_int/mod_xml_curl”目录,执行如下命令检查模块安装情况。ll。

2023-07-28 17:29:21 1113 3

原创 freeswitch的mod_xml_cdr模块

freeswitch是一款简单好用的VOIP开源软交换平台。在语音呼叫的过程中,话单是重要的计价和结算依据,话单的产生需要稳定可靠,可回溯。fs中的mod_xml_cdr模块提供了基本话单功能之外的选择,可以输出XML格式的本地话单或通过http post接口上传web服务器。mod_xml_cdr模块默认编译安装,但没有加载。检查conf/autoload_configs/modules.conf.xml文件。

2023-07-20 17:55:44 383

原创 freeswitch的mod_cdr_csv模块

freeswitch是一款简单好用的VOIP开源软交换平台。在语音呼叫的过程中,话单是重要的计价和结算依据,话单的产生需要稳定可靠,可回溯。fs中基本的话单模块mod_cdr_csv,可以满足大部分话单要求。mod_cdr_csv模块默认编译安装,并有加载。检查conf/autoload_configs/modules.conf.xml文件。cdr_csv模块会在通话结束后写入话单记录到文本文件,话单的格式根据配置的模板确定。

2023-07-13 17:50:36 356

原创 介绍几种OPTIONS检测的方法

日常的VOIP开发中,OPTIONS检测是常用的网络状态检测工具。OPTIONS原本是作为获取对方能力的消息,也可以检测当前服务状态。正常情况下,UAS收到OPTIONS心跳,直接回复200即可。与ping不同的是,OPTIONS检测不仅仅针对网络状态,也针对sip server的端口状态进行检测,在VOIP问题定位中更精准。OPTIONS心跳检测在voip的应用过程中还是挺重要的,对于线路和sip应用的正常检测必不可少,配合zabbix等监控平台可以及时有效的发现问题。

2023-07-05 18:03:48 706

原创 fusionpbx简介

fusionpbx是以freeswitch作为底层框架开发而成的开源PBX,在freeswitch的基础上,优化了GUI的易用性。fusionpbx可用作高可用性的单租户或基于域的多租户 PBX、运营商级交换机、呼叫中心服务器、传真服务器、voip服务器、语音邮件服务器、会议服务器、语音应用服务器、设备框架等。fusionpbx提供无限分机、语音邮件到电子邮件、音乐保持、呼叫停放、呼叫中心、呼叫队列、电话配置和许多其他功能。它提供您的业务所需的功能,并为中小型企业带来企业级电话系统功能。

2023-06-30 17:20:00 519 1

原创 freeswitch透传带SDP的180

freeswitch是一款简单好用的VOIP开源软交换平台。freeswitch对于180/183的消息处理有默认的规则,但是在3GPP的标准中,消息流程会更加复杂,场景更多变。这样就需要我们根据实际环境中的场景定制消息流程。本文只讨论带SDP的183/180消息。常见的消息处理流程都可以在mod_sofia中找到,但是对于AB路之间的消息透传,以及涉及到codec媒体协商的流程会比较复杂。空空如常求真得真。

2023-06-08 17:36:09 1096

原创 freeswitch的gateway配置方案优化

freeswitch是一款简单好用的VOIP开源软交换平台。在之前的文章中,我们简单介绍过gateway的三种配置方案,但是实际应用之后发现,方案中的参数设置有缺陷,会导致一些问题。本文档中,针对具体的gateway配置问题进行分析和解决。freeswitch的gateway概念有多种类型和参数,需要在实际应用场景下测试验证。gateway的参数详情请参考fs官网文档。空空如常求真得真。

2023-06-02 15:35:31 789

原创 HOMER docker版本配置优化

HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具。HOMER是一款强大的、运营商级、可扩展的数据包和事件捕获系统,是基于HEP/EEP协议的VoIP/RTC监控应用程序,并可以使用即时搜索、处理和存储大量的信令、RTC事件、日志和统计信息。之前的文章中,我们介绍过HOMER的安装流程。今天对使用过程中碰到的数据保存周期的问题,讨论配置优化的方案。HOMER的配置较多且复杂,如果只是作为辅助监控工具使用,默认配置基本够用。空空如常求真得真。

2023-05-24 18:15:41 812

原创 freeswitch的2833和inband对接方案

freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。freeswitch作为VOIP和PSTN网络中间的媒体服务器时,AB路会协商为不同的DTMF按键格式,我们需要一种可以将2833和inband格式互转的方案。使用拨号计划的app组合,实现了fs支持AB路不同的DTMF格式的转换。

2023-05-18 16:59:30 1061

原创 freeswitch两个DTMF转换接口的区别

freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。freeswitch的“spandsp_start_dtmf”接口,表现更好,功能性更完整。freeswitch的DTMF从inband转换为2833的功能仍然有缺陷,表现为inband中的波形过滤不完全,会造成后续节点识别DTMF时重码的问题。

2023-05-11 17:27:33 797

原创 keepalived如何手动切换主备

主备部署中使用keepalived可以很方便的实现,安装维护简单,功能稳定。最近在使用过程中有小的发现,记录一下。keepalived功能稳定,配置简单,使用方便。空空如常求真得真。

2023-05-05 16:51:32 1182

原创 freeswitch的任务引擎问题与解决方案

freeswitch核心框架中有一个定时任务系统task,在开发过程中用来做一些延时操作和异步操作很方便。我们在VOIP的呼叫流程中,经常会有一些对实时性要求没那么高的操作,或者会有阻塞流程的操作,我们都可以开启一个定时任务子流程,来达到延时和异步的目标。但是在实际的生产应用中,该task模块在任务高并发的情况下发生了一些问题,通过压力测试可以重现。问题现象。1,task的group和desc为空的问题,并有极小概率造成coredump。2,task.runtime错误的问题,导致任务无法执行。

2023-04-26 18:14:50 502

原创 freeswitch带媒体压力测试方案

原本的计划是使用sipp完成带媒体压力测试,但是实际测试过程中发现sipp的媒体处理功能有问题(也有可能是我使用的姿势不对)。sipp在带媒体的情况下(600路并发开始),出现大量的不响应和响应延迟,UAC和UAS都有该问题,猜测是sipp内部处理大量媒体的情况下,业务逻辑出现阻塞。新的方案采用2台fs对接,增加的1台fs模拟UAC和UAS,使用python脚本发起呼叫并控制并发。

2023-04-14 11:33:47 1186

原创 sipp3.6带媒体测试方案

SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。本文档介绍sipp工具如何带媒体测试,并介绍如何制作可用的媒体文件(G729和PCMA)。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。

2023-04-06 18:07:49 983

原创 freeswitch媒体协商的优先级方案

freeswitch是一款简单好用的VOIP开源软交换平台。不同的媒体格式各有优缺点,实际环境中的应用要根据线路和客户的实际需求确定。本文中介绍一种较为通用的媒体配置方案,可以适配大部分场景。今天介绍了一种比较通用的媒体配置方案,可以适配大部分场景。实际的生产环境中,由于运营商线路和客户的特殊性,情况会更加复杂。媒体配置的大原则,优先使用G729,次选PCMA,尽量不协商成转码的方案。空空如常求真得真。

2023-03-31 14:48:29 277

原创 sipp3.6分支压测方案

SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多。本文档介绍sipp工具的常用参数和测试脚本。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。

2023-03-24 15:38:02 589

原创 sipp3.6 on centos7安装部署

在VOIP软交换的开发过程中,必然需要对软交换进行批量压测。SIP压测工具一般都是sipp,免费,开源,功能足够强大,配置灵活,优点多。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的压测方案和脚本慢慢写。空空如常求真得真。

2023-03-17 17:16:50 637

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除