Hylafax is "The world's most advanced open source fax server".
The recommended way to integrate HylaFax with FreeSWITCH is to use emulated soft modem via mod_spandsp. Edit conf/autoload_configs/spandsp.conf.xml to include the following
After reloading mod_spandsp on fs_cli
You will see new soft modems being created with relevant pointers to modem devices.
To test if the newly created soft modems are okay and respond to AT commands, you can find their support class by using cu command.
Edit /etc/rc.local to start hfaxd, faxq and faxgetty at boot
The directories are located in
Configuration files for individual soft modems created by mod_spandsp are in /var/spool/hylafax/etc/config.FS*
Stop/ Start Hylafax
To start/stop hfaxd, the HylaFax Daemon and faxq, the HylaFax queue manager.
Minicom testing for CallerID
Use minicom on the tty (instead of faxgetty). And then do the following:
And then send a call to that modem. Check what the CallerID display says.
For incoming Fax sessions, the call should be bridged to modem/x/y where x is the slot and y is the dialed number. Use a to get the next available slot and number.
Edit the dialplan conf/dialplan/default.xml to include the following snippet or similar commands over ESL.
File name based on UUID
Bridge call to modem/1/a/uuid, where uuid is a variable with value equal to the uuid of the call
Edit /var/spool/hylafax/etc/config.FS0, config.FS1 etc to include the following
Restart faxgetty. Then in your bin/faxrcvd $CALLID1 will refer to the CallerID, and $CALLID2 will refer to the DID. Edit bin/faxrcvd to include the following
Use sendfax for putting your outgoing Faxes in the queue.
Edit the dialplan to include a bridge to the called number.
The log files with detailed message transaction between modem and hylafax are in directory /var/spool/hylafax/log
The transfer status of each received or sent fax is stored in /var/spool/hylafax/etc/xferfaxlog in tab separated format with the following parameters
Modem devices permissions issue
If running FS as a non-root user, mod_spandsp will fail when trying to create the /dev/FS devices (the /dev/pts are a non issue). The solution for this is to edit conf/autoload_configs/spandsp.conf.xml to include the undocumented "directory" parameter:
Then modify the init.d script of FS to include the creation of /dev/FS and its correct permission and ownership settings.
In the SET section