<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/1778/">https://reviewboard.asterisk.org/r/1778/</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 1st, 2012, 7:28 a.m., <b>Joshua Colp</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 think there is a fundamental issue with this feature. By executing the Gosub in the thread that is calling the frame hook you may block another channel when executing. This is unacceptable as frames or network traffic will continue to accumulate. The execution time for frame hooks are supposed to be short lived for this reason. This probably hasn&#39;t been an issue since what you have been doing in the Gosub has been small but other people may do more time consuming things.</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;">We have something similar to this feature that is specific to AST_CONTROL_CONNECTEDLINE and AST_CONTROL_REDIRECTING. Like Josh indicates, we have to be sure that when multiple channels are involved that the one not having the gosub run on it is put into autoservice. The tricky thing with frame hooks is that they are run in a context (not dialplan context, but using the regular English word here) where only a single channel is available. Getting this to feature to work properly with frame hooks is going to be...nearly impossible I&#39;d think.</pre>
<br />








<p>- Mark</p>


<br />
<p>On February 29th, 2012, 10:02 a.m., Marco Signorini 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 Marco Signorini.</div>


<p style="color: grey;"><i>Updated Feb. 29, 2012, 10:02 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;">A filter can be applied to the trigger to limit frames sensibility. This filter can either be a white or black list of control frame types. When no filter type is present, white is used. If no arguments are provided at all, all frames will trigger the specified gosub call.
If the specified gosub extension is not present on the dialplan, the function will gosub to the &quot;s-XXXX&quot; extension in the gosub context where XXXX is the type of the control frame.
It can be set only once on a given channel.

Examples:
exten =&gt; 1,1,Set(FRAME_TRIGGER(white, CONTROL_HOLD)=ext,context); trigger gosub ext-CONTROL_HOLD@context only for HOLD type control frames
exten =&gt; 1,1,Set(FRAME_TRIGGER(black, CONTROL_HOLD)=ext,context); trigger gosub ext-CONTROL_XXXX@context for all control type frames except for HOLD type control frames
exten =&gt; 1,1,Set(FRAME_TRIGGER(CONTROL_HOLD, CONTROL_UNHOLD)=context) ; trigger gosub to s-CONTROL_HOLD@context and s-CONTROL_UNHOLD context only for HOLD and UNHOLD type control frames

This feature was originally developed in order to track MOH events in a call center environment but has general interest.
</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/ASTERISK-19319">ASTERISK-19319</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_trigger.c <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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




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








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