This commit squashes together three commits because the wrong approach was originally...
authorJeff Peeler <jpeeler@digium.com>
Mon, 6 Oct 2008 22:26:25 +0000 (22:26 +0000)
committerJeff Peeler <jpeeler@digium.com>
Mon, 6 Oct 2008 22:26:25 +0000 (22:26 +0000)
commit50923eab5df022f80e39398b8596ade0c27f9e36
treefffea4bdb9579e3ee88f29033116b91323750131
parentabc88c1d61ecdb0b9577dd9b1755fedc120a1906
This commit squashes together three commits because the wrong approach was originally used. (One of the commits was only one line.)

1) r143204:
The main change here was to masquerade the channel if the channel that was to be parked was running a PBX on it. The PBX thread can then maintain full control of the channel (the zombie) as it expects to while allowing the parking thread full control of the real (parked) channel.

2) r143270:
Changed park_call_full to hold the parkinglot lock a little longer, which protects the parkeduser struct from being freed out from underneath. Made sure that the parking extension is added to the parking context while holding the lock thereby ensuring that there are no spurious warnings from removal attempts when a hangup occurs while the parking lot is being announced.

3) r143475: (the one liner)
compare peer and chan instead of looking at the parked user (pu), which could have possibly already have been freed by the parking thread

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