I am currently trying to use res_mysql to do realtime queue configuration. When I call “realtime load…” I get back the records that I would expect. However, when I attempt to send a caller to one of these queues asterisk chokes. This is the stack trace from the core dump:
Core was generated by `/home/asterisk/bin/asterisk -f -U asterisk -G wheel -C /home/asterisk/etc -vvvg’.
Program terminated with signal 6, Aborted.
#0 0x000000325aa30015 in raise () from /lib64/libc.so.6
(gdb) where
#0 0x000000325aa30015 in raise () from /lib64/libc.so.6
#1 0x000000325aa31980 in abort () from /lib64/libc.so.6
#2 0x000000325aa674db in __libc_message () from /lib64/libc.so.6
#3 0x000000325aa6e8a0 in _int_free () from /lib64/libc.so.6
#4 0x000000325aa71fbc in free () from /lib64/libc.so.6
#5 0x000000000044bf34 in ast_variables_destroy (v=0x376f) at config.c:387
#6 0x00002aaac3cb806b in load_realtime_queue (queuename=0x0) from /home/asterisk/lib/modules/app_queue.so
#7 0x00002aaac3cc4cbe in queue_exec (chan=0x190672b0, data=0x408309b0) from /home/asterisk/lib/modules/app_queue.so
#8 0x0000000000493f25 in pbx_exec (c=0x190672b0, app=0x2aaaac03ccf0, data=0x408309b0) at pbx.c:733
#9 0x000000000049f78a in pbx_extension_helper (c=0x190672b0, con=, context=0x19067500 “internal”, exten=0x19067550 “2000”,
priority=2, label=0x0, callerid=0x19036230 “soulstompp”, action=E_SPAWN, found=0x4083302c, combined_find_spawn=1) at pbx.c:2712
#10 0x00000000004a17e7 in __ast_pbx_run (c=0x190672b0) at pbx.c:3203
#11 0x00000000004a29b9 in pbx_thread (data=0x376f) at pbx.c:3564
#12 0x00000000004d4c8c in dummy_start (data=) at utils.c:870
#13 0x000000325b6061b5 in start_thread () from /lib64/libpthread.so.0
#14 0x000000325aacd39d in clone () from /lib64/libc.so.6
#15 0x0000000000000000 in ?? ()
The tables are laid out as follows:
CREATE TABLE queues
(
queue_name
varchar(125) NOT NULL default ‘’,
name
varchar(125) NOT NULL,
musiconhold
varchar(128) default NULL,
announce
varchar(128) default NULL,
context
varchar(128) default NULL,
timeout
int(11) default NULL,
monitor_join
tinyint(1) default NULL,
monitor_format
varchar(128) default NULL,
queue_youarenext
varchar(128) default NULL,
queue_thereare
varchar(128) default NULL,
queue_callswaiting
varchar(128) default NULL,
queue_holdtime
varchar(128) default NULL,
queue_minutes
varchar(128) default NULL,
queue_seconds
varchar(128) default NULL,
queue_lessthan
varchar(128) default NULL,
queue_thankyou
varchar(128) default NULL,
queue_reporthold
varchar(128) default NULL,
announce_frequency
int(11) default NULL,
announce_round_seconds
int(11) default NULL,
announce_holdtime
varchar(128) default NULL,
retry
int(11) default NULL,
wrapuptime
int(11) default NULL,
maxlen
int(11) default NULL,
servicelevel
int(11) default NULL,
strategy
varchar(128) default NULL,
joinempty
varchar(128) default NULL,
leavewhenempty
varchar(128) default NULL,
eventmemberstatus
tinyint(1) default NULL,
eventwhencalled
tinyint(1) default NULL,
reportholdtime
tinyint(1) default NULL,
memberdelay
int(11) default NULL,
weight
int(11) default NULL,
timeoutrestart
tinyint(1) default NULL,
periodic_announce
varchar(50) default NULL,
periodic_announce_frequency
int(11) default NULL,
ringinuse
tinyint(1) default NULL,
PRIMARY KEY (queue_name
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
CREATE TABLE queue_members
(
membername
varchar(40) NOT NULL default ‘’,
queue_name
varchar(128) NOT NULL default ‘’,
interface
varchar(128) default NULL,
penalty
int(11) default NULL,
paused
tinyint(1) default NULL,
PRIMARY KEY (queue_name
,membername
),
UNIQUE KEY queue_name
(queue_name
,interface
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Lastly, the following queries show up in the query logs for mysql when attempting to queue a call:
SELECT * FROM queues WHERE name = 'test_queue’
SELECT * FROM queue_members WHERE interface LIKE ‘%’ AND queue_name = ‘test_queue’ ORDER BY interface
If there is any other information that I can provide please let me know. Any help would be greatly appreciated.