
freeswitch1.10.11
文章平均质量分 85
贾宝玉的玉宝贾
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FreeSWITCH 简单图形化界面47 - 一些使用jssip实现web拨打电话的代码
一篇介绍基于JSSIP实现的Web电话应用的文章,展示了FreeSWITCH图形化界面配置和网页软电话功能。文章包含FreeSWITCH Web管理界面预览地址(用户名admin/密码admin)和安装教程链接,并重点展示了一个呼叫条Web应用界面,该应用支持视频通话、保持、静音等功能,提供完整的HTML代码结构。通过配置参数可自定义SIP账户、服务器设置和功能开关,点击初始化按钮即可启动软电话功能。原创 2025-08-09 17:33:16 · 333 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面46 - 收集打包的一些ASR服务
本文介绍了FreeSWITCH中集成ASR(语音识别)服务的方案。提供了4个不同规格的Docker镜像(asr-47m/asr-14m/asr-124m/my-funasr),支持中英文识别。详细说明了镜像下载、运行命令及参数配置方法,并给出实际应用示例:通过mod_audio_fork模块将音频流推送到ASR服务,利用ESL捕获识别结果。最后附有测试视频链接,展示了124M模型的识别效果。文档包含完整的呼叫路由配置、Python脚本以及结果处理说明,帮助用户快速实现语音识别功能集成。原创 2025-08-02 16:19:28 · 308 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面45 - 收集打包的一些TTS
本文介绍了多个TTS(文本转语音)Docker镜像的下载和使用方法,包括Piper、Kokoro、Melo等不同语音合成系统。文章提供了详细的运行命令示例,支持中文和英文语音合成,并可调整语速、音色等参数。这些TTS系统可与FreeSWITCH的mod_tts_command模块配合使用,适用于语音系统开发。所有镜像均托管在阿里云容器服务,包含安装指南和示例代码,方便开发者快速部署和使用。原创 2025-07-24 20:43:34 · 465 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面44 - 使用腾讯的unimrcp搞个智能话务台,用的在线的ASR和TTS
本文介绍了如何在FreeSWITCH中配置腾讯unimrcp模块实现智能话务台功能。主要内容包括:1) 提供FreeSWITCH的Web配置界面访问方式;2) 安装unimrcp模块并配置端口为6060;3) 详细说明了有界面和无界面两种配置方式;4) 设置呼叫规则扩展11121;5) 提供Python脚本示例代码,实现语音识别(TTS)和语音合成(ASR)功能,包含解析XML结果、语音播报、开始/暂停/停止监听等方法。该方案通过对接腾讯云服务,可构建具备智能语音交互能力的话务系统。原创 2025-05-25 17:48:44 · 1289 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面43 - 使用百度的unimrcp搞个智能话务台,用的在线的ASR和TTS
本文介绍了如何在FreeSWITCH中配置和使用百度的unimrcp模块,以实现智能话务台功能。首先,提供了FreeSWITCH的Web配置界面预览及安装参考链接。接着,详细说明了unimrcp模块的安装步骤,并提供了相关参考文档。安装完成后,文章分别介绍了有界面和无界面情况下FreeSWITCH的配置方法,包括mod_unimrcp模块和客户端的配置。此外,还提供了呼叫规则的XML配置示例,并展示了如何编写Python脚本(baidu-mrcpserver.py)来处理语音识别和合成。最后,文章简要介绍了原创 2025-05-18 21:07:26 · 1464 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面42 - 使用mod_vad模块进行语音检测
本文介绍了如何在FreeSWITCH中使用mod_vad模块进行语音活动检测(VAD)。原创 2025-05-10 13:45:52 · 1180 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面41 - 批量SIP视频呼叫测试
开始测试你的软件,直接呼叫注册的分机号码即可。大量视频呼叫需要大带宽,卡顿的时候,考虑一下带宽情况。我这边测试的是jssip的批量视频呼叫。访问http://ip:8080,输入。用户名:admin,密码:admin。设置为刚上传的mp4媒体文件,点击。,上传一个视频文件。,把H264编码添加到。原创 2025-04-20 17:31:40 · 791 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面40 - 使用mod_curl模块进行http请求
mod_curl是 FreeSWITCH 的一个强大模块,它允许用户通过 HTTP 请求与外部服务进行交互,从而实现数据的获取和提交。无论是简单的 GET 请求,还是复杂的 POST 请求和文件传输,mod_curl都能轻松应对。原创 2025-03-07 23:47:51 · 1175 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面39 - Windows安装FreeSWITCH For IPPBX(WSL环境)
在Windows中安装FreeSWITCH,IPPBX,因为WSL的网络,使用的Mirrored模式,所以局域网其他IP也可以直接访问此WSL上的FreeSWITCH。再次使用netstat -tnlp查看指定端口是否启动,启动成功后,使用浏览器登录。,在Windows11或者Windows Server中安装wsl。安装完成后,打开WSL Settings,设置WSL的。打开开始,找到Ubuntu环境,卸载即可。,安装Windows Terminal。用户名:admin,密码:admin。原创 2025-01-01 19:24:38 · 1794 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面38 - 使用uniapp中使用JsSIP进行音视频呼叫
鉴于 Uniapp 本质上也是基于网页技术,之前认为在 Uniapp 中同样需要可信任的证书,尤其是对于自签名证书而言,由于 APP 中不存在 “信任该证书,继续访问” 这样的手动操作选项,就放弃了在 Uniapp 上的测试。后来,看下了Uniapp 框架的教程,经过测试,发现 Uniapp 不仅能够成功运行 JsSIP 库,而且在使用 WSS 协议时,证书似乎被默认信任了(我不知道为什么,但实际效果是可以正常使用)。值得注意的是,Uniapp 本身并不直接具备调用 JsSIP 的能力,但通过其提供的。原创 2024-12-27 22:10:09 · 1887 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面37 - 接入h323设备
研究过一段时间FreeSWITCH自带的mod_h323模块,安装非常麻烦,而且在测试的时候,发现只能进行音频,并不能视频。虽然openmcu是作为mcu使用的,但是我们可以把openmcu作为一个协议网关使用,把sip转到h323,测试后发现是可用的,记录一下。设置一个拨号规则,使其呼叫上面的H323终端号码时(上面设置的是5001),从上面的中继出局。的时候,看到openmcu是集成H323的,同时openmcu也集成了sofia-sip。我这边安装是通过Docker安装的,如果要本地安装,可参考。原创 2024-12-01 14:53:26 · 1649 阅读 · 1 评论 -
FreeSWITCH 简单图形化界面36 -使用mod_sms发送短消息
mod_sms 绑定在全局消息事件系统上,所以它能捕获所有的 MESSAGE 事件,然后将这些事件路由到聊天计划(chatplan)中。如果没有与聊天计划条目相匹配的情况,它就会以默认方式工作,例如两个客户端以点对点的方式发送消息。可在sip_profiles中添加auth-messages=false(将弃用)或者disable-auth-messages=true,关闭MESSAGE消息认证。mod_sms模块,在编译FreeSWITCH时,执行。用户名:admin,密码:admin。原创 2024-11-30 21:02:47 · 1310 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面35 - 使用python脚本
(需要加载mod_sms模块)在编写聊天规则(chatplan)使用python时,python脚本必须定义一个名为 chat的函数,该函数可用两个参数:session 和 args。在拨号规则里使用python,python脚本必须定义一个名为 handler 的函数,该函数可用两个参数:session 和 args。python的session api和lua的api一样,用法就是把lua的语法,换成python的,主要是冒号换成小数点。用户名:admin,密码:admin。原创 2024-11-23 16:09:50 · 1098 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面34 - 网络环境安全的情况下,进行任意SIP注册
在某些特定场景下,如测试环境、网络为内网且很安全或者为了配置方便等情况,如果想让任意 SIP 电话进行注册,可以在 FreeSWITCH 中开启特定参数。这样可以简化配置过程,方便进行快速测试和调试。原创 2024-11-23 14:30:45 · 1468 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面33 - 使用FunASR把通话录音转成文字
FunASR是一款基于深度学习的语音识别工具,它能够将语音信号快速转换为文字,为用户提供便捷的语音交互体验。该工具不仅支持多种语言识别,还具备高准确率、低延迟和灵活定制等特点,广泛应用于语音输入、语音转写、语音助手等场景。原创 2024-11-16 14:24:08 · 1213 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面32 - 判断手机号归属地,自动补0
可以再手动建立一个本地号码库,使用脚本匹配号码的本地号码前缀,来判断号码是否是本地号码,从而决定是否需要加 ‘0’。本文使用python的phone判断呼叫的手机号归属地(其他语言好像也有相关库,未测试)。库是一个离线号码库,号码判断可能会有误(号码库更新到了2023年12月)。用户名:admin,密码:admin。原创 2024-10-26 15:28:17 · 467 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面31 - 使用mod_av播放rtsp流
当 FreeSWITCH 使用 mod_av.so 模块播放 RTSP 视频流时,分辨率可能会很低(例如 352x288)。为一个空白图片文件的路径,这样 mod_av.so 会根据该图片文件的分辨率来确定 RTSP 流的分辨率。如果不希望每次呼叫之前都通过空白图片来设置 RTSP 流的分辨率,可以修改代码,使用通道变量。为了提高分辨率,可以在播放前设置通道变量。用户名:admin,密码:admin。来直接指定所需的分辨率。设置拨号规则,测试一下。原创 2024-10-26 14:12:57 · 591 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误
科技在发展,时代在进步,不可能一直用MySQL ODBC 5.x,目前MySQL ODBC都到9.x版本了,有的新版操作系统,可能也无法编译MySQL ODBC 5.x,会各种兼容报错,因此只能选用新版本的MySQL ODBC。如果我们可以使用MySQL8.x,使用MySQL ODBC8.x,那么需要修改一下FreeSWITCH的代码,让其使用SQLExecDirect() 执行SQL。MySQL ODBC8.x的库为libmyodbc8w.so,/etc/odbc.ini使用此库。原创 2024-10-26 13:54:47 · 1304 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面21--FreeSWITCH端口映射无声音
CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面21--FreeSWITCH端口映射无声音图形界面安装,请参考https://blog.csdn.net/jia198810/article/details/118877824内外网IP不一致,经常会造成无声音的情况。端口映射时的设置,请参考非公网IP的阿里云服务器设置。通常是FreeSWITCH的ACL的设置及端口映射的问题。如果要通过路由器进行映射端口,请确保映射的内外网端口一致(如内网的5060端口,同样要映射原创 2022-02-12 14:31:48 · 2447 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面26--JsSIP在不同网络环境的测试
CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面8--JsSIP在不同网络环境的测试1、内网环境2、公网环境呼叫测试3、公网映射内网环境呼叫测试图形界面安装,请参考https://blog.csdn.net/jia198810/article/details/118877824通过本脚本安装的FreeSWITCH,也自带了一个jssip的demo,将以此进行测试。如何使用demo,可参考这里https://blog.csdn.net/jia198810/artic原创 2022-03-26 22:04:48 · 1082 阅读 · 0 评论 -
FreeSWITCH 简单图形化界面27--dahdi驱动的语音板卡安装
CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面27--Dahdi驱动的语音板卡安装1、编译安装dahdi(1)安装系统内核(2)编译dahdi驱动(3)编译libpri驱动(4) 生成dahdi配置文件(5)根据配置文件配置dahdi内核模块2、配置IPPBX数字中继(1)查看下板卡状态(2)配置数字中继(3)重启FreeSWITCH3 、其他图形界面安装,请参考https://blog.csdn.net/jia198810/article/details/11887原创 2022-04-09 20:28:00 · 1394 阅读 · 8 评论 -
FreeSWITCH 简单图形化界面29 - 使用mod_xml_curl 动态获取配置、用户、网关数据
在FreeSWITCH的架构中,大部分配置都是通过XML文件来定义的。传统的配置方式是直接编辑这些XML文件。然而,借助于mod_xml_curl模块,我们可以实现配置的动态加载。这意味着配置文件可以通过API接口来获取。mod_xml_curl模块是FreeSWITCH的一个扩展,它允许系统动态地从远程服务器获取配置信息,而不是依赖静态的XML配置文件。这种灵活性可以带来许多好处,包括但不限于多实例管理、集中式配置管理以及动态配置生成。在无需维护多个服务器配置的情况下运行多个FreeSWITCH实例。原创 2024-09-22 15:25:09 · 1856 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面28 - 麒麟V10 SP3服务器系统X86和ARM版本安装FreeSWITCH
下载麒麟x86版本Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso。,下载麒麟arm版本Kylin-Server-V10-SP3-2403-Release-20240426-ARM.iso。进入root目录,执行./myfs.xxx.centos8.bin install 进行安装。进入root目录,执行./myfs.xxx.ky10.bin install 进行安装。安装时,除分区,其他默认即可。安装时,除分区,其他默认即可。原创 2024-08-25 13:18:23 · 1585 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面27-Auto-Answer功能
在某些支持 Auto-Answer 消息头的 SIP 设备上,我们可以通过使用 FreeSWITCH 的 sip_auto_answer 变量来实现 SIP 设备的自动接听功能。即使 SIP 设备本身没有明确地启用“自动应答”选项,也可以借助 SIP 协议中的特定头部信息来实现自动接听的目的。这种方式使得系统能够自动接听来电,而无需用户进行任何手动操作。在安全监控或质量保证场景中,可以自动接听并监听通话内容,以便进行实时监控或事后分析。原创 2024-07-27 17:39:17 · 929 阅读 · 2 评论 -
FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频
在web上播放SIP设备的视频,通常使用jssip或者sipjs,使用webrtc技术及wss协议呼叫SIP设备,然后再使用video控件播放视频流。通过库,可实现双向的音视频通信。如果有不需要双向通信的情况下(监听SIP设备、站岗等场景),只是想查看下SIP设备的视频流,最近在学习sip过程中,貌似也可以通过流媒体服务器实现在web上播放SIP设备的视频流。但是只是单向的,无法像使用js库那样进行对讲通话。原创 2024-07-21 11:49:42 · 1692 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面25-JsSIP虚拟摄像头
在使用jssip进行视频呼叫的时候,jssip会调用本地摄像头,如果调用失败,则无法进行视频呼叫,只能进行音频呼叫。如下图,在使用jssip时,如果没有摄像头或者摄像头调用失败会提示:控制台提示:(以上截图为阻止了摄像头使用权限,模拟调用摄像头失败的情况)但是在实际应用中,并不是所有电脑都有摄像头设备的,因此在没有摄像头设备,但是需要进行视频呼叫时,可以使用通过canvas画布创建一个虚拟摄像头,模拟硬件视频流。原创 2024-07-21 10:14:13 · 1343 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面24-呼入呼出编码
反之,如果主叫带视频编码,inbound_codec_prefs带视频,编码协商后,最终A-leg也带视频编码,和outbound_codec_prefs合并后(编码合并可参考这个参数media_mix_inbound_outbound_codecs),也带视频编码,最终和B-leg协商时,也带视频编码,最终允许视频接听。在学习FreeSWITCH时 ,使用FreeSWITCH默认的配置,无论主叫发起的是语音呼叫,还是视频呼叫,被叫总是允许视频接听,即时视频接听后,也看不到主叫的画面。原创 2024-06-29 15:08:40 · 1349 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面23-sipml5的demo测试
在FreeSWITCH中使用jssip的demo,需要对FreeSWITCH进行一些配置,可参考FreeSWITCH手册webrtc相关章节。webrtc相关章节传送门。原创 2024-06-29 13:48:53 · 570 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面22-JsSIP的demo测试并记录坑
在FreeSWITCH中使用jssip的demo,需要对FreeSWITCH进行一些配置,可参考FreeSWITCH手册webrtc相关章节。webrtc相关章节传送门。原创 2024-06-29 13:35:20 · 1074 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面21-录音相关
通过上面的录音变量的解释,可以使用 RECORD_WRITE_ONLY(只录制被叫的声音)和RECORD_READ_ONLY(只录制主叫的声音)进行单腿录音。个人理解,看英文名称,是录制会话、通话的,通话是是2个session,如果阻塞了,后续没办法桥接被叫了,那还录制个毛线。record为阻塞式录音,在执行record时,后续的application不会执行,直到record执行完毕。大部分都是设置录音文件元数据的一些设置,有几个常用的变量,变量在进行录音应用之前设置即可。原创 2024-06-01 18:00:19 · 1906 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面20-SIP测试之批量模拟SIP分机
在测试SIP服务器的时候,没有那么多SIP终端,网上的SIP测试工具上手难度有挺大的,测试视频难度更大,正好最新写了一个freeSWITCH的GUI界面,所以使用freeSWITCH的功能,模拟了一个简单的SIP测试工具。原创 2024-05-19 14:42:26 · 2217 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面11 - 简单封装一下JSSIP
使用JSSIP拨打电话,通过研究官网,实现起来确实不太难、自己感觉难得是各种网络环境及各种修改配合VOIP服务器配置。这几天简单封装了一下jssip,基本200行代码实现网页拨号,有小伙伴用到的,做个参考。原创 2023-09-17 23:58:36 · 879 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面9 - 鼎兴FXO网关SIP中继内网IPPBX落地
依次点击PBX设置-呼叫管理-呼叫规则-添加或者修改某个呼叫规则,选择号码规则的呼叫中继为刚添加的SIP中继gw01。FXO网关SIP中继时,使用的是每个SIP中继的本地端口(第一个SIP中继为5080),不是协议设置里的SIP协议监听端口(5060)配置顺序为:创建话务台-创建SIP中继-设置呼叫规则-设置分机呼出权限-设置FXO网关-设置FXO网关呼叫路由规则。依次点击PBX设置-中继管理-SIP中继-添加,添加一个SIP中继,本例的SIP中继名称为gw01。呼出:SIP中继–FXO网关端口组。原创 2023-09-17 22:42:38 · 1775 阅读 · 1 评论 -
FreeSWITCH 1.10.10 简单图形化界面6 - 讯时FXO网关SIP中继内网IPPBX落地
依次点击PBX设置-呼叫管理-呼叫规则-添加或者修改某个呼叫规则,选择号码规则的呼叫中继为刚添加的SIP中继xswg。配置顺序为:创建话务台-创建SIP中继-设置呼叫规则-设置分机呼出权限-设置FXO网关-设置FXO网关呼叫路由。依次点击PBX设置-呼叫管理-自动话务台-添加,添加一个话务台,本例的话务台号码为401。依次点击PBX设置-中继管理-SIP中继-添加,添加一个SIP中继,本例的SIP中继名称为xswg。以对接讯时网关为例,呼入到一个话务台,并设置分机从此FXO网关出局。原创 2023-08-28 21:23:04 · 1134 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS
以前通过百度提供的url链接,直接使用get进行tts,貌似百度tts免费接口get不到了,尝试使用百度SDK进行tts,不是免费的,新用户会赠送额度。用户名:admin,密码:admin。安装python sdk。原创 2023-08-27 11:43:15 · 1674 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面4 - 腾讯云NAT设置
将该网络添加到一个ACL中,以便让PBX识别当前网络为内部网络,从而区分内外网,达到NAT穿透的目的,如下图所示:(下图中ACL名称DefaultAllowLocalnet,已经默认包含了10.0.4.0,无须重新添加一个ACL)通过IP计算器,计算出内部网络的网络,如下图,当前腾讯云内部IP10.0.4.12/255.255.252.0的网络为10.0.4.0。如果腾讯云服务器非公网IP地址,则需要进行一些设置,否则通话可能没有声音。用户名:admin,密码:admin。注册公网地址进行测试。原创 2023-08-27 10:55:28 · 1364 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面3 - 阿里云NAT设置
将该网络添加到一个ACL中,以便让PBX识别当前网络为内部网络,从而区分内外网,达到NAT穿透的目的,如下图所示:(下图中ACL名称DefaultAllowLocalnet,已经默认包含了172.29.64.0,无须重新添加一个ACL)通过IP计算器,计算出内部网络的网络,如下图,当前阿里云内部IP172.29.72.31/255.255.240.0的网络为172.29.64.0。如果阿里云服务器非公网IP地址,则需要进行一些设置,否则通话可能没有声音。用户名:admin,密码:admin。原创 2023-08-27 10:51:07 · 1855 阅读 · 1 评论 -
FreeSWITCH 1.10.10 简单图形化界面2 - 并发性能测试
跑baresip的服务器性能有限(此时已经100%),无法继续测试了。跑baresip的服务器性能有限(只能10方),无法继续测试了。用户名:admin,密码:admin。测试环境有限,2011年的CPU。原创 2023-08-24 18:33:51 · 1692 阅读 · 0 评论 -
FreeSWITCH 1.10.10 简单图形化界面19 - FreeSWITH性能测试之2核2G和4核4G
最大到189个通话,378个通道,未达到200个通话,400个通道。注册200个分机,100个呼叫,200个通道,未开启录音。注册300个分机,150个呼叫,300个通道,未开启录音。注册200个分机,100个呼叫,200个通道,开启录音。注册300个分机,150个呼叫,300个通道,开启录音。200个呼叫,400个通道,未开启录音。300个呼叫,600个通道,未开启录音。400个呼叫,800个通道,未开启录音。200个呼叫,400个通道,开启录音。300个呼叫,600个通道,开启录音。原创 2024-04-21 16:14:10 · 1459 阅读 · 1 评论 -
FreeSWITCH 1.10.10 简单图形化界面8 - 讯时FXO网关SIP注册公网IPPBX落地
如果IPPBX在公网,需要使用内网的FXO网关落地,则可以将FXO网关注册到公网IPPBX。以讯时网关注册为例,呼入到一个话务台,并设置分机从此FXO网关出局。其他网关可参考。FXO网关SIP注册时,网关注册的端口为协议设置里的SIP协议监听端口(5060),因为分机中继时一个内部分机号码。简单呼叫流程是呼入:FXO网关的端口—SIP服务器;呼出:SIP服务器–FXO网关端口。原创 2023-09-17 22:27:44 · 999 阅读 · 0 评论