<div class="gmail_quote">---------- Mensagem encaminhada ----------<br>De: &quot;Matthew Jordan&quot; &lt;<a href="mailto:mjordan@digium.com">mjordan@digium.com</a>&gt;<br>Data: 12/02/2013 19:32<br>Assunto: [asterisk-dev] Asterisk 12 Update - Bridge Work<br>
Para: &quot;Asterisk Developers Mailing List&quot; &lt;<a href="mailto:asterisk-dev@lists.digium.com">asterisk-dev@lists.digium.com</a>&gt;<br>Cc: <br><br type="attribution">Hello!<br>
<br>
Some folks have noticed that we&#39;ve been doing a lot of work on the<br>
bridging functionality in Asterisk. The motivation for this came out of<br>
discussions at AstriDevCon, where many people noted the difficulties<br>
external applications have when attempting to maintain the state of who<br>
is talking to whom. These problems often start with Asterisk&#39;s<br>
masquerade operation, which itself is a symptom of problems in the way<br>
that Asterisk has historically bridged channels.<br>
<br>
Luckily, Asterisk already has a solution to this (and has since 1.6<br>
days) - Joshua Colp&#39;s Bridging API. The API is already used by<br>
ConfBridge and Page, but hasn&#39;t been deployed outside of those<br>
applications. Since we have a good layer of abstraction for bridging<br>
already implemented, and since it provides a model of bridging that<br>
lends itself well to the needs of external APIs (and Asterisk users!),<br>
we started refactoring Asterisk to use the Bridging API for all of its<br>
bridging.<br>
<br>
Up until now, the work for this has been tracked under the API project<br>
[1], but the scope of the work being done really deserves its own page.<br>
Thus, there is now a project page for this up on the wiki [2]. This<br>
provides a dedicated place to document project planning, design, tests,<br>
and other useful information for people who want to participate and<br>
contribute to the project.<br>
<br>
So what&#39;s been done/being done?<br>
<br>
If we&#39;re going to tear into the guts of such a fundamental concept, we<br>
have to have some assurance that we can stitch it all back together! So<br>
for some time, we&#39;ve been working on a large set of tests that cover the<br>
currently supported bridging features. You can find the current bridging<br>
tests in the Asterisk Test Suite [3], and the test plan that they are<br>
implementing on a sub page of the project page [4]. There&#39;s more to be<br>
done here, however, so expect additional tests to pop up (and more<br>
reviews on Review Board for the tests).<br>
<br>
In addition to testing, we&#39;ve started the work on expanding usage of the<br>
Bridge API to the various consumers that initiate bridging, starting<br>
with the Bridge application. Richard has created an integration branch<br>
for this work [5], and is currently working through the various ways in<br>
which channels can be moved between bridges. That includes things like<br>
transfers, but also Local channel optimization, merging bridges,<br>
swapping between two party and multi-party bridge technologies, and a<br>
whole host of other cases.<br>
<br>
In parallel, Jonathan has been working on implementing timed features.<br>
Previously, the Bridging API provided initial implementations of DTMF<br>
triggered features, such as blind and attended transfers and hangup.<br>
However, the Bridge application (as well as Dial) allows for features<br>
that occur on a timed or periodic basis, such as hanging up a channel<br>
after n seconds. Luckily, Joshua had already started on this work as<br>
well, so Jonathan brought that up to trunk and has started to merge it<br>
into Richard&#39;s work [6].<br>
<br>
Some of the next steps on the bridging work are going to entail:<br>
* Finish up the API cleanup and threading model changes<br>
* Get the other consumers of bridging moved over to the new Bridging API<br>
* Implement an API that allows external entities to initiate a transfer<br>
operation on channels in a bridge<br>
* Refactor the Park family of applications to use a new bridging technology<br>
<br>
As always, if you&#39;re interested in any aspect of this work, feel free to<br>
reply to this e-mail, start a new discussion, or talk about it in<br>
#asterisk-dev. We also accept message via pigeon, but given how fast<br>
things are moving, I&#39;d recommend an electronic form of communication.<br>
<br>
[1] <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+API+Improvements" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+API+Improvements</a><br>
<br>
[2] <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Bridging+Project" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Bridging+Project</a><br>
<br>
[3] <a href="http://svn.asterisk.org/svn/testsuite/asterisk/trunk/tests/bridge/" target="_blank">http://svn.asterisk.org/svn/testsuite/asterisk/trunk/tests/bridge/</a><br>
<br>
[4]<br>
<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Bridging+Test+Plan" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Bridging+Test+Plan</a><br>
<br>
[5] <a href="http://svn.asterisk.org/svn/asterisk/team/group/bridge_construction/" target="_blank">http://svn.asterisk.org/svn/asterisk/team/group/bridge_construction/</a><br>
<br>
[6] <a href="http://svn.asterisk.org/svn/asterisk/team/jrose/bridge_projects/" target="_blank">http://svn.asterisk.org/svn/asterisk/team/jrose/bridge_projects/</a><br>
<br>
tl;dr: We&#39;re going to use the Bridging API for lots of stuff.<br>
Collaboration is always welcome :-)<br>
<br>
--<br>
Matthew Jordan<br>
Digium, Inc. | Engineering Manager<br>
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA<br>
Check us out at: <a href="http://digium.com" target="_blank">http://digium.com</a> &amp; <a href="http://asterisk.org" target="_blank">http://asterisk.org</a><br>
<br>
<br>
--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a><br>
</div>