centos系統下FreeSwitch安裝全過程


0、准備

1、環境:centos7

2、安裝所需包:

           (1)freeswitch-1.6.17編譯好的包

           (2)freeswitch-1.6.17.sql文件

           (3)mysql的rpm包

           (4)jdk的rpm包

           (5)odbc的rpm包

           (6)odbc.ini配置文件

一、系統准備

1、創建文件夾/home/freeswitch,傳入如下文件:
freeswitch-1.6.17.sql mysql odbc odbc.ini
2、關閉SELINUX;
(1)vim /etc/selinux/config
(2)修改為:SELINUX=disabled
3、禁用ipv6:
(1)指令:vi /etc/sysctl.conf
(2)修改為:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.core.somaxconn = 2048 net.ipv4.ip_local_port_range= 1024 65535 net.core.rmem_default = 262144 net.core.wmem_default = 262144 fs.file-max = 104857 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 4096 16777216 net.ipv4.tcp_wmem = 4096 4096 16777216 net.ipv4.tcp_mem = 786432 3145728 4194304 net.ipv4.tcp_max_syn_backlog = 16384 net.core.netdev_max_backlog = 20000 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_orphans= 131072

 

二、安裝MYSQL

1、安裝mysql5.7
(1)查詢系統是否自帶數據庫:
執行:
[root@localhost freeswitch]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
(2)卸載CentOS7自帶的MariaDB:其中--nodeps意思是不卸載依賴。
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
(3)用rpm -ivh 依次安裝如下依賴包:
[root@localhost freeswitch]# cd mysql
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
(3)初始化數據庫
執行:/usr/sbin/mysqld --initialize --datadir=/var/lib/mysql/
執行:chown mysql:mysql /var/lib/mysql -R
執行:systemctl start mysqld.service
(4)查找默認密碼
執行:grep 'temporary password' /var/log/mysqld.log
執行:mysql -uroot -p'密碼'
(5)重置密碼執行:set password=password('tydic2017AbcDic');
(6)權限刷新
執行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'tydic2017AbcDic' WITH GRANT OPTION;
執行:FLUSH PRIVILEGES;
(7)創建數據庫
mysql> create database freeswitch;
mysql> use freeswitch;
(8)執行SQL文件,創建freeswitch數據表:
mysql> source /home/freeswitch/freeswitch-1.6.17.sql;
(9)查看:
mysql> show tables;
(10)退出:
mysql> quit;

三、修改其他

1、修改MySQL最大連接數,不區分大小寫:vim /etc/my.cnf
lower_case_table_names=1
max_connections=5000
2、重啟mysql :service mysqld restart
3、關閉防火牆與禁用:
systemctl stop firewalld.service
systemctl disable firewalld.service

四、JDK安裝

1、查詢是否安裝過:rpm -qa | grep java
2、刪除掉安轉過得:rpm -e --nodeps + 包名
3、進入到JDK所在目錄:
[root@localhost mysql]# cd ../
[root@localhost freeswitch]# ls
freeswitch-1.6.17.sql mysql odbc odbc.ini [root@localhost freeswitch]# cd odbc [root@localhost odbc]# ls jdk-linux-x64.rpm libmyodbc5S.so unixODBC-2.3.1-11.el7.x86_64.rpm libmyodbc5a.so libmyodbc5w.so unixODBC-devel-2.3.1-11.el7.x86_64.rpm [root@localhost odbc]#
4、安裝JDK:
rpm -ivh jdk-linux-x64.rpm

五、ODBC安裝

1、安裝兩個包:
[root@localhost odbc]# rpm -ivh unixODBC-2.3.1-11.el7.x86_64.rpm
准備中... ################################# [100%] 正在升級/安裝... 1:unixODBC-2.3.1-11.el7 ################################# [100%] [root@localhost odbc]# rpm -ivh unixODBC-devel-2.3.1-11.el7.x86_64.rpm 准備中... ################################# [100%] 正在升級/安裝... 1:unixODBC-devel-2.3.1-11.el7 ################################# [100%]
2、拷貝mysqlodbc驅動到centos7的lib64目錄,這里我們不拷貝,做軟連接:
ln libmyodbc5* /usr/lib64/
3、拷貝配置文件到/etc,並修改ODBC操作數據庫的用戶名、密碼、端口號。
[root@localhost odbc]# ls
jdk-linux-x64.rpm libmyodbc5S.so unixODBC-2.3.1-11.el7.x86_64.rpmlibmyodbc5a.so libmyodbc5w.so unixODBC-devel-2.3.1-11.el7.x86_64.rpm [root@localhost odbc]# cd ../ [root@localhost freeswitch]# ls freeswitch-1.6.17.sql mysql odbc odbc.ini [root@localhost freeswitch]# mv odbc.ini /etc/ [root@localhost freeswitch]# ls freeswitch-1.6.17.sql mysql odbc [root@localhost freeswitch]# vim /etc/odbc.ini

六、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 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 --skip-broken
2、修改Linux內核最大並發連接數: vim /etc/security/limits.conf
文件末尾添加:
* soft nofile 65530
* hard nofile 65530
3、准備編譯的fs,放在目錄/usr/local下。

七、配置profile

