首页 > 其他分享 >FreeSWITCH的moh使用笔记

FreeSWITCH的moh使用笔记

时间:2023-10-29 23:34:08浏览次数:38  
标签:stream 笔记 freeswitch moh FreeSWITCH sounds local

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

 

标签:stream,笔记,freeswitch,moh,FreeSWITCH,sounds,local
From: https://www.cnblogs.com/MikeZhang/p/fsMoh20231029.html

相关文章

  • Kafka基础学习笔记
    一、Kafka:1、简介:Kafka是由Apache开源,具有分布式、分区的、多副本的、多订阅者,基于Zookeeper协调的分布式处理平台,由Scala和Java语言编写。最大的特性就是可以实时并高速的处理大量数据来满足需求,同时对消息数据进行持久化存储。2、优点:Kafka与其他消息队列MQ(如ActiveMQ、Rabb......
  • PE文件文件笔记
    PEPE简介可执行文件(executablefile)指的是可以由操作系统进行加载执行的文件。大致有两种可执行文件的格式:PE文件格式(Windows平台);ELF文件格式(Linux平台)。其中常见的PE文件格式的可执行文件有:exe,sys,dll等。PE文件格式与win32汇编的关系由于EXE文件被执行、传播......
  • linux基本文件命令复习笔记
    1,放大缩小终端窗口字体  放大 ctrlshift+=   缩小  ctrl-2,6个常见终端命令 (1)ls  查看当前文件夹下的内容 (2)pwd 查看当前所在文件夹  (3)cd目录名 切换文件夹 (4)touch文件名 如果文件不存在,新建文件。和mkdir不同的是,mkdir创......
  • 学习笔记七
    并发编程并行计算导论受硬件条件的限制,计算机程序通常是为串行计算编写的。顺序算法与并行算法begin-end代码块中顺序算法可能包含多个步骤,所有步骤都是通过单个任务依次执行的,每次执行一个步骤。所有步骤执行完成,算法结束。右侧为并行算法描述,使用cobegin-coend代......
  • Prufer序列 学习笔记
    2023.10.29晚,在随机做AtCoder的时候见到了[ABC303Ex]ConstrainedTreeDegree。然后开始思考DP,未果后看题解,发现是Prufer序列->尝试学习Prufer序列。什么是Prufer序列Prufer序列是一种将带标号的树用一个唯一的整数序列表示的方法,是解决树计数问题的工具。给一棵有根树......
  • python面向对象-学习笔记(六、方法相关的补充)
    私有化方法私有方法classPerson:__age=18#私有方法def__run(self):print("run")#def_Person__run(self):#print("Personrun")p=Person()#p.__run()#p._Person__run()print(Person.__dict__)内置特殊方法......
  • 第四章学习笔记
    并发编程本章论述了并发编程,介绍了并行计算的概念,指出了并行计算的重要性,比较了顺序算法与并行算法,以及并行性与并发性,解释了线程的原理及相对于进程的优势。通过示例介绍了Pthread中的线程操作,句括线程管理函数。互斥量、连接、条件变量和屏障等线程同步工具;通过具体示例演......
  • MySQL技术内幕InnoDB存储引擎学习笔记
    1、MYSQL体系结构: 2、INNODB存储引擎:支持事务,其设计目的主要是面向在线事务处理的应用。特点:行锁设计,支持外键,并支持类似oracle的非锁定读,同时设计用来最有效的利用使用内存和CPU;5.5.8开始默认使用innodb存储引擎使用多版本并发控制来获得高并发性,并实现了sql的4种隔离级......
  • django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用完整版笔记直接地址:请移步这里共10章,31子模块,总计18647字工程搭建学习目标......
  • stm32 uboot调试1--Apple的学习笔记
    一,前言openocd+stlink的vscode远程gdb调试环境搭建完成了,那么用吧,串口也不连接了。用自带的configs/stm32f429-discovery_defconfig进行的编译,然后就直接调试了。二,问题记录问题1:board_init_f进入fdt初始化就进入hang。答:因为fdt是分离的但是我并没有下载到某个地址,于是先配置为嵌......