<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/2959/">https://reviewboard.asterisk.org/r/2959/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 31st, 2013, 4:43 p.m. CDT, <b>George Joseph</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">How about adding auth_type_to_str and sip_for_each_auth to either res_pjsip.h or res_pjsip_private.h so I can use them for the CLI commands?
</pre>
 </blockquote>




 <p>On October 31st, 2013, 5:09 p.m. CDT, <b>George Joseph</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">And export them as well. :)</pre>
 </blockquote>





 <p>On November 11th, 2013, 7:54 p.m. CST, <b>George Joseph</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">One more request :)
Can you refactor the ast_sip_for_each_xxx functions so the callbacks have the same signature that ao2_callback expects?  

Example...

ast_sip_for_each_aor takes in a comma-separated list of aors (from endpoint->aors), a callback, and args.  If I already have a container of aors though I can't use ao2_callback with the same callback because the signatures differ. Same for ast_sip_for_each_auth which takes in an array of auths.  I think those are the only 2 that take non-containers as inputs.

Basically, the ast_sip_for_each_xxx functions would create and fill a container, then just pass the container to ao2_callback.


</pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Yeah no problem and that makes more sense too.  I changed ast_sip_for_each_aor and ast_sip_for_each_auth to take ao2_callback_fn.  So if you have written a handler for an ao2_callback you can use the same one in these.  I left the iteration code in those functions the same though as I can't see a reason to add them to a container and then iterate over them a second time.

I didn't change ast_sip_for_each_contact though as that is a more specific case and had some extra parameters associated with it.  If you need that one changed as well it can be done, but with slightly more work is all (that is why I left it for now).</pre>
<br />










<p>- Kevin</p>


<br />
<p>On November 12th, 2013, 1:04 p.m. CST, Kevin Harwell wrote:</p>








<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 Kevin Harwell.</div>


<p style="color: grey;"><i>Updated Nov. 12, 2013, 1:04 p.m.</i></p>







<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-22609">ASTERISK-22609</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;">Created the following AMI commands and corresponding events for res_pjsip:

PJSIPShowEndpoints - Provides a listing of all pjsip endpoints and a few select attributes on each.
  Events:
    EndpointList - for each endpoint a few attributes
    EndpointlistComplete - after all endpoints have been listed

PJSIPShowEndpoint - Provides a detail list of attributes for a specified endpoint
  Events:
    EndpointDetail - attributes on an endpoint
    AorDetail - raised for each AOR on an endpoint
    AuthDetail - raised for each associated inbound and outbound auth
    TransportDetail - transport attributes
    IdentifyDetail - attributes for the identify object associated with the endpoint
    EndpointDetailComplete - last event raised after all detail events

PJSIPShowRegistrationsInbound - Provides a detail listing of all inbound registrations
  Events:
    InboundRegistrationDetail - inbound registration attributes for each registration
    InboundRegistrationDetailComplete - raised after all detail records have been listed

PJSIPShowRegistrationsOutbound  - Provides a detail listing of all outbound registrations
  Events:
    OutboundRegistrationDetail - outbound registration attributes for each registration
    OutboundRegistrationDetailComplete - raised after all detail records have been listed

PJSIPShowSubscriptions - A detail listing of all subscriptions and their attributes
  Events:
    SubscriptionDetail - on each subscription detailed attributes
    SubscriptionDetailComplete - raised after all detail records have been listed</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;">Ran a few manual tests over AMI and observed the output to make sure things look correct.  Also wrote some testsuite tests: https://reviewboard.asterisk.org/r/2958/</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>branches/12/res/res_pjsip_registrar.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip_pubsub.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip_outbound_registration.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip_mwi.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip_exten_state.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip_endpoint_identifier_ip.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip/pjsip_configuration.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip/location.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip/include/res_pjsip_private.h <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip/config_transport.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip/config_auth.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip.exports.in <span style="color: grey">(402377)</span></li>

 <li>branches/12/res/res_pjsip.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/main/utils.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/main/sorcery.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/main/acl.c <span style="color: grey">(402377)</span></li>

 <li>branches/12/include/asterisk/strings.h <span style="color: grey">(402377)</span></li>

 <li>branches/12/include/asterisk/sorcery.h <span style="color: grey">(402377)</span></li>

 <li>branches/12/include/asterisk/res_pjsip_pubsub.h <span style="color: grey">(402377)</span></li>

 <li>branches/12/include/asterisk/res_pjsip.h <span style="color: grey">(402377)</span></li>

 <li>branches/12/include/asterisk/acl.h <span style="color: grey">(402377)</span></li>

</ul>

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







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








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