<p>Joshua Colp <strong>uploaded patch set #16</strong> to this change.</p><p><a href="https://gerrit.asterisk.org/5876">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">chan_pjsip: Add support for multiple streams of the same type.<br><br>The stream topology (list of streams and order) is now stored with the<br>configured PJSIP endpoints and used during the negotiation process.<br><br>Media negotiation state information has been changed to be stored<br>in a separate object. Two of these objects exist at any one time<br>on a session. The active media state information is what was previously<br>negotiated and the pending media state information is what the<br>media state will become if negotiation succeeds. Streams and other<br>state information is stored in this object using the index (or<br>position) of each individual stream for easy lookup.<br><br>The ability for a media type handler to specify a callback for<br>writing has been added as well as the ability to add file<br>descriptors with a callback which is invoked when data is available<br>to be read on them. This allows media logic to live outside of<br>the chan_pjsip module.<br><br>Direct media has been changed so that only the first audio and<br>video stream are directly connected. In the future once the RTP<br>engine glue API has been updated to know about streams each individual<br>stream can be directly connected as appropriate.<br><br>Media negotiation itself will currently answer all the provided streams<br>on an offer within configured limits and on an offer will use the<br>topology created as a result of the disallow/allow codec lines.<br><br>If a stream has been removed or declined we will now mark it as such<br>within the resulting SDP.<br><br>Applications can now also request that the stream topology change.<br>If we are told to do so we will limit any provided formats to the ones<br>configured on the endpoint and send a re-invite with the new topology.<br><br>Two new configuration options have also been added to PJSIP endpoints:<br><br>max_audio_streams: determines the maximum number of audio streams to<br>offer/accept from an endpoint. Defaults to 1.<br><br>max_video_streams: determines the maximum number of video streams to<br>offer/accept from an endpoint. Defaults to 1.<br><br>ASTERISK-27076<br><br>Change-Id: I8afd8dd2eb538806a39b887af0abd046266e14c7<br>---<br>M channels/chan_pjsip.c<br>M channels/pjsip/cli_commands.c<br>M channels/pjsip/dialplan_functions.c<br>M channels/pjsip/include/chan_pjsip.h<br>M configs/samples/pjsip.conf.sample<br>A contrib/ast-db-manage/config/versions/39959b9c2566_pjsip_stream_maximum.py<br>M include/asterisk/res_pjsip.h<br>M include/asterisk/res_pjsip_session.h<br>M include/asterisk/stream.h<br>M main/channel.c<br>M main/stream.c<br>M res/res_pjsip.c<br>M res/res_pjsip/pjsip_configuration.c<br>M res/res_pjsip_sdp_rtp.c<br>M res/res_pjsip_session.c<br>M res/res_pjsip_session.exports.in<br>M res/res_pjsip_t38.c<br>17 files changed, 1,895 insertions(+), 704 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/76/5876/16</pre><p>To view, visit <a href="https://gerrit.asterisk.org/5876">change 5876</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/5876"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newpatchset </div>
<div style="display:none"> Gerrit-Change-Id: I8afd8dd2eb538806a39b887af0abd046266e14c7 </div>
<div style="display:none"> Gerrit-Change-Number: 5876 </div>
<div style="display:none"> Gerrit-PatchSet: 16 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Mark Michelson <mmichelson@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Matthew Fredrickson <creslin@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>