mosquitto 和 opensips 安裝及相關配置
阿新 • • 發佈:2018-11-09
MQTT
即時通訊伺服器安裝,SIP電話伺服器快速安裝,已寫成一個shell檔案,執行即可安裝,不用輸入繁瑣的命令
Mosquitto
(MQTT
即時通訊伺服器)
Mosquitto
一款實現了訊息推送協議 MQTT
v3.1 的開源訊息代理軟體,提供輕量級的,支援可釋出/可訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊變得簡單,比如現在應用廣泛的低功耗感測器,手機、嵌入式計算機、微型控制器等移動裝置。
opensips
(SIP
電話伺服器)
OpenSIPS
是一個成熟的開源SIP伺服器,除了提供基本的SIP代理及SIP路由功能外,還提供了一些應用級的功能。OpenSIPS
#!/bin/sh
#print hello world in the console window
echo -e "開始安裝-----------------------------------------------------------"
echo -e "author:hexiang"
echo -e "name:dz.hexiang"
echo -e "mail:[email protected]"
echo -e "初始設定請稍等..."
sleep 3s
echo -e "開始安裝wget下載工具"
yum -y install wget
echo -e "開始mysql..."
echo -e "下載mysql..."
wget http://repo.mysql.com/mysql-community-release-el7.rpm
echo -e "解壓mysql..."
sudo rpm -ivh mysql-community-release-el7.rpm
echo -e "解壓成功安裝mysql..."
yum install mysql-server -y
yum install mysql-libs mysql-devel -y
echo -e "安裝成功,啟動mysql..."
systemctl restart mysqld.service
echo -e "下載語音通話伺服器原始碼..."
cd /home;wget http://opensips.org/pub/opensips/2.2.2/opensips-2.2.2.tar.gz
echo -e "解壓語音通話伺服器原始碼..."
tar zxvf opensips-2.2.2.tar.gz;cd opensips-2.2.2
echo -e "安裝語音通話需要的相關環境..."
yum install gcc make -y
yum install flex bison ncurses libncurses-dev ncurses-devel -y
echo -e "開始進入影象配置介面請配只db_mysql..."
make menuconfig;
#提示“請輸入姓名”並等待30秒,把使用者的輸入儲存入變數name中
read -p "請輸入ip地址,公網或者區域網IP地址:" myip
sed -i -E "s/^listen=udp:.*$/listen=udp:"$myip":5060/g" /usr/local/etc/opensips/opensips.cfg
echo -e "opensips ip 配置為:"$myip
cat /usr/local/etc/opensips/opensips.cfg |grep "listen"
cd /usr/local/sbin/;opensipsdbctl create;
opensipsctl start
#顯示當前線上使用者
echo -e "-----------------------------------------------------------"
echo -e "開始即時通訊環境..."
yum install gcc-c++ -y
yum install cmake -y
#mosquitto預設支援openssl
yum install openssl-devel -y
echo -e "開始下載即時通訊伺服器原始碼..."
cd /home
wget http://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
echo -e "開始解壓即時通訊伺服器原始碼..."
tar -xzvf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9;
echo -e "開始進行配置..."
#WITH_SRV ,WITH_UUID,WITH_WEBSOCKETS
sed -i -E "s/^#WITH_SRV:=.*$/WITH_SRV:=yes/g" config.mk
sed -i -E "s/^WITH_SRV:=.*$/WITH_SRV:=yes/g" config.mk
sed -i -E "s/^#WITH_UUID:=.*$/WITH_UUID:=yes/g" config.mk
sed -i -E "s/^WITH_UUID:=.*$/WITH_UUID:=yes/g" config.mk
sed -i -E "s/^#WITH_WEBSOCKETS:=.*$/WITH_WEBSOCKETS:=yes/g" config.mk
sed -i -E "s/^WITH_WEBSOCKETS:=.*$/WITH_WEBSOCKETS:=yes/g" config.mk
echo -e "即時通訊配置成功開始安裝相關支援庫..."
cd /home
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make&make install
yum install libuuid-devel -y
cd /home;
wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30;
mkdir build; cd build;
cmake .. -DLIB_SUFFIX=64
make install
echo -e "即時通訊開始編譯安裝..."
cd /home/mosquitto-1.4.9
make&make install
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
echo -e "配置相關資訊..."
sed -i -E "s/^#autosave_interval 1800$/autosave_interval 1800/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^#persistence false$/persistence true/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^#persistence_file mosquitto.db$/persistence_file mosquitto.db/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^autosave_interval 1800$/#autosave_interval 1800/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence true$/#persistence true/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence_file mosquitto.db$/#persistence_file mosquitto.db/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence_location \/var\/mosquitto\/$/#persistence_location \/var\/mosquitto\//g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^listener 1883$/#listener 1883/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^listener 8888$/#listener 8888/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^protocol websockets$/#protocol websockets/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^user root$/#user root/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^allow_anonymous true$/#allow_anonymous true/g" /etc/mosquitto/mosquitto.conf
sed -i -E '$ a autosave_interval 1800' /etc/mosquitto/mosquitto.conf
sed -i -E "$ a persistence true" /etc/mosquitto/mosquitto.conf
sed -i -E '$ a persistence_file mosquitto.db' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a persistence_location /var/mosquitto/' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a listener 1883' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a listener 8888' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a protocol websockets' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a user root' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a allow_anonymous true' /etc/mosquitto/mosquitto.conf
#sed -i -E '$ a --------------' /etc/mosquitto/mosquitto.conf
touch /etc/ld.so.conf.d/liblocal.conf
#新增下面兩行配置
echo -e '/usr/local/lib64\n/usr/local/lib'>/etc/ld.so.conf.d/liblocal.conf
#重新整理
ldconfig
echo -e "啟動即時通訊服務..."
cd /usr/local/sbin
mosquitto -c /etc/mosquitto/mosquitto.conf -d
echo -e "-----------------------------------------------------------"
echo -e "配置防火牆..."
#安裝iptables-services
yum install iptables-services -y
#啟動firewalld服務
echo -e "設定開機啟動防火牆..."
systemctl enable firewalld.service
echo -e "啟動防火牆..."
systemctl start firewalld.service
echo -e "設定開機啟動防火牆規則..."
systemctl enable iptables.service
echo -e "啟動防火牆規則..."
systemctl start iptables.service
#檢視iptables現有規則
iptables -L -n
#先允許所有,不然有可能會杯具
iptables -P INPUT ACCEPT
#清空所有預設規則
iptables -F
#清空所有自定義規則
iptables -X
#所有計數器歸0
iptables -Z
echo -e "開啟各種服務埠..."
#開放1888 埠
iptables -A INPUT -p tcp --dport 1888 -j ACCEPT
#開放8888埠
iptables -A INPUT -p tcp --dport 1883 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
#開放8888埠
iptables -A INPUT -p udp --dport 5060 -j ACCEPT
#開放8888埠
iptables -A INPUT -p tcp --dport 8087 -j ACCEPT
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p tcp --dport 8086 -j ACCEPT
iptables -A INPUT -p tcp --dport 8085 -j ACCEPT
iptables -A INPUT -p tcp --dport 1935 -j ACCEPT
#儲存上述規則
service iptables save
#檢視狀態
systemctl restart iptables.service
echo -e "下面設定開機自動啟動各種服務..."
#echo -e 'mosquitto -c /etc/mosquitto/mosquitto.conf -d\ncd /usr/local/sbin/ ; ./opensipsctl start\nsystemctl restart WowzaStreamingEngine.service\nsystemctl restart iptables.service'>/etc/rc.d/rc.local
#2.加入以下命令
chmod +x /etc/rc.d/rc.local
sed -i -E '$ a mosquitto -c \/etc\/mosquitto\/mosquitto.conf -d' /etc/rc.d/rc.local
sed -i -E '$ a cd \/usr\/local\/sbin\/ ; .\/opensipsctl start' /etc/rc.d/rc.local
sed -i -E '$ a systemctl restart iptables.service' /etc/rc.d/rc.local
sed -i -E '$ a systemctl restart WowzaStreamingEngine.service' /etc/rc.d/rc.local