Hello, I have found a possible bug in Asterisk. The reason I say this
is that it does not coredump when I call locally over SIP, only when it
goes over the net via IAX.
I'm running an AGI (in PHP) which does not apparantly complete. It
shows in the console that it runs, but never completes. The agi runs
RECORD FILE.
I also tried running -STABLE (from yesterday) along with a few other
versions of -HEAD and it also crashes. I assume that the "output
fwrites" are from PHP.
Sorry if I have done something wrong with the reporting, this is my
first time reporting a bug. I think there is a procedure about posting
to the bugs database, but I want to make sure this is a bug and not
something I'm doing wrong.
Here's the console output at the time of the crash:
asterisk in free(): error: chunk is already free
output: fwrite: Broken pipe
Abort (core dumped)
output: fwrite: Broken pipe
output: fwrite: Broken pipe
And a gdb bt full:
(gdb) bt full
#0 0x282adf17 in pthread_testcancel () from /usr/lib/libpthread.so.1
No symbol table info available.
#1 0x2829f0b5 in sigaction () from /usr/lib/libpthread.so.1
No symbol table info available.
#2 0x282991e1 in pthread_kill () from /usr/lib/libpthread.so.1
No symbol table info available.
#3 0x28298bb0 in raise () from /usr/lib/libpthread.so.1
No symbol table info available.
#4 0x28369627 in abort () from /lib/libc.so.5
No symbol table info available.
#5 0x2830d389 in ldexp () from /lib/libc.so.5
No symbol table info available.
#6 0x2830d3cd in ldexp () from /lib/libc.so.5
No symbol table info available.
#7 0x2830e2c1 in ldexp () from /lib/libc.so.5
No symbol table info available.
#8 0x2830e513 in ldexp () from /lib/libc.so.5
No symbol table info available.
#9 0x2830e644 in free () from /lib/libc.so.5
No symbol table info available.
#10 0x283c8bd6 in handle_recordfile (chan=0x283cfce0, agi=0x1,
argc=142206976, argv=0x283caf39) at res_agi.c:908
fs = (struct ast_filestream *) 0x879e800
f = (struct ast_frame *) 0x2836fae6
tv = {tv_sec = 3000, tv_usec = 142205952}
start = {tv_sec = 0, tv_usec = 3030}
sample_offset = 1114132012
res = 64
ms = 730313
sildet = (struct ast_dsp *) 0xbf307428
dspsilence = 1
silence = -1087343568
gotsilence = 0
silencestr = 0x2836fae6 "chunk is already free\n"
rfmt = -1087343580
__PRETTY_FUNCTION__ = "handle_recordfile"
#11 0x283caf39 in agi_exec_full (chan=0x8733c00, data=0x1, enhanced=0,
dead=1) at res_agi.c:1711
uc = (struct localuser *) 0x17e
ul = (struct localuser *) 0x283cfce0
u = (struct localuser *) 0x876d430
argv = {0xbf308048 "dial/vm.agi", 0xbf308058
"54390", 0x0
<repeats 126 times>}
buf = "dial/vm.agi\00054390", '\0' <repeats 2026
times>
tmp = 0x0
argc = 675085536
fds = {52, 56}
efd = -1
pid = 19445
stringp = 0x17e <Address 0x17e out of bounds>
agi = {fd = 56, audio = -1, ctrl = 52}
__PRETTY_FUNCTION__ = "agi_exec_full"
#12 0x283cb410 in deadagi_exec (chan=0x17e, data=0x6) at res_agi.c:1970
No locals.
#13 0x0807fdb2 in pbx_extension_helper (c=0x8733c00, con=0x0,
context=0xbf30ee88 "", exten=0x8733d3c "dial-dial",
priority=0, label=0x8080bf8 "\203Ä
\205À\211Å\017\205÷þÿÿ\213\203À",
callerid=0xbf30cc28 "dial/vm.agi|54390",
action=0) at pbx.c:530
e = (struct ast_exten *) 0x0
sw = (struct ast_switch *) 0x81633a0
data = 0x1 <Address 0x1 out of bounds>
foundcontext = 0x0
newstack = 141770288
res = 0
status = 675066876
incstack = {0x0, 0x0, 0x0, 0x0, 0x81083c0 "\020", 0x40
<Address
0x40 out of bounds>,
0x55 <Address 0x55 out of bounds>, 0x2829e3b2 "[\201Ãê5\001",
0x282b199c "Äø\001",
0x8107000 "@P\021(\025¡\233ÐÐ\001\020\b", 0xbf30ecd0 "",
0x2829ec8f
"\203Ä\020é\031\003", 0x28115050 "",
0x2 <Address 0x2 out of bounds>, 0x0, 0x2829ea22
"[\201Ãz/\001",
0x2838d818 "\200U\021\b", 0x8761c50 "",
0xbf30eca0 "Ðì0¿_6*(", 0x282a4d4a "[\201ÃRÌ",
0x80a13bc
"\203ì\f¡\030W\017\b\205Àu\030\203ì\bh¼\023\n\bÿt$\034è;\"ûÿ\203Ä\034Ã\215v",
0x0,
0x2 <Address 0x2 out of bounds>, 0x0, 0x2838d818
"\200U\021\b",
0x87af200 "@¸s(\025¡\233Ð",
0xbf30ecc0 "Á\236*(*Z*(\234\031+(", 0x282a4089 "ÿ\217¬",
0x8115580
"P°\021\bP°\021\b\002", 0x87af248 "@\023v\b",
0xf <Address 0xf out of bounds>, 0x282a3b6a "[\201Ã2Þ",
0x2838d818
"\200U\021\b", 0x87af200 "@¸s(\025¡\233Ð",
0xbf30ecd0 "", 0x282a365f
"\203Ä\020\215eô[^_ÉÃ\211öU\211åWVS\203ì\fè", 0x87af200
"@¸s(\025¡\233Ð", 0x0, 0x0,
0x282aecde "[\201þ,", 0x28379458 "", 0x81000f0
"H\030\020\b",
0x282a9ec1 "[\201ÃÛz", 0x282a5a2a "[\201Ãr¿",
0x282b199c "Äø\001", 0x8101000 "\200ó\017\b", 0xbf30ed00
"0í0¿ò\221)(",
0x282ae635 "\203Ä\020\215eô[^_ÉÃU\211åS\203ì\024è", 0x2873b850
"\003P", 0x8101034 "\020\001\020\b", 0x0,
0x282ae531 "\211Eðe\2135@", 0x2838d818 "\200U\021\b",
0x283795ec
"(5\f", 0x2873b850 "\003P", 0x282b199c "Äø\001",
0x0,
0x10 <Address 0x10 out of bounds>, 0xbf30ed30 "\001",
0x282991f2
"\203Ä\020\215v", 0x87af200 "@¸s(\025¡\233Ð",
0x8107000 "@P\021(\025¡\233ÐÐ\001\020\b", 0x0, 0x2829917a
"[\201Ã\"\210\001",
0x80f21a5 "- IAX2/asterlink-13 is ringing\n", 0x80de068
"ASTERISK_PROMPT", 0x87af200 "@¸s(\025¡\233Ð",
0x1 <Address 0x1 out of bounds>, 0xbf30ed48 "d!\017\b",
0x80f21a5 "-
IAX2/asterlink-13 is ringing\n",
0x1 <Address 0x1 out of bounds>, 0x282a4d4a "[\201ÃRÌ",
0x8107000
"@P\021(\025¡\233ÐÐ\001\020\b", 0x8761c50 "",
0x5 <Address 0x5 out of bounds>, 0x1 <Address 0x1 out of bounds>,
0x80f2164 "", 0x87af200 "@¸s(\025¡\233Ð",
0xbf30ed90 "°í0¿t7*(d!\017\b", 0x282a4089 "ÿ\217¬",
0x810a500
"@,y\b\020\006\020\b\002", 0x87af248 "@\023v\b",
0xf <Address 0xf out of bounds>, 0x282a3b6a "[\201Ã2Þ", 0x0,
0x41
<Address 0x41 out of bounds>,
0x2836fb51 " in malloc():", 0xbf30ee00 "", 0xbf30ed90
"°í0¿t7*(d!\017\b", 0x0, 0x0, 0x0,
0x80f21a0 " -- IAX2/asterlink-13 is ringing\n",
0x80f21e1 "7889751781@dial-dial-da64,2\033[0;37;40m\",
\"\033[1;35;40mIAX2/asterlink/13093478897|20\033[0;37;40m\") in new
stack\n", 0xbf30edb0 "Pî0¿bU\005\béí0¿", 0x282a3774
"ÉÃ\211öU\211å\203ì\020j\001ÿu\bèÔ\003", 0x80f2164 "", 0x0,
0xbf30ee50 "\002", 0x80554c6 "\203Ä \200= !\017\b", 0x5
<Address 0x5
out of bounds>, 0x80cea94 "logger.c",
0xbf30ee50 "\002", 0x8055562
"\215eô[^_ÉÃ\203ì\fÿ\rp!\017\bh¥ê\f\bh\"ï\f\bhE\003", 0xbf30ede9
"",
0x8134400 "",
0x81344a0 "1", 0x80915ec "\203Ä\020\213¶è\003", 0x81344f0
"dial-dial",
0x8733d3c "dial-dial",
0x4f <Address 0x4f out of bounds>, 0x81344a0 "1", 0x20727041
<Address
0x20727041 out of bounds>,
0x31203132 <Address 0x31203132 out of bounds>, 0x8733d8c "",
0x8733ddc
"", 0x0 <repeats 12 times>}
passdata = '\0' <repeats 16 times>,
"dial/vm.agi|54390", '\0'
<repeats 8154 times>
stacklen = 141770044
tmp = '\0' <repeats 16 times>,
"\033[1;36;40mDeadAGI\033[0;37;40m\0000m\0007;40m", '\0'
<repeats 27
times>
tmp2 = '\0' <repeats 16 times>,
"\033[1;35;40mLocal/8XXXXXXXXXX54390@dial-dial-990c,1\033[0;37;40m"
tmp3 = '\0' <repeats 16 times>,
"\033[1;35;40mdial/vm.agi|54390\033[0;37;40m\000;37;40m\000;40m",
'\0'
<repeats 8121 times>
atmp = '\0' <repeats 79 times>
atmp2 = "\005", '\0' <repeats 11 times>,
"<=s\b\200
\020\bHðz\b\017\000\000\000j;*(L\037+(üú*(\000\000\000\000\234\031+(\204U\017\b",
'\0' <repeats 20 times>, "
\2130¿t7*(\204U\017\b\000\000\000\000\001",
'\0' <repeats 19 times>,
"¨ÿ\a\b\204U\017\b\\\2130¿`\2130¿d\2130¿",
'\0' <repeats 28 times>, "\001\000\000\000\002",
'\0' <repeats 8130
times>
__PRETTY_FUNCTION__ = "pbx_extension_helper"
#14 0x086b08b0 in ?? ()
No symbol table info available.
#15 0x080e938a in he_errlist ()
No symbol table info available.
#16 0x08733e30 in ?? ()
No symbol table info available.
#17 0x08733d3c in ?? ()
No symbol table info available.
#18 0x283cb3fc in agi_unregister () at res_agi.c:1957
cli_no_debug = {cmda = {0x283cc359 "agi", 0x283cc35d
"no",
0x283cc360 "debug", 0x0 <repeats 13 times>},
handler = 0x283c9954 <agi_no_debug>, summary = 0x283cc366 "Disable
AGI
debugging",
usage = 0x283cd020 "Usage: agi no debug\n Disables dumping of
AGI transactions for debugging purposes\n",
generator = 0, next = 0x80f0940, inuse = 0}
usage_saytime = " Usage: SAY TIME <time> <escape
digits>\n\tSay
a given time, returning early if any of the given DTMF digits are\n
received on the channel. <time> is number of seconds elapsed since
00:00:00\n on January"...
showagi = {cmda = {0x283cc39e "show", 0x283cc359
"agi", 0x0
<repeats 14 times>},
handler = 0x283c9b84 <handle_showagi>, summary = 0x283cb960 "Show
AGI
commands or specific help",
usage = 0x283cd140 "Usage: show agi [topic]\n When called with a
topic as an argument, displays usage\n information on the given
command. If called without a\n topic, it provides a list of AGI
commands.\n", generator = 0,
next = 0x80eb780, inuse = 0}
app = 0x283cc34d "AGI"
usage_dbdel = " Usage: DATABASE DEL <family>
<key>\n\tDeletes an
entry in the Asterisk database for a\n given family and key.\n Returns 1
if successful, 0 otherwise.\n"
usage_saydate = " Usage: SAY DATE <date> <escape
digits>\n\tSay
a given date, returning early if any of the given DTMF digits are\n
received on the channel. <date> is number of seconds elapsed since
00:00:00\n on January"...
cli_debug = {cmda = {0x283cc359 "agi", 0x283cc360
"debug", 0x0
<repeats 14 times>},
handler = 0x283c9908 <agi_do_debug>, summary = 0x283cc37c "Enable
AGI
debugging",
usage = 0x283cd080 "Usage: agi debug\n Enables dumping of AGI
transactions for debugging purposes\n", generator = 0,
next = 0x283cf700, inuse = 0}
usage_waitfordigit = " Usage: WAIT FOR DIGIT
<timeout>\n\tWaits
up to 'timeout' milliseconds for channel to receive a DTMF digit.\n
Returns -1 on channel failure, 0 if no digit is received in the
timeout, or\n the numerical va"...
usage_getoption = " Usage: GET OPTION <filename>
<escape_digits>
[timeout]\n\tBehaves similar to STREAM FILE but used with a timeout
option.\n"
dumpagihtml_help = "Usage: dump agihtml <filename>\n\tDumps
the
agi command list in html format to given filename\n"
usage_setmusic = " Usage: SET MUSIC ON <on|off>
<class>\n\tEnables/Disables the music on hold generator. If <class>
is\n not specified, then the default music on hold class will be
used.\n Always returns 0.\n"
synopsis = 0x283cb688 "Executes an AGI compliant application"
localusecnt = 1
usage_dbput = " Usage: DATABASE PUT <family> <key>
<value>\n\tAdds or updates an entry in the Asterisk database for a\n
given family, key, and value.\n Returns 1 if successful, 0
otherwise.\n"
usage_sayphonetic = " Usage: SAY PHONETIC <string> <escape
digits>\n\tSay a given character string with phonetics, returning early
if any of the\n given DTMF digits are received on the channel. Returns 0
if playback\n complet"...
localusers = (struct localuser *) 0x876d430
no_debug_usage = "Usage: agi no debug\n Disables dumping
of AGI transactions for debugging purposes\n"
usage_getvariable = " Usage: GET VARIABLE
<variablename>\n\tReturns 0 if <variablename> is not set. Returns 1
if
<variablename>\n is set and returns the variable in parentheses.\n
example return code: 200 result=1 (testvaria"...
usage_getdata = " Usage: GET DATA <file to be streamed>
[timeout] [max digits]\n\tStream the given file, and recieve DTMF data.
Returns the digits received\nfrom the channel at the other end.\n"
usage_streamfile = " Usage: STREAM FILE <filename> <escape
digits> [sample offset]\n\tSend the given file, allowing playback to be
interrupted by the given\n digits, if any. Use double quotes for the
digits if you wish none"...
usage_setvariable = " Usage: SET VARIABLE <variablename>
<value>\n"
showagi_help = "Usage: show agi [topic]\n When called with
a topic as an argument, displays usage\n information on the given
command. If called without a\n topic, it provides a list of AGI
commands.\n"
usage_setextension = " Usage: SET EXTENSION <new
extension>\n\tChanges the extension for continuation upon exiting the
application.\n"
usage_tddmode = " Usage: TDD MODE <on|off>\n\tEnable/Disable
TDD
transmission/reception on a channel. Returns 1 if\n successful, or 0 if
channel is not TDD-capable.\n"
usage_sendimage = " Usage: SEND IMAGE <image>\n\tSends the
given
image on a channel. Most channels do not support the\n transmission of
images. Returns 0 if image is sent, or if the channel does not\n
support image transmis"...
usage_noop = " Usage: NoOp\n\tDoes nothing.\n"
usage_dbget = " Usage: DATABASE GET <family>
<key>\n\tRetrieves
an entry in the Asterisk database for a\n given family and key.\n
Returns 0 if <key> is not set. Returns 1 if <key>\n is set and
returns
the variable in pa"...
usage_hangup = " Usage: HANGUP [<channelname>]\n\tHangs up
the
specified channel.\n If no channel name is given, hangs up the current
channel\n"
eapp = 0x283cc34c "EAGI"
usage_recvchar = " Usage: RECEIVE CHAR <timeout>\n\tReceives
a
character of text on a channel. Specify timeout to be the\n maximum
time to wait for input in milliseconds, or 0 for infinite. Most
channels\n do not support t"...
usage_autohangup = " Usage: SET AUTOHANGUP <time>\n\tCause
the
channel to automatically hangup at <time> seconds in the\n future. Of
course it can be hungup before then as well. Setting to 0 will\n cause
the autohangup feat"...
usage_setcontext = " Usage: SET CONTEXT <desired
context>\n\tSets the context for continuation upon exiting the
application.\n"
usage_setpriority = " Usage: SET PRIORITY <num>\n\tChanges
the
priority for continuation upon exiting the application.\n"
deadsynopsis = 0x283cb910 "Executes AGI on a hungup channel"
usage_getvariablefull = " Usage: GET FULL VARIABLE
<variablename> [<channel name>]\n\tReturns 0 if <variablename>
is not
set or channel does not exist. Returns 1\nif <variablename> is set
and returns the variable in parenthesi"...
commands = {{cmda = {0x283cc3a3 "answer", 0x0 <repeats 15
times>}, handler = 0x283c7cf8 <handle_answer>,
summary = 0x283cc3aa "Answer channel",
usage = 0x283cf660 " Usage: ANSWER\n\tAnswers channel if not already
in answer state. Returns -1 on\n channel failure, or 0 if
successful.\n", next = 0x0}, {cmda = {0x283cc465 "channel",
0x283cc3b9
"status", 0x0 <repeats 14 times>},
handler = 0x283c93b4 <handle_channelstatus>, summary = 0x283cb984
"Returns status of the connected channel",
usage = 0x283cf4c0 " Usage: CHANNEL STATUS
[<channelname>]\n\tReturns the status of the specified channel.\n If no
channel name is given the returns the status of the\n current channel.
Return values:\n 0 Channel is down an"..., next = 0x0}, {
cmda = {0x283cc3c0 "database", 0x283cc3c9 "del", 0x0
<repeats 14
times>}, handler = 0x283c9830 <handle_dbdel>,
summary = 0x283cc3cd "Removes database key/value",
usage = 0x283cf420 " Usage: DATABASE DEL <family>
<key>\n\tDeletes
an entry in the Asterisk database for a\n given family and key.\n
Returns 1 if successful, 0 otherwise.\n", next = 0x0}, {cmda {0x283cc3c0
"database", 0x283cc3e8 "deltree",
0x0 <repeats 14 times>}, handler = 0x283c9894
<handle_dbdeltree>,
summary = 0x283cb9ac "Removes database keytree/value",
usage = 0x283cf360 " Usage: DATABASE DELTREE <family>
[keytree]\n\tDeletes a family or specific keytree within a family\n in
the Asterisk database.\n Returns 1 if successful, 0 otherwise.\n", next
= 0x0}, {cmda = {0x283cc3c0 "database",
0x283cc3f0 "get", 0x0 <repeats 14 times>}, handler =
0x283c9748
<handle_dbget>,
summary = 0x283cc3f4 "Gets database value",
usage = 0x283cf240 " Usage: DATABASE GET <family>
<key>\n\tRetrieves
an entry in the Asterisk database for a\n given family and key.\n
Returns 0 if <key> is not set. Returns 1 if <key>\n is set and
returns
the variable in pa"..., next = 0x0}, {
cmda = {0x283cc3c0 "database", 0x283cc408 "put", 0x0
<repeats 14
times>}, handler = 0x283c97cc <handle_dbput>,
summary = 0x283cc40c "Adds/updates database value",
usage = 0x283cf180 " Usage: DATABASE PUT <family> <key>
<value>\n\tAdds or updates an entry in the Asterisk database for a\n
given family, key, and value.\n Returns 1 if successful, 0
otherwise.\n", next = 0x0}, {cmda = {0x283cc428 "exec",
0x0 <repeats 15 times>}, handler = 0x283c91dc <handle_exec>,
summary = 0x283cc42d "Executes a given Application",
usage = 0x283cf0c0 " Usage: EXEC <application>
<options>\n\tExecutes
<application> with given <options>.\n Returns whatever the
application
returns, or -2 on failure to find application\n", next = 0x0}, {cmda
{0x283cc3f0 "get",
0x283cc44a "data", 0x0 <repeats 14 times>}, handler =
0x283c87f8
<handle_getdata>,
summary = 0x283cc44f "Prompts for DTMF on a channel",
usage = 0x283cf000 " Usage: GET DATA <file to be streamed>
[timeout]
[max digits]\n\tStream the given file, and recieve DTMF data. Returns
the digits received\nfrom the channel at the other end.\n", next 0x0},
{cmda = {0x283cc3f0 "get",
0x283cc46d "full", 0x283cc488 "variable", 0x0
<repeats 13 times>},
handler = 0x283c9584 <handle_getvariablefull>,
summary = 0x283cb9cc "Evaluates a channel expression",
usage = 0x283ceea0 " Usage: GET FULL VARIABLE <variablename>
[<channel name>]\n\tReturns 0 if <variablename> is not set or
channel
does not exist. Returns 1\nif <variablename> is set and returns the
variable in parenthesi"..., next = 0x0}, {
cmda = {0x283cc3f0 "get", 0x283cc472 "option", 0x0
<repeats 14
times>}, handler = 0x283c8180 <handle_getoption>,
summary = 0x283cb9ec "Stream file, prompt for DTMF, with timeout",
usage = 0x283cee20 " Usage: GET OPTION <filename>
<escape_digits>
[timeout]\n\tBehaves similar to STREAM FILE but used with a timeout
option.\n", next = 0x0}, {cmda = {0x283cc3f0 "get", 0x283cc488
"variable", 0x0 <repeats 14 times>},
handler = 0x283c94f0 <handle_getvariable>, summary = 0x283cc479
"Gets a channel variable",
usage = 0x283ced40 " Usage: GET VARIABLE
<variablename>\n\tReturns 0
if <variablename> is not set. Returns 1 if <variablename>\n is set
and
returns the variable in parentheses.\n example return code: 200
result=1 (testvaria"..., next = 0x0}, {
cmda = {0x283cc590 "hangup", 0x0 <repeats 15 times>},
handler 0x283c9100 <handle_hangup>,
summary = 0x283cc491 "Hangup the current channel",
usage = 0x283cecc0 " Usage: HANGUP [<channelname>]\n\tHangs up
the
specified channel.\n If no channel name is given, hangs up the current
channel\n", next = 0x0}, {cmda = {0x283cc4ac "noop", 0x0
<repeats 15
times>},
handler = 0x283c99a0 <handle_noop>, summary = 0x283cc4b1 "Does
nothing",
usage = 0x283cec97 " Usage: NoOp\n\tDoes nothing.\n", next = 0x0},
{cmda = {0x283cc4be "receive", 0x283cc4c6 "char",
0x0 <repeats 14 times>}, handler = 0x283c7e28
<handle_recvchar>,
summary = 0x283cba18 "Receives text from channels supporting it",
usage = 0x283ceb20 " Usage: RECEIVE CHAR <timeout>\n\tReceives a
character of text on a channel. Specify timeout to be the\n maximum
time to wait for input in milliseconds, or 0 for infinite. Most
channels\n do not support t"..., next = 0x0}, {
cmda = {0x283cc4cb "record", 0x283cc4e5 "file", 0x0
<repeats 14
times>}, handler = 0x283c8a0c <handle_recordfile>,
summary = 0x283cc4d2 "Records to a given file",
usage = 0x283ce840 " Usage: RECORD FILE <filename> <format>
<escape
digits> <timeout> \\\n", ' ' <repeats 42 times>,
"[offset samples]
[BEEP] [s=silence]\n\tRecord to a file until a given dtmf digit in the
sequ"..., next = 0x0}, {cmda = {
0x283cc4ea "say", 0x283cc4ee "alpha", 0x0 <repeats
14 times>},
handler = 0x283c8510 <handle_sayalpha>,
summary = 0x283cc4f4 "Says a given character string",
usage = 0x283ce700 " Usage: SAY ALPHA <number> <escape
digits>\n\tSay a given character string, returning early if any of the
given DTMF digits\n are received on the channel. Returns 0 if playback
completes without a digit\n"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc512 "digits", 0x0
<repeats 14
times>}, handler = 0x283c8478 <handle_saydigits>,
summary = 0x283cc519 "Says a given digit string",
usage = 0x283ce5c0 " Usage: SAY DIGITS <number> <escape
digits>\n\tSay a given digit string, returning early if any of the
given DTMF digits\n are received on the channel. Returns 0 if playback
completes without a digit\n be"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc540 "number", 0x0
<repeats 14
times>}, handler = 0x283c83dc <handle_saynumber>,
summary = 0x283cc533 "Says a given number",
usage = 0x283ce480 " Usage: SAY NUMBER <number> <escape
digits>\n\tSay a given number, returning early if any of the given DTMF
digits\n are received on the channel. Returns 0 if playback completes
without a digit\n being p"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc547 "phonetic", 0x0
<repeats 14
times>}, handler = 0x283c8788 <handle_sayphonetic>,
summary = 0x283cba44 "Says a given character string with
phonetics",
usage = 0x283ce340 " Usage: SAY PHONETIC <string> <escape
digits>\n\tSay a given character string with phonetics, returning early
if any of the\n given DTMF digits are received on the channel. Returns 0
if playback\n complet"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc55d "date", 0x0
<repeats 14
times>}, handler = 0x283c8580 <handle_saydate>,
summary = 0x283cc550 "Says a given date",
usage = 0x283ce1a0 " Usage: SAY DATE <date> <escape
digits>\n\tSay a
given date, returning early if any of the given DTMF digits are\n
received on the channel. <date> is number of seconds elapsed since
00:00:00\n on January"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc56f "time", 0x0
<repeats 14
times>}, handler = 0x283c860c <handle_saytime>,
summary = 0x283cc562 "Says a given time",
usage = 0x283ce000 " Usage: SAY TIME <time> <escape
digits>\n\tSay a
given time, returning early if any of the given DTMF digits are\n
received on the channel. <time> is number of seconds elapsed since
00:00:00\n on January"..., next = 0x0}, {
cmda = {0x283cc4ea "say", 0x283cc574 "datetime", 0x0
<repeats 14
times>}, handler = 0x283c8698 <handle_saydatetime>,
summary = 0x283cba74 "Says a given time as specfied by the format
given",
usage = 0x283cdd80 " Usage: SAY DATETIME <time> <escape
digits>
[format] [timezone]\n\tSay a given time, returning early if any of the
given DTMF digits are\n received on the channel. <time> is number of
seconds elapsed si"..., next = 0x0}, {
cmda = {0x283cc57d "send", 0x283cc582 "image", 0x0
<repeats 14
times>}, handler = 0x283c7f78 <handle_sendimage>,
summary = 0x283cbaa8 "Sends images to channels supporting it",
usage = 0x283cdc60 " Usage: SEND IMAGE <image>\n\tSends the given
image on a channel. Most channels do not support the\n transmission of
images. Returns 0 if image is sent, or if the channel does not\n
support image transmis"..., next = 0x0}, {
cmda = {0x283cc57d "send", 0x283cc5b0 "text", 0x0
<repeats 14
times>}, handler = 0x283c7dcc <handle_sendtext>,
summary = 0x283cbad0 "Sends text to channels supporting it",
usage = 0x283cdae0 " Usage: SEND TEXT \"<text to
send>\"\n\tSends
the given text on a channel. Most channels do not support the\n
transmission of text. Returns 0 if text is sent, or if the channel
does not\n support text tran"..., next = 0x0}, {
cmda = {0x283cc588 "set", 0x283cc58c "autohangup", 0x0
<repeats 14
times>}, handler = 0x283c9064 <handle_autohangup>,
summary = 0x283cbaf8 "Autohangup channel in some time",
usage = 0x283cd9e0 " Usage: SET AUTOHANGUP <time>\n\tCause the
channel to automatically hangup at <time> seconds in the\n future. Of
course it can be hungup before then as well. Setting to 0 will\n cause
the autohangup feat"..., next = 0x0}, {
cmda = {0x283cc588 "set", 0x283cc597 "callerid", 0x0
<repeats 14
times>}, handler = 0x283c92a8 <handle_setcallerid>,
summary = 0x283cbb18 "Sets callerid for the current channel",
usage = 0x283cd980 " Usage: SET CALLERID <number>\n\tChanges the
callerid of the current channel.\n", next = 0x0}, {
cmda = {0x283cc588 "set", 0x283cc5ad "context", 0x0
<repeats 14
times>}, handler = 0x283c88e0 <handle_setcontext>,
summary = 0x283cc5a0 "Sets channel context",
usage = 0x283cd900 " Usage: SET CONTEXT <desired context>\n\tSets
the context for continuation upon exiting the application.\n", next 0x0},
{cmda = {0x283cc588 "set", 0x283cc5c5 "extension", 0x0
<repeats
14 times>},
handler = 0x283c893c <handle_setextension>, summary = 0x283cc5b5
"Changes channel extension",
usage = 0x283cd880 " Usage: SET EXTENSION <new
extension>\n\tChanges
the extension for continuation upon exiting the application.\n", next 0x0},
{cmda = {0x283cc588 "set", 0x283cc5cf "music", 0x0
<repeats 14
times>},
handler = 0x283c99cc <handle_setmusic>, summary = 0x283cbb40
"Enable/Disable Music on hold generator",
usage = 0x283cd7c0 " Usage: SET MUSIC ON <on|off>
<class>\n\tEnables/Disables the music on hold generator. If <class>
is\n not specified, then the default music on hold class will be
used.\n Always returns 0.\n", next = 0x0}, {cmda = {
0x283cc588 "set", 0x283cc5ea "priority", 0x0
<repeats 14 times>},
handler = 0x283c8998 <handle_setpriority>,
summary = 0x283cc5d5 "Set channel dialplan priority",
usage = 0x283cd740 " Usage: SET PRIORITY <num>\n\tChanges the
priority for continuation upon exiting the application.\n", next 0x0},
{cmda = {0x283cc588 "set", 0x283cc488 "variable", 0x0
<repeats 14
times>},
handler = 0x283c9488 <handle_setvariable>, summary = 0x283cc5f3
"Sets a channel variable",
usage = 0x283cd700 " Usage: SET VARIABLE <variablename>
<value>\n",
next = 0x0}, {cmda = {0x283cc60b "stream",
0x283cc4e5 "file", 0x0 <repeats 14 times>}, handler =
0x283c7fe4
<handle_streamfile>,
summary = 0x283cc612 "Sends audio file on channel",
usage = 0x283cd4c0 " Usage: STREAM FILE <filename> <escape
digits>
[sample offset]\n\tSend the given file, allowing playback to be
interrupted by the given\n digits, if any. Use double quotes for the
digits if you wish none"..., next = 0x0}, {
cmda = {0x283cc62e "tdd", 0x283cc632 "mode", 0x0
<repeats 14
times>}, handler = 0x283c7eb0 <handle_tddmode>,
summary = 0x283cbb68 "Toggles TDD mode (for the deaf)",
usage = 0x283cd420 " Usage: TDD MODE <on|off>\n\tEnable/Disable
TDD
transmission/reception on a channel. Returns 1 if\n successful, or 0 if
channel is not TDD-capable.\n", next = 0x0}, {cmda = {0x283cc637
"verbose", 0x0 <repeats 15 times>},
handler = 0x283c9684 <handle_verbose>, summary = 0x283cbb88 "Logs
a
message to the asterisk verbose log",
usage = 0x283cd380 " Usage: VERBOSE <message>
<level>\n\tSends
<message> to the console via verbose message system.\n <level> is
the
the verbose level (1-4)\n Always returns 1.\n", next = 0x0}, {cmda
{0x283cc63f "wait", 0x283cc644 "for",
0x283cc648 "digit", 0x0 <repeats 13 times>}, handler =
0x283c7d48
<handle_waitfordigit>,
summary = 0x283cbbb4 "Waits for a digit to be pressed",
usage = 0x283cd220 " Usage: WAIT FOR DIGIT <timeout>\n\tWaits up
to
'timeout' milliseconds for channel to receive a DTMF digit.\n Returns
-1 on channel failure, 0 if no digit is received in the timeout, or\n
the numerical va"..., next = 0x0}, {
cmda = {0x0 <repeats 16 times>}, handler = 0, summary = 0x0, usage
0x0, next = 0x0} <repeats 93 times>}
deadapp = 0x283cc351 "DeadAGI"
debug_usage = "Usage: agi debug\n Enables dumping of AGI
transactions for debugging purposes\n"
usage_channelstatus = " Usage: CHANNEL STATUS
[<channelname>]\n\tReturns the status of the specified channel.\n If no
channel name is given the returns the status of the\n current channel.
Return values:\n 0 Channel is down an"...
usage_setcallerid = " Usage: SET CALLERID <number>\n\tChanges
the callerid of the current channel.\n"
usage_sayalpha = " Usage: SAY ALPHA <number> <escape
digits>\n\tSay a given character string, returning early if any of the
given DTMF digits\n are received on the channel. Returns 0 if playback
completes without a digit\n"...
dumpagihtml = {cmda = {0x283cc391 "dump", 0x283cc396
"agihtml",
0x0 <repeats 14 times>},
handler = 0x283ca054 <handle_dumpagihtml>, summary = 0x283cb934
"Dumps
a list of agi command in html format",
usage = 0x283cd0e0 "Usage: dump agihtml <filename>\n\tDumps the agi
command list in html format to given filename\n",
generator = 0, next = 0x2857ed80, inuse = 0}
tdesc = 0x283cb664 "Asterisk Gateway Interface (AGI)"
esynopsis = 0x283cb6b0 "Executes an EAGI compliant
application"
localuser_lock = 0x8131f00
usage_exec = " Usage: EXEC <application>
<options>\n\tExecutes
<application> with given <options>.\n Returns whatever the
application
returns, or -2 on failure to find application\n"
usage_sendtext = " Usage: SEND TEXT \"<text to
send>\"\n\tSends
the given text on a channel. Most channels do not support the\n
transmission of text. Returns 0 if text is sent, or if the channel
does not\n support text tran"...
usage_recordfile = " Usage: RECORD FILE <filename>
<format>
<escape digits> <timeout> \\\n", ' ' <repeats 42
times>, "[offset
samples] [BEEP] [s=silence]\n\tRecord to a file until a given dtmf
digit in the sequence is received\n Returns -1 on "...
usage_dbdeltree = " Usage: DATABASE DELTREE <family>
[keytree]\n\tDeletes a family or specific keytree within a family\n in
the Asterisk database.\n Returns 1 if successful, 0 otherwise.\n"
descrip = 0x283cb6d8 " [E|Dead]AGI(command|args): Executes an
Asterisk Gateway Interface compliant\nprogram on a channel. AGI allows
Asterisk to launch external programs\nwritten in any language to
control a telephony chann"...
agidebug = 0
usage_answer = " Usage: ANSWER\n\tAnswers channel if not already
in answer state. Returns -1 on\n channel failure, or 0 if successful.\n"
usage_verbose = " Usage: VERBOSE <message>
<level>\n\tSends
<message> to the console via verbose message system.\n <level> is
the
the verbose level (1-4)\n Always returns 1.\n"
usage_saynumber = " Usage: SAY NUMBER <number> <escape
digits>\n\tSay a given number, returning early if any of the given DTMF
digits\n are received on the channel. Returns 0 if playback completes
without a digit\n being p"...
usage_saydatetime = " Usage: SAY DATETIME <time> <escape
digits>
[format] [timezone]\n\tSay a given time, returning early if any of the
given DTMF digits are\n received on the channel. <time> is number of
seconds elapsed si"...
usage_saydigits = " Usage: SAY DIGITS <number> <escape
digits>\n\tSay a given digit string, returning early if any of the
given DTMF digits\n are received on the channel. Returns 0 if playback
completes without a digit\n be"...
#19 0x00000000 in ?? ()
No symbol table info available.
#20 0x00000000 in ?? ()
No symbol table info available.
#21 0x08733d3c in ?? ()
No symbol table info available.
#22 0x0810a080 in ?? ()
No symbol table info available.
#23 0x087af048 in ?? ()
No symbol table info available.
#24 0x0000000f in ?? ()
No symbol table info available.
#25 0x282a3b6a in pthread_mutex_unlock () from /usr/lib/libpthread.so.1
No symbol table info available.
Previous frame inner to this frame (corrupt stack?)
Thanks,
Kevin Bockman
Darn, I forgot to say that I'm running: Asterisk CVS-HEAD-04/21/05-16:53:20 FreeBSD 5.3
Kevin Bockman wrote:>Hello, I have found a possible bug in Asterisk. The reason I say this >is that it does not coredump when I call locally over SIP, only when it >goes over the net via IAX. > >I'm running an AGI (in PHP) which does not apparantly complete. It >shows in the console that it runs, but never completes. The agi runs >RECORD FILE. > >I also tried running -STABLE (from yesterday) along with a few other >versions of -HEAD and it also crashes. I assume that the "output >fwrites" are from PHP. > >Sorry if I have done something wrong with the reporting, this is my >first time reporting a bug. I think there is a procedure about posting >to the bugs database, but I want to make sure this is a bug and not >something I'm doing wrong. > >Here's the console output at the time of the crash: >asterisk in free(): error: chunk is already free >output: fwrite: Broken pipe >Abort (core dumped) >output: fwrite: Broken pipe >output: fwrite: Broken pipe > > >From all what I can see here is that there might be a bug in the php program. Have you already checked the line 47 and 92 in the php program if you have missed the semicolon at the end? If that is not the case, can you dump the kernel to the list along with your bank account info, so that we have more fun in guessing and still get paid for. (Sorry, I could not resist - PLEASE DO NOT send the kernel to the list!!!)>And a gdb bt full: >(gdb) bt full >#0 0x282adf17 in pthread_testcancel () from /usr/lib/libpthread.so.1 >No symbol table info available. >#1 0x2829f0b5 in sigaction () from /usr/lib/libpthread.so.1 >No symbol table info available. >#2 0x282991e1 in pthread_kill () from /usr/lib/libpthread.so.1 >No symbol table info available. >#3 0x28298bb0 in raise () from /usr/lib/libpthread.so.1 >No symbol table info available. >#4 0x28369627 in abort () from /lib/libc.so.5 >No symbol table info available. >#5 0x2830d389 in ldexp () from /lib/libc.so.5 >No symbol table info available. >#6 0x2830d3cd in ldexp () from /lib/libc.so.5 >No symbol table info available. >#7 0x2830e2c1 in ldexp () from /lib/libc.so.5 >No symbol table info available. >#8 0x2830e513 in ldexp () from /lib/libc.so.5 >No symbol table info available. >#9 0x2830e644 in free () from /lib/libc.so.5 >No symbol table info available. >#10 0x283c8bd6 in handle_recordfile (chan=0x283cfce0, agi=0x1, >argc=142206976, argv=0x283caf39) at res_agi.c:908 > fs = (struct ast_filestream *) 0x879e800 > f = (struct ast_frame *) 0x2836fae6 > tv = {tv_sec = 3000, tv_usec = 142205952} > start = {tv_sec = 0, tv_usec = 3030} > sample_offset = 1114132012 > res = 64 > ms = 730313 > sildet = (struct ast_dsp *) 0xbf307428 > dspsilence = 1 > silence = -1087343568 > gotsilence = 0 > silencestr = 0x2836fae6 "chunk is already free\n" > rfmt = -1087343580 > __PRETTY_FUNCTION__ = "handle_recordfile" >#11 0x283caf39 in agi_exec_full (chan=0x8733c00, data=0x1, enhanced=0, >dead=1) at res_agi.c:1711 > uc = (struct localuser *) 0x17e > ul = (struct localuser *) 0x283cfce0 > u = (struct localuser *) 0x876d430 > argv = {0xbf308048 "dial/vm.agi", 0xbf308058 "54390", 0x0 ><repeats 126 times>} > buf = "dial/vm.agi\00054390", '\0' <repeats 2026 times> > tmp = 0x0 > argc = 675085536 > fds = {52, 56} > efd = -1 > pid = 19445 > stringp = 0x17e <Address 0x17e out of bounds> > agi = {fd = 56, audio = -1, ctrl = 52} > __PRETTY_FUNCTION__ = "agi_exec_full" >#12 0x283cb410 in deadagi_exec (chan=0x17e, data=0x6) at res_agi.c:1970 >No locals. >#13 0x0807fdb2 in pbx_extension_helper (c=0x8733c00, con=0x0, >context=0xbf30ee88 "", exten=0x8733d3c "dial-dial", > priority=0, label=0x8080bf8 "\203? \205?\211?\017\205????\213\203?", >callerid=0xbf30cc28 "dial/vm.agi|54390", > action=0) at pbx.c:530 > e = (struct ast_exten *) 0x0 > sw = (struct ast_switch *) 0x81633a0 > data = 0x1 <Address 0x1 out of bounds> > foundcontext = 0x0 > newstack = 141770288 > res = 0 > status = 675066876 > incstack = {0x0, 0x0, 0x0, 0x0, 0x81083c0 "\020", 0x40 <Address >0x40 out of bounds>, > 0x55 <Address 0x55 out of bounds>, 0x2829e3b2 "[\201??5\001", >0x282b199c "??\001", > 0x8107000 "@P\021(\025?\233??\001\020\b", 0xbf30ecd0 "", 0x2829ec8f >"\203?\020?\031\003", 0x28115050 "", > 0x2 <Address 0x2 out of bounds>, 0x0, 0x2829ea22 "[\201?z/\001", >0x2838d818 "\200U\021\b", 0x8761c50 "", > 0xbf30eca0 "??0?_6*(", 0x282a4d4a "[\201?R?", > 0x80a13bc >"\203?\f?\030W\017\b\205?u\030\203?\bh?\023\n\b?t$\034?;\"??\203?\034?\215v", >0x0, > 0x2 <Address 0x2 out of bounds>, 0x0, 0x2838d818 "\200U\021\b", >0x87af200 "@?s(\025?\233?", > 0xbf30ecc0 "?\236*(*Z*(\234\031+(", 0x282a4089 "?\217?", 0x8115580 >"P?\021\bP?\021\b\002", 0x87af248 "@\023v\b", > 0xf <Address 0xf out of bounds>, 0x282a3b6a "[\201?2?", 0x2838d818 >"\200U\021\b", 0x87af200 "@?s(\025?\233?", > 0xbf30ecd0 "", 0x282a365f >"\203?\020\215e?[^_??\211?U\211?WVS\203?\f?", 0x87af200 >"@?s(\025?\233?", 0x0, 0x0, > 0x282aecde "[\201??,", 0x28379458 "", 0x81000f0 "H\030\020\b", >0x282a9ec1 "[\201??z", 0x282a5a2a "[\201?r?", > 0x282b199c "??\001", 0x8101000 "\200?\017\b", 0xbf30ed00 >"0?0??\221)(", > 0x282ae635 "\203?\020\215e?[^_??U\211?S\203?\024?", 0x2873b850 >"\003P", 0x8101034 "\020\001\020\b", 0x0, > 0x282ae531 "\211E?e\2135@", 0x2838d818 "\200U\021\b", 0x283795ec >"(5\f", 0x2873b850 "\003P", 0x282b199c "??\001", 0x0, > 0x10 <Address 0x10 out of bounds>, 0xbf30ed30 "\001", 0x282991f2 >"\203?\020\215v", 0x87af200 "@?s(\025?\233?", > 0x8107000 "@P\021(\025?\233??\001\020\b", 0x0, 0x2829917a >"[\201?\"\210\001", > 0x80f21a5 "- IAX2/asterlink-13 is ringing\n", 0x80de068 >"ASTERISK_PROMPT", 0x87af200 "@?s(\025?\233?", > 0x1 <Address 0x1 out of bounds>, 0xbf30ed48 "d!\017\b", 0x80f21a5 "- >IAX2/asterlink-13 is ringing\n", > 0x1 <Address 0x1 out of bounds>, 0x282a4d4a "[\201?R?", 0x8107000 >"@P\021(\025?\233??\001\020\b", 0x8761c50 "", > 0x5 <Address 0x5 out of bounds>, 0x1 <Address 0x1 out of bounds>, >0x80f2164 "", 0x87af200 "@?s(\025?\233?", > 0xbf30ed90 "??0?t7*(d!\017\b", 0x282a4089 "?\217?", 0x810a500 >"@,y\b\020\006\020\b\002", 0x87af248 "@\023v\b", > 0xf <Address 0xf out of bounds>, 0x282a3b6a "[\201?2?", 0x0, 0x41 ><Address 0x41 out of bounds>, > 0x2836fb51 " in malloc():", 0xbf30ee00 "", 0xbf30ed90 >"??0?t7*(d!\017\b", 0x0, 0x0, 0x0, > 0x80f21a0 " -- IAX2/asterlink-13 is ringing\n", > 0x80f21e1 "7889751781@dial-dial-da64,2\033[0;37;40m\", >\"\033[1;35;40mIAX2/asterlink/13093478897|20\033[0;37;40m\") in new >stack\n", 0xbf30edb0 "P?0?bU\005\b??0?", 0x282a3774 >"??\211?U\211?\203?\020j\001?u\b??\003", 0x80f2164 "", 0x0, > 0xbf30ee50 "\002", 0x80554c6 "\203? \200= !\017\b", 0x5 <Address 0x5 >out of bounds>, 0x80cea94 "logger.c", > 0xbf30ee50 "\002", 0x8055562 >"\215e?[^_??\203?\f?\rp!\017\bh??\f\bh\"?\f\bhE\003", 0xbf30ede9 "", >0x8134400 "", > 0x81344a0 "1", 0x80915ec "\203?\020\213??\003", 0x81344f0 "dial-dial", >0x8733d3c "dial-dial", > 0x4f <Address 0x4f out of bounds>, 0x81344a0 "1", 0x20727041 <Address >0x20727041 out of bounds>, > 0x31203132 <Address 0x31203132 out of bounds>, 0x8733d8c "", 0x8733ddc >"", 0x0 <repeats 12 times>} > passdata = '\0' <repeats 16 times>, "dial/vm.agi|54390", '\0' ><repeats 8154 times> > stacklen = 141770044 > tmp = '\0' <repeats 16 times>, >"\033[1;36;40mDeadAGI\033[0;37;40m\0000m\0007;40m", '\0' <repeats 27 >times> > tmp2 = '\0' <repeats 16 times>, >"\033[1;35;40mLocal/8XXXXXXXXXX54390@dial-dial-990c,1\033[0;37;40m" > tmp3 = '\0' <repeats 16 times>, >"\033[1;35;40mdial/vm.agi|54390\033[0;37;40m\000;37;40m\000;40m", '\0' ><repeats 8121 times> > atmp = '\0' <repeats 79 times> > atmp2 = "\005", '\0' <repeats 11 times>, "<=s\b\200 >\020\bH?z\b\017\000\000\000j;*(L\037+(??*(\000\000\000\000\234\031+(\204U\017\b", >'\0' <repeats 20 times>, " \2130?t7*(\204U\017\b\000\000\000\000\001", >'\0' <repeats 19 times>, "??\a\b\204U\017\b\\\2130?`\2130?d\2130?", >'\0' <repeats 28 times>, "\001\000\000\000\002", '\0' <repeats 8130 >times> > __PRETTY_FUNCTION__ = "pbx_extension_helper" >#14 0x086b08b0 in ?? () >No symbol table info available. >#15 0x080e938a in he_errlist () >No symbol table info available. >#16 0x08733e30 in ?? () >No symbol table info available. >#17 0x08733d3c in ?? () >No symbol table info available. >#18 0x283cb3fc in agi_unregister () at res_agi.c:1957 > cli_no_debug = {cmda = {0x283cc359 "agi", 0x283cc35d "no", >0x283cc360 "debug", 0x0 <repeats 13 times>}, > handler = 0x283c9954 <agi_no_debug>, summary = 0x283cc366 "Disable AGI >debugging", > usage = 0x283cd020 "Usage: agi no debug\n Disables dumping of >AGI transactions for debugging purposes\n", > generator = 0, next = 0x80f0940, inuse = 0} > usage_saytime = " Usage: SAY TIME <time> <escape digits>\n\tSay >a given time, returning early if any of the given DTMF digits are\n >received on the channel. <time> is number of seconds elapsed since >00:00:00\n on January"... > showagi = {cmda = {0x283cc39e "show", 0x283cc359 "agi", 0x0 ><repeats 14 times>}, > handler = 0x283c9b84 <handle_showagi>, summary = 0x283cb960 "Show AGI >commands or specific help", > usage = 0x283cd140 "Usage: show agi [topic]\n When called with a >topic as an argument, displays usage\n information on the given >command. If called without a\n topic, it provides a list of AGI >commands.\n", generator = 0, > next = 0x80eb780, inuse = 0} > app = 0x283cc34d "AGI" > usage_dbdel = " Usage: DATABASE DEL <family> <key>\n\tDeletes an >entry in the Asterisk database for a\n given family and key.\n Returns 1 >if successful, 0 otherwise.\n" > usage_saydate = " Usage: SAY DATE <date> <escape digits>\n\tSay >a given date, returning early if any of the given DTMF digits are\n >received on the channel. <date> is number of seconds elapsed since >00:00:00\n on January"... > cli_debug = {cmda = {0x283cc359 "agi", 0x283cc360 "debug", 0x0 ><repeats 14 times>}, > handler = 0x283c9908 <agi_do_debug>, summary = 0x283cc37c "Enable AGI >debugging", > usage = 0x283cd080 "Usage: agi debug\n Enables dumping of AGI >transactions for debugging purposes\n", generator = 0, > next = 0x283cf700, inuse = 0} > usage_waitfordigit = " Usage: WAIT FOR DIGIT <timeout>\n\tWaits >up to 'timeout' milliseconds for channel to receive a DTMF digit.\n >Returns -1 on channel failure, 0 if no digit is received in the >timeout, or\n the numerical va"... > usage_getoption = " Usage: GET OPTION <filename> <escape_digits> >[timeout]\n\tBehaves similar to STREAM FILE but used with a timeout >option.\n" > dumpagihtml_help = "Usage: dump agihtml <filename>\n\tDumps the >agi command list in html format to given filename\n" > usage_setmusic = " Usage: SET MUSIC ON <on|off> ><class>\n\tEnables/Disables the music on hold generator. If <class> >is\n not specified, then the default music on hold class will be >used.\n Always returns 0.\n" > synopsis = 0x283cb688 "Executes an AGI compliant application" > localusecnt = 1 > usage_dbput = " Usage: DATABASE PUT <family> <key> ><value>\n\tAdds or updates an entry in the Asterisk database for a\n >given family, key, and value.\n Returns 1 if successful, 0 >otherwise.\n" > usage_sayphonetic = " Usage: SAY PHONETIC <string> <escape >digits>\n\tSay a given character string with phonetics, returning early >if any of the\n given DTMF digits are received on the channel. Returns 0 >if playback\n complet"... > localusers = (struct localuser *) 0x876d430 > no_debug_usage = "Usage: agi no debug\n Disables dumping >of AGI transactions for debugging purposes\n" > usage_getvariable = " Usage: GET VARIABLE ><variablename>\n\tReturns 0 if <variablename> is not set. Returns 1 if ><variablename>\n is set and returns the variable in parentheses.\n >example return code: 200 result=1 (testvaria"... > usage_getdata = " Usage: GET DATA <file to be streamed> >[timeout] [max digits]\n\tStream the given file, and recieve DTMF data. >Returns the digits received\nfrom the channel at the other end.\n" > usage_streamfile = " Usage: STREAM FILE <filename> <escape >digits> [sample offset]\n\tSend the given file, allowing playback to be >interrupted by the given\n digits, if any. Use double quotes for the >digits if you wish none"... > usage_setvariable = " Usage: SET VARIABLE <variablename> ><value>\n" > showagi_help = "Usage: show agi [topic]\n When called with >a topic as an argument, displays usage\n information on the given >command. If called without a\n topic, it provides a list of AGI >commands.\n" > usage_setextension = " Usage: SET EXTENSION <new >extension>\n\tChanges the extension for continuation upon exiting the >application.\n" > usage_tddmode = " Usage: TDD MODE <on|off>\n\tEnable/Disable TDD >transmission/reception on a channel. Returns 1 if\n successful, or 0 if >channel is not TDD-capable.\n" > usage_sendimage = " Usage: SEND IMAGE <image>\n\tSends the given >image on a channel. Most channels do not support the\n transmission of >images. Returns 0 if image is sent, or if the channel does not\n >support image transmis"... > usage_noop = " Usage: NoOp\n\tDoes nothing.\n" > usage_dbget = " Usage: DATABASE GET <family> <key>\n\tRetrieves >an entry in the Asterisk database for a\n given family and key.\n >Returns 0 if <key> is not set. Returns 1 if <key>\n is set and returns >the variable in pa"... > usage_hangup = " Usage: HANGUP [<channelname>]\n\tHangs up the >specified channel.\n If no channel name is given, hangs up the current >channel\n" > eapp = 0x283cc34c "EAGI" > usage_recvchar = " Usage: RECEIVE CHAR <timeout>\n\tReceives a >character of text on a channel. Specify timeout to be the\n maximum >time to wait for input in milliseconds, or 0 for infinite. Most >channels\n do not support t"... > usage_autohangup = " Usage: SET AUTOHANGUP <time>\n\tCause the >channel to automatically hangup at <time> seconds in the\n future. Of >course it can be hungup before then as well. Setting to 0 will\n cause >the autohangup feat"... > usage_setcontext = " Usage: SET CONTEXT <desired >context>\n\tSets the context for continuation upon exiting the >application.\n" > usage_setpriority = " Usage: SET PRIORITY <num>\n\tChanges the >priority for continuation upon exiting the application.\n" > deadsynopsis = 0x283cb910 "Executes AGI on a hungup channel" > usage_getvariablefull = " Usage: GET FULL VARIABLE ><variablename> [<channel name>]\n\tReturns 0 if <variablename> is not >set or channel does not exist. Returns 1\nif <variablename> is set >and returns the variable in parenthesi"... > commands = {{cmda = {0x283cc3a3 "answer", 0x0 <repeats 15 >times>}, handler = 0x283c7cf8 <handle_answer>, > summary = 0x283cc3aa "Answer channel", > usage = 0x283cf660 " Usage: ANSWER\n\tAnswers channel if not already >in answer state. Returns -1 on\n channel failure, or 0 if >successful.\n", next = 0x0}, {cmda = {0x283cc465 "channel", 0x283cc3b9 >"status", 0x0 <repeats 14 times>}, > handler = 0x283c93b4 <handle_channelstatus>, summary = 0x283cb984 >"Returns status of the connected channel", > usage = 0x283cf4c0 " Usage: CHANNEL STATUS >[<channelname>]\n\tReturns the status of the specified channel.\n If no >channel name is given the returns the status of the\n current channel. >Return values:\n 0 Channel is down an"..., next = 0x0}, { > cmda = {0x283cc3c0 "database", 0x283cc3c9 "del", 0x0 <repeats 14 >times>}, handler = 0x283c9830 <handle_dbdel>, > summary = 0x283cc3cd "Removes database key/value", > usage = 0x283cf420 " Usage: DATABASE DEL <family> <key>\n\tDeletes >an entry in the Asterisk database for a\n given family and key.\n >Returns 1 if successful, 0 otherwise.\n", next = 0x0}, {cmda >{0x283cc3c0 "database", 0x283cc3e8 "deltree", > 0x0 <repeats 14 times>}, handler = 0x283c9894 <handle_dbdeltree>, > summary = 0x283cb9ac "Removes database keytree/value", > usage = 0x283cf360 " Usage: DATABASE DELTREE <family> >[keytree]\n\tDeletes a family or specific keytree within a family\n in >the Asterisk database.\n Returns 1 if successful, 0 otherwise.\n", next >= 0x0}, {cmda = {0x283cc3c0 "database", > 0x283cc3f0 "get", 0x0 <repeats 14 times>}, handler = 0x283c9748 ><handle_dbget>, > summary = 0x283cc3f4 "Gets database value", > usage = 0x283cf240 " Usage: DATABASE GET <family> <key>\n\tRetrieves >an entry in the Asterisk database for a\n given family and key.\n >Returns 0 if <key> is not set. Returns 1 if <key>\n is set and returns >the variable in pa"..., next = 0x0}, { > cmda = {0x283cc3c0 "database", 0x283cc408 "put", 0x0 <repeats 14 >times>}, handler = 0x283c97cc <handle_dbput>, > summary = 0x283cc40c "Adds/updates database value", > usage = 0x283cf180 " Usage: DATABASE PUT <family> <key> ><value>\n\tAdds or updates an entry in the Asterisk database for a\n >given family, key, and value.\n Returns 1 if successful, 0 >otherwise.\n", next = 0x0}, {cmda = {0x283cc428 "exec", > 0x0 <repeats 15 times>}, handler = 0x283c91dc <handle_exec>, >summary = 0x283cc42d "Executes a given Application", > usage = 0x283cf0c0 " Usage: EXEC <application> <options>\n\tExecutes ><application> with given <options>.\n Returns whatever the application >returns, or -2 on failure to find application\n", next = 0x0}, {cmda >{0x283cc3f0 "get", > 0x283cc44a "data", 0x0 <repeats 14 times>}, handler = 0x283c87f8 ><handle_getdata>, > summary = 0x283cc44f "Prompts for DTMF on a channel", > usage = 0x283cf000 " Usage: GET DATA <file to be streamed> [timeout] >[max digits]\n\tStream the given file, and recieve DTMF data. Returns >the digits received\nfrom the channel at the other end.\n", next >0x0}, {cmda = {0x283cc3f0 "get", > 0x283cc46d "full", 0x283cc488 "variable", 0x0 <repeats 13 times>}, >handler = 0x283c9584 <handle_getvariablefull>, > summary = 0x283cb9cc "Evaluates a channel expression", > usage = 0x283ceea0 " Usage: GET FULL VARIABLE <variablename> >[<channel name>]\n\tReturns 0 if <variablename> is not set or channel >does not exist. Returns 1\nif <variablename> is set and returns the >variable in parenthesi"..., next = 0x0}, { > cmda = {0x283cc3f0 "get", 0x283cc472 "option", 0x0 <repeats 14 >times>}, handler = 0x283c8180 <handle_getoption>, > summary = 0x283cb9ec "Stream file, prompt for DTMF, with timeout", > usage = 0x283cee20 " Usage: GET OPTION <filename> <escape_digits> >[timeout]\n\tBehaves similar to STREAM FILE but used with a timeout >option.\n", next = 0x0}, {cmda = {0x283cc3f0 "get", 0x283cc488 >"variable", 0x0 <repeats 14 times>}, > handler = 0x283c94f0 <handle_getvariable>, summary = 0x283cc479 >"Gets a channel variable", > usage = 0x283ced40 " Usage: GET VARIABLE <variablename>\n\tReturns 0 >if <variablename> is not set. Returns 1 if <variablename>\n is set and >returns the variable in parentheses.\n example return code: 200 >result=1 (testvaria"..., next = 0x0}, { > cmda = {0x283cc590 "hangup", 0x0 <repeats 15 times>}, handler >0x283c9100 <handle_hangup>, > summary = 0x283cc491 "Hangup the current channel", > usage = 0x283cecc0 " Usage: HANGUP [<channelname>]\n\tHangs up the >specified channel.\n If no channel name is given, hangs up the current >channel\n", next = 0x0}, {cmda = {0x283cc4ac "noop", 0x0 <repeats 15 >times>}, > handler = 0x283c99a0 <handle_noop>, summary = 0x283cc4b1 "Does >nothing", > usage = 0x283cec97 " Usage: NoOp\n\tDoes nothing.\n", next = 0x0}, >{cmda = {0x283cc4be "receive", 0x283cc4c6 "char", > 0x0 <repeats 14 times>}, handler = 0x283c7e28 <handle_recvchar>, > summary = 0x283cba18 "Receives text from channels supporting it", > usage = 0x283ceb20 " Usage: RECEIVE CHAR <timeout>\n\tReceives a >character of text on a channel. Specify timeout to be the\n maximum >time to wait for input in milliseconds, or 0 for infinite. Most >channels\n do not support t"..., next = 0x0}, { > cmda = {0x283cc4cb "record", 0x283cc4e5 "file", 0x0 <repeats 14 >times>}, handler = 0x283c8a0c <handle_recordfile>, > summary = 0x283cc4d2 "Records to a given file", > usage = 0x283ce840 " Usage: RECORD FILE <filename> <format> <escape >digits> <timeout> \\\n", ' ' <repeats 42 times>, "[offset samples] >[BEEP] [s=silence]\n\tRecord to a file until a given dtmf digit in the >sequ"..., next = 0x0}, {cmda = { > 0x283cc4ea "say", 0x283cc4ee "alpha", 0x0 <repeats 14 times>}, >handler = 0x283c8510 <handle_sayalpha>, > summary = 0x283cc4f4 "Says a given character string", > usage = 0x283ce700 " Usage: SAY ALPHA <number> <escape >digits>\n\tSay a given character string, returning early if any of the >given DTMF digits\n are received on the channel. Returns 0 if playback >completes without a digit\n"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc512 "digits", 0x0 <repeats 14 >times>}, handler = 0x283c8478 <handle_saydigits>, > summary = 0x283cc519 "Says a given digit string", > usage = 0x283ce5c0 " Usage: SAY DIGITS <number> <escape >digits>\n\tSay a given digit string, returning early if any of the >given DTMF digits\n are received on the channel. Returns 0 if playback >completes without a digit\n be"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc540 "number", 0x0 <repeats 14 >times>}, handler = 0x283c83dc <handle_saynumber>, > summary = 0x283cc533 "Says a given number", > usage = 0x283ce480 " Usage: SAY NUMBER <number> <escape >digits>\n\tSay a given number, returning early if any of the given DTMF >digits\n are received on the channel. Returns 0 if playback completes >without a digit\n being p"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc547 "phonetic", 0x0 <repeats 14 >times>}, handler = 0x283c8788 <handle_sayphonetic>, > summary = 0x283cba44 "Says a given character string with phonetics", > usage = 0x283ce340 " Usage: SAY PHONETIC <string> <escape >digits>\n\tSay a given character string with phonetics, returning early >if any of the\n given DTMF digits are received on the channel. Returns 0 >if playback\n complet"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc55d "date", 0x0 <repeats 14 >times>}, handler = 0x283c8580 <handle_saydate>, > summary = 0x283cc550 "Says a given date", > usage = 0x283ce1a0 " Usage: SAY DATE <date> <escape digits>\n\tSay a >given date, returning early if any of the given DTMF digits are\n >received on the channel. <date> is number of seconds elapsed since >00:00:00\n on January"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc56f "time", 0x0 <repeats 14 >times>}, handler = 0x283c860c <handle_saytime>, > summary = 0x283cc562 "Says a given time", > usage = 0x283ce000 " Usage: SAY TIME <time> <escape digits>\n\tSay a >given time, returning early if any of the given DTMF digits are\n >received on the channel. <time> is number of seconds elapsed since >00:00:00\n on January"..., next = 0x0}, { > cmda = {0x283cc4ea "say", 0x283cc574 "datetime", 0x0 <repeats 14 >times>}, handler = 0x283c8698 <handle_saydatetime>, > summary = 0x283cba74 "Says a given time as specfied by the format >given", > usage = 0x283cdd80 " Usage: SAY DATETIME <time> <escape digits> >[format] [timezone]\n\tSay a given time, returning early if any of the >given DTMF digits are\n received on the channel. <time> is number of >seconds elapsed si"..., next = 0x0}, { > cmda = {0x283cc57d "send", 0x283cc582 "image", 0x0 <repeats 14 >times>}, handler = 0x283c7f78 <handle_sendimage>, > summary = 0x283cbaa8 "Sends images to channels supporting it", > usage = 0x283cdc60 " Usage: SEND IMAGE <image>\n\tSends the given >image on a channel. Most channels do not support the\n transmission of >images. Returns 0 if image is sent, or if the channel does not\n >support image transmis"..., next = 0x0}, { > cmda = {0x283cc57d "send", 0x283cc5b0 "text", 0x0 <repeats 14 >times>}, handler = 0x283c7dcc <handle_sendtext>, > summary = 0x283cbad0 "Sends text to channels supporting it", > usage = 0x283cdae0 " Usage: SEND TEXT \"<text to send>\"\n\tSends >the given text on a channel. Most channels do not support the\n >transmission of text. Returns 0 if text is sent, or if the channel >does not\n support text tran"..., next = 0x0}, { > cmda = {0x283cc588 "set", 0x283cc58c "autohangup", 0x0 <repeats 14 >times>}, handler = 0x283c9064 <handle_autohangup>, > summary = 0x283cbaf8 "Autohangup channel in some time", > usage = 0x283cd9e0 " Usage: SET AUTOHANGUP <time>\n\tCause the >channel to automatically hangup at <time> seconds in the\n future. Of >course it can be hungup before then as well. Setting to 0 will\n cause >the autohangup feat"..., next = 0x0}, { > cmda = {0x283cc588 "set", 0x283cc597 "callerid", 0x0 <repeats 14 >times>}, handler = 0x283c92a8 <handle_setcallerid>, > summary = 0x283cbb18 "Sets callerid for the current channel", > usage = 0x283cd980 " Usage: SET CALLERID <number>\n\tChanges the >callerid of the current channel.\n", next = 0x0}, { > cmda = {0x283cc588 "set", 0x283cc5ad "context", 0x0 <repeats 14 >times>}, handler = 0x283c88e0 <handle_setcontext>, > summary = 0x283cc5a0 "Sets channel context", > usage = 0x283cd900 " Usage: SET CONTEXT <desired context>\n\tSets >the context for continuation upon exiting the application.\n", next >0x0}, {cmda = {0x283cc588 "set", 0x283cc5c5 "extension", 0x0 <repeats >14 times>}, > handler = 0x283c893c <handle_setextension>, summary = 0x283cc5b5 >"Changes channel extension", > usage = 0x283cd880 " Usage: SET EXTENSION <new extension>\n\tChanges >the extension for continuation upon exiting the application.\n", next >0x0}, {cmda = {0x283cc588 "set", 0x283cc5cf "music", 0x0 <repeats 14 >times>}, > handler = 0x283c99cc <handle_setmusic>, summary = 0x283cbb40 >"Enable/Disable Music on hold generator", > usage = 0x283cd7c0 " Usage: SET MUSIC ON <on|off> ><class>\n\tEnables/Disables the music on hold generator. If <class> >is\n not specified, then the default music on hold class will be >used.\n Always returns 0.\n", next = 0x0}, {cmda = { > 0x283cc588 "set", 0x283cc5ea "priority", 0x0 <repeats 14 times>}, >handler = 0x283c8998 <handle_setpriority>, > summary = 0x283cc5d5 "Set channel dialplan priority", > usage = 0x283cd740 " Usage: SET PRIORITY <num>\n\tChanges the >priority for continuation upon exiting the application.\n", next >0x0}, {cmda = {0x283cc588 "set", 0x283cc488 "variable", 0x0 <repeats 14 >times>}, > handler = 0x283c9488 <handle_setvariable>, summary = 0x283cc5f3 >"Sets a channel variable", > usage = 0x283cd700 " Usage: SET VARIABLE <variablename> <value>\n", >next = 0x0}, {cmda = {0x283cc60b "stream", > 0x283cc4e5 "file", 0x0 <repeats 14 times>}, handler = 0x283c7fe4 ><handle_streamfile>, > summary = 0x283cc612 "Sends audio file on channel", > usage = 0x283cd4c0 " Usage: STREAM FILE <filename> <escape digits> >[sample offset]\n\tSend the given file, allowing playback to be >interrupted by the given\n digits, if any. Use double quotes for the >digits if you wish none"..., next = 0x0}, { > cmda = {0x283cc62e "tdd", 0x283cc632 "mode", 0x0 <repeats 14 >times>}, handler = 0x283c7eb0 <handle_tddmode>, > summary = 0x283cbb68 "Toggles TDD mode (for the deaf)", > usage = 0x283cd420 " Usage: TDD MODE <on|off>\n\tEnable/Disable TDD >transmission/reception on a channel. Returns 1 if\n successful, or 0 if >channel is not TDD-capable.\n", next = 0x0}, {cmda = {0x283cc637 >"verbose", 0x0 <repeats 15 times>}, > handler = 0x283c9684 <handle_verbose>, summary = 0x283cbb88 "Logs a >message to the asterisk verbose log", > usage = 0x283cd380 " Usage: VERBOSE <message> <level>\n\tSends ><message> to the console via verbose message system.\n <level> is the >the verbose level (1-4)\n Always returns 1.\n", next = 0x0}, {cmda >{0x283cc63f "wait", 0x283cc644 "for", > 0x283cc648 "digit", 0x0 <repeats 13 times>}, handler = 0x283c7d48 ><handle_waitfordigit>, > summary = 0x283cbbb4 "Waits for a digit to be pressed", > usage = 0x283cd220 " Usage: WAIT FOR DIGIT <timeout>\n\tWaits up to >'timeout' milliseconds for channel to receive a DTMF digit.\n Returns >-1 on channel failure, 0 if no digit is received in the timeout, or\n >the numerical va"..., next = 0x0}, { > cmda = {0x0 <repeats 16 times>}, handler = 0, summary = 0x0, usage >0x0, next = 0x0} <repeats 93 times>} > deadapp = 0x283cc351 "DeadAGI" > debug_usage = "Usage: agi debug\n Enables dumping of AGI >transactions for debugging purposes\n" > usage_channelstatus = " Usage: CHANNEL STATUS >[<channelname>]\n\tReturns the status of the specified channel.\n If no >channel name is given the returns the status of the\n current channel. >Return values:\n 0 Channel is down an"... > usage_setcallerid = " Usage: SET CALLERID <number>\n\tChanges >the callerid of the current channel.\n" > usage_sayalpha = " Usage: SAY ALPHA <number> <escape >digits>\n\tSay a given character string, returning early if any of the >given DTMF digits\n are received on the channel. Returns 0 if playback >completes without a digit\n"... > dumpagihtml = {cmda = {0x283cc391 "dump", 0x283cc396 "agihtml", >0x0 <repeats 14 times>}, > handler = 0x283ca054 <handle_dumpagihtml>, summary = 0x283cb934 "Dumps >a list of agi command in html format", > usage = 0x283cd0e0 "Usage: dump agihtml <filename>\n\tDumps the agi >command list in html format to given filename\n", > generator = 0, next = 0x2857ed80, inuse = 0} > tdesc = 0x283cb664 "Asterisk Gateway Interface (AGI)" > esynopsis = 0x283cb6b0 "Executes an EAGI compliant application" > localuser_lock = 0x8131f00 > usage_exec = " Usage: EXEC <application> <options>\n\tExecutes ><application> with given <options>.\n Returns whatever the application >returns, or -2 on failure to find application\n" > usage_sendtext = " Usage: SEND TEXT \"<text to send>\"\n\tSends >the given text on a channel. Most channels do not support the\n >transmission of text. Returns 0 if text is sent, or if the channel >does not\n support text tran"... > usage_recordfile = " Usage: RECORD FILE <filename> <format> ><escape digits> <timeout> \\\n", ' ' <repeats 42 times>, "[offset >samples] [BEEP] [s=silence]\n\tRecord to a file until a given dtmf >digit in the sequence is received\n Returns -1 on "... > usage_dbdeltree = " Usage: DATABASE DELTREE <family> >[keytree]\n\tDeletes a family or specific keytree within a family\n in >the Asterisk database.\n Returns 1 if successful, 0 otherwise.\n" > descrip = 0x283cb6d8 " [E|Dead]AGI(command|args): Executes an >Asterisk Gateway Interface compliant\nprogram on a channel. AGI allows >Asterisk to launch external programs\nwritten in any language to >control a telephony chann"... > agidebug = 0 > usage_answer = " Usage: ANSWER\n\tAnswers channel if not already >in answer state. Returns -1 on\n channel failure, or 0 if successful.\n" > usage_verbose = " Usage: VERBOSE <message> <level>\n\tSends ><message> to the console via verbose message system.\n <level> is the >the verbose level (1-4)\n Always returns 1.\n" > usage_saynumber = " Usage: SAY NUMBER <number> <escape >digits>\n\tSay a given number, returning early if any of the given DTMF >digits\n are received on the channel. Returns 0 if playback completes >without a digit\n being p"... > usage_saydatetime = " Usage: SAY DATETIME <time> <escape digits> >[format] [timezone]\n\tSay a given time, returning early if any of the >given DTMF digits are\n received on the channel. <time> is number of >seconds elapsed si"... > usage_saydigits = " Usage: SAY DIGITS <number> <escape >digits>\n\tSay a given digit string, returning early if any of the >given DTMF digits\n are received on the channel. Returns 0 if playback >completes without a digit\n be"... >#19 0x00000000 in ?? () >No symbol table info available. >#20 0x00000000 in ?? () >No symbol table info available. >#21 0x08733d3c in ?? () >No symbol table info available. >#22 0x0810a080 in ?? () >No symbol table info available. >#23 0x087af048 in ?? () >No symbol table info available. >#24 0x0000000f in ?? () >No symbol table info available. >#25 0x282a3b6a in pthread_mutex_unlock () from /usr/lib/libpthread.so.1 >No symbol table info available. >Previous frame inner to this frame (corrupt stack?) > >Thanks, > >Kevin Bockman > >_______________________________________________ >Asterisk-Users mailing list >Asterisk-Users@lists.digium.com >http://lists.digium.com/mailman/listinfo/asterisk-users >To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > > > > >-- Ronald Wiplinger (CEO of ELMIT) http://www.elmit.com +886 (0) 939--77-55-16 or FWD 511208 - I'm a SpamCon Foundation Member, #694, Verify it at http://www.spamcon.org PS: Spam prevention! Our system is protected with a spam prevention program. If you send us an e-mail, our system will send you a confirmation message back. Just reply to this confirmation message please. After receiving this confirmation message, our system will send the hold message (one) and all future messages (after the received confirmation message) to me without asking you again.
> From all what I can see here is that there might be a bug in the php > program. > Have you already checked the line 47 and 92 in the php program if you > have missed the semicolon at the end? > If that is not the case, can you dump the kernel to the list along with > your bank account info, so that we have more fun in guessing and still > get paid for.I found another way to accomplish what I wanted without recording the file in the AGI. It would still be cool to debug it though. Like I said, it works fine if I call locally with SIP. It only crashes if I call over the internet using IAX. Could you tell me how you arrived at the line number of 47 and 92? I use a few AGIs but it seems to be the vm.agi that it has a problem with. It is a 67 line file though. :-) Thanks, Kevin Bockman
Kevin Bockman wrote:>> From all what I can see here is that there might be a bug in the php >>program. >>Have you already checked the line 47 and 92 in the php program if you >>have missed the semicolon at the end? >>If that is not the case, can you dump the kernel to the list along with >>your bank account info, so that we have more fun in guessing and still >>get paid for. >> >> > >I found another way to accomplish what I wanted without recording the >file in the AGI. It would still be cool to debug it though. > >Like I said, it works fine if I call locally with SIP. It only crashes >if I call over the internet using IAX. > >Could you tell me how you arrived at the line number of 47 and 92? I >use a few AGIs but it seems to be the vm.agi that it has a problem >with. It is a 67 line file though. :-) > >Good that you take it with humor, ... I wanted to say that it is completely useless to send the log files if we have no idea what your php is doing, ... As you stated it did not complete the script, so it is obviously (for me) that the reason is in the php and not in Asterisk, or at least you can only find the reason if you know the part of the php where it stops. Since you wrote the php, maybe you can make some print statments (to a file), like "I am at line xxx, my values are xxxxxxxxx" At least this could give you a clue where it may stuck. It still can be just a syntax error, which you only come to in certain situations, .... bye Ronald