[Freeswitch-dev] mod_fax

Stéphane Alnet stephane at shimaore.net
Tue Jan 6 21:00:17 PST 2009

Tony, Steve, & team,

> mod_fax is an unfunded work in progress so calling it crude means I guess we
> are not off to a very good start.

One idea and one question:

- It seems that doing fax detection over RTP/RFC2833 would be fairly
easy if the RFC2833_CHARS in switch_utils.c was extended to support
values like 36 (CNG) and the range 32-35 (ANS* messages). Or more
simply if the original RFC2833 event value could be accessed directly.
For example (in Javascript) if one could write:

  function onInput( session, type, data, arg ) {
    if ( type == "dtmf" ) {
      /* uses the plain RTP NTE event */
      if ( data.nte_event == 36 ) {  /* <-- e.g. "nte_event" instead
of "digit" */
        console_log( "info", "CNG received\n" );
        /* Caller is a sending fax macine, start rx_fax, etc. */


  /* Play voicemail prompt and attempt fax or DTMF detection */
  session.streamFile( "somefile.wav", onInput );
  /* No DTMF or fax detected, start recording the voicemail message. */

- Is there anything to be learned from T.38 and fax in CallWeaver?
app_rxfax, app_txfax, app_t38gateway... have Steve's and Tony's names
on them. Is the design there just plain wrong? Is it a licensing

On the other hand in FS's mod_fax.c I still read "the pieces are
already in place" for T.38, even though obviously the whole story
isn't ready.  Can someone elaborate on what's already there, what's
missing (UDPTL? triggering the codec changeover?), and maybe we can
attack this piece by piece? (While using the ideas Steve put forward
in his first email about merging rxfax and txfax.)


More information about the Freeswitch-dev mailing list