<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/4103/">https://reviewboard.asterisk.org/r/4103/</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 marked as submitted.</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.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers.</div>
<div>By Joshua Colp.</div>


<p style="color: grey;"><i>Updated Nov. 3, 2014, 8:45 a.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">Committed in revision 427112</pre>
  </td>
 </tr>
</table>







<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;">Currently when musiconhold is started or stopped in PJSIP it is always locally generated using res_musiconhold. This change adds an option, moh_passthrough, that allows musiconhold requests to be passed through chan_pjsip. This is done by sending a re-INVITE with recvonly state on the streams when the channel is put on hold and sending a re-INVITE with sendrecv state on the streams when the channel is taken off hold. The end result of this being that an upstream entity (such as another PBX) can generate the musiconhold instead.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">Enabled option. Placed call to a remote server. Put call on hold and off hold. Confirmed re-INVITEs were sent with proper state.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/trunk/res/res_pjsip_sdp_rtp.c <span style="color: grey">(426095)</span></li>

 <li>/trunk/res/res_pjsip/pjsip_configuration.c <span style="color: grey">(426095)</span></li>

 <li>/trunk/res/res_pjsip.c <span style="color: grey">(426095)</span></li>

 <li>/trunk/include/asterisk/res_pjsip_session.h <span style="color: grey">(426095)</span></li>

 <li>/trunk/include/asterisk/res_pjsip.h <span style="color: grey">(426095)</span></li>

 <li>/trunk/contrib/ast-db-manage/config/versions/339e1dfa644d_add_moh_passthrough_option_to_pjsip.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/channels/pjsip/dialplan_functions.c <span style="color: grey">(426095)</span></li>

 <li>/trunk/channels/chan_pjsip.c <span style="color: grey">(426095)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/4103/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>




  </div>
 </body>
</html>