本人在安装FreeSWITCH的时候遇到了相当多的坑,网上很多方法都模棱两可,经常装失败,最后终于装成功后做一下总结

最顺利的安装方式

1. 下载压缩文件
  下载地址:http://files.freeswitch.org/freeswitch-releases/    我选择的下载版本是freeswitch-1.8.5.tar.xz ,下载完成后解压缩

wget http://files.freeswitch.org/freeswitch-releases/freeswitch-1.8.5.tar.xz
xz -d freeswitch-1.8.5.tar.xz
tar -xvf freeswitch-1.8.5.tar

2. 安装依赖包

apt-get update

apt-get install  -y autoconf git libtool g++ zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libldns-dev libedit-dev libssl-dev pkg-config yasm liblua50-dev libopus-dev libsndfile1-dev libpq-dev libreadline-dev lua5.2 lua5.2-doc liblua5.2-dev libtiff5 libtiff5-dev

sudo apt-get install -y vim
sudo apt-get install -y g++
sudo apt-get install -y zlib1g-dev
sudo apt-get install -y libjpeg-dev
sudo apt-get install -y libsqlite3-dev
sudo apt-get install -y libcurl4-gnutls-dev
sudo apt-get install -y libpcre3-dev
sudo apt-get install -y libspeexdsp-dev
sudo apt-get install -y libedit-dev
sudo apt-get install -y libssl-dev
sudo apt-get install -y libopus-dev
sudo apt-get install -y liblua5.2-dev
sudo apt-get install -y libldns-dev
sudo apt-get install -y libsndfile1-dev

3. 编译安装

# 切换路径到第一步解压缩的文件夹下
./configure make
make install

4. 安装声音文件

# 安装声音文件
make sounds-install
make moh-install # 以下高质量的声音文件可选择安装
make cd-sounds-install
make cd-moh-install

如果一切顺利的话就安装好了,但是事实往往不那么容易,之后会列举几个会遇到的问题及解决方案

制作软连接

ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

启动FreeSWITCH

freeswitch

关闭FreeSWITCH

shutdown

可能遇到的问题及解决方案

报错

make[4]: Entering directory '/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_signalwire'
Makefile:930: *** You must install libks to build mod_signalwire. Stop.
make[4]: Leaving directory '/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_signalwire'
Makefile:683: recipe for target 'mod_signalwire-all' failed
make[3]: *** [mod_signalwire-all] Error 1
make[3]: Leaving directory '/home/root/code/freeswitch-1.8.5/src/mod'
Makefile:591: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/root/code/freeswitch-1.8.5/src'
Makefile:3494: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/root/code/freeswitch-1.8.5'
Makefile:1255: recipe for target 'all' failed
make: *** [all] Error 2
  • 解决步骤如下:
# 下载并编译libks
cd /usr/local/src
git clone https://github.com/signalwire/libks.git
cd libks
cmake .

这时很大可能会遇到下面这个问题:

报错:

-- Checking for module 'uuid'
-- No package 'uuid' found
CMake Error at /home/root/tools/cmake-3.13.3-Linux-x86_64/share/cmake-3.13/Modules/FindPkgConfig.cmake:452 (message):
A required package was not found
Call Stack (most recent call first):
/home/root/tools/cmake-3.13.3-Linux-x86_64/share/cmake-3.13/Modules/FindPkgConfig.cmake:622 (_pkg_check_modules_internal)
cmake/FindUUID.cmake:15 (pkg_check_modules)
CMakeLists.txt:294 (include) -- Configuring incomplete, errors occurred!
See also "/home/root/code/libks/CMakeFiles/CMakeOutput.log".
See also "/home/root/code/libks/CMakeFiles/CMakeError.log".
  • 解决步骤如下
# 解决方法:下载并编译libuuid源码
wget https://jaist.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz
tar -zxvf libuuid-1.0.3.tar.gz
cd libuuid-1.0.3
./configure
make
make install
# 重新执行libks的
cmake .
#### 问题解决。然后执行libks的
make
make install

报错:

