bridge: When performing a blonde transfer update connected line information.
authorJoshua Colp <jcolp@digium.com>
Wed, 10 Jun 2015 23:28:26 +0000 (20:28 -0300)
committerJoshua Colp <jcolp@digium.com>
Thu, 11 Jun 2015 22:04:04 +0000 (17:04 -0500)
commit7230ee2efe33083d036fa8de7bc1c431900f2bd8
tree3ef505544a8e7d1842e8ab09348e036d2e22209c
parentb23f33e7e5bc1524d3e2b3536174590db575055e
bridge: When performing a blonde transfer update connected line information.

When performing a blonde transfer the code uses the old masquerade
mechanism to move a channel around. As a result of this certain information,
such as connected line, is moved between the channels involved. Upon
completion of the move a frame is queued which is supposed to update the
connected line information on the channel. This does not occur as the
code considers it a redundant update since the masquerade operation
updated the channel (but did not inform it of the new connected line
information). The code also does not queue a connected line update
to be handled by the thread handling the channel. Without this any
other channel that may be loosely involved does not know it is
talking to a different caller.

This change does the following to resolve this:

1. The indicated connected line information is cleared upon
completion of the masquerade operation when doing a blonde transfer.
This prevents the connected line update from being considered
redundant.

2. A connected line update frame is now queued upon the completion
of the masquerade operation so any other channel loosely involved
knows that there is a different caller.

ASTERISK-25157 #close
Reported by: Joshua Colp

Change-Id: Ibb8798184a1dab3ecd35299faecc420034adbf20
main/bridge_channel.c