zoukankan      html  css  js  c++  java
  • Ubuntu18.04 安装opensips,实现局域网内sip语音视频通话

    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过程应该不报错,应为这样
      成功mark的提示

    2. 进入菜单

    成功进入菜单

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

    2.1 选择mysql模块

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

    2.2 设置配置文件安装位置

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

    2.3 保存修改

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

    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
    

    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退出命令,生成新的配置文件
    

    osipsconfig

    osipsconfig

    备份旧文件,修改新文件

    //备份原配置文件
    # 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
    
  • 相关阅读:
    METHODS OF AND APPARATUS FOR USING TEXTURES IN GRAPHICS PROCESSING SYSTEMS
    Display controller
    Graphics processing architecture employing a unified shader
    Graphics-Processing Architecture Based on Approximate Rendering
    Architectures for concurrent graphics processing operations
    Procedural graphics architectures and techniques
    DYNAMIC CONTEXT SWITCHING BETWEEN ARCHITECTURALLY DISTINCT GRAPHICS PROCESSORS
    Thermal zone monitoring in an electronic device
    System and method for dynamically adjusting to CPU performance changes
    Framework for Graphics Animation and Compositing Operations
  • 原文地址:https://www.cnblogs.com/jomzhang/p/15039846.html
Copyright © 2011-2022 走看看