Ubuntu18.04 安裝opensips,實現區域網內sip語音視訊通話

jomz 發表於 2021-07-21

Ubuntu18.04直接安裝opensips

  • 本人實踐親測有效,用docker安裝opensips嘗試多次均無法連線mysql資料庫,故舍棄,直接在主機上安裝opensips
  • 部分內容參考自:https://www.jianshu.com/p/db19658a02a1

建立目錄,下載程式解壓,切換到解壓目錄

# mkdir /home/opensips
# cd /home/opensips
# wget http://download.opensips.org/2.4.11/opensips-2.4.11.tar.gz
//解壓
# tar -zxvf opensips-2.4.11.tar.gz
//切換目錄
# cd  opensips-2.4.11

安裝依賴

# apt update
# apt install gcc -y
# apt install g++ -y
# apt install build-essential -y
//mysql必須為5.7版本,服務端已經裝好docker,這裡就不裝了,若要安裝,則安裝下,要去配置檔案中註釋監聽地址 # 127.0.0.1
// #apt-get install mysql-server 
# apt install mysql-client
# apt install libmysqlclient-dev -y
# apt install pkg-config
# apt install libssl-dev

# apt-get install perl libdbi-perl libdbd-mysql-perl libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl libberkeleydb-perl

# apt-get install bison flex libncurses5 libncurses5-dev

編譯程式碼

1. mark編譯包

# make menuconfig
  • mark過程應該不報錯,應為這樣
    成功mark的提示

2. 進入選單

成功進入選單

  • 操作提示:空格/回車選擇,q返回上一級

2.1 選擇mysql模組

  • 選擇Configure Compile Options,再選擇 Configure Excluded Modules,按空格選中安裝mysql模組
    選擇mysql模組

2.2 設定配置檔案安裝位置

  • 選擇mysql模組後按q返回,選擇Configure Install Prefix,回車預設安裝在/usr/local/下
    設定配置檔案安裝位置

2.3 儲存修改

  • 選擇Save Changes 儲存修改,提示需要libmysqlclient-dev不用理會,前面已經安裝了
    Save Changes 儲存修改

2.4 編譯安裝

  • 按q返回,選擇Compile And Install OpenSIPS後回車,等待3分鐘左右編譯,正常依賴都裝好了不會提示依賴問題,若有提示可能是某依賴裝失敗了需要重灌,按Ctrl+c退出介面後用apt安裝包,若包安裝失敗原因有很多,或許是apt源沒配置對ubuntu的版本,又或許是相容性,具體需要百度查詢。
    編譯安裝

  • 安裝完成,提示Press any to return to menuconfig後按Exit & Save All Changes後退出

安裝完成

配置資料庫

切換目錄

# cd /usr/local/etc/opensips

編輯opensipsctlrc檔案(3.0版本後無此檔案)

# vim opensipsctlrc
  • 配置項裡的內容修改了只對本工具有效,這個工具用來生成opensips資料庫和sip的使用者名稱和密碼用的工具
    參考檔案

登入mysql,建立oepnsips使用者

  • 登入mysql後,建立opensips要用的新使用者opensips,這裡用他預設使用者名稱opensips和密碼opensipsrw
CREATE USER 'opensips'@'%' IDENTIFIED BY 'opensipsrw';

GRANT ALL ON opensips.* TO 'opensips'@'%';

flush privileges;

建立opensips資料庫

//進入資料夾
# cd /usr/local/sbin
//建立資料庫,這時候如果mysql版本為8.0以上的話會列出一系列編碼選擇,得mysql5.7版本不會出現這問題
opensipsdbctl create
//表建立完成後(提示的兩個問題都選n)

參考

  • 建立的表結構如下

表結構

生成特定配置檔案

//進入目錄
# cd /usr/local/etc/opensips
# osipsconfig

osipsconfig

  • 操作內容
//依次選擇—> Generate OpenSIPS Script —> Residential Script —> Configure Residential Script

//選中如下幾項[*] ENABLE_TCP[*] USE_AUTH[*] USE_DBACC[*] USE_DBUSRLOC[*] USE_DIALOG

//按q返回,選擇 —> Generate Residential Script 回車,生成新的配置檔案,檔案格式為opensips_residential_xxxxx.cfg,按qqq退出命令,生成新的配置檔案

osipsconfig

osipsconfig

備份舊檔案,修改新檔案

//備份原配置檔案
# mv opensips.cfg opensipsold.cfg1
//用生成的opensips_residential_xxx.cfg替換原先的opensips.cfg:
# mv opensips_residential_2021-7-21_6:35:0.cfg opensips.cfg
//編輯新生成的配置檔案,修改監聽埠和ip,ip把127.0.0.1改為自己的ip,儲存
# vim opensips.cfg

修改配置檔案

注意配置資料庫連線,若都用預設且mysql服務在本機可不用配置

  • 前面配置的opensipsctlrc只是輔助工具用的不是opensips主程式用的
  • 官網說明配置檔案opensips.cfg配置資料庫方式為,故前一步開啟的opensips.cfg檔案內有關於mysql相關的配置要修改(可修改地方通常標記CUSTOMIZE ME),比如mysql的地址,埠,庫名稱按如下格式修改,例如:mysql://root:[email protected]:3360/opensips

資料庫連線配置

修改配置檔案

建立賬號

opensipsctl add 1000 123456  //建立賬號1000 密碼123456
opensipsctl add 1001 123456  //建立賬號1001 密碼123456
//建立賬號將在表subscriber新增一條記錄,也可以在資料庫直接修改

常用命令

sudo opensipsctl start 啟動服務

sudo opensipsctl stop 停止服務

sudo opensipsctl restart 重啟服務

啟用

# opensipsctl start

手機安裝軟體測試

  • 安卓手機可以裝個Linphone

  • 蘋果手機可以裝個PortSIP UC

  • 設定蘋果手機賬號為1000
    Ubuntu18.04 安裝opensips,實現區域網內sip語音視訊通話

  • 設定安卓手機賬號為1001
    Ubuntu18.04 安裝opensips,實現區域網內sip語音視訊通話

  • 用蘋果手機撥通安卓手機, PortSIP UC通話介面
    Ubuntu18.04 安裝opensips,實現區域網內sip語音視訊通話

  • 安卓手機, Linphone通話介面
    Ubuntu18.04 安裝opensips,實現區域網內sip語音視訊通話

  • 通話完成後在acc表會新增1條INVITE記錄和一條BYE記錄

通話記錄

附錄:注意事項,異常項

//後面啟動時候一直提示:ERROR: PID file /var/run/opensips.pid does not exist -- OpenSIPS start failed
//應該是mysql版本問題,再裝一個5.7版本的mysql試試
//docker裝mysql5.7  
# docker pull mysql:5.7

# docker run -itd --name mysql57 \
-p 3360:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

//如果建立使用者時提示“ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN”,
//可修改opensipsctlrc檔案將SIP_DOMAIN設為本機域名或IP地址

//檢視本機apt可安裝的mysql版本,如果最新的版本為5.7就安裝5.7
apt-cache madison mysql-server