首页 > 系统相关 >Ubuntu18.04安装opensips一次过,实现sip语音视频通话

Ubuntu18.04安装opensips一次过,实现sip语音视频通话

时间:2024-04-13 12:11:06浏览次数:24  
标签:sip cfg apt opensips install mysql Ubuntu18.04 安装

安装方式

  • apt命令安装,不建议使用此方式
    想要在ubuntu18.04(建议使用18.04,不出错)上通过apt命令安装的可以借鉴一下这篇文章,但是这篇文章中博主有错误并未解决,下面是解决方式

执行下列命令,使用 opensipsdbctl 创建数据库的时候会报错

opensipsdbctl create
# 错误信息为
ERROR: could not load the script in /usr/local//lib64/opensips/opensipsctl/opensipsdbctl.mysql for database engine MYSQL
ERROR: database engine not loaded - tried 'MYSQL'

解决方式,安装 opensips-mysql-module

apt install opensips-mysql-module

然后重新生成数据库

opensipsdbctl create
# 表创建完成后(提示的两个问题都选n)

然后结合上面博主的文章,也是一次过,无错误。⚠️这篇文章主要讲源码安装。

Ubuntu18.04源码安装opensips步骤,一次过

安装依赖

apt update
apt install gcc -y
apt install g++ -y
apt install build-essential -y
# apt-get install mysql-server  如果mysql数据库不在本机,可以不用在本机安装数据库,如果要在本机安装mysql,自行安装配置
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
# libncurses5重要
apt-get install bison flex libncurses5 libncurses5-dev

下载程序,解压,进入到解压目录

  • opensips目前最新是3.4.4,但是由于3.x之后版本砍了opensipsctlrc配置项,导致无法自动生成数据库,官方3.0版本后建议手动增加库,新增2张表,但是并没有明确表示如何新增用户,故建议大家不要使用3.0及之后的版本。本文以2.4.11版本为例。
wget https://download.opensips.org/opensips-2.4.11.tar.gz
//解压
tar -zxvf opensips-2.4.11.tar.gz
//切换目录
cd  opensips-2.4.11

opensips其它可下载版本

编译源码

  1. mark编译包
make menuconfig
  • mark过程应该不报错,这样为正常
  1. 进入菜单,操作提示:空格/回车选择,q返回上一级

    2.1 选择mysql模块
  • 选择Configure Compile Options,再选择 Configure Excluded Modules,上下键翻滚选择,按空格选中安装mysql模块

    2.2 设置配置文件安装位置
  • 选择mysql模块后按q返回,选择Configure Install Prefix,回车默认安装在/usr/local/下,可以输入自己想安装的路径,比如:/usr/local/opensips/

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

    2.4 编译安装
  • 按q返回,选择Compile And Install OpenSIPS后回车,开始编译,正常情况不会提示依赖问题,若有提示可能是某依赖装失败了需要重装,按Ctrl+c退出界面后用apt安装包,若包安装失败原因有很多,或许是apt源没配置对ubuntu的版本,又或许是兼容性,具体需要百度查询。
  • 安装完成,提示 Press any to return to menuconfig 后按 Exit & Save All Changes 后大概按三次q退出

配置数据源

切换目录

cd /usr/local/etc/opensips

编辑opensipsctlrc文件(3.0版本后无此文件)

vim opensipsctlrc
  • 配置项里的内容修改了只对本工具有效,这个工具用来生成opensips数据库和sip的用户名和密码用的工具

登录mysql,创建oepnsips用户

  • 登录mysql后,创建opensips要用的新用户opensips,使用默认的用户名opensips和密码opensipsrw
mysql -h 127.0.0.1 -u root -p
# 输入root用户的密码,登录到mysql中
# 创建用户和密码
CREATE USER 'opensips'@'%' IDENTIFIED BY 'opensipsrw';
# 赋权
GRANT ALL ON opensips.* TO 'opensips'@'%';
flush privileges;

创建opensips数据库

//进入文件夹
cd /usr/local/sbin
//执行该命令后会让选择数据库编码,选择最后一个gb18030,或者gb2312,这两个都是适用于简体中文的字符集,是 GB2312 和 GBK 的扩展,支持简体中文、繁体中文及一些特殊字符
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.cfg-back
# 用生成的opensips_residential_xxx.cfg替换原先的opensips.cfg:
mv opensips_residential_2024-4-13_10:30: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

创建账号

# 创建账号1000 密码123456
opensipsctl add 1000 123456  
# 创建账号1001 密码123456
opensipsctl add 1001 123456  
# 创建账号将在表subscriber新增一条记录,也可以在数据库直接修改
  • 注意事项,异常项
# 如果创建用户时提示
“ERROR: domain unknown: use usernames with domain or set default domain in SIP_DOMAIN”,
# 可修改opensipsctlrc文件将SIP_DOMAIN设为本机域名或外网IP地址

启用

opensipsctl start

启动的时候会如果报错,报错信息为,按照我上面的步骤一般不会报错

ERROR: PID file /var/run/opensips.pid does not exist -- OpenSIPS start failed

查看系统日志信息 /var/log/syslog

