操作系统 :CentOS 7.6_x64

FreeSWITCH版本 :1.10.9

之前写过FreeSWITCH安装的文章,今天整理下moh使用过程中遇到的问题及解决方案,并提供moh音频下载途径。FreeSWITCH安装的文章可参考如下链接:

docker构建FreeSWITCH编译环境及打包
使用docker构建可动态启动的FreeSWITCH实例
CentOS7环境源码安装freeswitch1.10

一、问题描述

FreeSWITCH有hold_music功能,在hold时会触发,体现在sdp里面就是a头里面是 sendonly 属性:

如果没有启用local_stream模块,触发moh时会报如下错误:

[ERR] switch_core_file.c:346 Invalid file format [local_stream] for [moh]!

如果没有下载moh音频,触发moh时会报如下错误:

[ERR] mod_local_stream.c:883 Unknown source default

二、安装moh

1、安装local_stream模块

文件:freeswitch-1.10.9.-release/modules.conf

模块名称:formats/mod_local_stream

2、安装moh音频

  • 安装8k音频

make moh-install

下载文件路径:

https://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-8000-1.0.52.tar.gz

  • 安装16k音频

make hd-moh-install

下载文件路径:

https://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-16000-1.0.52.tar.gz

  • 安装32k音频

make uhd-moh-install

下载文件路径:

https://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-32000-1.0.52.tar.gz

  • 安装48k音频

make cd-moh-install

下载文件路径:

https://files.freeswitch.org/releases/sounds/freeswitch-sounds-music-48000-1.0.52.tar.gz

安装完毕的目录结构:

/usr/local/freeswitch/sounds/music

如果下载过慢,可以从如下渠道获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20231029 获取。

三、使用moh

1、启用local_stream模块

文件:/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml

模块名称:mod_local_stream

2、配置local_stream模块

配置文件路径:conf/autoload_configs/local_stream.conf.xml

配置文件内容:

<configuration name="local_stream.conf" description="stream files from local dir">
<!-- fallback to default if requested moh class isn't found -->
<directory name="default" path="$${sounds_dir}/music/8000">
<param name="rate" value="8000"/>
<param name="shuffle" value="true"/>
<param name="channels" value="1"/>
<param name="interval" value="20"/>
<param name="timer-name" value="soft"/>
<!-- list of short files to break in with every so often -->
<!--<param name="chime-list" value="file1.wav,file2.wav"/>-->
<!-- frequency of break-in (seconds)-->
<!--<param name="chime-freq" value="30"/>-->
<!-- limit to how many seconds the file will play -->
<!--<param name="chime-max" value="500"/>-->
</directory> <directory name="moh/8000" path="$${sounds_dir}/music/8000">
<param name="rate" value="8000"/>
<param name="shuffle" value="true"/>
<param name="channels" value="1"/>
<param name="interval" value="20"/>
<param name="timer-name" value="soft"/>
</directory> <directory name="moh/16000" path="$${sounds_dir}/music/16000">
<param name="rate" value="16000"/>
<param name="shuffle" value="true"/>
<param name="channels" value="1"/>
<param name="interval" value="20"/>
<param name="timer-name" value="soft"/>
</directory> <directory name="moh/32000" path="$${sounds_dir}/music/32000">
<param name="rate" value="32000"/>
<param name="shuffle" value="true"/>
<param name="channels" value="1"/>
<param name="interval" value="20"/>
<param name="timer-name" value="soft"/>
</directory> <directory name="moh/48000" path="$${sounds_dir}/music/48000">
<param name="rate" value="48000"/>
<param name="shuffle" value="true"/>
<param name="channels" value="1"/>
<param name="interval" value="10"/>
<param name="timer-name" value="soft"/>
</directory> </configuration>

3、配置hold_music

文件:/usr/local/freeswitch/conf/vars.xml

配置内容:

<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>

四、资源下载

文涉及源码和文件,可以从如下途径获取:

关注微信公众号(聊聊博文)后回复 20231029 获取。