1、外呼和接入:/usr/local/freeswitch/conf/sip_profiles
三個文件:external robotv3.xml robotv4.xml
每個profiles相當於一個語音的實例。
2、編輯robotv3.xml,robotv4.xml修改數據庫密碼:
原先:<param name="odbc-dsn" value="freeswitch3:root:tydic2020@AbcDic"/>
改為:<param name="odbc-dsn" value="freeswitch:root:tydic2017AbcDic"/> 盲注冊、盲校驗 <param name="accept-blind-auth" value="true" /> <param name="accept-blind-reg" value="true" /> 其中設置context在修改撥號計划進行關聯 <param name="context" value="robotv4"/> 端口號在:<param name="sip-port" value="5080"/> 指定實例不同的域:<param name="dbname" value="share_presence"/> 在directory中difault文件也有
更改IP地址:

<param name="rtp-ip" value="172.29.50.60"/>
<!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
<param name="sip-ip" value="172.29.50.60"/>
<param name="ext-rtp-ip" value="172.29.50.60"/>
<param name="ext-sip-ip" value="172.29.50.60"/>

3、分機設置:
/usr/local/freeswitch/conf/directory/default
4、撥號計划:
/usr/local/freeswitch/conf/dialplan
有文件:robotv3.xml robotv4.xml
5、刪除
rm -rf arthas-output arthas-output.zip

6、文件路徑在:/usr/local/freeswitch/autoload_configs

vim switch.conf.xml 

 vim db.conf.xml 

修改數據庫連接

7、call-center包連的freeswitch的端口用的event_socket,所在的文件地址:

/usr/local/freeswitch/autoload_configs/event_socket.conf.xml

八、啟動freeswitch

1、做軟連接,第一個真實地址
ln /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch
2、啟動:不做nat檢測,不在內核啟動
freeswitch -nonat -nosql
3、查看實例端口
sofia status
然后按照實例注冊軟電話。
4、撥打9196放音。
5、查看某個實例的狀態:sofia status profile robotv3

九、配置eventsocket

1、地址:/usr/local/freeswitch/conf/autoload_configs/event_socket.conf.xml端口號可以找到
2、准入acl是talent:
<param name="apply-inbound-acl" value="talent"/>

十、配置mrcp

1、文件路徑:/usr/local/freeswitch/conf/mrcp_profiles/aisv2.xml
2、如下,將帶有client的配置都換成本機地址:
<param name="client-ip" value="192.168.66.70"/>

十一、配置證書

需要配置網頁電話的證書級連接、websocket的證書級連接。谷歌瀏覽器對使用音頻有這個強制要求。網頁電話與freeswitch通信使用
websocket的安全鏈接。
1、查看實例配置的證書路徑
(1)打開文件:vim /usr/local/freeswitch/conf/sip_profiles/robotv3.xml
(2)可以看到配置的證書文件路徑:
<param name="ws-binding" value=":5066"/>
<param name="wss-binding" value=":7443"/>
<param name="apply-candidate-acl" value="jssipacl"/>
<param name="tls-cert-dir" value="/usr/local/freeswitch/conf/certs"/>
2、打開證書:vim /usr/local/freeswitch/conf/certs/wss.pem
3、證書分別是公鑰、私鑰、證書鏈。
4、其中,jssipacl是准入策略,到/usr/local/freeswitch/conf/autoload_configs/acl.conf.xml加入如下策略:
<list name="jssipacl" default="allow">
<node type="allow" host="192.0.0.0" mask="255.0.0.0"/>
<node type="allow" host="172.0.0.0" mask="255.0.0.0"/>
<node type="allow" host="10.0.0.0" mask="255.0.0.0"/>
</list>

十二、重啟

1、重啟指令:shutdown
2、再次打開,輸入sofia status profile robotv3
=================================================================================================
Name robotv3
Domain Name N/A Auto-NAT false DBName sofia_reg_robotv3 Pres Hosts Dialplan XML Context robotv3 Challenge Realm auto_to RTP-IP 192.168.67.250 Ext-RTP-IP 192.168.67.250 SIP-IP 192.168.67.250 Ext-SIP-IP 192.168.67.250 URL sip:mod_sofia@192.168.67.250:5070 BIND-URL sip:mod_sofia@192.168.67.250:5070;maddr=192.168.67.250;transport=udp,tcp WS-BIND-URL sip:mod_sofia@192.168.67.250:5066;transport=ws WSS-BIND-URL sips:mod_sofia@192.168.67.250:7443;transport=wss HOLD-MUSIC local_stream://moh OUTBOUND-PROXY N/A CODECS IN PCMA,PCMU CODECS OUT PCMU,PCMA TEL-EVENT 101 DTMF-MODE rfc2833 CNG 13SESSION-TO 0 MAX-DIALOG 0 NOMEDIA false LATE-NEG true PROXY-MEDIA false ZRTP-PASSTHRU true AGGRESSIVENAT false CALLS-IN 0 FAILED-CALLS-IN 0 CALLS-OUT 0 FAILED-CALLS-OUT 0 REGISTRATIONS 0
可以看到WSS-BIND-URL。
3、網頁打電話?
直接在fs中輸入指令:oridinate user/18324718426 &each()
由於任何號碼都能注冊,但畢竟用戶不存在,所以需要指定:
oridinate {absolute_codec_string=pcma}Sofia/robotv3/18324718426 &each()
4、放音:
uuid_broadcast uuid $${sounds_dir}/keep.wav

十三、NGINX

1、下載地址:http://nginx.org/en/download.html
2、windows下終止進程:taskkill /f /im nginx.exe
啟動:nginx.exe


免責聲明!

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



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