首页 > 系统相关 >Ubuntu安装FreeSWITCH亲测

Ubuntu安装FreeSWITCH亲测

时间:2023-05-05 14:37:04浏览次数:33  
标签:signalwire dev freeswitch apt install Ubuntu FreeSWITCH mod 亲测

本人在安装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
1.
2.
3.

 


​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[4]: Entering directory '/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_signalwire'
Makefile:930: *** You must install signalwireto 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


​解决方法如下​
# 解决方法:下载并编译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

标签:signalwire,dev,freeswitch,apt,install,Ubuntu,FreeSWITCH,mod,亲测
From: https://www.cnblogs.com/kn-zheng/p/17374034.html

相关文章

  • 在Ubuntu18.04安装Freeswitch1.10
    在Ubuntu18.04安装Freeswitch1.10一、版本选择二、Ubuntu的安装1、修改Ubuntu镜像(1)进入配置的目录,并进行配置文件备份(2)打开和修改源三、Freeswitch安装1、添加第三方源2、添加第三方源3、安装部分依赖包4、配置使用gawk5、编译安装程序依赖包(1)安装cmake(2)安装libks(3)安装signalwire-......
  • OpenProject:Ubuntu18.04下安装配置(docker方式)
    年前刚跳槽,发现很久没有更新文章啦。最近几年转到了技术管理岗,中小公司的技术管理,免不了做一些PM的活。以前用微软的Project(虽然盗版但真的好用),现在公司不允许使用盗版,只能找找开源的,于是发现了OpenProject。官方提供了几种安装方式:1.Package2.Docker3.UCS4.Other1.尝试下......
  • freeswitch-ubuntu安装
    一,软件及环境准备:ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.isofreeswitch版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gzspandsp包:https://codeload.github.com/freeswitch/sp......
  • VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
    PJSIP是一个开源的SIP协议栈。它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了。 它实现了SIP、SDP、RTP、STUN、TURN和ICE。PJSIP作为基于SIP的一个多媒体通信框架提供了非常清晰的API,以及NAT穿越的功能。PJSIP具有非常好的移植性,几乎支持现今所有系统:从桌面系统......
  • Ubuntu物理机安装
    本文所记录内容基本硬件配置:主板:华硕Z790-PCPU:Intel-i7-13900KGPU:NvidiaRTXA5000本文所记录内容基本软件配置:OS:Ubuntu-22.04桌面:GNOME启动盘:ventoy其它硬件配置或软件配置请谨慎参考......
  • ubuntu18.04 安装docker、mysql、nacos
    一、安装docker1.更新软件源列表sudoapt-getupdate2.安装软件包依赖sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common3.在系统中添加Docker的官方密钥curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-ke......
  • FreeSWITCH对接vosk实现实时语音识别
    环境:CentOS7.6_x64FreeSWITCH版本:1.10.9Python版本:3.9.2一、背景描述vosk是一个开源语音识别工具,可识别中文,之前介绍过python使用vosk进行中文语音识别,今天记录下FreeSWITCH对接vosk实现实时语音识别。vosk离线语音识别可参考我之前写的文章:python使用vosk进行中文......
  • ubuntu编译kernel
    前言使用的是ubuntu22.04本来的kernel:5.19.0-38-generic编译kernel5.19使用虚拟机要注意存储空间的变化,避免内存爆掉。环境配置需要先安装配置环境sudoapt-getinstallncurses-devsudoapt-getinstallflexsudoapt-getinstallbisonsudoapt-getinstalll......
  • Ubuntu22.04 rc-local 配置开机自启动脚本
    1.rc-local服务简介Linux中的rc-local服务是一个开机自动启动的,调用开发人员或系统管理员编写的可执行脚本或命令的,它的启动顺序是在系统所有服务加载完成之后执行。ubuntu22.04系统已经默认安装了rc-local.service服务,但是不知什么原因系统把这个服务给“隐蔽”了,所以如果不做......
  • [ubuntu]安装配置go
    系统环境ubuntu18.04安装配置安装Go语言sudoapt-getupdatesudoapt-get-yupgradewgethttps://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gzsudotar-xvfgo1.7.linux-amd64.tar.gzsudomvgo/usr/local设置环境vim/etc/profileexportGORO......