<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
hi all just opened up a T38 Gateway scratch pad on mantis and will be
submiting some code soon not sure if this is the right approach all
comments welcome.<br>
i spent most of the weekend scratching into the gateway bits in Steve's
spandsp and feel this is feasiable.<br>
<br>
Regards Greg<br>
<br>
<table class="width100" cellspacing="1">
  <tbody>
    <tr class="row-1">
      <td colspan="5"> Ok this is somthing that may or may
not be possible or feasiable but im throwing it out here and going to
attempt to do just this ...<br>
      <br>
please note this is related and tied into the brilliant work by dimas
on christmas day (<a href="http://bugs.digium.com/view.php?id=11614"
 title="[assigned] [patch] T38 support for SendFax/ReceiveFax">0011614</a>)<br>
      <br>
there will be a few things required for me to do to make it suitible
for our application<br>
      <br>
1)Define T38 as a codec (change to frame.h add it as a audio codec)<br>
2)Create a codec translator (codec_t38fax) that will do conversion to
and from SLIN<br>
3)to allow
T30&lt;-&gt;SIP(T38/UDPTL)&lt;-&gt;IAX(RTP/T38)&lt;-&gt;ZAP(ALAW/T30)
ill need to allow this new codec to pass on RTP<br>
4)Dial will need to be updated to allow MODEM/T38 frame types as voice
... (AST_FORMAT_T38FAX)<br>
      <br>
this is a brief overview im sure there will be headaches along the way.
      </td>
    </tr>
<!-- Additional Information -->
    <tr class="row-2">
      <td class="category"> Additional Information </td>
      <td colspan="5">due to licencing issues hacking T38 Gateway onto
the Dial command is
not feasiable and i do not feel that a second dial command just for T38
is justifiable.the architecture of the codec translators lends itself
to this approach of using a translator for the T30(audio/SLIN) to
T38(data) conversion.<br>
      <br>
the idea is as follows using Steve Underwoods spandsp add a
codec_t38fax file to the addons package that will accompany the newly
T38 enabled app_fax to handle the gateway function.<br>
      <br>
slintot38fax is is achived by reading a T30 frame passed to the
converter from the Zap/mISDN/.... channel and writing it to a buffer
via the t38fax gateway handler call back.<br>
      <br>
t38faxtoslin is achived by processing incoming t38 ifp packets and
writing them to a buffer with the t38 tx function.<br>
      <br>
all of the above is relitivly straightforward ... what is not straight
forward however is preventing licencing isues and initilising the
private structure (t38_gateway_init) make_compatible will need to make
sure the same private structure is is used on both channels (t38state)
and will possibly need to be locked.all the T38 bits need to be kept in
codec_t38fax in the addons/GPL side asterisk must however make sure the
private structure for T38 is on both sides.<br>
      <br>
this all seems great in theory and if im missing something or if this
proposal is not acceptable please let me know ... ill be working on the
bits over the next few days if there no objections.</td>
    </tr>
  </tbody>
</table>
</body>
</html>