CentOS 7.6 Freeswitch1.10安裝教程(MySQL管理官辽、視頻通話)

一同仆、前言

freeswitch 各個版本路徑:https://files.freeswitch.org/freeswitch-releases/
freeswitch 依賴庫離線下載地址:https://files.freeswitch.org/downloads/libs/

  • 1裙品、先關(guān)閉防火墻,以免造成不可抗拒的問題
//臨時關(guān)閉
systemctl stop firewalld
//禁止開機(jī)啟動
systemctl disable firewalld

二扶镀、安裝必要依賴

  • 1焰轻、安裝基礎(chǔ)依賴
yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release
 
yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ 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 libtheora-devel libtiff-devel libtool libuuid-devel 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 python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel
  • 2辱志、安裝mod_av支持的lib
    mod_av 依賴libav, libav需要 x264 lib才能支持h264
# download and install libx264
wget -c http://files.freeswitch.org/downloads/libs/libx264.tar.bz2
tar -jxvf libx264.tar.bz2
./configure --enable-static --enable-shared --prefix=/usr
make
make install
cp /usr/lib/pkgconfig/x264.pc /usr/lib64/pkgconfig/
cp /usr/lib/libx264.so /usr/lib64/
cp /usr/lib/libx264.a /usr/lib64/

# download and install libav
wget -c http://files.freeswitch.org/downloads/libs/libav-12.tar.bz2  
tar -jxvf libav-12.tar.bz2
./configure --enable-pic --enable-shared  --enable-libx264 --enable-gpl --extra-libs="-ldl" --extra-cflags=-I/usr/include --extra-ldflags=-L/usr/lib64
make    # make CXXFLAGS="-fPIC"
make install
cp /usr/local/lib/pkgconfig/libavcodec.pc /usr/local/lib/pkgconfig/libavdevice.pc /usr/local/lib/pkgconfig/libavfilter.pc /usr/local/lib/pkgconfig/libavformat.pc /usr/local/lib/pkgconfig/libavresample.pc /usr/local/lib/pkgconfig/libavutil.pc /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig/
# 執(zhí)行刷新揩懒,以讓FreeSWITCH運(yùn)行時可以找到庫
ldconfig
  • 3、安裝 libpng
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/
  • 4臣镣、安裝cmake
#卸載yum安裝的版本智亮,若無安裝則忽略
yum remove cmake
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar -zxvf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make
make install
  • 5阔蛉、安裝libks
# 先安裝libatomic依賴
yum install libatomic
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install
  • 6、安裝signalwire-c
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make
make install
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
#若是沒有找到signalwire_client.pc聋呢,可以全局搜索颠区,搜索到之后,替換對應(yīng)的路徑    find / -name signalwire_client.pc
  • 7器贩、安裝odbc
yum install -y unixODBC unixODBC-devel mysql-connector-odbc

安裝完成后:
編輯/etc/odbcinst.ini

# Example driver definitions
 
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description=ODBC for PostgreSQL
Driver=/usr/lib/psqlodbcw.so
Setup=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib64/psqlodbcw.so
Setup64=/usr/lib64/libodbcpsqlS.so
FileUsage=1
 
 
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib64/libmyodbc5.so
Setup=/usr/lib64/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc5.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1

編輯/etc/odbc.ini

[freeswitch]
Description=MySQL realtime database
Driver=/usr/lib64/libmyodbc5.so
SERVER=127.0.0.1
PORT=3306
DATABASE=freeswitch
OPTION =67108864
CHARSET=UTF8
USER=數(shù)據(jù)庫賬號
PASSWORD=數(shù)據(jù)庫密碼
Threading=0

輸入:isql -v freeswitch測試是否能夠連通磨澡,正常如下:


三稳摄、FreeSwitch編譯源碼安裝

  • 1、安裝
wget https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.3.-release.tar.gz
tar vzxf freeswitch-1.10.3.tar.gz
cd freeswitch-1.10.3
#如果不想使用mysql管理胆描,只需要執(zhí)行./configure即可
./configure --enable-core-odbc-support

