热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在CentOS上部署和配置FreeSWITCH

在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。

为什么80%的码农都做不了架构师?>>>   hot3.png

一、安装步骤

安装方法有多种,可以从Git仓库中安装,可以源码安装,如下我们使用源码安装

#安装依赖
yum install -y autoconf automake libtool gcc-c++ ncurses-devel make zlib-devel libjpeg-devel
yum install -y openssl-devel e2fsprogs-devel curl-devel pcre-devel speex-devel sqlite-devel#下载主程序包,解压并编译安装
wget http://files.freeswitch.org/freeswitch-releases/freeswitch-1.4.0.beta6.tar.bz2
tar xvjf freeswitch-1.4.0.beta6.tar.bz2
cd freeswitch-1.4.0
./configure
make install#安装声音文件
make sounds-install
make moh-install#启动文件
cp build/freeswitch.init.redhat /etc/init.d/freeswitch
chmod +x /etc/init.d/freeswitch#至此FreeSWITCH就已经安装完成,在UNIX类操作系统上,默认的安装位置是/usr/local/freeswitch/,有两个常用
#的命令 freeswitch 和 fs_cli 位于/usr/local/freeswitch/bin/目录下,为了方便使用,建议做一下软链接,如下
ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/#建立软连接后,执行 freeswitch 命令即可启动了,如果你想后台运行执行命令 freeswitc -nc(即no console)
#关闭FreeSWITCH,使用命令 freeswitch -stop 或者通过命令fs_cli命令连接FreeSWITCH后,使用命令 shutdown
#也可关闭,退出fs_cli控制台使用 /exit 或者按 Ctrl + D 组合键#FreeSWITCH在启动时默认会启用uPnP或NAT-PMP协议,试图查找你的路由器是否支持并在你的路由器上“打洞”,如果你的
#路由器不支持该协议,这一步可能耗时交久,会影响启动速度,所以如果你只是在内网测试,建议关闭此选项,如下
freeswitch -nc -nonat

 

二、报错处理

configure: error: You need to either install libldns-dev or disable mod_enum in modules.conf
#libldns-dev在centos上对应的是ldns-devel,安装这个包得先安装epel-release源
yum install -y epel-release
yum install -y ldns-develconfigure: error: You need to either install libedit-dev (>= 2.11) or configure with --disable-core-libedit-support
yum install -y libedit-devel

 

三、FreeSWITCH的启动参数详解

一般来说,FreeSWITCH不需要任何命令参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动

[root@localhost /]# freeswitch -help
Usage: freeswitch [OPTIONS]These are the optional arguments you can pass to freeswitch:-nf -- no forking 不允许fork新进程-u [user] -- specify user to switch to 启动后以非root用户 user 身份运行-g [group] -- specify group to switch to 启动后以非root用户 group 身份运行-core -- dump cores 出错时进行内核转存-help -- this message-version -- print the version and exit-rp -- enable high(realtime) priority settings 开启高优先级(实时)设置-lp -- enable low priority settings 开启低优先级设置-np -- enable normal priority settings (system defaults) 普通优先级-vg -- run under valgrind 在valgrind下运行,调试内存泄露时使用-nosql -- disable internal sql scoreboard 不使用SQL,show channels类的命令将不能显示结果-heavy-timer -- Heavy Timer, possibly more accurate but at a cost 更精确的时钟可能会更精确但对系统要求高-nonat -- disable auto nat detection 如果路由器支持uPnP或NAP-PMP,则FreeSWITCH可以自动解决NAT穿越问题,如果路由器不支持则该选项可以使启动更快-nonatmap -- disable auto nat port mapping-nocal -- disable clock calibration 关闭时钟核准,FreeSWITCH理想的运行环境是1000Hz的内核时钟,如果你的内核时钟小于1000Hz或在虚拟机上,可以使用该选项-nort -- disable clock clock_realtime 关闭实时时钟-stop -- stop freeswitch 关闭FreeSWITCH,它会在run目录中查找PID文件-nc -- do not output to a console and background 启动到后台模式,没有控制台-ncwait -- do not output to a console and background but wait until thesystem is ready before exiting (implies -nc) 后台模式,等待系统完全初始化完毕之后,在退出父进程,隐含“-nc”选项-c -- output to a console and stay in the foreground 启动到控制台,默认Options to control locations of files:-base [basedir] -- alternate prefix directory 指定其他的基准目录,在配置文件中使用$${base}-cfgname [filename] -- alternate filename for FreeSWITCH main configuration file-conf [confdir] -- alternate directory for FreeSWITCH configuration files 指定其他的配置文件所在目录,需与 -log 和 -db 合用-log [logdir] -- alternate directory for logfiles 指定其它日志目录-run [rundir] -- alternate directory for runtime files 指定其他存放PID文件运行目录-db [dbdir] -- alternate directory for the internal database 指定其他数据库目录-mod [moddir] -- alternate directory for modules 指定其他模块目录-htdocs [htdocsdir] -- alternate directory for htdocs 指定其他HTTP根目录-scripts [scriptsdir] -- alternate directory for scripts 指定其他脚本目录-temp [directory] -- alternate directory for temporary files 指定其他临时文件目录-grammar [directory] -- alternate directory for grammar files 指定其他语法目录-recordings [directory] -- alternate directory for recordings 指定其他录音目录-storage [directory] -- alternate directory for voicemail storage 指定其他存储目录如语音信箱等-sounds [directory] -- alternate directory for sound files 指定其他声音文件目录

 

 

 

 


转:https://my.oschina.net/stache/blog/1523683



推荐阅读
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 在Windows命令行中,通过Conda工具可以高效地管理和操作虚拟环境。具体步骤包括:1. 列出现有虚拟环境:`conda env list`;2. 创建新虚拟环境:`conda create --name 环境名`;3. 删除虚拟环境:`conda env remove --name 环境名`。这些命令不仅简化了环境管理流程,还提高了开发效率。此外,Conda还支持环境文件导出和导入,方便在不同机器间迁移配置。 ... [详细]
  • BZOJ1034 详细解析与算法优化
    本文深入解析了BZOJ1034问题,并提出了优化算法。通过借鉴广义田忌赛马的贪心策略,当己方当前最弱的马优于对方最弱的马时进行匹配;同样地,若己方当前最强的马优于对方最强的马,也进行匹配。此方法在保证胜率的同时,有效提升了算法效率。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 工厂方法模式详解:莫勇鹏老师的深入解析与应用实例
    2019年,独角兽企业高薪招聘Python工程师时特别关注工厂方法模式(Factory Method Pattern)。该模式通过定义一个创建对象的接口,让子类决定实例化哪一个类。莫勇鹏老师深入解析了这一设计模式,并提供了丰富的应用实例,帮助开发者更好地理解和运用工厂方法模式,提升软件设计的灵活性和可扩展性。 ... [详细]
  • 如何在 Java LinkedHashMap 中高效地提取首个或末尾的键值对? ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析
    宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析 ... [详细]
author-avatar
小宇宙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有