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