make
make install

#安裝聲音文件
make cd-sounds-install
make cd-moh-install
 
#設(shè)置鏈接符號,便于使用
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
  • 2仗阅、部署成服務(wù)
vi /usr/lib/systemd/system/freeswitch.service

編輯以下內(nèi)容:

[Unit]
Description=freeswitch
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/mintcode
ExecStart=/usr/local/freeswitch/bin/freeswitch
ExecStop=/usr/local/freeswitch/bin/freeswitch -stop 
Restart=always
[Install]
WantedBy=multi-user.target
  • 3减噪、配置MySQL管理Freeswitch
<!-- vi conf/autoload_configs/db.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/switch.conf.xml -->
<param name="core-db-dsn" value="freeswitch:root:123456" />
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/voicemail.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/callcenter.conf.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/external.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/internal.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/internal-ipv6.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/sip_profiles/external-ipv6.xml -->
<param name="odbc-dsn" value="freeswitch:root:123456"/>

<!-- vi conf/autoload_configs/fifo.conf.xml -->
<settings>
    <param name="delete-all-outbound-member-on-startup" value="false"/>
    <param name="odbc-dsn" value="freeswitch:root:123456"/>
</settings>

<!-- vi conf/vars.xml -->
<X-PRE-PROCESS cmd="set" data="json_db_handle=odbc://freeswitch:root:123456"/>
  • 4筹裕、開啟錄音功能
    修改撥碼計(jì)劃
    打開文件../freeswitch/conf/dialplan/default.xml
    找到Local_Extension節(jié)點(diǎn)
<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"/>

完成后证逻,進(jìn)入FS_CLI中運(yùn)行 reloadxml
以上../freeswitch/conf/dialplan/default.xml抗斤,如果有其它的部分撥號方案需要錄音瑞眼,找到對應(yīng)的撥號方案配置文件加入上述內(nèi)容即可。

四烦衣、配置文件介紹

conf\sip_profiles\internal.xml 配置sip信息
默認(rèn)路由文件:/usr/local/freeswitch/comf/dialplan/default.xml 掩浙,可以修改他
添加新的路有也可以修改文件:/usr/local/freeswitch/comf/dialplan/default 
外線來電路有配置文件:/usr/local/freeswitch/comf/dialplan/public.xml

FreeSwitch的配置文件默認(rèn)是放在 FreeSwitch\Conf\ 下秸歧,最頂層是的 FreeSwitch.xml,也就是說最先加載的就是這個 XML谬墙, FreeSwitch 根據(jù)這個 XML 依次加載 Conf 目錄下的其它配置文件。

  • 1部默、conf根目錄下的文件
freeswitch.xml:主配置文件造虎,它會使用include語句裝入其它文件。
vars.xml:一些常用變量份蝴,都在這個配置文件中定義氓轰。
  • 2、conf下的文件夾
|-- autoload_configs:存放自動加載的配置文件案糙。
  |-- 此文件夾下的modules.conf.xml:配置當(dāng)freeswitch啟動時自動裝載哪些模塊靴庆。
  |-- 此文件夾下其它xml:一般來說都是對應(yīng)每個模塊的配置文件撒穷。
|-- chatplan文件夾:存放的是聊天計(jì)劃配置文件。
|-- dialplan文件夾:存放的是撥號計(jì)劃配置文件禽笑。
|-- directory文件夾:用戶目錄蛤奥,存儲跟用戶相關(guān)的信息。
  |-- 此文件夾下的的defalut目錄是默認(rèn)的用戶目錄配置凡桥,default下的xml文件是對應(yīng)每個sip用戶的,每個sip用戶都有一個配置文件缅刽。
|-- ivr_menus文件夾:IVR菜單配置文件衰猛。
|-- jingle_profiles文件夾:連接Google Talk的相關(guān)配置文件。
|-- lang文件夾:多語言支持配置文件啡省。
  |-- 此文件夾下的en為英語,fr文件夾是法語畦戒。