FreeSWITCH的moh使用笔记的更多相关文章

  1. FreeSWITCH 学习笔记

    [1]FreeSWITCH学习笔记 1.Windows安装包下载地址:http://files.freeswitch.org/windows/installer/ 2.源码下载地址:http://fi ...

  2. freeswitch笔记

    freeswitch知识点:播放录音命令:originate user/1000 &playback(/tmp/123.wav)查看当前注册用户命令:sofia status profile ...

  3. freeswitch嵌入python脚本

    操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 python版本:2.7.9 开启python模块 安装python lib库 apt-get install pyt ...

  4. FreeSWITCH 1.2.5.3 Step by Step Install

    Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y instal ...

  5. Freeswitch 入门

    让我们从最初的运行开始,一步一步进入 FreeSWITCH 的神秘世界. 命令行参数 一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动.在此, ...

  6. freeswitch初识

    一.参考内容 1.<FreeSWITCH权威指南>杜金房.张令考著 2.FreeSwitch 国内源码快速下载 3.Ubuntu下freeSwitch安裝指导(推荐) 4.Freeswit ...

  7. freeswitch python模块

    概述 freeswitch支持多种语言的业务开发,包括C/C++,java,python,js,lua,Golang等等.freeswitch在使用python做业务开发时,有俩种接入方式,一种是ES ...

  8. 运行FreeSWITCH的命令行参数

    一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动.在此,仅作简单介绍.如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到. 使用 ...

  9. FreeSWITCH的originate命令解析及示例

    FreeSWITCH版本:1.10.9 操作系统:CentOS 7.6.1810 originate经常用于发起呼叫,在实际工作过程中用到的也比较多,今天总结下基本用法,也方便我以后查阅. 一.wik ...

  10. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

随机推荐

  1. 【SpringBoot】整合Redis

    1.前言 最近公司在做项目,用到了redis,,发现自己一点都不会,然后就乘闲暇时间,自己学习一些redis相关的知识,在这里分享给像我一样的初学者. 2.我的项目结构: 2.1 pom.xml &l ...

  2. 筛选出N以内的素数

    解题思路:1.素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.(也就是只有 1 和它本身能整除)2.利用两个for循环来判断素数. 注意事项:1.注意for添加花括号.2.注意输 ...

  3. Python安装time库失败?不是吧阿sir你还不知道内置模块不用下载吧

    嗨嗨,今天给python安装time库,一直报错,换源等办法都试过了 直到我看到 Python中有以下常用模块不用单独安装 random模块 sys模块 time模块 os系统操作 re正则操作 js ...

  4. 解决php中通过exec调用python脚本报ModuleNotFoundError错误

    背景 出于某些原因,我们有时会在PHP中通过exec来调用Python代码,有可能是某些功能只能用Python实现(或用Python实现比较方便),有可能是出于性能考虑(Python可以执行耗时任务) ...

  5. C++之函数的分文件编写

    从黑马程序员的c++课里学到的函数的分文件编写 函数的分文件编写 作用:让代码结构更加清晰 函数分文件编写一般有4个步骤 1,创建后缀名为.h的头文件 2,创建后缀名为.cpp的源文件 3,在头文件中 ...

  6. k8s+containerd安装

    准备环境 准备两台服务器节点,如果需要安装虚拟机,可以参考<wmware和centos安装过程> 机器名 IP 角色 CPU 内存 centos01 192.168.109.130 mas ...

  7. go install 和 go get的区别

    go install 和 go get 都是 Go 语言中的命令行工具,用于处理依赖关系和安装包.它们的主要区别在于功能和使用场景. go install: 功能:go install 命令用于编译并 ...

  8. 硬盘分区标准:GPT与MBR

    硬盘分区表的格式选择有二: 说明 格式化命令 MBR 主引导记录,分区表数据存储在硬盘的第一个扇区 fdisk <盘符> GPT GUID分区表,分别占用了硬盘第1个.第2个和后面连续的3 ...

  9. RocketMq消费原理及源码解析

    消费原理概览 先简单说下常见的rocketMq的部署方式,上图中broker为真正计算和存储消息的地方,而nameServer负责维护broker地 图中右侧consume message部分即是本文 ...

  10. sqlmap指定参数注入

    在参数前面加星号