kamailio mysql数据表之subscriber用户表

news/2024/5/18 13:38:37 标签: mysql, 数据库, sip, udp, SIP

1:表结构

CREATE TABLE `subscriber` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(64) NOT NULL DEFAULT '',
  `domain` varchar(64) NOT NULL DEFAULT '',
  `password` varchar(64) NOT NULL DEFAULT '',
  `ha1` varchar(128) NOT NULL DEFAULT '',
  `ha1b` varchar(128) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `account_idx` (`username`,`domain`),
  KEY `username_idx` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gb2312;

username 是用户名

domain 是SIP

password是密码

ha1 和 ha1b 分别是用户的ha1和ha1b值。

ha1=md5('username:domain:password')

ha1b=md5('username@domain:domain:password')

插入实例:

INSERT INTO subscriber (username, domain, password, ha1, ha1b) VALUES 
  '101', 'test.com', 'test123',
  MD5('101:test.com:test123'), MD5('101@test.com:test.com:test123')
);

kamailio注册认证的配置:

1:开启mysql和auth

#
# *** To enable mysql:
#     - define WITH_MYSQL
#!define WITH_MYSQL
#
# *** To enable authentication execute:
#     - enable mysql
#     - define WITH_AUTH
#     - add users using 'kamctl'
#!define WITH_AUTH

2:加载auth模块

#!ifdef WITH_AUTH
loadmodule "auth.so"
loadmodule "auth_db.so"

3:配置auth


#!ifdef WITH_AUTH
modparam("auth_db", "db_url", DBURL)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "load_credentials", "")
modparam("auth_db", "use_domain", MULTIDOMAIN)

  以上配置为 使用 ha1验证合法性


http://www.niftyadmin.cn/n/5479483.html

相关文章

lua学习笔记14(协程的学习)

print("*****************************协程的学习*******************************") --创建1 coroutine.create(function()) 使用1 coroutine.resume(co) -- 创建2 co2coroutine.wrap(fun) 使用2 co2() --协程的挂起函数 coroutine.yield() --协程的状态 --c…

【攻防世界】题目名称-文件包含

看到 include(),想到文件包含,用php伪协议。 知识点 看到 include(),require(),include_once(),require_once() ,想到文件包含,用php伪协议 ?filenamephp://filter/readconvert.base64-encode/…

刷好题,固基础-7

L3-007 天梯地图 本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达…

pyDAL一个python的ORM(补充1) pyDAL与pandas

pandas是当前最流行的python数据分析处理的工具,dataframe是pandas最常用的数据对象,生成dataframe通常的方法通常为: 1、文件读取 使用read()方法,读取各种csv、excel、html、json等文件; 2、连接数据库&#xff0…

C语言面试题之判定字符是否唯一

判定字符是否唯一 实例要求 实现一个算法,确定一个字符串 s 的所有字符是否全都不同 实例分析 1、使用一个大小为 256 的bool数组 charSet 来记录字符是否出现过;2、遍历字符串时,如果字符已经在数组中标记过,则返回 false&a…

深度学习-多尺度训练的介绍与应用

一、引言 在当今快速发展的人工智能领域,多尺度训练已经成为了一种至关重要的技术,特别是在处理具有复杂结构和不同尺度特征的数据时。这种技术在许多应用中发挥着关键作用,例如图像识别、自然语言处理和视频分析等。 多尺度训练的定义 多尺…

C/C++ 读取配置文件的几种方式

文章目录 1. protobuf2. opencv3. json4. gflags 1. protobuf 将配置信息读取到string流中 /*** brief 将配置文件读取到string流中* * param file_name :配置文件名称* param content: 读取后的string配置信息流* return true :成功读取* return fals…

C#使用Selenium驱动Chrome浏览器

1.Selenium库依赖安装 Selenium WebDriver是Selenium项目的一部分,用于模拟用户在Web应用程序中的交互操作。它支持多种浏览器,如Chrome、Firefox、IE等,且与各种编程语言(如Java、Python、C#等)兼容,具有…