Segmentation Fault when VM is started

hi,
my asterisk is crashing with a “Segmentation Fault” when VM should be accessed.
I can reproduce this with Asterisk 1.6.2.13 as well as with Asterisk 1.8.4.
Asterisk is running on a SOHO-Router (Asus RT-N16), which is based on Linux (Tomato, similar to DD-WRT). I am just at the beginning of Asterisk, using 2 Phones that can successfully register with Asterisk. I am able to call the other phone as well as using the echo-test-application.
Only when trying to establish a connection to a VM it is crashing as soon as the call is forwarded to the VM.
I have simple network setup - all devices are attached directly to the network via switch, no subnetting, vlans etc. is used.

Here is the output of the debug-log:

[May 24 19:50:03] DEBUG[8219] chan_sip.c: -- Done with adding codecs to SDP [May 24 19:50:03] DEBUG[8219] chan_sip.c: Done building SDP. Settling with this capability: 0x4 (ulaw) [May 24 19:50:03] DEBUG[8219] chan_sip.c: Trying to put 'SIP/2.0 200' onto UDP socket destined for 192.168.2.22:33364 [May 24 19:50:03] DEBUG[8250] rtp.c: Got RTCP report of 8 bytes [May 24 19:50:03] DEBUG[8250] rtp.c: Got RTCP report of 32 bytes [May 24 19:50:03] DEBUG[8219] chan_sip.c: **** Received ACK (6) - Command in SIP ACK [May 24 19:50:03] DEBUG[8219] chan_sip.c: Stopping retransmission on '1q3n6vDvXyeaJY6cF6r5wksUEHICBdzt' of Response 12934: Match Found [May 24 19:50:03] DEBUG[8250] app_voicemail.c: Before find_user [May 24 19:50:03] DEBUG[8250] app_voicemail.c: /opt/var/spool/asterisk/voicemail/default/9999/unavail doesn't exist, doing what we can [May 24 19:50:03] DEBUG[8250] channel.c: Set channel SIP/11-00000000 to write format gsm [May 24 19:50:03] DEBUG[8250] rtp.c: Ooh, format changed from unknown to ulaw [May 24 19:50:03] DEBUG[8250] rtp.c: Created smoother: format: 4 ms: 20 len: 160 [May 24 19:50:03] DEBUG[8250] channel.c: Scheduling timer at (50 requested / 50 actual) timer ticks per second

when changing the permissions for /opt/var/spool/asterisk/voicemail/default/9999/unavail (which indeed exists) i get the following output:

-- Nobody picked up in 15000 ms [May 24 20:03:02] DEBUG[8714]: rtp.c:2148 ast_rtp_early_bridge: Channel '<unspecified>' has no RTP, not doing anything [May 24 20:03:02] DEBUG[8714]: channel.c:1820 ast_hangup: Hanging up channel 'SIP/11-00000001' [May 24 20:03:02] DEBUG[8714]: chan_sip.c:6065 sip_hangup: Hangup call SIP/11-00000001, SIP callid 0fc2f04268b34a8013cca38b55516d11@192.168.2.2 [May 24 20:03:02] DEBUG[8714]: chan_sip.c:6084 sip_hangup: Hanging up channel in state Down (not UP) [May 24 20:03:02] DEBUG[8714]: chan_sip.c:4107 __sip_ack: Acked pending invite 102 [May 24 20:03:02] DEBUG[8714]: chan_sip.c:4144 __sip_ack: Stopping retransmission on '0fc2f04268b34a8013cca38b55516d11@192.168.2.2' of Request 102: Match Found [May 24 20:03:02] DEBUG[8714]: app_dial.c:2326 dial_exec_full: Exiting with DIALSTATUS=NOANSWER. [May 24 20:03:02] DEBUG[8714]: pbx.c:3696 pbx_extension_helper: Launching 'VoiceMail' -- Executing [11@telefone:3] VoiceMail("SIP/12-00000000", "9999,u") in new stack [May 24 20:03:02] DEBUG[8714]: chan_sip.c:6257 sip_answer: SIP answering channel: SIP/12-00000000 [May 24 20:03:02] DEBUG[8714]: rtp.c:2690 ast_rtp_new_source: Setting the marker bit due to a source update [May 24 20:03:02] DEBUG[8714]: chan_sip.c:10562 transmit_response_with_sdp: Setting framing from config on incoming call [May 24 20:03:02] DEBUG[8714]: chan_sip.c:10259 add_sdp: ** Our capability: 0xe (gsm|ulaw|alaw) Video flag: True Text flag: True [May 24 20:03:02] DEBUG[8714]: chan_sip.c:10260 add_sdp: ** Our prefcodec: 0x0 (nothing) [May 24 20:03:02] DEBUG[8714]: chan_sip.c:10371 add_sdp: -- Done with adding codecs to SDP [May 24 20:03:02] DEBUG[8714]: chan_sip.c:10495 add_sdp: Done building SDP. Settling with this capability: 0xe (gsm|ulaw|alaw) [May 24 20:03:02] DEBUG[8714]: chan_sip.c:3608 __sip_xmit: Trying to put 'SIP/2.0 200' onto UDP socket destined for 192.168.2.12:5060 [May 24 20:03:02] DEBUG[8563]: devicestate.c:344 _ast_device_state: No provider found, checking channel drivers for SIP - 11 [May 24 20:03:02] DEBUG[8563]: chan_sip.c:23147 sip_devicestate: Checking device state for peer 11 [May 24 20:03:02] DEBUG[8563]: devicestate.c:462 do_state_change: Changing state for SIP/11 - state 1 (Not in use) [May 24 20:03:02] DEBUG[8563]: devicestate.c:442 devstate_event: device 'SIP/11' state '1' [May 24 20:03:02] DEBUG[8563]: devicestate.c:344 _ast_device_state: No provider found, checking channel drivers for SIP - 12 [May 24 20:03:02] DEBUG[8563]: chan_sip.c:23147 sip_devicestate: Checking device state for peer 12 [May 24 20:03:02] DEBUG[8563]: devicestate.c:462 do_state_change: Changing state for SIP/12 - state 1 (Not in use) [May 24 20:03:02] DEBUG[8563]: devicestate.c:442 devstate_event: device 'SIP/12' state '1' Rantanplan_Asus*CLI> Disconnected from Asterisk server Executing last minute cleanups Asterisk ending (0).

