Ubuntu安裝FreeSWITCH親測

本人在安裝FreeSWITCH的時候遇到了至關多的坑,網上不少方法都模棱兩可,常常裝失敗,最後終於裝成功後作一下總結git

最順利的安裝方式

1. 下載壓縮文件
  下載地址:http://files.freeswitch.org/freeswitch-releases/    我選擇的下載版本是freeswitch-1.8.5.tar.xz ,下載完成後解壓縮github

 

2. 安裝依賴包sql

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. 編譯安裝vim

# 切換路徑到第一步解壓縮的文件夾下
./configure

make
make install

 

4. 安裝聲音文件app

# 安裝聲音文件 
make sounds-install
make moh-install

# 如下高質量的聲音文件可選擇安裝
make cd-sounds-install
make cd-moh-install

 

若是一切順利的話就安裝好了,可是事實每每不那麼容易,以後會列舉幾個會遇到的問題及解決方案curl

製做軟鏈接測試

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

 

啓動FreeSWITCHui

freeswitch

 

關閉FreeSWITCHlua

shutdown

 

可能遇到的問題及解決方案

報錯url

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源碼
https://jaist.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz

./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

 


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

相關文章
相關標籤/搜索