OpenSIPS是目前世界上主流的兩個(gè)SIP軟交換引擎(其中另外一個(gè)是kamailio)或者SIP信令服務(wù)器(個(gè)人認(rèn)為是比較正確的稱謂)。關(guān)于Opensips的基礎(chǔ)和一些參數(shù)配置和安裝方式筆者在很久以前的歷史文檔中有非常多的介紹。最近,很多用戶使用OpenSIPS軟交換平臺(tái)做freeSBC或者其他的功能業(yè)務(wù)的實(shí)現(xiàn),這些客戶遇到很多的疑問(wèn)和安裝中也遇到很多問(wèn)題,所以,為了讓客戶能夠快速安裝opensips, 筆者通過(guò)一個(gè)最完整和穩(wěn)定的方式完整實(shí)現(xiàn)一次安裝過(guò)程,幫助客戶能夠快速準(zhǔn)確地安裝好opensips,數(shù)據(jù)庫(kù),CLI和界面管理設(shè)置。
另外提醒讀者,OpenSIPS是一個(gè)SIP信令服務(wù)器,它的功能非常強(qiáng)大,也非常靈活,cfg配置的核心文件可以通過(guò)rfc3261結(jié)合第三方應(yīng)用做不同場(chǎng)景中的流程處理。因此,用戶學(xué)習(xí)OpenSIPS時(shí)就會(huì)面對(duì)很多的問(wèn)題。比較常見(jiàn)的“大概”可以支持的業(yè)務(wù)場(chǎng)景如下,但不僅限于于此。
如果讀者不明白這些相關(guān)的基本知識(shí)點(diǎn)的話,可以通過(guò)微信號(hào)查找2018年的歷史文檔,查找 “Kamailio/OpenSIPS學(xué)習(xí)筆記”可以獲得學(xué)習(xí)資料。
Kamailio/OpenSIPS學(xué)習(xí)筆記-SIP相關(guān)基礎(chǔ)
Kamailio/OpenSIPS學(xué)習(xí)筆記-SIP相關(guān)基礎(chǔ)
一些客戶遇到的主要的問(wèn)題是操作系統(tǒng)選擇錯(cuò)誤,另外安裝的opensips的版本和界面控制系統(tǒng)CP的安裝錯(cuò)誤。因此,筆者選擇目前官方最穩(wěn)定的安裝方式進(jìn)行安裝,幫助客戶或者其他想學(xué)習(xí)opensips的用戶能夠快速上手,并且無(wú)需再查找其他資源,保證你安裝環(huán)境能夠正常工作。筆者首先明確安裝配置環(huán)境,然后通過(guò)一步步快速安裝方式安裝opensips,安裝數(shù)據(jù)庫(kù),最后安裝opensips的界面CP,最后訪問(wèn)界面。
提醒讀者:根據(jù)官方人士的推薦,為了保證為用戶提供完整穩(wěn)定的安裝流程,筆者僅測(cè)試當(dāng)前的opensips 數(shù)據(jù)源,僅測(cè)試Debian 10.6(buster) 版本。如果讀者安裝錯(cuò)誤,可能是其他支持包版本或者連接的問(wèn)題,請(qǐng)自行更新修復(fù)。
1、安裝配置環(huán)境準(zhǔn)備
在安裝opensips或者其他的開(kāi)源軟件時(shí),一些用戶經(jīng)常犯的錯(cuò)誤時(shí),不咨詢官方資源,不看官方說(shuō)明,根據(jù)自己的喜好或者其他業(yè)務(wù)要求原因,想當(dāng)然安裝一個(gè)操作系統(tǒng)。因此,最后導(dǎo)致很多支持包錯(cuò)誤,安裝錯(cuò)誤等問(wèn)題。這里,筆者不是說(shuō)其他的操作系統(tǒng)不支持或者不能安裝,為了減少時(shí)間浪費(fèi),最好按照官方推薦來(lái)配置,除非有業(yè)務(wù)需求必須安裝到一個(gè)指定的操作系統(tǒng),否則,筆者建議大家按照官方的配置建議來(lái)安裝。這里,筆者安裝的測(cè)試環(huán)境包括:
Debian 10.6(buster) 版本,當(dāng)然用戶也可以安裝其他的操作系統(tǒng)或者其他的版本,但是“可能”發(fā)生支持包錯(cuò)誤(至少目前筆者測(cè)試安裝ubutun-18/20發(fā)生了錯(cuò)誤)。根據(jù)官方推薦,安裝Debian 10.6(buster)版本。
OpenSIP-3.1 穩(wěn)定版
OpenSIPS Control Panel class 8
如果讀者非常熟悉操作系統(tǒng)和其支持包包括源代碼安裝的話,也可以通過(guò)源代碼安裝方式實(shí)現(xiàn)。對(duì)于一般基礎(chǔ)用戶,最好查看官方的數(shù)據(jù)配置源:
2、安裝OpenSIPS
用戶安裝好推薦的操作系統(tǒng)Debian-10以后,以root賬號(hào)登錄系統(tǒng)。執(zhí)行以下幾個(gè)步驟的操作。首先安裝支持包,創(chuàng)建OpenSIPS的數(shù)據(jù)源:
apt install gnupg2
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 049AD65B
echo "deb https://apt.opensips.org buster 3.1-releases" >/etc/apt/sources.list.d/opensips.list
echo "deb https://apt.opensips.org buster cli-releases" >/etc/apt/sources.list.d/opensips-cli.list
如果執(zhí)行權(quán)限錯(cuò)誤的話,可能是登錄用戶沒(méi)有讀寫(xiě)權(quán)限,不能寫(xiě)入sources.list.d/opensips.list文件,請(qǐng)檢查用戶執(zhí)行權(quán)限再次執(zhí)行。
配置好數(shù)據(jù)以后,再次執(zhí)行系統(tǒng)更新:
apt-get update
系統(tǒng)執(zhí)行更新以后,會(huì)看到opensips的數(shù)據(jù)加載到了記錄中。
確保成功保存文件配置
然后,執(zhí)行安裝命令,安裝openisps和CLI 工具。注意,opensips-3.1以后對(duì)工具做了很多的優(yōu)化和升級(jí),支持了更多的功能。CLI工具安裝也是獨(dú)立完成。
apt install opensips
apt install opensips-cli
安裝CLI工具,如果CLI根據(jù)安裝失敗,其他后續(xù)步驟免談。沒(méi)有cli工具無(wú)法訪問(wèn)opensips引擎和CP界面。因此,我們一定要確保CLI工具也成功安裝。
安裝好opensips和opensips CLI以后,我們還需要安裝opensips的其他支持模塊,執(zhí)行命令:
apt install opensips-*
如果以上步驟全部正常安裝成功的話,說(shuō)明opensips和CLI已經(jīng)安裝成功。
3、配置系統(tǒng)啟動(dòng)服務(wù)
安裝好opensips和CLI以后,我們需要開(kāi)啟opensips的系統(tǒng)服務(wù),執(zhí)行以下命令:
systemctl enable opensips // 開(kāi)啟服務(wù)
systemctl start opensips // 啟動(dòng)服務(wù) stop 關(guān)閉
systemctl status opensips // 查看opensips狀態(tài)
到這一步為止,我們已經(jīng)成功安裝了opensips, CLI和開(kāi)啟了系統(tǒng)服務(wù)。接下來(lái),我們繼續(xù)安裝數(shù)據(jù)庫(kù)。
4、OpenSIPS數(shù)據(jù)庫(kù)安裝配置
OpenSIPS使用MYSQL來(lái)存儲(chǔ)一些必要的配置信息和模塊信息,例如需要存儲(chǔ)subscribers和密碼,撥號(hào)規(guī)則,路由配置等信息。這里,我們開(kāi)始安裝mysql和相關(guān)的支持包。首先,安裝mysql的db,執(zhí)行命令:
apt install mariadb-server
apt install mariadb-server
說(shuō)明,這里安裝的數(shù)據(jù)庫(kù)是本地安裝(和opensips同一服務(wù)器),無(wú)需訪問(wèn)互聯(lián)網(wǎng)資源,無(wú)密碼設(shè)置。
然后,通過(guò)CLI命令,創(chuàng)建opensips數(shù)據(jù)庫(kù):
opensips-cli -x database create opensips
注意輸入的mysql url地址,這里輸入的是mysql://localhost。如果有獨(dú)立安裝的數(shù)據(jù)庫(kù)服務(wù)器,輸入其他第三方地址。具體說(shuō)明,查看mysql手冊(cè)。
數(shù)據(jù)庫(kù)和相關(guān)的表創(chuàng)建成功以后,查看數(shù)據(jù)庫(kù)表狀態(tài),執(zhí)行命令:
mysql opensips -e "show tables"
5、安裝OpenSIPS Control Panel界面
用戶在確認(rèn)以上所有步驟安裝成功以后,如果需要配置CP界面的話,我們可以通過(guò)安裝步驟實(shí)現(xiàn)界面配置安裝。如果僅通過(guò)CLI操作實(shí)現(xiàn)opensips配置的話,無(wú)需安裝界面系統(tǒng)。通過(guò)界面配置實(shí)現(xiàn)OpenSIPS的配置相對(duì)比較簡(jiǎn)單,筆者建議用戶通過(guò)安裝界面來(lái)一步步實(shí)現(xiàn)cfg的文件配置流程,如果一開(kāi)始就通過(guò)cfg配置的話,一些新手可能非常迷惑。所以,我們花費(fèi)一點(diǎn)時(shí)間來(lái)配置控制界面。首先,我們需要安裝一些必要的支持包,我們需要執(zhí)行以下命令:
apt-get install -y apache2;
apt-get install -y php php-curl php-gd php-pear php-cli php-mysql php-apcu;
apt-get install libapache2-mod-php unzip;
以上支持包安裝完成以后,再執(zhí)行下載CP安裝命令:
cd /var/www/html;
wget https://github.com/OpenSIPS/opensips-cp/archive/master.zip;
unzip master.zip;
mv opensips-cp-master opensips-cp
chown -R www-data:www-data /var/www/html/opensips-cp/
mysql -Dopensips < /var/www/html/opensips-cp/config/db_schema.mysql
cp /var/www/html/opensips-cp/config/tools/system/smonitor/opensips_stats_cron /etc/cron.d/
mysql -e "CREATE USER 'opensips'@'localhost' IDENTIFIED BY 'opensipsrw';"
mysql -e "GRANT ALL PRIVILEGES ON opensips.* TO 'opensips'@'localhost';"
mysql -e "FLUSH PRIVILEGES"
systemctl restart cron
拷貝文件到cp 目錄截圖:
最后配置apache 文件訪問(wèn)界面系統(tǒng),訪問(wèn)默認(rèn)apache配置文件目錄(/etc/apache2/sites-available/000-default ),編輯配置文件000-default,替換成以下文件配置:
<VirtualHost *:80>
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/opensips-cp/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/opensips-cp>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all denied
</Directory>
Alias /cp /var/www/html/opensips-cp/web
<DirectoryMatch "/var/www/html/opensips-cp/web/tools/.*/.*/(template|custom_actions|lib)/">
Require all denied
</DirectoryMatch>
</VirtualHost>
重新啟動(dòng)服務(wù)器,su -, 然后reboot。
到此為止,OpenSIPS的控制界面已經(jīng)安裝成功。
6、通過(guò)瀏覽器訪問(wèn)OpenSIPS Control Panel 界面
通過(guò)以上命令安裝以后,用戶就可以通過(guò)瀏覽器,輸入OpenSIPS的IP地址/cp來(lái)訪問(wèn)OpenSIPS Control Panel控制界面,例如,筆者的是192.168.0.102/cp。登錄用戶名稱,admin,密碼是opensips( 前面已設(shè)置)
7、總結(jié)
OpenSIPS和控制界面,數(shù)據(jù)庫(kù)安裝是相對(duì)比較復(fù)雜的過(guò)程,很多用戶出現(xiàn)的錯(cuò)誤大部分都是因?yàn)榘姹镜腻e(cuò)誤或者操作系統(tǒng)選擇不匹配。筆者為用戶提供了一個(gè)完整的opensips,數(shù)據(jù)庫(kù)和界面配置的配置方式,并且推薦了相對(duì)比較穩(wěn)定的版本。通過(guò)以上一步步的配置,用戶就可以實(shí)現(xiàn)OpenSIPS,數(shù)據(jù)庫(kù)和界面的配置。當(dāng)然,這僅是萬(wàn)里長(zhǎng)征的第一步,為了實(shí)現(xiàn)OpenSIPS所提供的強(qiáng)大功能,用戶需要首先創(chuàng)建分機(jī),配置路由, 均衡負(fù)載,HA或者推薦第三方的集成,例如和Asterisk或者FreeSWITCH媒體服務(wù)器的集成等。
參考資料:
www.opensips.org
www.opensips.org.cn
www.freesbc.cn
www.asterisk.org.cn