您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

Kamailio/OpenSIPs 笔记-如何通过MySQL实现分机认证注册

2018-03-20 16:20:09   作者:james.zhu   来源:CTI论坛   评论:0  点击:


 
 霍金(纪念霍金)
  (物理学家、宇宙学家、数学家、思想家、哲学家)
  霍金21岁时患上肌肉萎缩性侧索硬化症,全身瘫痪,不能言语,手部只有三根手指可以活动1979至2009年任卢卡斯数学教授,主要研究领域是宇宙论和黑洞,证明了广义相对论的奇性定理和黑洞面积定理,提出了黑洞蒸发理论和无边界的霍金宇宙模型,在统一20世纪物理学的两大基础理论——爱因斯坦创立的相对论和普朗克创立的量子力学方面走出了重要一步。
  通过数据库实现对分机注册的认证过程是非常普遍的方式。所有的用户信息密码都保存在数据库中。软交换可以通过加载数据库模块来查询相关分机信息,更新信息等功能。在本讲座中,我们简单介绍如何通过MYSQL实现分机认证查询的流程。
  1、在本次测试中,我们希望通过MYSQL存储用户信息,然后OpenSIPS加载MYSQL模块,通过MYSQL实现对分机认证的信息查询验证。整个流程需要配置的环境包括:
  • 需要成功安装OpenSIPS 软交换系统
  • 需要一个相应本案例的cfg文件
  • 需要通过软交换工具创建用户表,存储相关信息
  • 需要成功编译MYSQL和在cfg中加载mysql模块
  2、这里,笔者要提醒读者,如果读者需要配置此测试用例,必须根据自己的实验环境配置相应的IP地址和数据库用户名称和密码。笔者配置文件的参数是根据自己的环境配置的,如果用户直接使用的话,可能导致数据库连接失败或者IP地址问题,所有提醒读者提前检查这些配置。
  首先要配置opensipsctlrc 文件。在centos环境下,默认的配置文件路径是/etc/opensips/opensipsctlrc,当然如果用户编译前相关了默认安装路径,请用户修改此配置路径,找到相应的rc文件。此文件配置domain名称,数据库用户名称和密码。
  • SIP_DOMAIN=192.168.11.102 (修改到用户自己的IP地址)
  • DBENGINE=MYSQL
  • DBHOST=localhost
  • DBNAME=opensips  // 注意这里
  • DBRWUSER=opensips // 注意这里
  • DBRWPW="opensipsrw" // 修改用户密码,如果有不同。
  • ALIASES_TYPE="DB"
  • OSIPS_FIFO="/tmp/opensips_fifo"
  • MI_CONNECTOR=FIFO:/tmp/opensips_fifo
  然后通过opensipsdbctl 脚本创建数据库中的用户表,此表保存用户信息和密码。脚本的具体使用语法如下:
  opensipsdbctl create
  这里,我们直接使用默认的脚本安装方式,所以直接执行:
  opensipsdbctl create, 此命令会自动配置相应的用户表,这里用户需要按照提示符的输入要求,输入数据库用户名称和密码等设置:
  • Opensips:~# opensipsdbctl create
  • MySQL password for root:
  • INFO: test server charset
  • INFO: creating database opensips …
  • INFO: Core Opensips tables succesfully created.
  • Install presence related tables? (y/n): y
  • INFO: creating presence tables into opensips …
  • INFO: Presence tables succesfully created.
  • Install tables for imc cpl siptrace domainpolicy carrierroute? (y/n): n
  如果脚本执行没有问题的话,说明用户表就创建成功了。dbctl 命令是软交换用来管理数据库操作的重要命令,此工具可以进行drop, reinit, backup, restore, copy,presence和siptrace等操作。具体的操作方式,读者可以参考Kamailio/OpenSIPS的技术文档。
  配置数据库以后,用户可以启动cfg文件,到此步骤,创建用户的流程就基本结束。
  3、启动cfg文件后,用户需要通过ctl命令加入需要测试的用户名称和密码,具体命令如下:
  • opensipsctl add 1000 1000 // 如果没有domain,则说明使用默认的domain
  • opensipsctl add 1001 1001
  以上命令添加了用户1000和1001和其密码。用户可以使用两个软电话注册进行呼叫测试。
  4、在本讲座中,我们简单介绍了如何通过MYSQL数据库实现分机注册的流程。具体的测试方式包括如何配置环境文件,如何创建用户表单,如何添加用户信息。此流程是一个相对比较简单的流程。需要容易实现,在未来的讲座中,我们还要介绍如何实现多地址注册,如何使用Memcache等功能。
  参考资料:
  mysql分机注册cfg文件:
  http://www.kamailio.org.cn/doku.php?id=opensips_cfg_mysql%E5%88%86%E6%9C%BA%E6%B3%A8%E5%86%8C
  关注微信公众号:asterisk-cn,获得有价值的行业分享
  开源IPPBX论坛:www.ippbx.org.cn
  Asterisk, freepbx技术文档: www.freepbx.org.cn
  融合通信商业解决方案首选产品:www.hiastar.com
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题