make[]: Entering directory '/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_signalwire'
Makefile:: *** You must install signalwireto build mod_signalwire. Stop.
make[]: Leaving directory '/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_signalwire'
Makefile:: recipe for target 'mod_signalwire-all' failed
make[]: *** [mod_signalwire-all] Error
make[]: Leaving directory '/home/root/code/freeswitch-1.8.5/src/mod'
Makefile:: recipe for target 'all-recursive' failed
make[]: *** [all-recursive] Error
make[]: Leaving directory '/home/root/code/freeswitch-1.8.5/src'
Makefile:: recipe for target 'all-recursive' failed
make[]: *** [all-recursive] Error
make[]: Leaving directory '/home/root/code/freeswitch-1.8.5'
Makefile:: recipe for target 'all' failed
make: *** [all] Error
  • 解决方法如下
# 解决方法:下载并编译signalwire-c
cd /usr/local/src
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make
make install

这时有可能会出现问题:

报错:

CMake Error at CMakeLists.txt:168 (string):
string sub-command REPLACE requires at least four arguments. -- Configuring incomplete, errors occurred!
See also "/home/root/code/signalwire-c/CMakeFiles/CMakeOutput.log".
  • 解决方法如下
# 阅读CMakeLists.txt,发现出问题的地方是使用git命令生成changelog的。对编译代码无影响。注释掉相关内容:

# Get git log info
#execute_process(COMMAND ${GIT_EXECUTABLE} log --no-merges --pretty=format:"%n [%an]%n * %s" --since="last month"
# OUTPUT_VARIABLE CHANGELOG
# WORKING_DIRECTORY .
# OUTPUT_STRIP_TRAILING_WHITESPACE)
#string(REPLACE "\"" "" CHANGELOG ${CHANGELOG}) ## Create changelog
#file(WRITE changelog.Debian ${CHANGELOG_HEADER}\n${CHANGELOG}\n\n${CHANGELOG_FOOTER})
#execute_process(COMMAND ${GZIP_CMD} -f -9 -n changelog.Debian) # Install changelog
#install(FILES "${CMAKE_BINARY_DIR}/changelog.Debian.gz" COMPONENT "runtime" DESTINATION "share/doc/${CPACK_DEBIAN_PACKAGE_NAME}") # 在signalwire下重新执行
cmake .
make
make install

接下来到freeswitch目录下

make clean # 清除上次编译的中间文件

# 重新执行FreeSWITCH的
./configure
make
make install

若遇到启动freeswitch报错

'''
[ERR] mod_local_stream.c:360 Can't open /usr/local/freeswitch/sounds/music/8000/danza-espanola-op-37-h-142-xii-arabesca.wav
[ERR] switch_core_file.c:304 Invalid file format [wav] for [/usr/local/freeswitch/sounds/music/8000/partita-no-3-in-e-major-bwv-1006-1-preludio.wav]!
[ERR] mod_local_stream.c:360 Can't open /usr/local/freeswitch/sounds/music/8000/partita-no-3-in-e-major-bwv-1006-1-preludio.wav
.........................
.........................
'''
  • 解决方法如下

1.先到 http://files.freeswitch.org/releases/sounds/ 下载原始的语音文件,freeswitch-sounds-zh-cn-sinmei-48000-1.0.51.tar.gz
2.用root用户在 /usr/local/freeswitch/sounds 下解压。该路径应该是 freeswitch 安装路径下的音频路径。可以先检查该路径下是否有英文语音文件。确认没有问题后解压。
3.进去报错的路径下  /usr/local/freeswitch/sounds/  删除music文件夹。
4.运行 sudo freeswitch 测试是否能正常运行
5.如果不能正常运行,则需要根据 https://www.jianshu.com/p/3400fdd29fb5 里面的3-7步设置一下。

参考:https://www.jianshu.com/p/3400fdd29fb5

参考:https://blog.csdn.net/shzwfq/article/details/88716584 

                             

