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


<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 rmudgett.</div>


<p style="color: grey;"><i>Updated June 12, 2012, 7:53 p.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;">* Fixed ability to support relative non-normal dialplan execution routines.  (i.e., The context and exten are optional for the specified dialplan location.)  Predial routines are the only non-normal routines that it makes sense to optionally omit the context and exten.

* Fixed the AGI gosub application so it cleans up the dialplan execution stack and handles the autoloop priority increments correctly.

* Eliminated the need for the gosub_virtual_context return location.

* Removed the temporary Fred application.</pre>
  </td>
 </tr>
</table>


<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;">* Make non-normal dialplan execution routines be able to run on a hung up channel.  This is preparation work for hangup handler routines.

* Fixes non-normal execution routines like connected line interception and predial leaving the dialplan execution stack unbalanced.  Errors like missing Return statements, popping too many stack frames using StackPop, or an application returning non-zero could leave the dialplan stack unbalanced.

* Make Hangup set a softhangup flag.  The Hangup application used to just return -1 to cause normal dialplan execution to hangup a channel.  For the non-normal execution routines like predial and connected-line interception routines, the hangup request would be ignored.</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;">* Used the Fred application to test running a non-normal execution routine while a channel is hung up.  (The Fred routine will be removed since it is only for testing.)
* Checked StackPop being used too many times on non-normal routines.
* Checked forgetting Return on a non-normal routine.
* Checked using Hangup in a non-normal routine causes the channel to be hung up.</pre>
  </td>
 </tr>
</table>




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

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

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

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

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

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

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

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

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

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

</ul>

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




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




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