[Freeswitch-dev] mod_fax
Steve Underwood
steveu at coppice.org
Sun Jan 4 07:21:19 PST 2009
Hi all,
I finally started to play with mod_fax today. First, a couple of little
observations. Although there is a config file for fax, modules.conf.xml
doesn't contain an entry for mod_fax, and dialplan/default.xml doesn't
contain a demo like
<extension name="test_rxfax_stream">
<condition field="destination_number" expression="^9011$">
<action application="answer" />
<action application="playback" data="silence_stream://2000"/>
<action application="rxfax" data="rxfax.tif"/>
<action application="hangup"/>
</condition>
</extension>
<extension name="test_txfax_stream">
<condition field="destination_number" expression="^9012$">
<action application="txfax" data="txfax.tif"/>
<action application="hangup"/>
</condition>
</extension>
as it does for other modules.
For more serious things.....
If the far end of a SIP FAX transaction sends a reinvite to switch to
T.38, FS sends a 488 back and everything fouls up. Other boxes send back
the previous codec as the new one to use, and everything carries on
smoothly in audio mode. I'm not a SIP expert, so I don't know the
details of what it says on the topic, but in the real world successful
continuance of a call requires a response other than 488. As an aside,
the called party should be the one to initiate an attempt to use T.38,
but in the real world the calling party often does.
If T.38 is not available (which it isn't ever right now), and the call
starts with a low bit rate codec, we should initiate a reinvite to use
Alaw or ulaw. If that fails we might as well abandon the call.
mod_fax currently follows the practice of my old and crude demo programs
for *, and has apps called rxfax and txfax. This is taking a very narrow
view of a FAX machine, and I think is too limiting. I think the
following is how things should be:
- One app, probably just called FAX.
- It will be started with a flag saying if it should act as the
calling party or the called party.
- The app will be given optional lists of files to send, and files
to receive.
- The app will do its best to exchange all the files it can,
including the use of poll mode FAXing.
The module documentation says page by page events should be added (which
spandsp supports), and this seems a sound idea. FAXback and other
services might be implemented through this.
Regards,
Steve
More information about the Freeswitch-dev
mailing list