Merged revisions 144066 via svnmerge from
authorSteve Murphy <murf@digium.com>
Tue, 23 Sep 2008 16:52:32 +0000 (16:52 +0000)
committerSteve Murphy <murf@digium.com>
Tue, 23 Sep 2008 16:52:32 +0000 (16:52 +0000)
commit8343faed0e1bb06610c0a92a67ae97fdf8e47fb7
treee6977e36ee0def9594d3bf4b982e5fc1adeca32e
parent8625eb9d2a5ae3bdf3cd8a053763e3a40ec5bc1e
Merged revisions 144066 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r144066 | murf | 2008-09-23 10:41:49 -0600 (Tue, 23 Sep 2008) | 29 lines

(closes issue #13489)
Reported by: DougUDI
Tested by: murf

(closes issue #13490)
Reported by: seanbright
Tested by: murf

(closes issue #13467)
Reported by: edantie
Tested by: murf, edantie, DougUDI

This crash happens because we are unsafely handling old pointers.
The channel whose cdr is being handled, has been hung up and
destroyed already. I reorganized the code a bit, and tried not
to lose the fork-cdr-chain concepts of the previous code.
I now verify that the 'previous' channel (the channel we
had when the bridge was started), still exists, by looking it up
by name in the channel list. I also do not try to reset the
CDR's of channels involved in bridges.

Testing shows it solves the crash problem, and should not
negatively impact previous fixes involving CDR's generated
during/after blind transfers. (The reason we need to reset
the CDR's on the "beginning" channels in the first place).

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@144067 65c4cc65-6c06-0410-ace0-fbb531ad65f3
main/features.c