Summary:ASTERISK-21711: Stasis API - Incorporate the bridging framework into res_stasis app
Reporter:Matt Jordan (mjordan)Labels:Asterisk12
Date Opened:2013-04-26 12:51:17Date Closed:2013-06-10 08:18:01
Status:Closed/CompleteComponents:Core/Stasis Resources/res_ari
Versions:Frequency of
Description:The Stasis-HTTP application (the actual application provided by res_stasis, not the REST interface portion) needs to be able to do the following:

* For bridges created via the RESTful interface, own and manage the bridges and the channels within them
** Put channels into a bridge
** Remove channels from a bridge
* Maintain knowledge of the bridges for each application and for the channels, such that they can be easily accessed

In general, an application object should own a container of bridge and a container of channels. As channels enter into the Stasis application, they are added to the container of channels.

Bridges should always be created via a REST-ful call, and hence can be added directly without looking for events.

Bridge destruction can occur either through an explicit call or through channel hangup; hence, the application should subscribe to each bridge that it creates.

          1  1                         0   n
app_object ---> ao2_container(channels) ----> ast_channel
       |  1  1                         0   n
       |-----> ao2_container(bridges) -----> ast_bridge