FreeSWITCH 安裝配置的 各類坑, 填坑

我的安裝環境:
OS:CentOS6.7 64位
FreeSWITCH Ver:1.6.17node

 

一. 編譯出錯

安裝 以前, 最好 先安裝 這幾個東西(若是有, 請忽略):linux

yasm (有nasm的話 不用裝這個) , 
opus-devel(可能 提示 libopus-dev 或 libopus-devel 等) , 
lua-devel , libsndfile-devel , libtiff-devel

 

固然了,  你也能夠 先無論, 等 出錯 提示了, 在按照下面的方法安裝:git

1. 安裝 yasm ,  yasm 和 nasm 必需要有一個,必須裝了!

錯誤提示: Neither yasm nor nasm have been foundgithub

((which nasm) || (which yasm) || (git clone https://github.com/yasm/yasm.git && cd yasm && ./autogen.sh && make && make install))

2.安裝 lua-devel

錯誤提示:  找不到 lua.h 等lua的頭文件vim

yum install lua lua-devel

3.安裝 opus-devel

錯誤提示: You must install libopus-dev to build mod_opuspromise

yum -y install opus-devel
#可能須要清理:  make clean && ./configure && make

若是仍是報這個錯誤, 就註釋這兩行,在Makefile:app

vim freeswitch/src/mod/codecs/mod_opus/Makefile
# Comment line 896 & 897
#install: error 
#all: error

 

4.安裝 sndfile

錯誤提示 :  You must install libsndfile-dev to build mod_sndfiledom

#下載包libsndfile-x.x.xx.tar.gz  from地址 http://www.mega-nerd.com/libsndfile/#Download,  而後
tar zxvf libsndfile-1.0.26.tar.gz 
./configure 
make
make install
cp /usr/local/lib/pkgconfig/sndfile.pc /usr/lib64/pkgconfig
#而後 從新 configure   FreeSWITCH...

若是仍是報這個錯誤,就註釋這兩行,在Makefile:socket

vim src/mod/formats/mod_sndfile/Makefile
# Comment line 897 & 898
#install: error 
#all: error

 

5.安裝 libyuv 

錯誤提示: You must install libyuv-dev to build mod_fsvui

cd freeswitch/libs  
git clone https://freeswitch.org/stash/scm/sd/libyuv.gitcd libyuv
make -f linux.mk CXXFLAGS="-fPIC -O2 -fomit-frame-pointer -Iinclude/"
make install
cp /usr/lib/pkgconfig/libyuv.pc /usr/lib64/pkgconfig/

6.安裝 libvpx

錯誤提示: You must install libvpx-dev to build ....

cd freeswitch/libs 
git clone https://freeswitch.org/stash/scm/sd/libvpx.git
cd libvpx
./configure --enable-pic --disable-static --enable-shared
make
make install
cp /usr/local/lib/pkgconfig/vpx.pc /usr/lib64/pkgconfig/

7.安裝 libpng

錯誤提示: You must install libpng-dev to build ....

git clone https://freeswitch.org/stash/scm/sd/libpng.git
cd libpng
./configure
make
make install
cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/

8.安裝 libav

錯誤提示: You must install libav-dev to build ....

git clone https://freeswitch.org/stash/scm/sd/libav.git
cd libav
./configure             #CFLAGS="-fPIC" ./configure --enable-pic --enable-shared
make                    # make CXXFLAGS="-fPIC"
make install

 

 二. 其餘問題

1.錯誤提示: libs/spandsp

configure: loading cache ../../config.cache
configure: error: `CFLAGS' was not set in the previous run
configure: error: `CPPFLAGS' was not set in the previous run
configure: error: in `/usr/src/freeswitch.git/libs/spandsp':
configure: error: changes in the environment can compromise the build
configure: error: run `make distclean' and/or `rm ../../config.cache' and start over

解決: 從新 configure

./configure -C && make

 

三. 安裝中文語音

fs默認不加載中文語音。須要在fs的src中首先編譯中文模塊。

1.編譯:

a.在 configure 以前, 編輯 modules.conf,  取消 "#say/mod_say_zh"  這行的註釋 ->"say/mod_say_zh"

b.補救安裝 `make mod_say_zh-install` 

2.加載(不重啓fs)

在fs控制檯上加載該模塊 `load mod _say_zh` 
若想fs在每次啓動的時候都加載該模塊,就在`autoload_configs/modules.conf.xml`中`<load module="mod_say_zh">`的註釋去掉便可。

也能夠這樣:

sed -i 's#<!-- <load module="mod_say_zh"/> -->#<load module="mod_say_zh"/>#g' autoload_configs/modules.conf.xml

 

3.修改 `var.xml`中的配置 

`<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/>`修改成中文語音文件的目錄
`<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/>`
加入如下幾行(也能夠不加)

<X-PRE-PROCESS cmd="set" data="default_language=zh"/>
<X-PRE-PROCESS cmd="set" data="default_dialect=cn"/>
<X-PRE-PROCESS cmd="set" data="default_voice=sue"/>

4.加入中文語音配置

cd conf/lang
cp -R en zh
mv zh/en.xml zh/zh.xml
vim zh/zh.xml 
(替換路徑`en/us/callie`和 `en`等:第二行修改成)
<language name="zh" say-module="zh" sound-prefix="$${sounds_dir}/zh/cn/link" tts-engine="cepstral" tts-voice="link">

 

5. 載入中文配置

在`freeswitch.xml`的`<section name="languages" `節點中增長一行 (或那一行取消註釋)

` <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>`

 

四. 解決ESL拒絕鏈接問題

默認是隻接受本機鏈接的,稍一改動就 內外都不能鏈接了,或者只能接受內外之一鏈接 

解決方法:

1. event_socket.conf.xml 加入:
<param name="apply-inbound-acl" value="domains"/>

2. acl.conf.xml 加入:
<list name="domains" default="deny">
<node type="allow" domain="$${domain}"/>
<node type="allow" cidr="192.168.1.0/24"/>
<node type="allow" cidr="127.0.0.1/24"/>
</list>

 

 

 <未完待續,欲知後事如何,且聽下回分解> 

相關文章
相關標籤/搜索