After playing around with spandsp I did not find it that reliable. I tried the IAXMODEM and hylafax approach and it seems to work much better. The real problem for me was getting it set up correctly between linuxmce and freepbx as there are too many instructions on the web that caused me to unnecessarily or incorrectly duplicate files resulting in a buggy IAXMODEM at first.
The view from 30,000 feet:
1. Use Linuxmce to create an IAX2 extension from Wizard Devices Phones by selecting IAXy adapter as the type--this will create the freePBX extension automatically.
2.use apt-get install to install the IAXMODEM software. Create a file named ttyIAX0 in /etc/iaxmodem that looks like this:
port 4570 (you want it to be 1 or more above 4569 which it binds to)
peername (whatever number linuxmce created)
secret the (same number as the peer name)
cidname (Whatever you want to show up when receiving a fax)
cidnumber (your fax phone number)
codec ulaw (if you live in the US)
3. Go to freepbx and on your fax extension change the port to 4570 from the default--depending on your context, you may want to change that there as well
3. use apt-get install hylafax-server to get the server installed
4. from the command line run "faxsetup" this will setup hylafax and then ask you if you want to add a modem. Say "yes"
5.In the modem config type in ttyIAX0 when it asks you where your modem is--go through the rest of the steps answering the default except where you need to fill in specific info about your location, phone number etc. it will test you modem and set it up for you as well as create all the files to have it automatically start on boot.
6. create a file called FaxDispatch in /etc/hylafax that looks like this:
SENDTO=(your email address);
7. Go to the tutorial on linuxmce wiki about postfix (just search on that word); I just followed the instructions and it worked perfectly. I found postfix was great for emailing me the faxes.
8. Go back to freepbx and set up an inbound route to the IAX2 extension you have created--In my case I used a pstn trunk and only let it go to that extension number so I didn't need to do any fax detection. If you need fax detection there is a lot of info out there on how to do it with zaptel or nvdetect. Also create an outbound route for anything dialed from that extension if you need to.
9. Reboot the machine.
10. login to machine and do a sudo -s to become root. type asterisk -vvvvvr to get to the asterisk CLI. Type "iax2 show peers" to see that your modem is registered and hylafax is running. Send yourself a fax (or have a friend do it) so you can watch the fax come in. If everything went well, the phone will ring and connect to that extension then nothing will happen until it disconnects. You will then receive an email with your fax attached.
If anyone has more to add or sees some mistakes here, please add them as a reply. Eventually, this would be a good tutorial topic for the wiki...