因爲之前接觸過kamailio,畢竟和opensips是同源的,很多使用方法、模塊都相似,安裝過程感到很熟悉,另外opensips有一個圖形控制界面menuconfig,能夠很方便的進行安裝、腳本生成及配置。
一、下載源碼
我下載的是當前穩定版本2.4.5:http://download.opensips.org/
解壓縮放進了目錄/usr/local/src/中。
二、安裝依賴
見源碼中的install以及Readme文件裏有相關說明。
可以看到如果想使用menuconfig就的安裝libncurses5-dev
切換root
1.安裝gcc
sudo apt-get install build-essential
3.安裝mysql
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysqlclient-dev
4.安裝其他:
sudo apt-get install perl libdbi-perl libdbd-mysql-perl libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libberkeleydb-perl
sudo apt-get install bison flex libncurses5 libncurses5-dev
三、安裝
使用menuconfig(推薦):
在/usr/local/src/opensips-2.4.5執行:
make menuconfig
進入控制檯界面:
箭頭上下,空格/回車選擇,q返回上一級。
依次選擇:Configure Compile Options—> Configure Excluded Modules,按空格選中[*] db_mysql
這步是配置安裝的模塊
按q返回上一級,選擇→ Configure Install Prefix,我是安裝在默認的/usr/local/下,可以自己輸入想安裝的位置。
選擇 —> Save Changes 保存修改。
按q返回,選擇 —> Compile And Install OpenSIPS,回車安裝。
如果出現依賴錯誤,先通過apt-get安裝依賴。
安裝完opensips的目錄結構是:
/usr/local/sbin/
裏面有可執行命令 opensips、opensipsctl (用來啓動/停止opensips)、 opensipsdbctl (用來創建數據庫)、opensipsunix等等
/usr/local/etc/opensips/
裏面有配置文件: opensips.cfg、opensipsctlrc、osipsconsolerc
/usr/local/lib64/opensips/
裏面是庫文件,其中/usr/local/lib64/opensips/裏面是當前opensips所支持的模塊, /usr/local/lib64/opensips/opensipsctl/ 是 /usr/local/sbin/中啓動命令要用到的文件。
四、配置
剛剛我們完成了opensips的編譯和安裝(除數據庫模塊),現在進行數據庫的安裝及配置以及opensips自身的配置。
1、數據庫安裝及配置
進入配置文件目錄:
cd /usr/local/etc/opensips
打開數據庫配置文件opensipsctlrc並修改
vim opensipsctlrc
把與mysql有關的註釋去掉(DB_PATH和USERCOL保留註釋)
創建數據庫(提示的兩個問題都選no)
opensipsdbctl create
2、opensips配置
進入/usr/local/etc/opensips/,運行osipsconfig命令。
osipsconfig
依次選擇—> Generate OpenSIPS Script —> Residential Script —> Configure Residential Script
選中如下幾項
[*] ENABLE_TCP
[*] USE_AUTH
[*] USE_DBACC
[*] USE_DBUSRLOC
[*] USE_DIALOG
USE_NAT如果需要使用rtpproxy的話就選擇,本次opensips是實現最基本的分機註冊和分機相互呼叫功能,故不用選擇。
按q返回,選擇 —> Generate Residential Script 回車,生成新的配置文件。按q(三次)退出命令
用生成的opensips_residential_xxx.cfg替換原先的opensips.cfg:
mv opensips_residential_2019-4-18_21:15:42.cfg opensips.cfg
vim opensips.cfg
修改opensips.cfg
監聽端口:
以下爲非必須項,出現相應問題再配置
如果日誌中報錯找不到數據庫地址之類的,嘗試增加這一行:
modparam("uri", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")
我的SIP軟電話註冊不上,將這個位置改動一下:
不使用menuconfig(簡述):
(參考https://blog.csdn.net/okhelp/article/details/82319290,和kamailio的安裝過程相同,可以參考我的kamailio安裝過程,當然配置文件的修改不能完全一樣)
1、在/usr/local/src/opensips-2.4.5下執行
make all
make install
2、具體模塊使用,單獨加載相應的模塊庫和配置模塊參數。
如加載MYSQL模塊:
#### USeR LOCation module
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", 10)
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME
opensips默認安裝完成後,會生成標準配置文件,該配置文件不需要數據庫即可以完成分機註冊和分機相互呼叫功能。
3、拷貝數據庫腳本
cp /usr/local/src/opensips-2.4.5/scripts/opensipsdbctl.mysql /usr/local/lib64/opensips/opensipsctl/
cp /usr/local/src/opensips-2.4.5/scripts/mysql /usr/local/lib64/opensips/opensipsctl/ -a
4、修改數據庫配置文件
vim /usr/local/etc/opensips/opensipsctlrc
將下面幾項修改或者去掉註釋
5、創建數據庫(參考上面的)
opensipsdbctl create
五、使用獨立的log文件
opensips使用syslog服務,所以缺省情況下日誌會進入/var/log/message這個文件,如果希望使用獨立的log文件,將opensips的日誌保存在/var/log/opensips.log,可以這樣設置:
touch /var/log/opensips.log
chmod 777 /var/log/opensips.log
vi /etc/rsyslog.d/opensips.conf
增加如下內容
local0.* /var/log/opensips.log
重啓syslog服務,啓動opensips,增加用戶和域名
service rsyslog restart
opensipsctl start
opensipsctl domain add xdty.org
opensipsctl add 1000 123456
opensipsctl add 1001 123456
服務啓動後,防火牆開啓tcp及udp的端口(我是直接關掉防火牆了=-= :service iptables stop )
iptables -I INPUT -p tcp --dport 5060-j ACCEPT
iptables -I INPUT -p udp --dport 5060 -j ACCEPT
六、一些相關命令
查看進程命令:
ps aux | grep opensips
查看UDP鏈接狀態;
netstat -ulpn | grep opensips
查看TCP鏈接狀態:
netstat -tlpn | grep opensips
查看實時日誌:
tail -f /var/log/opensips.log
七.撥打電話(MicroSIP軟電話)
SIP電話配置:
撥打電話(這個是兩個電話都在本機):
抓包(馬賽克打的很是清奇QAQ):
我的CSipsimple不知爲何還是註冊不上,解決了再說,嗯。
參考:https://blog.csdn.net/chengzhangbiji/article/details/39693015
http://www.cnblogs.com/bjzhanghao/archive/2013/02/13/2910903.html