Can someone help me with that?

edit:
sip.conf:

[code]context=default ; Default context for incoming calls
bindport=5060 ; UDP Port to bind to (SIP standard port is 5060)
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
language=de

[authentication]

[11]
callerid=11 <11>
nat=yes
type=friend
secret=11
mailbox=9999@default
host=dynamic
context=telefone

[12]
callerid=12 <12>
nat=yes
type=friend
secret=12
mailbox=9999@default
host=dynamic
context=telefone

[13]
callerid=13 <13>
nat=yes
type=friend
secret=13
mailbox=9999@default
host=dynamic
context=telefone
[/code]

voicemail.conf:

[general] format=wav49|gsm|wav serveremail=asterisk attach=yes maxmessage=180 minmessage=1 skipms=3000 maxsilence=5 silencethreshold=128 maxlogins=3 fromstring=Asterisk PBX emaildateformat=%A, %B %d, %Y at %r sendvoicemail=yes ; Allow the user to compose and send a voicemail while inside [zonemessages] eastern=America/New_York|'vm-received' Q 'digits/at' IMp central=America/Chicago|'vm-received' Q 'digits/at' IMp central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours' military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p' european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM [default] 9999 => 1,FamilienSprachBox,xxxx.com 12 => 2,FamilienSprachBox,xxxx.com 13 => 3,FamilienSprachBox,xxxx.com [other]

extensions.conf:

[code][general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]

[telefone]
include => default
exten => 11,1,NoCDR()
exten => 11,n,Dial(SIP/${EXTEN},15,Ttr)
exten => 11,n,VoiceMail(9999,u)
exten => 12,1,NoCDR()
exten => 12,n,Dial(SIP/${EXTEN},15,Ttr)
exten => 12,n,VoiceMail(9999,u)
exten => _1[1-3],1,NoCDR()
exten => _1[1-3],n,Dial(SIP/${EXTEN},15,Ttr)
exten => _1[1-3],n,VoiceMail(9999,u)
exten => 999,1,Answer()
exten => 999,n,Playback(manege)
exten => 999,n,Hangup()
exten => 9999,1,VoiceMailMain(${CALLERID(num)},s)

[default]
include => telefone
[/code]

thx in advance and kind regards,
astrakid

wiki.asterisk.org/wiki/display/ … +Backtrace

ah ok, thanks, i will try that and post the info this evening.

Just tried it, but i don’t get any core-file…:
Started asterisk with -g:

13682 root 22748 R asterisk -g
[…]

it crashed, but i don’t find any core-file…

regards,
andre

But i can reproduce the issue with just requesting an announcement:

[May 25 11:39:08] DEBUG[13913]: rtp.c:1243 ast_rtcp_read: Got RTCP report of 32 bytes [May 25 11:39:08] DEBUG[13913]: pbx.c:3696 pbx_extension_helper: Launching 'Playback' -- Executing [999@telefone:2] Playback("SIP/11-00000000", "work") in new stack [May 25 11:39:08] DEBUG[13913]: channel.c:3925 set_format: Set channel SIP/11-00000000 to write format gsm [May 25 11:39:08] DEBUG[13913]: rtp.c:3881 ast_rtp_write: Ooh, format changed from unknown to ulaw [May 25 11:39:08] DEBUG[13913]: rtp.c:3907 ast_rtp_write: Created smoother: format: 4 ms: 20 len: 160 [May 25 11:39:08] DEBUG[13913]: channel.c:2488 ast_settimeout: Scheduling timer at (50 requested / 50 actual) timer ticks per second Segmentation fault

for this i just added a new extension to extensions.conf:
exten => 999,1,Answer()
exten => 999,n,Playback(work)
exten => 999,n,Hangup()

work.gsm exists. if i i remove that file, the call is just hungup after it has been accepted. maybe something is not working with playing back files…?

regards,
astrakid

If you can’t get a core file, you either have a permissions problem on the current directory, or, maybe, not enough space. I’m assuming there is no use of set-user.

In that case, you will need to run asterisk directly under gdb

that is not possible, i guess asterisk for tomato/dd-wrt has been compiled without debug-capability…

ok, just changed back to 1.4 and there everything is working. i don’t understand the world…

regards,
astrakid

You can compile without debug symbols - a bad idea for Asterisk - but you can still debug it with gdb. If gdb is refusing it, I would suspect you have some sort of set-user issue, which might explain your other problems.

hi,
found the error (read in another forum about it):
when in modules.conf autload is set to “no” and all relevant modules are loaded manually, it works. maybe a memory issue.

regards,
astrakid

hi,
found in another forum the problematic module:
with
noload => res_timing_pthread.so
everything works fine.

regfards,
astrakid