Asterisk realtime 之SIP用户动态写入mysql 数据库

asterisk  配置默认是文本方式由文件管理,但是对于SIP用户,队列坐席这些数据,保存在 数据库中方便维护,Asterisk 通过realtime 引擎支持此功能,可以把其 配置文件写入 数据库维护,realtime分 两类,一类是 static 另一类是 realtime, static 意思是 配置文件数据保存在数据库中,系统启动后读取一次,如果这些数据在数据库中有改动,需要重新刷新才能同步到asterisk内存中,而realtime方式相反,asteirsk会自动查询数据库,比如配置SIP用户,直接在web后台配置数据,写入数据库,无需重启服务器或者sip模块即可 生效,一切都很自然。

下面 以realtime 方式 写入mysql数据库为例子:、

首先需要安装必要的软件包,

asterisk, MySQL server, libmysqlclient 和Asterisk-Addons

具体怎么安装自行解决。

查看Mysql数据库 状态:

/etc/init.d/mysql status 或 service mysqld status

启动mydql :

/etc/init.d/mysqld start 或 service mysqld start

修改Mysql 数据库密码:

mysql -u root -p test123

Realtime模式下,asterisk支持把SIP用户,队列,队列坐席,Meetme,musiconhold,voicemail 写入数据库,(1.8版本开始 也支持queue_log写入数据库)

SIP用户写入 mysql数据库,asterisk自动查找数据库验证用户,

创建 用户表:<请采用Asterisk推荐的最新数据库表结构>

CREATE TABLE `asterisk`.`sip_buddies` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(80) NOT NULL default '',
`accountcode` varchar(20) default NULL,
`amaflags` varchar(7) default NULL,
`callgroup` varchar(10) default NULL,
`callerid` varchar(80) default NULL,
`canreinvite` char(3) default 'yes',
`context` varchar(80) default NULL,
`defaultip` varchar(15) default NULL,
`dtmfmode` varchar(7) default NULL,
`fromuser` varchar(80) default NULL,
`fromdomain` varchar(80) default NULL,
`fullcontact` varchar(80) default NULL,
`host` varchar(31) NOT NULL default '',
`insecure` varchar(20) default NULL,
`language` char(2) default NULL,
`mailbox` varchar(50) default NULL,
`md5secret` varchar(80) default NULL,
`nat` varchar(5) NOT NULL default 'no',
`deny` varchar(95) default NULL,
`permit` varchar(95) default NULL,
`mask` varchar(95) default NULL,
`pickupgroup` varchar(10) default NULL,
`port` varchar(5) NOT NULL default '',
`qualify` char(3) default NULL,
`restrictcid` char(1) default NULL,
`rtptimeout` char(3) default NULL,
`rtpholdtimeout` char(3) default NULL,
`secret` varchar(80) default NULL,
`type` varchar(6) NOT NULL default 'friend',
`username` varchar(80) NOT NULL default '',
`disallow` varchar(100) default 'all',
`allow` varchar(100) default 'g729;ilbc;gsm;ulaw;alaw',
`musiconhold` varchar(100) default NULL,
`regseconds` int(11) NOT NULL default '0',
`ipaddr` varchar(15) NOT NULL default '',
`regexten` varchar(80) NOT NULL default '',
`cancallforward` char(3) default 'yes',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `name_2` (`name`)
) ENGINE=MyISAM;

配置 asterisk mysql 数据库 信息:

vim /etc/asterisk/res_mysql.conf

[general]
dbhost = localhost
dbname = test
dbuser = test
dbpass = test123
dbport = 3306

配置Asterisk  realtime模块 

vim /etc/asterisk/extconfig.conf

sipusers => mysql,general,sip_buddies
sippeers => mysql,general,sip_buddies

重启 Asterisk

asterisk -r

core restart now

realtime mysql status 

查看 mysql realtime 配置

插入数据库 一个用户:

INSERT into sip_buddies (id, name, callerid, context, canreinvite, insecure, type, host, secret, allow, nat)
VALUES ('','8000','test','incoming','no','port,invite','friend','dynamic','test','all','yes')

软电话 注册。。。。验证 结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值