<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/2671/">https://reviewboard.asterisk.org/r/2671/</a>
     </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 and Joshua Colp.</div>
<div>By Mark Michelson.</div>








<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-21506">ASTERISK-21506</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 adds a boatload of new options to res_sip.conf. Here is a list of them by category. Most option names are the same as they were in sip.conf. Any differences will be noted.

For endpoints:
*sdpowner
*sdpsession
*fromuser
*fromdomain
*mwifromuser (from_mwi in sip.conf)
*allowtransfer
*recordonfeature
*recordofffeature
*tos_audio
*tos_video
*cos_audio
*cos_video
*subminexpiry
*language
*tonezone
*rtpengine
*allowsubscribe

These options have the same semantics as their sip.conf counterparts. You may notice that I have the subminexpiry option listed, but I do not have a submaxexpiry option listed. This is because I could not find a way to implement this given PJSIP&#39;s event subscription API. I kept all option names the same except for mwifromuser. I changed to this because I thought it fit better with the other from* options.

For transports:
*tos (tos_sip from sip.conf)
*cos (cos_sip from sip.conf)

Since we have individual transports, it makes sense to have separate tos and cos options for each transport. Right now, UDP, TCP, and TLS transports all support these settings, but websockets currently do not.

Two new categories have been added in this review. The &quot;system&quot; type is used for options that apply to the SIP stack and cannot be changed once the SIP stack is initialized. The &quot;global&quot; type is used for options that apply within Asterisk and can be changed with a reload.

System options:
*timert1
*timerb

In order to implement system options, I created a config_system.c file that handles this section. Since these options are not reloadable, this file uses a completely separate sorcery instance from the rest of SIP configuration.

Global options:
*useragent
*maxforwards

In order to implement global options, I created a config_global.c file that handles this section. Since these are reloadable, I used the same sorcery instance as the rest of the SIP configuration. For now, the object type created in this file is not public because it doesn&#39;t have to be. It may be wise to eventually make this public, depending on what sort of options end up here.

In addition to the above mentioned options, I made an attempt to implement the preferred_codec_only option for endpoints. However, my investigation of this leads me to believe that we may have issues with regards to codec negotiation. See https://issues.asterisk.org/jira/browse/ASTERISK-22070 for more details.</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;">As I implemented each option, I tested that their defaults worked as expected and that setting the option did what was expected. The only features I did not test were the recordonfeature and recordofffeature options. SIPp testing in the testsuite will eventually bear this out.</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/channels/chan_gulp.c <span style="color: grey">(394102)</span></li>

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

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

 <li>/trunk/res/res_sip.exports.in <span style="color: grey">(394102)</span></li>

 <li>/trunk/res/res_sip/config_global.c <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/res/res_sip/config_system.c <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/res/res_sip/config_transport.c <span style="color: grey">(394102)</span></li>

 <li>/trunk/res/res_sip/include/res_sip_private.h <span style="color: grey">(394102)</span></li>

 <li>/trunk/res/res_sip/sip_configuration.c <span style="color: grey">(394102)</span></li>

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

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

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

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

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

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

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

</ul>

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







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




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