bridge_channel.c: Fix FRACK when mapping frames to the bridge.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 16 Aug 2017 22:50:18 +0000 (17:50 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 22 Aug 2017 16:59:49 +0000 (11:59 -0500)
commit17976d1b4e302b3aa7cc510109a78010d7893fe1
treee2d5d44db7f4ce4f1027f6818f5a0c26cfdd87ed
parent6ad8249233080aab4f2ea0e72f3e0b7ef384f243
bridge_channel.c: Fix FRACK when mapping frames to the bridge.

* Add protection checks when mapping streams to the bridge.  The channel
and bridge may be in the process of updating the stream mapping when a
media frame comes in so we may not be able to map the frame at the time.

* We need to map the streams to the bridge's stream numbers right before
they are written into the bridge.  That way we don't have to keep
locking/unlocking the bridge and we won't have any synchronization
problems before the frames actually go into the bridge.

* Protect the deferred queue with the bridge_channel lock.

ASTERISK-27212

Change-Id: Id6860dd61b594b90c8395f6e2c0150219094c21a
main/bridge_channel.c