asterisk 加载 mysql_asterisk使用MYSQL认证的配置方法

asterisk要使用MYSQL实时认证peers,就必须安装asterisk的realtime 和 mysql 模块,这些模块在asterisk插件包中

下载地址是:http://www.asterisk.org/downloads

下载之后./configure 然后sudo make &&sudo make install && sudo make samples

重启asterisk,确保以下多个模块被正常加载

*CLI> module show like realtime

Module                         Description                                           Use Count

pbx_realtime.so            Realtime Switch                                        0

func_realtime.so           Read/Write values from a RealTime reposi 0

app_realtime.so            Realtime Data Lookup/Rewrite                 0

3 modules loaded

*CLI> module show like mysql

Module                                Description                                          Use Count

cdr_addon_mysql.so             MySQL CDR Backend                            0

app_addon_sql_mysql.so      Simple Mysql Interface                           0

res_config_mysql.so             MySQL RealTime Configuration Driver      0

如果正常加载,我们就能开始配置asterisk 和mysql了

1.首先我们应该在数据库的某个database中建立一张表用来存储peers和users数据

表的结构如下

CREATE TABLE sip_users ( id int(11) NOT NULL auto_increment,

name varchar(80) NOT NULL default '',

host varchar(31) NOT NULL default '',

nat varchar(5) NOT NULL default 'no',

type enum('user','peer','friend') NOT NULL default 'friend',

accountcode varchar(20) default NULL,

amaflags varchar(13) default NULL,

`call-limit` smallint(5) unsigned default NULL,

callgroup varchar(10) default NULL,

callerid varchar(80) default NULL,

cancallforward char(3) default 'yes',

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,

insecure varchar(4) default NULL,

language char(2) default NULL,

mailbox varchar(50) default NULL,

md5secret varchar(80) default NULL,

deny varchar(95) default NULL,

permit varchar(95) default NULL,

mask varchar(95) default NULL,

musiconhold varchar(100) default NULL,

pickupgroup varchar(10) default NULL,

qualify char(3) default NULL,

regexten varchar(80) default NULL,

restrictcid char(3) default NULL,

rtptimeout char(3) default NULL,

rtpholdtimeout char(3) default NULL,

secret varchar(80) default NULL,

setvar varchar(100) default NULL,

disallow varchar(100) default 'all',

allow varchar(100) default 'g729;ilbc;gsm;ulaw;alaw',

fullcontact varchar(80) NOT NULL default '',

ipaddr varchar(15) NOT NULL default '',

port smallint(5) unsigned NOT NULL default '0',

regserver varchar(100) default NULL,

regseconds int(11) NOT NULL default '0',

lastms int(11) NOT NULL default '0',

username varchar(80) NOT NULL default '',

defaultuser varchar(80) NOT NULL default '',

subscribecontext varchar(80) default NULL,

PRIMARY KEY (id),

UNIQUE KEY name (name),

KEY name_2 (name)

);

2.建立数据库用户并授权

grant select,insert,update,delete on asterisk.sip_users to username@localhost identified by 'username';

这里的username可以是你自己建立的 也可以是root 下面我以root为例

在mysql中的tirox中创建一张名为 sip_users的表

3. 编辑 /etc/asterisk/res_mysql.conf 以便asterisk访问数据库

[general]

dbhost = localhost

dbname = tirox

dbuser = root

dbpass = root dbport = 3306

dbsock = /var/lib/mysql/mysql.sock

如果你在 /var/lib/mysql/mysql.sock 找不到 mysql.sock的话

你可以去/etc/mysql/my.cnf 找到

[client]

2port            = 3306

socket          = /var/run/mysqld/mysqld.sock

4. 编辑 /etc/asterisk/extconfig.conf

在 [settings]标签下面添加下面的内容

sippeers => mysql,tirox,sip_users

sipusers => mysql,tirox,sip_users

5. 编辑 /etc/asterisk/sip.conf

在 [general],标签下面添加下面的内容

rtcachefriends=yes

6.然后添加你的数据到sip_users表中去

例如:

insert into sip_users set name='6001',

context='video-call',

type='friend',

host='dynamic',

secret='123456',

nat='yes',

canreinvite='no',

dtmfmode='rfc2833',

disallow='all',

allow='all',

callerid='\"9001\" <9001>';

大功告成

现在如果你在asterisk终端下 使用sip show peers 无法找到对应的账号

那么之需要使用sip客户端填写账号 就能看到了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值