]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Fix potential race condition during call pickup.
authorMark Michelson <mmichelson@digium.com>
Thu, 29 Mar 2012 23:33:59 +0000 (23:33 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 29 Mar 2012 23:33:59 +0000 (23:33 +0000)
commit59a886e25f1acd0afc41660718c7b51a53e22b30
tree574fd5671b0d52b364e4de7ffbec4a09428e110f
parent4477d99b2932e3edd3d245f16ec6fc7856d8d85f
Fix potential race condition during call pickup.

Prior to this patch, a connected line update was queued during
call pickup and then an answer frame was queued. The original
caller would presumably then have his connected line updated
and then the call would be answered.

In actuality, the answer frame was not how the call ended up
being answered. Rather, an odd section in app_dial that checks
if the called channel's state is up.

The result is that the order of the connected line update and
the answer were variable. In most cases, this wasn't actually
a bad thing. However, if the 'I' option was passed to dial, the
connected line update would be inhibited.

The fix is to queued the connected line after the answer frame is
queued. This way the race in app_dial is between two
conditions resulting in an answer. This way the connected line
update occurs after the answer every time.

(closes issue ASTERISK-19183)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
    Mark Michelson
Patches:
    ASTERISK-19183.patch uploaded by Mark Michelson (license 5049)
........

Merged revisions 360884 from http://svn.asterisk.org/svn/asterisk/branches/1.8

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