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

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

  • 設置安卓手機賬號爲1001

  • 用蘋果手機撥通安卓手機, PortSIP UC通話界面

  • 安卓手機, Linphone通話界面

  • 通話完成後在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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章