centos7 安裝freeswitch


 1、安裝運行庫

  yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtiff-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel

2、 cd /usr/local

3、wget  http://files.freeswitch.org/freeswitch-releases/freeswitch-1.8.2.tar.bz2

4、tar xvjf freeswitch-1.8.2.tar.bz2

5、cd freeswitch-1.8.2

6、./configure

7、make install

---------------------------以上是安裝freeswitch    下面是安裝聲音文件---------------------------

語音包是安裝在 /usr/local/freeswitch-1.8.2/sounds 下的

1、make sounds-install

2、make moh-install

 

 

安裝錯誤及其他

一. 編譯出錯

安裝 之前, 最好 先安裝 這幾個東西(如果有, 請忽略):

yasm (有nasm的話 不用裝這個) ,

opus-devel(可能 提示 libopus-dev 或 libopus-devel 等) ,

lua-devel , libsndfile-devel , libtiff-devel

 

當然了,  你也可以 先不管, 等 出錯 提示了, 在按照下面的方法安裝:

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

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

((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的頭文件

yum install lua lua-devel

3.安裝 opus-devel

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

yum -y install opus-devel

#可能需要清理:  make clean && ./configure && make

如果還是報這個錯誤, 就注釋這兩行,在Makefile:

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_sndfile

#下載包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:

 

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_fsv

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">

或者修改zh.xml
  <language name="zh" say-module="zh" sound-prefix="$${sound_prefix}/zh/cn/link" tts-engine="mod_tts_commandline" tts-voice="link">
7、/usr/local/freeswitch/
conf/freeswitch.xml
  在61行增加   <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>
8
、控制台 reloadxml

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>

 

FreeSwitch開啟錄音功能

修改撥碼計划

打開文件../freeswitch/conf/dialplan/default.xml

找到Local_Extension節點

 

<extension name="Local_Extension">

<condition field="destination_number" expression="^(10[01][0-8])$">

在其下,添加:

<action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}"/> 

<action application="set" data="RECORD_COPYRIGHT=(c) 2011"/> 

<action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>

<action application="set" data="RECORD_ARTIST=FreeSWITCH"/>

<action application="set" data="RECORD_COMMENT=FreeSWITCH"/>

<action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>

<action application="set" data="RECORD_STEREO=true"/>

<action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>

 

freeswitch呼叫慢的問題

安裝完freeswitch后,測試中發現呼叫請求服務器處理的特別慢,后來跟蹤發現在/usr/local/freeswitch/conf/dialplan/default.xml中有個sleep 10s的處理,

<condition field="${default_password}" expression="^1234$" break="never">

        <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>

        <action application="log" data="CRIT Open $${conf_dir}/vars.xml and change the default_password."/>

        <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM