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过程应该不报错,应为这样

2. 进入菜单

  • 操作提示:空格/回车选择,q返回上一级

2.1 选择mysql模块

  • 选择Configure Compile Options,再选择 Configure Excluded Modules,按空格选中安装mysql模块

2.2 设置配置文件安装位置

  • 选择mysql模块后按q返回,选择Configure Install Prefix,回车默认安装在/usr/local/下

2.3 保存修改

  • 选择Save Changes 保存修改,提示需要libmysqlclient-dev不用理会,前面已经安装了

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

  • 操作内容
//依次选择—> 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

注意配置数据库连接,若都用默认且mysql服务在本机可不用配置

  • 前面配置的opensipsctlrc只是辅助工具用的不是opensips主程序用的
  • 官网说明配置文件opensips.cfg配置数据库方式为,故前一步打开的opensips.cfg文件内有关于mysql相关的配置要修改(可修改地方通常标记CUSTOMIZE ME),比如mysql的地址,端口,库名称按如下格式修改,例如:mysql://root:123456@192.168.1.10: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

Ubuntu18.04 安装opensips,实现局域网内sip语音视频通话的更多相关文章

  1. Ubuntu18.04安装mysql5.7

    Ubuntu18.04安装mysql5.7 1.1安装 首先执行下面三条命令: # 安装mysql服务 sudo apt-get install mysql-server # 安装客户端 sudo a ...

  2. Ubuntu18.04安装RabbitMQ

    Ubuntu18.04安装RabbitMQ 2018年06月10日 19:32:38 dmfrm 阅读数:2492    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  3. ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)

    ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题      https://blog.csdn.net/NeptuneClouds/article/details/80995 ...

  4. ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4

    1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...

  5. Ubuntu18.04安装Virtualenv虚拟环境

    在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...

  6. Ubuntu18.04安装thunderbird并设置中文

    Ubuntu18.04安装thunderbird并设置中文 安装thunderbird sudo apt-get install thunderbird 安装中文包 sudo apt-get inst ...

  7. Ubuntu18.04安装Docker, centos7安装Docker

    Ubuntu18.04安装Docker 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装. $ sudo a ...

  8. Ubuntu18.04安装和配置Java JDK11并卸载自带OpenJDK

    卸载自带的OpenJDK方法: 在终端执行命令:sudo apt-get remove openjdk* Ubuntu18.04安装JDK11.0.2 前面步骤一样,可参考:https://www.c ...

  9. Ubuntu18.04 安装 oh-my-zsh

    目录 Ubuntu18.04 安装 oh-my-zsh 目录 安装zsh 安装curl 安装oh-my-zsh 使用zsh替换bash 修改终端主题和配色 修改终端配置 隐藏用户和主机名 效果图 Ub ...

随机推荐

  1. SLAM的通用框架:GSLAM

    SLAM的通用框架:GSLAM GSLAM: A General SLAM Framework and Benchmark 论文链接: http://openaccess.thecvf.com/con ...

  2. YOLOv3和YOLOv4长篇核心综述(上)

    YOLOv3和YOLOv4长篇核心综述(上) 对目标检测算法会经常使用和关注,比如Yolov3.Yolov4算法. 实际项目进行目标检测任务,比如人脸识别.多目标追踪.REID.客流统计等项目.因此目 ...

  3. TensorRT Analysis Report分析报告

    TensorRT Analysis Report 一.介绍 TensorRT是一个高性能的深度学习推理(Inference)优化器,可以为深度学习应用提供低延迟.高吞吐率的部署推理.TensorRT可 ...

  4. 单点突破:MySQL之索引

    前言 开发环境:MySQL5.7.31 什么是索引 在MySQL中,索引(Index)是帮助高效获取数据的数据结构. 我们可以将数据库理解为一本书,数据库中的各个数据列(column)就是目录中的章节 ...

  5. 由一次PasswordBox密码绑定引发的疑问 ---> WPF中的附加属性的定义,以及使用。

    1,前几天学习一个项目的时候,遇到了PasswordBox这个控件,由于这个控件的Password属性,不是依赖属性,所以不能和ViewModel层进行数据绑定. 2,但是要实现前后端彻底的分离,就需 ...

  6. 小Z的袜子(hose) &&作业 (莫队)

    莫队:一种非常优雅的暴力,时间复杂度一般情况下是n*根号n,还是很优秀的. 今天水了三道莫队题,对普通莫队有了些了解 1.莫队l和r为指针,维护当前区间的某些信息,一般可以是当前区间不同权值的个数,( ...

  7. NOIP模拟测试25「字符串·乌鸦喝水·所陀门王的宝藏(陀螺王)」

    字符串 题解 没看出catalan怎么办 dp打表啊! 考虑大力dp拿到30分好成绩!顺便收获一张表 打表发现$C_{n+m}^{m}-C_{n+m}^{m-1}$ 仔细观察然后发现其实就是之前的网格 ...

  8. 带你掌握4种Python 排序算法

    摘要:在编程里,排序是一个重要算法,它可以帮助我们更快.更容易地定位数据.在这篇文章中,我们将使用排序算法分类器对我们的数组进行排序,了解它们是如何工作的. 本文分享自华为云社区<Python ...

  9. 轻松吃透实时时钟芯片DS1302软硬件设计,看完秒懂

    今天我们来讨论一款老掉牙的实时时钟芯片DS1302.什么是实时时钟(RealTime Clock, RTC)呢?为什么我们需要它呢?假设你使用单片机实现万年历应用,一般的做法是这样的:设置中断后判断1 ...

  10. 关于Ubuntu的超级管理员Root的切换及初始密码设置

    背景介绍 总有一些操作,可能需要更高的超级管理员权限才能进行,甚至才可见有些文件,所以在Linux中我们需要切换到Root用户,也就是对应的Windows的Administrator账户. 从当前用户 ...