Hey guys,
After lot of head scratching and googling, i finally made it work.
For those guys who is still unlucky below is my code.
I am using CentOS and MySQL.
Step 1. Create db named ‘asterisk’
Step 2. Create tables
CREATE TABLE sip_buddies (
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)
)
CREATE TABLE extensions (
id int(11) NOT NULL auto_increment,
context varchar(20) NOT NULL default ‘’,
exten varchar(20) NOT NULL default ‘’,
priority tinyint(4) NOT NULL default ‘0’,
app varchar(20) NOT NULL default ‘’,
appdata varchar(128) NOT NULL default ‘’,
PRIMARY KEY (context,exten,priority),
KEY id (id)
)
Step 3. Insert data into those tables
[i]INSERT into extensions (id, context, exten, priority, app, appdata)
VALUES
(’’,‘incoming’,‘100’,‘1’,‘Answer’,’’),
(’’,‘incoming’,‘100’,‘2’,‘Playback’,‘tt-monkeys’),
(’’,‘incoming’,‘100’,‘3’,‘Hangup’,’’);
INSERT into sip_buddies (id, name, callerid, context, canreinvite, insecure, type, host, secret, allow, nat)
VALUES (’’,‘100’,‘sanju’,‘incoming’,‘no’,‘port,invite’,‘friend’,‘dynamic’,‘test’,‘all’,‘no’);[/i]
Step 4. Assuming you have asterisk-addons downloaded and installed, edit the res_mysql.conf in /etc/asterisk dir
[general]
dbhost = mysqlServerIP
dbname = asterisk
dbuser = root
dbpass = urpassword
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock ; install mysql for this one
Step 5. Edit the extconfig.conf in /etc/asterisk dir
[settings]
sipusers => mysql,general,sip_buddies
sippeers => mysql,general,sip_buddies
extensions => mysql,general,extensions
Step 5. Edit the extensions.conf in /etc/asterisk dir
[i][general]
autofallthrough=no
clearglobalvars=no
[incoming]
switch => Realtime/@extensions[/i]
Step 6. Edit the modules.conf in /etc/asterisk dir
[modules]
autoload=yes
preload => res_realtime.so
preload => res_config_mysql.so
thats it, run your asterisk server and in the *CLI> type the command 'realtime mysql status’ you woul see something like
MySQL RealTime: Connection okay.
general connected to asterisk@xxx.xxx.x.xx, port 3306 with username root for 3 seconds.
try it out, once you are able to pull it , then guys you dont have to edit the text conf files at all, you can put everything in database and may be you can provide some gui just to configure astersik.