1. 程式人生 > >mosquitto 和 opensips 安裝及相關配置

mosquitto 和 opensips 安裝及相關配置

MQTT即時通訊伺服器安裝,SIP電話伺服器快速安裝,已寫成一個shell檔案,執行即可安裝,不用輸入繁瑣的命令
Mosquitto(MQTT即時通訊伺服器)

Mosquitto一款實現了訊息推送協議 MQTT v3.1 的開源訊息代理軟體,提供輕量級的,支援可釋出/可訂閱的的訊息推送模式,使裝置對裝置之間的短訊息通訊變得簡單,比如現在應用廣泛的低功耗感測器,手機、嵌入式計算機、微型控制器等移動裝置。

opensips(SIP電話伺服器)

OpenSIPS是一個成熟的開源SIP伺服器,除了提供基本的SIP代理及SIP路由功能外,還提供了一些應用級的功能。OpenSIPS

的結構非常靈活,其核心路由功能完全通過指令碼來實現,可靈活定製各種路由策略,可靈活應用於語音、視訊通訊、IM以及Presence等多種應用。

#!/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