基于ubuntu中使用mysql实现opensips用户认证的解决方法

 更新时间:2013年04月19日 08:59:54   作者:  
本篇文章小编为大家介绍,基于ubuntu中使用mysql实现opensips用户认证的解决方法。需要的朋友参考下

1 MySQL支持

1.1 MySQL模块支持

      默认安装时,不包含MySQL模块。

      opensipsctlrc文件中包含了数据库配置的信息,要想让opensips支持mysql数据库,在编译安装的时候

就要支持mysql模块。方法如下:

     (1)修改opensips中的Makefile.conf,在exclude_modules中去掉db_mysql,在include_modules中

添加db_mysql,然后重新编译安装。要添加支持的模块都可以这样操作。

     (2)编译时指定,make include_modules=”db_mysql” modules prefix=/  。

      在编译安装之前,需要安装mysql的开发包,要不编译通不过。方法如下:

      $sudo apt-get install libmysqlclient-dev 。

2.2 安装MySQL

      使用sudo opensipsdbctl create创建数据库在之前,要确认已经安装了mysql。安装方法如下:

       $sudo apt-get install mysql-server mysql-client

      安装过程中提示输入mysql的root用户密码。使用如下命令测试mysql是否安装成功

   $sudo mysql -p           输入刚才设置的root密码

       MySQL URL格式如下:

       mysql://username:password@domain/dbname

2.3 创建opensips数据库

       使用sudo opensipsdbctl create命令来创建数据库,这个过程中要求输入MySQL数据库root用户的密码,

就是上一步输入的密码。然后还有一些附加的表让你选择是否创建,选择之后opensips数据库创建成功。

       /sbin/opensipsdbctl是一个shell脚本,可以打开读一下它的代码就知道创建数据库是怎么一个过程了。首先,

它会把/etc/opensips/opensipsctlrc这个配置文件包含进来,然后根据这个配置文件来创建数据库,还涉及到

/lib/opensips/opensipsctl中的opensipsdbctl.base文件和 opensipsdbctl.mysql文件。

       可以进入opensips数据库查看一下有哪些表,用户认证要用的是subscriber表。

2 用户认证配置

      上一节中已经说明了怎么让opensips支持MySQL数据库,用户认证是在上一节的基础上完成的。

  这部分的主要工作是对opensips配置文件的修改,包括opensips.cfg和opensipsctlrc文件。配置文件opensips.cfg中

要修改全局变量、加载db_mysql.so、auth.so和auth_db.so动态库,并配置相应的参数,以及修改路由策略,同时配置文件

opensipsctlrc中也要修改一些参数。

  配置文件opensips.cfg如下:

  https://www.jb51.net/article/35752.htm

  配置的过程中在网上找了很多资料,通常是配置文件检查能通过,但总是不能运行opensips,对这些资料深表怀疑,不知道

他们有没有真正实践过!

  最后还是决定看官方的说明,如opensips mysql installation的英文PDF、opensips源码包中的INSTALL文件等。

INSTALL文件中只说明了要向opensips.cfg文件中添加那些配置代码,而没有详细说明要把这些语句加在什么位置,而且

其中好像还有错误,不能使用break,而是exit。opensips mysql installation的英文PDF中说明了具体的位置,但是还要

根据自己的实际情况来配置。

  配置完成以后要检查配置文件语法是否正确,命令如下:

  $sudo  opensips –c

  检查通过以后启动opensips,命令如下:

  $sudo opensipsctl start

  如果启动时出现错误,查看系统日志了解具体原因,然后针原因解决问题。

  $vim /var/log/syslog

3 测试

  添加SIP用户:

  语法:opensipsctl add <username> <password>

  opensipsctl add alice@192.168.139.121 123456

  opensipsctl add bob@192.168.139.121 123456

  然后下载SIP客户端进行测试!

相关文章

  • mysql decimal数据类型转换的实现

    mysql decimal数据类型转换的实现

    这篇文章主要介绍了mysql decimal数据类型转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Oracle10个分区和Mysql分区区别详解

    Oracle10个分区和Mysql分区区别详解

    MySQL分区常用的是:range、list、hash、key,Oracle10g分区常用的是:range(范围分区)、list(列表分区)、hash(哈希分区)、range-hash(范围—哈希分区)、range-list(列表—复合分区)。下面通过本文详细给大家介绍Oracle10个分区和Mysql分区区别,一起看看
    2017-02-02
  • MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下。
    2011-09-09
  • 查看 MySQL 已经运行多长时间的方法

    查看 MySQL 已经运行多长时间的方法

    查看MySQL启动时间以及运行了多长时间的方法有利用show与updtime或在linux中直接使用grep mysql 相关参数来查看,下面我们一起来看看
    2014-01-01
  • MySQL中批量删除指定前缀表的sql语句

    MySQL中批量删除指定前缀表的sql语句

    有时候我们在安装一些cms的时候,这些cms都是带表前缀的方便区分数据,但有时候我们测试完需要删除的时候又有别的前缀表就可以参考下面的方法
    2013-06-06
  • 尽量避免使用索引合并的场景问题解析

    尽量避免使用索引合并的场景问题解析

    这篇文章主要为大家介绍了尽量避免使用索引合并的场景问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 详解MySQL中concat函数的用法(连接字符串)

    详解MySQL中concat函数的用法(连接字符串)

    本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • Mysql查询以某"字符串"开头的查询方式

    Mysql查询以某"字符串"开头的查询方式

    这篇文章主要介绍了Mysql查询以某"字符串"开头的查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 一文带你了解MySQL中的锁机制

    一文带你了解MySQL中的锁机制

    锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。本文就来通过几个简单的实力为大家详细讲讲MySQL中的锁机制吧
    2023-02-02
  • MySQL 独立索引和联合索引的选择

    MySQL 独立索引和联合索引的选择

    为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?本文将详细测试分析下。
    2021-05-05

最新评论