# 里面记录了具体的错误信息,然后根据错误信息很容易解决
tail -f /var/log/syslog -n 500
# 错误信息为: 造成这个的原因就是udp和tcp的ip设置为了服务器的外网ip而不是内网ip
Apr 12 23:20:40 localhost /usr/local/sbin/opensips[2385]: INFO:core:mod_init: initializing TCP-plain protocol
Apr 12 23:20:40 localhost /usr/local/sbin/opensips[2385]: ERROR:core:udp_init_listener: bind(30, 0x7fc65b3aa734, 16) on 1.xx.xx.160: Cannot assign requested address
Apr 12 23:20:40 localhost /usr/local/sbin/opensips[2385]: ERROR:core:trans_init_all_listeners: failed to init listener [1.xx.xx.160], proto udp
Apr 12 23:20:40 localhost /usr/local/sbin/opensips[2385]: ERROR:core:main: failed to init all SIP listeners, aborting

常用命令

# 启动服务
sudo opensipsctl start
# 停止服务
sudo opensipsctl stop 
# 重启服务
sudo opensipsctl restart 

手机安装软件测试

  • 安卓安装 Linphone
  • 苹果安装Linphone

苹果如果app store是国内账号,得换成美国账号才能下载这个APP,可以下载其他的sip app,比如PortSIP,app store里面有很多类型的软件。

以Linphone为例

  • 设置账号为1000的账号,另一个手机设置为1001的账号

  • 两个手机就可以实现语音和视频通话了
    -通话完成后在acc表会新增1条INVITE记录和一条BYE记录

opensips到此就搭建完成了

标签:sip,cfg,apt,opensips,install,mysql,Ubuntu18.04,安装
From: https://www.cnblogs.com/MrFace/p/18132632

相关文章

  • SIPA INAF U8145 危地马拉的贫困和不平等关系分析
    问题集3:SIPAINAFU8145危地马拉的贫困和不平等关系分析定于4月5日星期五晚上11:59,上传到Courseworks上的一个pdf文件中在本练习中,您将对危地马拉的贫困和不平等现象进行评估。数据来自《生活条件百科全书》(ENCOVI)2000年,由国家统计研究所(INE)收集危地马拉国家统计研究所,在世界银行......
  • opensips的dispatcher模块笔记
    操作系统:CentOS7.6_x64opensips版本:2.4.9dispatcher模块模块实现了基于目的地址的调度功能,可用作无状态负载均衡,但不能保证均匀分配。今天整理下CentOS7环境下opensips2.4.9的dispatcher模块使用示例,并提供运行效果视频。我将从以下几方面进行展开:模块数据库说明模块参......
  • windows10挂载ubuntu18.04虚拟机
    一、安装samba1、安装sudoapt-getinstallsamba2、验证安装结果,出现版本信息则安装成功。samba二、修改samba配置文件1、备份配置文件sudocp/etc/samba/smb.conf/etc/samba/smb.conf.bak2、查看备份结果 ls/etc/samba/3、修改配置文件sudovi/etc/samb......
  • 1、融合通信专业术语知识学习VOIP、SIP、350M集群等
    摘自百度:1、VoIP和SIP的概念:VoIP和SIP都是通信领域中的重要概念,它们各自具有独特的功能和应用场景,但也存在一定的联系。VoIP,即VoiceoverInternetProtocol,是一种语音通话技术,它利用互联网协议(IP)进行语音通话与多媒体会议。这种技术将模拟声音信号数字化,并以数据封包的形式在IP......
  • ubuntu18.04在下载编译Realsense-ros遇到的问题
    要注意的是,我是用小鱼的一键安装ros安装的ros,链接可以参考我的一篇文章开头有:ubuntu18.04系统中运行./build_ros.sh的时候遇到报错-CSDN博客我遇到的问题是csdn上搜不到的问题:CMakeErrorat/opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100(message): ......
  • Ubuntu18.04 安装opencv(亲测有用)
    1、安装依赖环境sudoapt-getinstallbuild-essentialsudoapt-getinstallcmakegitlibgtk2.0-devpkg-configlibavcodec-devlibavformat-devlibswscale-devsudoapt-getinstallpython-devpython-numpylibtbb2libtbb-devlibjpeg-devlibpng-devlibtiff-devl......
  • opensips数据库配置及数据表简介
    操作系统:CentOS7.6_x64opensips版本:2.4.9MySQL版本:5.7.38一、添加mysql支持1、安装mysql依赖库安装命令如下:wgethttps://repo.mysql.com/mysql57-community-release-el7.rpmrpm-ivhmysql57-community-release-el7.rpmrpm--importhttps://repo.mysql.com/RPM-GPG-......
  • IfcSIPrefix
    IfcSIPrefixTypedefinitionNOTE DefinitionaccordingtoISO/CD10303-41:1992AnSIprefixisthenameofaprefixthatmaybeassociatedwithanSIunit.ThedefinitionsofSIprefixesarespecifiedinISO1000(clause3).NOTE Theprefixdefinesmultip......
  • Gossip协议和Grpc协议的区别
    Gossip协议Gossip协议,也称为流言协议,是一种基于成员之间随机通信的分布式系统同步协议。它模仿社会中流言的传播方式,通过节点之间的随机交互传播信息,以此实现数据的最终一致性。Gossip协议特别适合于大规模、分布式的环境中,因为它能够很好地处理节点故障和网络分区问题。特点:......
  • SIP协议消息
    SIP协议消息关于SIP协议指定在端点之间传送状态的消息。每条标准化消息都按下面列出的数字进行索引。RFC3261单击此处展开目录要求回应1xx信息性消息2xx成功响应3xx重定向响应4xx请求失败响应5xx服务器故障响应6xx全局故障响应示例:播放自定义错误消息也......