Summary:ASTERISK-13045: Crash in ast_bridge_call() when 'NoCDR' app called inside Local channel
Reporter:mdu113 (mdu113)Labels:
Date Opened:2008-11-10 17:23:33.000-0600Date Closed:2008-11-21 15:19:43.000-0600
Versions:Frequency of
Environment:Attachments:( 0) nocdr-crash.txt
( 1) nocdr-crash2.txt
Description:Here's the dialplan:

exten => 100,1,Dial(Local/100@fork-xyz,10,)

exten => 100,1,Wait(1)
exten => 100,n,NoCDR
exten => 100,n,Dial(SIP/xyz010001,10,)
exten => 100,n,Hangup

Scenario: SIP/xyz011101 (polycom 501) calls extension 100. xyz010001 (cisco 7960) starts ringing. Asterisk crashes immediately after xyz010001 answers the call.
Console output and backtrace are in attached nocdr-crash.txt


If '/n' added to local channel then callee can answer the call fine. Asterisk crashes at hangup in that case.
Comments:By: mdu113 (mdu113) 2008-11-11 11:32:39.000-0600

Actually Local channel isn't required to reproduce it. It crashes with a simple call as well. Here's updated dialplan:
exten => 100,1,NoCDR
exten => 100,n,Dial(SIP/xyz010001,10,)
Scenario: SIP/xyz011101 dials extension 100. SIP/xyz010001 answered the call and then hangs up. At this point asterisk crashes (i.e. after hang up was initiated). Console output and backtrace are in nocdr-crash2.txt.
FYI: it doesn't matter which party initiated hang up. asterisk crashes anyway.

By: Digium Subversion (svnbot) 2008-11-21 15:19:42.000-0600

Repository: asterisk
Revision: 158483

U   branches/1.4/res/res_features.c

r158483 | murf | 2008-11-21 15:19:42 -0600 (Fri, 21 Nov 2008) | 11 lines

(closes issue ASTERISK-13045)
Reported by: mdu113

This one is totally my fault. The code doesn't even
create a bridge if the channel CDR has POST_DISABLED.
I didn't check for that at the end of the bridge.
Fixed with a few small insertions. Tested. Looks
good. No cdr generated, no crash, no unnecc. data
objects created either.