本人实践亲测有效,用docker安装opensips尝试多次均无法连接mysql数据库,故舍弃,直接在主机上安装opensips
opensips目前最新是3.2.x,但由于3.x版本后砍了opensipsctlrc配置项,无法自动生成数据库,官方是3.0后版本推荐手动新增库、新增表2张表,但没看到用户怎么新增,故只实践2.4.11版本。
官方推荐的3.x的mysql配置文件以及2张表数据结构,参考,本项目未使用
//解压
//切换目录
//mysql必须为5.7版本,服务端已经装好docker,这里就不装了,若要安装,则安装下,要去配置文件中注释监听地址 # 127.0.0.1
// #apt-get install mysql-server
# make menuconfig
mark过程应该不报错,应为这样
选择Configure Compile Options,再选择 Configure Excluded Modules,按空格选中安装mysql模块
选择mysql模块后按q返回,选择Configure Install Prefix,回车默认安装在/usr/local/下
选择Save Changes 保存修改,提示需要libmysqlclient-dev不用理会,前面已经安装了
按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
# vim opensipsctlrc
配置项里的内容修改了只对本工具有效,这个工具用来生成opensips数据库和sip的用户名和密码用的工具
登录mysql后,创建opensips要用的新用户opensips,这里用他默认用户名opensips和密码opensipsrw
CREATE USER 'opensips'@'%' IDENTIFIED BY 'opensipsrw';
GRANT ALL ON opensips.* TO 'opensips'@'%';
flush privileges;
//进入文件夹
# cd /usr/local/sbin
//创建数据库,这时候如果mysql版本为8.0以上的话会列出一系列编码选择,得mysql5.7版本不会出现这问题
opensipsdbctl create
//表创建完成后(提示的两个问题都选n)
//进入目录
# cd /usr/local/etc/opensips
# 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退出命令,生成新的配置文件
//备份原配置文件
# 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
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
手机扫一扫
移动阅读更方便
你可能感兴趣的文章