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