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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On March 22nd, 2012, 3:01 p.m., <b>Kevin Fleming</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;">Would anyone object to calling this DIAL_CAUSE? PVT_CAUSE isn&#39;t really very user friendly at all. I understand that this could end up being set via other means than Dial(), but DIAL_CAUSE seems closer to what an end-user would expect it to be named.</pre>
 </blockquote>




 <p>On March 23rd, 2012, 1:59 a.m., <b>wdoekes</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;">Wouldn&#39;t that be DIAL_RESULT then? DIAL_CAUSE makes it sound like it&#39;s something completely different from HANGUPCAUSE, while it is just a different representation.</pre>
 </blockquote>





 <p>On March 23rd, 2012, 10:02 a.m., <b>opticron</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;">I&#39;m going to hold off on changing the name until a decision is reached, but I do agree that PVT_CAUSE should not be the final name for this.</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;">OK, at the risk of possibly setting a bad precedent here...

Channel variable names and channel associative array names (managed with the HASH() function and related functions) are actually separate namespaces. Given that, would anyone be opposed to just calling this HASH(HANGUPCAUSE), since it conceptually is the same information as the HANGUPCAUSE variable, but split out by outbound channel?</pre>
<br />








<p>- Kevin</p>


<br />
<p>On March 23rd, 2012, 10 a.m., opticron 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.</div>
<div>By opticron.</div>


<p style="color: grey;"><i>Updated March 23, 2012, 10 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;">Add PVT_CAUSE as a drop-in replacement for SIP_CAUSE that does not incur the overhead of the MASTER_CHANNEL dialplan function.  This feature uses control frames to pass the data and creates a mechanism by which any channel driver can report cause information.  This implementation includes only SIP, but implementations for other channel drivers will be available in the next month.</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;">Verified that this functions identically to SIP_CAUSE in single-channel dials, forked dials, and forked dials behind a local dial.

Sample dialplan:
[foo]
exten =&gt; s,1,Dial(SIP/bar)
 
exten =&gt; h,1,noop()
exten =&gt; h,n,set(PVT_CAUSE_STRING=${HASHKEYS(PVT_CAUSE)})
; start loop
exten =&gt; h,n(pvt_begin),noop()
 
; check exit condition (no more array to check)
exten =&gt; h,n,gotoif($[${LEN(${PVT_CAUSE_STRING})} = 0]?pvt_exit)
 
; pull the next item
exten =&gt; h,n,set(ARRAY(item)=${PVT_CAUSE_STRING})
exten =&gt; h,n,set(PVT_CAUSE_STRING=${PVT_CAUSE_STRING:${LEN(${item})}})
 
; display the channel ID and cause code
exten =&gt; h,n,noop(got channel ID ${item} with pvt cause ${HASH(PVT_CAUSE,${item})})
 
; check exit condition (no more array to check)
exten =&gt; h,n,gotoif($[${LEN(${PVT_CAUSE_STRING})} = 0]?pvt_exit)
 
; we still have entries to process, so strip the leading comma
exten =&gt; h,n,set(PVT_CAUSE_STRING=${PVT_CAUSE_STRING:1})
; go back to the beginning of the loop
exten =&gt; h,n,goto(pvt_begin)
exten =&gt; h,n(pvt_exit),noop(All PVT_CAUSE entries processed)</pre>
  </td>
 </tr>
</table>



<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/SWP-4221">SWP-4221</a>


</div>


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

 <li>trunk/funcs/func_frame_trace.c <span style="color: grey">(360259)</span></li>

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

 <li>trunk/main/channel.c <span style="color: grey">(360259)</span></li>

 <li>trunk/main/dial.c <span style="color: grey">(360259)</span></li>

 <li>trunk/main/features.c <span style="color: grey">(360259)</span></li>

 <li>trunk/main/file.c <span style="color: grey">(360259)</span></li>

 <li>trunk/main/rtp_engine.c <span style="color: grey">(360259)</span></li>

 <li>trunk/CHANGES <span style="color: grey">(360259)</span></li>

 <li>trunk/UPGRADE.txt <span style="color: grey">(360259)</span></li>

 <li>trunk/apps/app_dial.c <span style="color: grey">(360259)</span></li>

 <li>trunk/apps/app_followme.c <span style="color: grey">(360259)</span></li>

 <li>trunk/apps/app_queue.c <span style="color: grey">(360259)</span></li>

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

</ul>

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




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








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