|-- mrcp_profiles文件夾:MRCP的相關(guān)配置障斋,用于跟第三方語音合成和語音識別系統(tǒng)對接。
|-- sip_profiles文件夾:sip配置文件
  |-- 此文件夾下的internal.xml:一個SIP profile酪穿,或稱作一個SIP-UA晴裹,監(jiān)聽在本地IP及端口5060。
  |-- 此文件夾下的externa.xml:另一個SIP-UA只磷,用作外部連接泌绣,端口5080。
|-- 在 /usr/local/freeswitch/comf/directory/default 下有默認(rèn)的1000-1019共20個賬號元媚,可以通過 copy 并修改其中的 user_id 來實(shí)現(xiàn)增加新的賬號

五苗沧、常用命令

# 啟動freeswitch
freeswitch
# 關(guān)閉freeswitch
shutdown
# 后臺啟動
freeswitch -nc
# 關(guān)閉后臺freeswitch
freeswitch -stop
# 查看FreeSWITCH是否正常啟動
netstat -anp | grep freeswitch
# 查看狀態(tài)
sofia status
# 顯示哪些用戶已注冊
sofia status profile internal reg
# 控制臺顯示info級別日志
fs_cli -l info
# 開啟sip消息顯示/關(guān)閉
sofia global siptrace on/off
# 退出fs_cli(不關(guān)閉fs)
/exit

六待逞、防火墻開放端口

FireWall Ports  Network Protocol    Application Protocol    Description

1719    UDP H.323 Gatekeeper RAS port

1720    TCP H.323 Call Signaling

3478    UDP STUN service    Used for NAT traversal

3479    UDP STUN service    Used for NAT traversal

5002    TCP MLP protocol server

5003    UDP Neighborhood service

5060    UDP & TCP   SIP UAS Used for SIP signaling (Standard SIP Port, for default Internal Profile)

5070    UDP & TCP   SIP UAS Used for SIP signaling (For default "NAT" Profile)

5080    UDP & TCP   SIP UAS Used for SIP signaling (For default "External" Profile)

8021    TCP ESL Used for mod_event_socket *

16384-32768 UDP RTP/ RTCP multimedia streaming  Used for audio/video data in SIP and other protocols

5066    TCP Websocket   Used for WebRTC

7443    TCP Websocket   Used for WebRTC

七识樱、常見的坑

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市当犯,隨后出現(xiàn)的幾起案子休雌,更是在濱河造成了極大的恐慌杈曲,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恰响,死亡現(xiàn)場離奇詭異涌献,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枢劝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門您旁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轴捎,“玉大人,你說我怎么就攤上這事侦锯∏匮保” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長细燎。 經(jīng)常有香客問我,道長悼凑,這世上最難降的妖魔是什么璧瞬? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任嗤锉,我火速辦了婚禮,結(jié)果婚禮上奥额,老公的妹妹穿的比我還像新娘。我一直安慰自己韩肝,他們只是感情好九榔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布哲泊。 她就那樣靜靜地躺著,像睡著了一般切威。 火紅的嫁衣襯著肌膚如雪牢屋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天锋谐,我揣著相機(jī)與錄音截酷,去河邊找鬼迂苛。 笑死,一個胖子當(dāng)著我的面吹牛就漾,可吹牛的內(nèi)容都是我干的念搬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼朗徊,長吁一口氣:“原來是場噩夢啊……” “哼首妖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起爷恳,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤有缆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棚壁,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杯矩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了灌曙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菊碟。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡在刺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出头镊,到底是詐尸還是另有隱情蚣驼,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布相艇,位于F島的核電站颖杏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坛芽。R本人自食惡果不足惜留储,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咙轩。 院中可真熱鬧获讳,春花似錦、人聲如沸活喊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钾菊。三九已至帅矗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煞烫,已是汗流浹背浑此。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滞详,地道東北人凛俱。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像茵宪,于是被迫代替她去往敵國和親最冰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容