[Asterisk-Users] Bug?

Kevin Bockman ml at neoninternet.com
Thu Apr 21 18:39:53 MST 2005


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 at 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 at 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




More information about the asterisk-users mailing list