Just yesterday, a friend (Robert) reminded me about the Telstra FOLDS (Fax On-Line Diagnostics) test and showed me some of his diagnostic reports. I had tried the FOLDS test a long time ago, but I didn’t get a reply despite having the right CSID – but possibly because I tried it on a VoIP line.
I looked up the numbers online – luckily someone still has it. There are two numbers – both appear to be working – 1300 368 999 and 03 9640 0999. You use it from a line with proper caller ID and CSID set in international format (e.g. 61396400999 for 0396400999) and fax it a moderately complex page. It then calls you back within about 5 minutes with a two page reply – diagnostic information on the first page, and your fax as received on the second.
Now that I’m with Pennytel, and I’ve registered a DID (Direct-Inward-Dialling) number – I thought I’d give Fax over VoIP another go. My last attempts using Bitware and TPG VoIP proved to be moderately successful despite the lack of Fax over IP (FoIP/T.38) support. But without the diagnostics, I can’t really tell how successful.
When faxing with defaults over servers which do not support FoIP – the detection of the data tone results in the call going “silent” and dying – hence the need to be a bit creative. This is due to a change of the transport method “in call” not supported by the gateway.
Pennytel doesn’t advertise FoIP support – and I don’t believe they do. So I had to resort to my regular tricks to try and make it happen. My equipment of choice is the Linksys/Sipura PAP2T ATA – one of the most flexible VoIP Analog Telephone Adapters available. The faxing modem was a 3com miniPCI 56k modem inside a Dell Latitude C600 laptop, running Windows 2000 Professional and Winfax Pro version 10.
The regular tricks include:
- Codec set to Preferred Only, G711a or u. (Technically, Australia uses a-law, and USA uses u-law, but it really just depends what’s supported by the gateway.)
- Fax Passthrough set to G711a or u, Fax Process NSE no, Fax Disable ECAN no, Fax CED Detect Enable no, Fax CNG detect enable no, Fax codec symmetric no, Fax passthru method None.
- Silence Supp Enable no, Echo Canc Enable no, Echo Canc Adapt Enable no, Echo Supp Enable no.
- Network Jitter Level medium, Jitter Buffer Adjustment up only (so that the jitter buffer will adapt to the near-worst case latency and stay there, reducing interpolation from down-size transitions which easily break fax transmissions).
- RTP Packet size 0.010 (from default of 0.020/0.030) to reduce latency and impact of packet loss.
These settings alone were enough to get fax working at a rudimentary level over TPG. And they seemed to work periodically with Pennytel, albeit slightly hit and miss. This is what FOLDS had to say about it (click for full size):
As I love troubleshooting faxes and modems, I tend to have the speaker on during faxing. Interestingly, it complains that the transmit level is 5dB too high, and the diagnostic fax was cut-off due to a severely errored scan line/loss of sync. Because that call came back on the VoIP line, it has to be quite decent in order to get the report received correctly or even readably. While faxing, it could be heard that while my modem started sending Phase C (Image Data), the other modem was responding with a Phase B signal – implying that it couldn’t make sense of the Phase C data, corroborating with the fact that the modem signal is severely distorted.
The good thing is that Phase B negotiations on the 03 number worked just fine – so FOLDS could receive my CSID. It is noticeable that upon hearing the answer tone, a little interruption was had in the return audio – this signifies that the gateway must have understood the answer tone and “dropped” all echo cancellation and voice activity detection/silence suppression. This is critical to ensure that Phase B negotiations and Phase C data sends/receives correctly.
I also tried calling the 1300 number, but it failed negotiating Phase B – this implies that despite the settings, the 1300 number routes through another gateway which isn’t very friendly and may be compressing calls or unable to interpret the answer tone.
So, how do we fix a transmission power issue? Well you can’t do much on the modem, but the ATA allows you to set the FXS input and output gains. As it turns out, it’s not quite perfect … changing it a little resulted in being too low … but at least now it was able to receive the image (a test page I made up using Microsoft Word):
Okay, it’s probably time to note that the receive worked fine too – we managed to get the diagnostic results this time – although some of the errors may have been during the receive due to packet loss. I have redacted my number from these faxes.
It’s probably a good time to note that the FOLDS test accepts faxes only in MH (Modified Huffman – 1D compression) and MR (Modified Read – 2D compression) only. ECM is not supported. Replies are always made in MH non ECM mode. As such, errors on the line will impact on the receive as well and can not be corrected.
On high error rate lines without ECM, I have a practice to disable MR mode – as single errors will affect a cluster of lines, whereas an error in MH mode will only knock out a single line and leave the rest of the lines unaffected. If available, ECM mode should be used where Phase B negotiations are reliable. Many websites advise the contrary but in my experience, if Phase B negotiations are reliable, ECM will allow for the bad scan lines to be resent and repaired.
The reasons for disabling ECM are likely due to unreliable Phase B due to delays in VoIP which exceed the tolerable delay for each phase. In that case, non ECM would be preferred, and non ECM will send pages faster as errors are “tolerated” and not repaired. Some fax machines and Winfax Pro will decide to screw up if certain severely bad scan lines are received and may truncate or blank the fax depending on the type of error, so ECM might be the better option. Fax over VoIP is not reliable.
That being said, I made it my mission to make Fax over VoIP as reliable as I can – so if I ever needed to use it, I could! The answer? For my modem, setting FXS input gain to -6 and output gain to -10 managed to get the levels to within the expected region. Stopping all other internet usage during the call, and setting to MH mode allowed us to achieve excellent results – the best you could expect. Now I tried to achieve excellent results at every rate – we achieved this except for 2400bps.
So why not at 2400bps? Well, I tried many times, I still couldn’t get it perfect at 2400bps – the reason being that, the longer the call progresses, the more likely packet loss will affect the call. This means that Fax over VoIP isn’t 100% reliable at any speed – as over long faxes you will see errors.
The FOLDS test replies Excellent for all transmission speeds 9600bps and higher. Between 4800bps and 7200bps, it is rated as Fair, with 2400bps as Poor. Image quality is rated at Excellent for 100% error free image, and Good for something in-between (98.97% due to packet loss was observed as Good, I haven’t had any worse), Poor for No Image.
The FOLDS test reply has an interesting Phase D – instead of saying “page completed, more pages to come”, it says “page completed, transmission not ended” and your receiving modem has to ask “have you got any more pages?” – i.e. a polled receive for the second page. Almost all the faxes I’ve heard use the multipage signal at the end of the first page to signal a second page is coming and then starts sending Phase C data – not requiring a poll.
So what do errors look like? In this case, Phase B was fine, but Phase C wasn’t –
Here’s another one with low transmit level and a good level of errors:
So I gave the FOLDS service a hammering. And how much did it cost me? Less than $1.20. Pennytel charges by the second, no flagfall – and at under 2c/minute to Australian numbers, it’s not expensive by any means.
Now for the ECM demonstration – I called the BoM Weatherfax service to request the latest Infrared Satellite Image – this was via ECM mode. It was interesting to hear the ECM transmission – it sends a “chunk” of image data (smaller than a page), and then negotiates a Phase D (i.e. is the image OK?), and every time, my modem will reply with Image Rejected. The other fax will resend only the damaged lines (Phase C), and then negotiates Phase D (is the image OK), and sometimes my modem will reply with Image Rejected (followed by an even shorter cycle in the case of damaged resends), or Image Accepted … which then proceeds to Phase C where the next chunk of the page is sent. ECM allows for perfect error free transmission over noisy and error prone lines provided the modems at both ends are persistent enough.
So, I sent this digital image to FOLDS in MH mode, and received the MH reply –
Okay, so my send towards FOLDS wasn’t error free – but neither was the reply. If I had not had ECM from BoM – you wouldn’t expect a perfect image – you would expect something similar to the reply from FOLDS.
At least, now, I know I can use my VoIP to do faxing in cases of emergencies. But only to Australian landline numbers – it seems that 13 numbers terminate through another “fax unfriendly” gateway.
EDIT: Updated to reflect codec selection can be a/u.