Linphone安卓端移植和開發(2)服務器端的搭建

Linphone服務器端的搭建

1. 簡單介紹

服務器端的搭建比較簡單,本次搭建使用opensips+rtpproxy的方式,因爲比較簡單嘛

opensips主要作用是信令的交換

rtpproxy主要作用是媒體流的轉發

後面的博客中我會介紹服務器端meidaproxy 和stun的配置

meidaproxy 同rtpproxy的作用一樣也是轉發的作用

stun主要爲了實現客戶端的點對點通信

2. rtpProxy搭建

rtpproxy 是一個開源項目

$ git clone -b master https://github.com/sippy/rtpproxy.git
$ git -C rtpproxy submodule update --init --recursive
$ cd rtpproxy
$ ./configure
$ make install 

啓動rtpproxy:

rtpproxy -l 192.168.1.134 -s udp:192.168.1.134:12221 -m 36000 -M 50000 -F

//查看啓動情況
netstat -tulpn | grep rtpproxy

3. opensips 搭建

  1. 安裝數據庫
ubuntu:

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
// 檢查是否安裝成功
sudo netstat -tap | grep mysql
// 進入數據庫
mysql -uroot -ppassword
// 修改遠程可連接
grant all on *.* to root@'%' identified by '數據庫密碼' with grant option;
flush privileges;

exit 
// 重啓mysql
service mysql restart


centos:

yum install mysql
yum install mysql-devel
yum install mariadb-server mariadb

  1. 安裝依賴包
Ubuntu:

$ sudo apt-get install gcc bison flex make openssl perl libdbi-perl git 
libdbd-mysql-perl
libdbd-pg-perl libfrontier-rpc-perl libterm-readline-gnu-perl 
libberkeleydb-perl libxml2 libxml2-dev
libxmlrpc-core-c3-dev libpcre3 libpcre3-dev 
libncurses5-dev ngrep libssl-dev
// 失敗了也沒關係,安裝的時候缺啥下啥

centos:
yum -y install gcc make zlib-devel wget gdb
yum -y install flex bison ncurses libncurses-dev ncurses-devel 
yum -y install lynx svn libxslt

  1. 開始編譯源碼
// 下載最新版opnsips源碼
http://download.opensips.org/
// 或者 git拉取2.4的源碼
git clone https://github.com/OpenSIPS/opensips.git -b 2.4 opensips-2.4
cd opensips-2.4
=====================================第1步=========================================
//執行命令
sudo make menuconfig
這是會出現一個圖形選擇列表,按照下面選擇,選擇的時候按空格選中,按q返回到上一級目錄
Configure Compile Options => Configure Excluded Modules
[*] db_mysql
[*] proto_tls
[*] tls_mgm
按q鍵返回上一級, => Configure Install Prefix
輸入安裝路徑/usr/loca/
選擇 => Save Changes 保存修改
按q返回,選擇 => Compile And Install OpenSIPS,回車安裝

=====================================第1步完成=====================================
opensips安裝之後的文件目錄:
?/sbin/中的可執行命令有如下:opensips 、opensipsctl 、 opensipsdbctl 、opensipsunix
?/etc/opensips/中的配置文件有:opensips.cfg、opensipsctlrc、osipsconsolerc
?/lib/opensips/中的庫文件有:modules和 opensipsctl兩個目錄
modules爲當前#opensips所支持的模塊

日誌位置/var/log/messages
/usr/local/share/doc/opensips幫助文檔

  1. 修改opensipsctlrc
cd /usr/local/etc/opensips/
sudo vim opensipsctlrc 

opensipsctlrc

SIP_DOMAIN= 192.168.1.134   //此處寫本機地址,如果有代理填寫proxy地址

#數據庫 MYSQL ORACLE PGSQL DB_BERKELEY DBTEXT均可
DBENGINE=MYSQL

#數據庫所在服務器主機名/IP均可
DBHOST=localhost

#數據庫名稱,默認使用opensips,可配置其它名稱
DBNAME=opensips

#數據庫訪問用戶,主要用於數據的讀寫,請在mysql添加用戶  ,如果不想添加用戶請直接使用root
DBWUSER=opensips
#DBWUSER=root

