app_dial: Hold reference to calling channel formats when dialing outbound.
authorJoshua Colp <jcolp@digium.com>
Tue, 23 Jun 2015 16:21:41 +0000 (13:21 -0300)
committerJoshua Colp <jcolp@digium.com>
Wed, 24 Jun 2015 18:51:02 +0000 (13:51 -0500)
commit3b2b004d699b8cc7b808f62536bb2bc4db8b4e0e
treec3bbb89f965b9748e0d655a629029771c2ce26dd
parentaf66b0f3f7d4e85b85d3efb9377d14de0a8895f0
app_dial: Hold reference to calling channel formats when dialing outbound.

Currently when requesting a channel the native formats of the
calling channel are provided to the core for usage when dialing
the outbound channel. This occurs without holding the channel lock
or keeping a reference to the formats. This is problematic as
the channel driver may end up changing the formats during this time.
In the case of chan_sip this happens when an SDP negotiation
completes.

This change makes it so app_dial keeps a reference to the native
formats of the calling channel which guarantees that they will
remain valid for the period of time needed.

ASTERISK-25172 #close

Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
apps/app_dial.c