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.