#數據庫訪問密碼,密碼必須爲DBWUSER對應用戶的密碼
DBWPW=“opensipsrw”

#數據庫管理用戶,用於數據庫、表創建與數據讀寫等,默認使用root,如有需要可以自行配置mysql用戶權限
DBROOTUSER=“root”
  1. 生成配置文件
cd /usr/local/sbin
osipsconfig

依次選擇
Generate OpenSIPS Script –> Residential Script–> Configure Residential Script
設置以下內容
#[*] ENABLE_TCP
#[*] ENABLE_TLS
#[*] USE_ALIASES
#[*] USE_AUTH
#[*] USE_DBACC
#[*] USE_DBUSRLOC
#[*] USE_DIALOG
#[*] USE_NAT

返回上一級目錄選擇
回車選擇
–> Generate Residential Script
生成新的配置文件(在/usr/local/etc/opensips/目錄下)


cd /usr/local/etc/opensips/
mv opensips.cfg opensips.cfg.old
mv opensips_residential_2018-5-3_1\:13\:3.cfg opensips.cfg
  1. 修改opensips.cfg
vim opensips.cfg

listen=udp:127.0.0.1:5060 修改爲listen=udp:本機ip:5060

如下
listen=udp:192.168.1.134:5060   # CUSTOMIZE ME
listen=tcp:192.168.1.134:5060   # CUSTOMIZE ME
listen=tls:192.168.1.134:5061   # CUSTOMIZE ME


找到下面的部分將CUSTOMIZE ME標識的地址換爲自己服務器的ip
####  NAT modules
loadmodule "nathelper.so"
modparam("nathelper", "natping_interval", 10)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", "SIP_PING_FLAG")
modparam("nathelper", "sipping_from", "sip:[email protected]") #CUSTOMIZE ME
modparam("nathelper", "received_avp", "$avp(received_nh)")

loadmodule "rtpproxy.so"
modparam("rtpproxy", "rtpproxy_sock", "udp:172.20.142.205:12221") # CUSTOMIZE ME


  1. 創建數據庫
cd /usr/local/sbin
opensipsdbctl create

添加數據庫成員opensips,如果使用的root略過此步驟

//創建用戶並給這個用戶賦予權限   這個密碼跟前面的DBWPW一致
mysql -u root -p

mysql>grant all privileges on opensips.* to opensips@localhost identified by '123456';
mysql>flush privileges;





//添加用戶
opensipsdbctl add 10001 123456
opensipsdbctl add 10002 123456
  1. 啓動關閉opensips

    opensipsctl start/stop/restart
    
    //查看啓動情況
    netstat -tulpn | grep opensips
    
    
  2. 錯誤解決

    ERROR:db_mysql:db_mysql_connect: driver error(1045): Access denied for user 'opensips'@'localhost' (using password: YES)
    ERROR:db_mysql:db_mysql_new_connection: initial connect failed
    ERROR:core:db_do_init: could not add connection to the pool
    ERROR:uri:mod_init: Could not connect to database
    ERROR:core:init_mod: failed to initialize module uri
    ERROR:core:main: error while initializing modules
    解決辦法:
    
    mysql -u root -p
    mysql> grant all privileges on opensips.* to opensips@localhost identified by 'opensipsrw';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    

MediaProxy 這個後面博客會重新寫

  1. 安裝依賴
apt-get install mediaproxy-dispatcher mediaproxy-relay mediaproxy-web-sessions
  1. 安裝MediaProxy

wget http://download.ag-projects.com/agp-debian-gpg.key 
apt-key add agp-debian-gpg.key
vi /etc/apt/sources.list
最後位置添加

deb http://ag-projects.com/ubuntu xenial main 
deb-src http://ag-projects.com/ubuntu xenial main

apt-get update
apt-get install mediaproxy-dispatcher mediaproxy-relay mediaproxy-web-sessions


cd /etc/mediaproxy/tls/
cp /usr/share/doc/mediaproxy-common/tls/* .
cd ..
vi config.ini
  1. config.ini
tag
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章