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








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On April 27th, 2012, 11:59 a.m., <b>Mark Michelson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://reviewboard.asterisk.org/r/1886/diff/1/?file=27548#file27548line1510" style="color: black; font-weight: bold; text-decoration: underline;">/team/jrose/call_identifiers/main/cli.c</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">static char *handle_showchan(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1510</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span class="n">S_OR</span><span class="p">(</span><span class="n">call_identifier_str</span><span class="p">,</span> <span class="s">&quot;(None)&quot;</span><span class="p">));</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Did you get a compiler warning that call_identifier_str may be used uninitialized here? If the call to ast_channel_callid() returns NULL, then you would use call_identifier_str uninitialized here.</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">No, I didn&#39;t get a warning.  call_identifier_str is a character array, so I think it might just be that it initializes the array to zero since I&#39;ve seen plenty of cases where this worked and showed &quot;(None)&quot; with core show channel for the callid.

To reduce ambiguity though, I went ahead and added an assignment of &#39;= &quot;&quot;;&#39; to the declaration of call_identifier_str.</pre>
<br />




<p>- jrose</p>


<br />
<p>On April 26th, 2012, 10:30 a.m., jrose wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/media/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, Mark Michelson, rmudgett, and Matt Jordan.</div>
<div>By jrose.</div>


<p style="color: grey;"><i>Updated April 26, 2012, 10:30 a.m.</i></p>




<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;">https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging

The Unique Call ID logging patch progresses to its third phase.  In this patch, I&#39;m concentrating on moving the concept from something that is purely in pbx threads to something that lives in the channels themselves as well.

Covered in this rendition are chan_sip, chan_dahdi, and chan_iax2.  DAHDI is somewhat unique in that it specifically targets the creation of new channels rather than through checking for new calls and requests.</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;">Testing has mostly involved the making of calls between various technologies and transferring. It&#39;d be difficult to detail all of it, but some examples would include calls via dynamic pri spans in a loopback scenario, pots phones, SIP and IAX endpoints. So far most stuff is appearing about like expected.  That is to say:

1. New calls get a callid an the channel sticks with it.  Log messages between the sandwiched binding and unbinding of callid logging get logged with the apporpriate callids.
2. Transfers go one of two ways. In the case of blind transfers, the original callid is usually preserved while attended transfers result in a new call (which means a new callid) and the new callid becomes dominant for the call.
3. There is an exception to the above rule with transferring of calls that weren&#39;t bridged between two endpoints (IE, a call to a menu or some other asterisk pbx extension without dial). In this case, the callid that started the pbx thread is the one that ends up being used.  Transferring these types of calls is a bit of a fringe case, but it&#39;s worth noting.

Any kind of bridging that involves a masqeurade is usually going to result in a new callid since fresh channels are being created for one end and/or another.</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>/team/jrose/call_identifiers/channels/chan_dahdi.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/channels/chan_iax2.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/channels/chan_sip.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/channels/sip/include/dialog.h <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/channels/sip/include/sip.h <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/include/asterisk/channel.h <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/include/asterisk/logger.h <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/main/channel.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/main/channel_internal_api.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/main/cli.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/main/logger.c <span style="color: grey">(363672)</span></li>

 <li>/team/jrose/call_identifiers/main/pbx.c <span style="color: grey">(363672)</span></li>

</ul>

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




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








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