FreeSWITCH的moh使用笔记

操作系统 :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 获取。

相关推荐
筑梦之路8 天前
Debian 12 安装freeswitch 1.10.12对接Volte视频通话——筑梦之路
debian·voip
贾宝玉的玉宝贾12 天前
FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误
android·adb·voip·freeswitch·ippbx·sip测试
贾宝玉的玉宝贾1 个月前
FreeSWITCH 简单图形化界面29 - 使用mod_xml_curl 动态获取配置、用户、网关数据
数据库·voip·freeswitch·ippbx·sip测试
new_abc1 个月前
FreeSWITCH event_socket 配置从其他地址连接
freeswitch
c_zyer2 个月前
Kamailio-超强dispatcher负载均衡模块
负载均衡·kamailio·voip·sip
Mike_Zhang2 个月前
使用kamailio进行分机注册及互拨
kamailio·voip
Mike_Zhang3 个月前
debian10环境安装rtpengine
voip
Mike_Zhang3 个月前
FreeSWITCH对接http协议的tts服务
freeswitch
Mike_Zhang3 个月前
python3解析wav文件获取dtmf值
python·freeswitch·音频技术