Ubuntu安装FreeSWITCH亲测的更多相关文章

  1. Linux中oracle的安装,亲测

    一.下载oracle的软件包 地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-li ...

  2. linux 手动源码安装lnmp(亲测)

    linux 手动源码安装lnmp笔记(亲测)<pre>先安装这2个yum install gccyum install g++</pre><pre>先在linux ...

  3. Navicat Premium 15 安装包&激活工具及安装教程(亲测可用)

    Navicat Premium 15 安装包及激活工具 网盘地址: 链接:https://pan.baidu.com/s/1GU9qgdG1dRCw9Un8H9Ba9A提取码:F1r9 开始安装 下载 ...

  4. 【Python爬虫实战】Scrapy框架的安装 搬运工亲测有效

    windows下亲测有效 http://blog.csdn.net/liuweiyuxiang/article/details/68929999这个我们只是正确操作步骤详解的搬运工

  5. CentOS7下RabbitMQ服务安装配置 (亲测有效)

    erlang 21.3 rabbitmq-server 3.7.14 下载地址 链接: https://pan.baidu.com/s/1g_T1Q_6zpyO3AepS0ZPgYQ 提取码: abq ...

  6. linux下gmplayer安装(亲测OK!)

    需要的安装包及下载地址:  mplayer源代码包(MPlayer-1.0rc4.tar.bz2)下载:http://www.mplayerhq.hu/MPlayer/releases/ 解码器安装包 ...

  7. Linux在线安装git(亲测成功)

    一.先检测是否已安装 安装git需要安装一些依赖,但是安装依赖之前需要先检测一下是否已经安装了git. rpm -qa | grep zlib-devel 二.具体安装命令 如果以前没有安装过,则下载 ...

  8. nginx安装,启动亲测有效

    一:安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 二:安装PCRE,让 N ...

  9. Apache安装,亲测成功

    工作需要,为一台空白服务器安装apache,小白程序员,搞了一个下午,惭愧! 工具需要,也可以自己到apache下载 http://httpd.apache.org/download.cgi 遇到的b ...

随机推荐

  1. RedHat7.4 yum配置

    RedHat7.4 yum配置 linux 1. yum配置 1.1 本地yum源配置 1.2 配置网络yum源为CentOS源 1. yum配置 1.1 本地yum源配置 设置使用ISO镜像软件:虚 ...

  2. spring的@Scheduled定时任务,同一时间段的定时任务只会执行一个,其余的会被阻塞,@Scheduled注解定时任务并发执行解决办法,即多线程运行定时任务

    原文:https://blog.csdn.net/qq_35937303/article/details/88851064 现有两个定时任务 @Component("aa") pu ...

  3. jquery 表单元素选择器

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content ...

  4. django项目使用layui插件给网站设置一个日历挂件,很简单实用。

    进入https://www.layui.com/首页下载layui文件 下载解压后把文件放在static静态文件中, html页面引入css和js <link rel="stylesh ...

  5. RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems

    一.摘要 为了解决协同过滤的稀疏性和冷启动问题,社交网络或项目属性等辅助信息被用来提高推荐性能. 考虑到知识图谱是边信息的来源,为了解决现有的基于嵌入和基于路径的知识图谱感知重构方法的局限性,本文提出 ...

  6. C#各版本

    C#各版本 本系列文章主要整理并介绍 C# 各版本的新增功能. C# 8.0 C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发 ...

  7. 项目Alpha冲刺--8/10

    项目Alpha冲刺--8/10 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Alpha冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合 ...

  8. Browsersync 省时浏览器同步测试工具,浏览器自动刷新,多终端同步

    官网地址 http://www.browsersync.cn/ 1.安装 BrowserSync npm install -g browser-sync 2.启动 BrowserSync // --f ...

  9. 利用GitHub+Node.js+Hexo搭建个人博客

    本篇是自己在搭建Hexo博客平台时的一个过程记录.(2019.9.13实测有效) GitHub 账号注册 因为此文所搭建的个人博客是基于GitHub平台服务的,所以首先是注册GitHub,当然已有账号 ...

  10. Tips on Blind Source Separation

    盲源分离是指在不知道源信号和信道传输参数的情况下,根据输入信号的统计特性,仅由观测信号恢复出源信号各个独立成分的过程.盲源分离研究的信号模型主要有三种:线性混合模型.卷积混合模型和非线性混合模型. 1 ...