A while back, I did a number of experiments involving VoIP and faxing, which made use of Telstra’s FOLDS test. Because of a number of intricacies, voice-band data and VoIP generally do not (reliably) work together unless configured very carefully and deliberately. Thus, such diagnostic tests are vital for users to optimize the performance of their systems where they still wish to use such “legacy” technologies.
Just over the weekend, I had a reason to “revive” my fax and modem gear for some more testing of more voice-band modems over VoIP. Testing locally using my own asterisk server is always easy, but for a real test, it makes sense to terminate calls through a VSP to actual services.
Unfortunately, this is where things have changed. My transition to myNetFone from PennyTel has (at long last) been completed properly, which means a new VSP gateway to contend with. Luckily for me, myNetFone has digital termination on most local numbers including 13-numbers, but they refuse to terminate calls to FOLDS and instead block it with a 5xx error code. This proved rather annoying to me, as it was my “default” diagnostic destination when it comes to testing modem to ATA compatibility.
Luckily, I didn’t have to go far to find a replacement – Telstra FaxStream TestFax Professional, otherwise known as FOLDS-B. In fact, for more technical people like myself, it’s a more useful test, although the results it provides isn’t quite the same as the regular FOLDS test.
Invoking the FOLDS-B Test
To use FOLDS-B, you should have a fax machine connected to a phone line (physical or ATA supplied) that you can place outgoing calls from and receive incoming calls to. The TSID (station ID) should be set to your number in international format (e.g. for (02) 8064 1804, you should set 61280641804) as this number is used to fax the return results.
Accessing the service is a little tricky – you must fax a long page to 1300 368 909. The transmission time needs to be about 70 seconds or longer. Most documents I tried did not contain sufficient complexity, so I recommend you fax a half-toned photograph instead, as it contains a lot of details.
If your fax is longer than 3 minutes, the service will hang up during the fax, and your machine will blindly keep faxing away until it reaches the end of the page and then fail. If this happens, your line is engaged, so you might not be able to receive the results report. As a result, I suggest you use an old computer with proper fax software (e.g. WinFax Pro) and leave the speaker on during faxing, manually aborting the fax once it’s done. Or you set your TSID to another number which can receive an incoming fax independently of the line you are sending it from. In my case, I used both.
Upon completion of the fax, you should receive a return fax where the TSID is decoded correctly. The return fax is always one page and contains the results. Your fax sent to them is not returned as per regular FOLDS, and a bit-error count is not available. At times, you may not receive your result fax if your line is engaged at the time they attempt to send it, or there have been significant reception problems, in which case you can try again.
Use of the service is apparently guided by a “user guide” which I couldn’t find. A suitable test page claims to be available by polling 019725112 at 35c/min according to the return page, although this number doesn’t look right, as I would expect it to be a 10 digit number with virtual area code 01. I couldn’t reach it on any service I still have, so maybe it’s Telstra-specific for landlines only. The price of 35c/min might mean paying about $1.05 for a test page, so I’d hope users use a “digital” computer-based fax to capture it and use it over and over.
A Perfect FOLDS-B Report
Before I introduce more intricacies about faxing and my interpretation of the report, it’s easier if we examine a “golden sample” report which shows perfect FOLDS-B performance.
Lets take a look at the sections and their meanings.
- Fax ID shows your TSID. It should be international format to ensure faxes can be returned, although local-number format including area code is probably also acceptable.
- TX Type shows the modulation mode negotiated. As this test only accommodates G3 faxes to my knowledge, the best result is the one shown above, namely V.17 14400bps. In the case of poorer lines, lower bit-rates may be negotiated and indicated. Older machines (e.g. thermal) may only be capable of V.29 9600bps, in which case, this is not an “error” but just indicative of that fact.
- Time and durations are just indicative. Error of “excess duration call terminated” just indicates a fax which was too complex to send within the 3-minute time-out, so the call was hung up, but the results are still completely valid.
Steady State Measurements
- Transmission level is a measurement of how “loud” your fax machine is sending down the line. An ideal result should be around -16dBm to -18dBm or thereabouts but a few dB either side is also acceptable. A machine that sends too loudly may cause signal corruption through echo, and a machine that sends too softly would have a low signal to noise ratio that could compromise high speed transmissions and not be heard.
- S/N Ratio indicates the signal to noise ratio, or in other words, how loud your fax signal is compared to the background noise. Values close to 40dB are the practical limit, it seems. The bigger, the better.
- Carrier Frequency indicates the frequency of the data carrier as measured by the remote end. For V.17, it should be 1800Hz +/- 1Hz, with up to +/- 7Hz tolerated by the receive side. If this is in any way “significantly out”, it indicates your modem timing is off or something in the signal path is doing a frequency “translation” (e.g. analog SSB radio links with frequency offset, which you won’t find nowadays anyway).
- Phase and Amplitude Jitter and Modulation are somewhat related, so I’ll use this diagram which I’ve adapted from ITU-T’s V.17 recommendation to explain as best as I can given my limited knowledge.
The TCM used by V.17 is a form of QAM. You can think of this as a phase-modulation and an amplitude-modulation working together. Combinations of phase-amplitude pairs are used to denote constellation points which represent data. The constellation diagram above represents phase angle as the angle around the plane, and the amplitude as the radius from the centre. This plot is for V.17 14400bps mode, and has 128 points, each point conveys 7-bits of data (6-bits of actual data + 1-bit parity), and with 2400 symbols per second, it gives us 2400 * 6 = 14400bps of throughput.
Phase Jitter represents the amount of rotational error around a mean value, whereas Amplitude Jitter represents the amount of radial error around a mean value on the constellation plot. This is somewhat related to signal to noise ratio – low SNRs will likely exhibit high jitter values.
Phase Modulation and Amplitude Modulation likely represents the error in the mean value of both from their ideal positions – think of this as a continuous “offset” error.
The two, combined, can lead to occasions where on an extreme of jitter (e.g. due to noise/timing errors) and modulation results in the received symbol being placed into an adjacent bin, causing a data error. This is why having a good alignment and low jitter is important to maintaining high-data-rate transmission. In case that line conditions are poor, lower speeds use lower modulation modes which have fewer, more widely spaced points, such as these deviations are less likely to cause data errors – for example, this 7200bps constellation.
- Phase Hits is a value that shows the number of sudden phase changes in the signal in a 10-second period. Ideally this value should be zero. Any non-zero value indicates that somewhere along the line, the signal may have become discontinuous (e.g. audio packet loss concealment) or the modem is misbehaving.
- Gain Hits is a value that probably denotes the number of sudden changes in signal amplitude. This could be caused by sudden line impedance changes, faults in a line-card or a bad modem.
- Impulses counts the number of “clicks” and “pops” or static which has affected the signal.
- Dropouts (I presume) counts the number of sudden gaps in the signal.
Under this header, various warnings may be returned in the case that some values are out of spec. Finally, the lower portion has a nice ASCII rendering of a frequency and phase response chart.
The chart is rendered with A’s indicating the plot points for Attenuation, and D indicating the plot points for Group Delay. The attenuation figures should be flat towards the center, and tail off at 600/3000Hz by 2 to 7dB. The group delay line should be very close to 0ms for the best performance, and is an indicator of phase distortion due to line filters, or impedance mismatches. The above result is exemplary.
How did this report come about? Well, it wasn’t Photoshop, I’ll tell you that. In fact, it was a VoIP call, but it was one that utilized T.38 Fax over IP capabilities.
T.38 allows for the local ATA to act as a “modem” in a sense, by demodulating the analog signal from the modem and carrying it over UDP packets as a stream of actual data. The switch/gateway at the other end regenerates the signal from the data, acting as a modem. Because myNetFone uses digital terminations, their gateway regenerated the signal digitally and it travelled perfectly intact to the test modem at FOLDS-B, resulting in this perfect report that shows no analog impairments. T.38 is the preferred method of Fax over IP because it also guards against packet loss, by having a copy of the previous packet sent in the current one, and is “protocol aware” so is less likely to violate timing requirements. It also avoids voice interpolation and echo cancellers which can destroy the fidelity of the signal and cause modems to “lose track” of the signal. Unfortunately, it seems only applicable to regular G3 faxes, and not super-G3, so no V.34 faxing, high resolution or colour faxes.
Analog FOLDS-B Samples
These FOLDS-B results come from my analog modem speaking “directly” to the FOLDS-B test modem through an ATA which I’ve optimized for “pass through” faxing (i.e. disabled T.38). This allows us to judge just how well the modem and the ATA’s FXS port are getting along. By default, just by hooking up a modem to an ATA with T.38 disabled or not supported is not likely going to end well, so tweaking gains is necessary to get a good result.
This result comes from my venerable Linksys PAP2T – long time VoIP companion that I’ve used to do many data experiments. I had set the line impedance for Australia and set the Input Gain to -4 and Output Gain to -6. On the whole, the result is good for level and SNR, but the frequency response shows some issues, mainly a rolling off on the higher frequencies. This explains why getting fast data modem connections on some ATAs can be problematic (even without considering clock desynchronization, buffer latency, jitter buffer effects, interpolation). However, the roll-off isn’t strong enough to make 14.4kbit/s faxing fail to the test line, but could cause some compatibility issues. There also seems to be a slight hump in frequency response near 1khz.
The Cisco SPA112 was my “replacement” for the PAP2T, which proves to be a little glitchy sometimes. On the whole, it is a little loud on a gain setting of -1 for Input and -5 for Output, but if it is changed to -2, then it’s too soft! The unit shows slightly less roll-off, but group delay distortion seems to be worse at both ends of the frequency spectrum. I suppose the filters are differently designed in both units.
Common FOLDS-B Errors
If you’re testing FOLDS-B, you might come across some errors as I have, so I might as well show you examples of these and some tips.
This one is probably the most common error you will receive. The fax is just too short to make measurements on – you really need a fax of 70 seconds or more. Notice how last stage reached says “Receiver training stage 2”, which I suppose indicates the short-train just before the page starts was successful.
If you have a really-bad setup that could only carry the V.21 “low-speed” negotiation data, you might get this error where the last stage reached is “Receiver training stage 1”. This implies that it couldn’t “catch on” to the beginning of the data signal of the page being sent. Maybe a packet loss occurred at a bad time, as the training had already selected V.17 14400bps. You could get other receiver training issues, which could mean that your fax modem is not generating the correct signals.
A common issue is that your fax machine is too loud. Either turn down the transmission power on the machine itself (if you know how) or adjust your ATA so that it’s less sensitive to the input. Getting this right improves your chances of working with and without T.38.
Of course, the opposite could also happen and your machine could be too soft. Tweaking the settings in the opposite way could help. Note that ATAs often claim their gain steps to be in dB, but they aren’t! Also notice this frequency response is quite strange – there’s a hump in the frequency response. That can happen due to impedance mismatch between the FXS port and the connected device, so make sure you have it set correctly.
This one seemed to have excessive jitter. I’m not sure how this came about, but I thought I’d include it since it was a result I received, but the modem used was all the same as above.
At 25c a call, it’s not free, but it’s definitely useful. Where you can’t get FOLDS, maybe you can get FOLDS-B (as I have). But even if you can get FOLDS, you might as well use FOLDS-B if you can, since the results are much more interesting and informative. It makes clear just how wonderous digital modems and T.38 can be for faxing over IP, if you have the appropriate support. It also makes clear that there are some deficiencies in the frequency response of ATAs, especially at the upper end, which can impact on data connection quality even under perfect IP conditions.
After spending a few dollars on calls, I’ve been able to fine-tune my ATAs just that little bit better and get a better understanding of their behaviour. I hope this service stays alive and accessible to me into the future, unlike various 0198xxxxxx ISP data modem numbers and FOLDS.