Summary:ASTERISK-07268: Use of FILTER crashes the server
Reporter:Sherwood McGowan (rushowr)Labels:
Date Opened:2006-07-01 09:23:34Date Closed:2006-07-03 00:53:06
Versions:Frequency of
Environment:Attachments:( 0) output.txt
Description:I have a set command in my dialplan that uses the string function to filter everything but digits from CallerID(number) and then puts that value in a variable. When the call hits that line, I get an error message from func_strings.c and then asterisk crashes. The error message is only the "usage" message for how to use filter.
Comments:By: Sherwood McGowan (rushowr) 2006-07-01 09:24:51

Forgot to add the output:

Jul  1 22:10:31 ERROR[14825]: func_strings.c:87 filter: Usage: FILTER(<allowed-chars>,<string>)
   -- Executing [64776101@incoming:1] Set("SIP/16145606924-081d64a0", "CALLERID(number)=") in new stack
   -- Executing [64776101@incoming:2] Set("SIP/16145606924-081d64a0", "SOURCE=") in new stack
Disconnected from Asterisk server

Here's the relevant line from my dialplan:

I also tried doing it without the quotes, same result

By: Russell Bryant (russell) 2006-07-01 09:43:48

The FILTER function has been fixed in the trunk.

However, it does not look like this had anything to do with why your system crashed.  We will need a backtrace to find out the details.  Please rebuild Asterisk with "make dont-optimize", re-install, and read doc/backtrace.txt for some information on how to provide a backtrace.


By: Sherwood McGowan (rushowr) 2006-07-01 10:48:53

I'll try doing that on my dev server, as the problem was noticed on a client's server.

Until then, this might possibly help. When running make install from zaptel's source tree (I used trunk and the 1.2 branch separately with same result) I got unresolved symbol errors at the depmod part at the end. I ran depmod -ae and got:

depmod: *** Unresolved symbols in /lib/modules/2.4.27/misc/zttranscode.o
depmod:         remap_pfn_range
depmod:         zt_transcode_fops

I'll do that debug build today hopefully. Thanks for your help!

By: Tilghman Lesher (tilghman) 2006-07-01 10:51:45

russell:  I don't think that's the right fix.  Arguments to functions should all be delimited by the "|" character.  The "," delimiter is meant only to emulate the common usage with extensions.conf.

By: Sherwood McGowan (rushowr) 2006-07-01 10:58:10

Good to know, I wasn't aware of that. I'll try updating my trunk, recompiling, and then changing my dialplan

By: Tilghman Lesher (tilghman) 2006-07-01 11:07:22

Waiting on backtrace to be posted.

By: Sherwood McGowan (rushowr) 2006-07-01 11:39:07

Ok, it's dying at the REGEX function call. The documentation I was able to find was slim on this, so that's probably my issue. Here's the command:

Set(cidcheck=${REGEX("\(65\)[0-9]\{8\}" ${SOURCE})})

backtrace to follow

By: Sherwood McGowan (rushowr) 2006-07-01 14:17:20

Backtrace uploaded... I think I definitely had the wrong culprit, looks like REGEX and probably my usage. However, Zaptel is causing strange issues too...

By: Anthony LaMantia (alamantia) 2006-07-02 19:28:33


is there anyway you can provide a core dump  for this crash?
the backtrace is usefull but i need more information to pinpoint the bug..

to make one

ulimit -c unlimited  (or whatever size you think is sufficant)

and then upload the core file...


By: Tilghman Lesher (tilghman) 2006-07-02 23:32:31

A core file is completely useless to anybody who does not have an identical system.  Please do NOT upload your core file.

By: Tilghman Lesher (tilghman) 2006-07-03 00:53:06

Since you opened 7466, this report is no longer needed.