No subject
Fri Jun 28 13:27:35 CDT 2013
Next a control structure is created for the new channel. This is one place where I think there might be contention on how things should be done...
Most of the rest of this process work in the same way as playback on a channel with the ;1 of the announcer channel being the target of playback. Once the playback is successfully queued, things start to deviate again.
With all of that in place, a new thread is spun off which will take care of executing the stasis_app_control pool until it is empty. If the thread is created successfully, we will succeed and put out a reply with a playback control object which can then be used to manipulate the playback as it runs.
Back on the other thread, the control queue will have all of its operations run continuously until the queue is empty at which point the channel will be hung up and the control object disposed of.
Diffs
-----
/trunk/apps/confbridge/conf_chan_announce.c 393998
/trunk/include/asterisk/_private.h 393998
/trunk/include/asterisk/bridging.h 393998
/trunk/include/asterisk/channel.h 393998
/trunk/include/asterisk/core_announcer.h PRE-CREATION
/trunk/include/asterisk/stasis_app.h 393998
/trunk/include/asterisk/stasis_app_playback.h 393998
/trunk/main/asterisk.c 393998
/trunk/main/bridging.c 393998
/trunk/main/channel.c 393998
/trunk/main/core_announcer.c PRE-CREATION
/trunk/res/res_stasis.c 393998
/trunk/res/res_stasis_http_bridges.c 393998
/trunk/res/res_stasis_http_playback.c 393998
/trunk/res/res_stasis_playback.c 393998
/trunk/res/stasis/control.c 393998
/trunk/res/stasis_http/resource_bridges.h 393998
/trunk/res/stasis_http/resource_bridges.c 393998
/trunk/res/stasis_http/resource_channels.c 393998
/trunk/rest-api/api-docs/bridges.json 393998
/trunk/rest-api/api-docs/playback.json 393998
Diff: https://reviewboard.asterisk.org/r/2668/diff/
Testing
-------
Tested playback with channels put into a stasis bridge by a stasis application. In the process I hammered out a few validation bugs. I also made sure no allocations were left over in the bridging resource or the announcer and unreal channel drivers. That is hardly exhaustive though, as the actual places where objects are being allocated for this process are numerous.
Thanks,
jrose
--===============8508413874892337874==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/2668/">https://reviewboard.asterisk.org/r/2668/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#e0e0e0" width="100%" cellpadding="8" style="border: 1px gray solid;">
<tr>
<td>
<h1 style="margin-right: 0.2em; padding: 0; font-size: 10pt;">This change has been discarded.</h1>
</td>
</tr>
</table>
<br />
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers, David Lee, kmoore, Matt Jordan, and rmudgett.</div>
<div>By jrose.</div>
<p style="color: grey;"><i>Updated July 12, 2013, 4:24 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21592">ASTERISK-21592</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This works in the following manner:
On receiving the request, we first try to grab a reference to the bridge being played to in stasis. If it exists, we proceed.
More information about the asterisk-dev
mailing list