<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/1116/">https://reviewboard.asterisk.org/r/1116/</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 4th, 2011, 9:51 a.m., <b>Russell Bryant</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;">It&#39;s very nice to see some additional work on this functionality.  I like the direction this patch is going right now.  Specifically, I like that it no longer requires a specific endpoint application to run anymore.  That was one of the key things that I wanted to see different.

There are still some things that I would like to see a bit different from how it works right now.  Even though it doesn&#39;t require running a T38Gateway() application directly, it still completely hijacks the core channel bridging loop and runs its own bridging loop.  I would like to see this implemented in such a way that it still uses the core channel bridging loop.  We started making some notes about this on this wiki page a while back:

https://wiki.asterisk.org/wiki/display/AST/T.38+Gateway 

In general, what I would like to see is a way to enable this functionality from the dialplan on any channel type.

; not necessarily exactly this, but you get the idea ...
exten =&gt; foo,1,Set(T38_GATEWAY()=on)

The dialplan function should create a T.38 gateway object and store it on a channel datastore.  This gateway object should take advantage of the frame hook API to intercept all audio, udptl, and control frames (see include/asterisk/framehook.h).  ast_queue_frame() and ast_write() can be used to write back out what comes out of the gateway.

This code is a great start toward getting to where we need to go with 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;">Update

The pesky hijacking of the bridge loop is busy been eradicated.

FAXOPT has now got a new option t38gateway that enables or disables the negotiation of gateway mode FAXOPT(t38gateway)=yes/no
this option can be set in res_fax.conf.

im using a ast_generator to write T30 frames to the channel this will allow using frame hooks properly at the moment
it reads a packet on c0 and writes it to c0 the bridge loop actually does not do what is expected and passes traffic
from c0 -&gt; c1.

frame hooks should not call a ast_write(chan...) from within __ast_read(chan...) use of a generator is more correct for this.

the faxopt function already stores a object on the channel that is been used.

</pre>
<br />








<p>- irroot</p>


<br />
<p>On March 5th, 2011, 9:14 a.m., irroot wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/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, Russell Bryant, dimas, Leif Madsen, and dafe_von_cetin.</div>
<div>By irroot.</div>


<p style="color: grey;"><i>Updated 2011-03-05 09:14:13</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;">Hi there the patch that was going around circa 2008 to implement this in 1.4/1.6 app_fax has been moved to trunk [1.10]
ive made some cleanups and moved it into res_fax res_fax_spandsp this is the framework and not production code
unfortunately i have no means of testing it at the moment and require help.

i have cleaned the code up substantially it is related to R459

hope this is found useful and aids in the goal to get it in 1.10.

Adds application FaxGateway / FaxDetect
Adds alternate bridge to Dial with new option.</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/view.php?id=13405">13405</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/channels/chan_sip.c <span style="color: grey">(309340)</span></li>

 <li>/trunk/channels/sip/include/sip.h <span style="color: grey">(309340)</span></li>

 <li>/trunk/configs/sip.conf.sample <span style="color: grey">(309340)</span></li>

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

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

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

 <li>/trunk/res/res_fax.c <span style="color: grey">(309340)</span></li>

 <li>/trunk/res/res_fax_spandsp.c <span style="color: grey">(309340)</span></li>

</ul>

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




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








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