In the late ’70s, T.30 was created to make fax machines something they had never been before, interoperable. But many of their manufacturers wanted to go outside of T.30 and continue to use some of their non-standard tricks and abilities. The integrated circuit had begun to make good on its promise to produce a bounty of affordable consumer electronics. This meant that fax machines could go from being arcane, proprietary and extremely expensive to commodities… if only their makers could get over the temptation to make their units different in a way no one else could work with. Clearly a compromise was called for.
The T.30 facsimile protocol was written with many of its tolerances specified loosely enough to accommodate most of the odd stretch and compression of timing and signal content that had plagued fax interoperability since the inception of its market. In numerous places, it was carefully written to be as generally accepting as was possible and still support the desire for inter-operation that caused it to be created in the first place. What it couldn’t do was accept all manner of odd page image resolutions, strange encoding and outright changes to the signal flow between terminals. Those manufacturers who really wanted to use their deeply proprietary techniques for such things needed to have an exit from T.30 once the fax call had begun and the originating device knew for sure that the answering device was one of its own. The solution that brought them aboard the T.30 bandwagon was just that, a back door.
Introducing Non-Standard Facilities or NSF
NSF stands for Non-Standard Facilities. The name actually says it all. NSF is the exit door for a fax call that was started using the compatibility conferred by the T.30 protocol. It permits both terminals to go into a completely proprietary mode wherein they can use any page transmission techniques they can mutually agree upon. When two fax machines enter phase B of their call negotiations, they exchange their capabilities via the T.30 specified DIS and DCS messages. DIS from the answering unit conveys its T.30 compliant features via a string of data bits to the originating device which compares those features to its own list and generates a ‘best union of abilities’ between the two. If for example, the answerer can support only the V.27 and V.29 modulations but the originator can use V.27, V.29 and the more advanced V.17, the originator’s DCS message will constrain the modulation to V.29 to accommodate the answerer’s lesser modulation capability. However, the answerer my include the optional NSF frame (or frames) along with its DIS opening up other possibilities.
The NSF frame contains code bits very similar to those in DIS except that they specify features that lie outside of T.30 and, necessarily, outside of the recognition of any fax machine other than one from the same manufacturer as the answering device. Most fax terminals emit NSF frames along with their DIS frames during the reception of a fax call. Where the process gets interesting is when the originating device recognizes both the origin of the answerer’s NSF and its contents as being consonant with its own NSF feature set. Now the originator can respond with an NSS (Non-Standard Services) that takes the place of the DCS and sets up a fax exchange that may have little or nothing to do with the T.30 protocol. Once an answerer’s NSF and an originator’s NSS have been exchanged, T.30 has been jettisoned and the terminals are free to use any proprietary protocol modifications they can both support.
Only the first three bytes of the NSF data string are generally specified. They comprise a country code and a manufacturer’s code. The country code is set by ITU but the manufacturer’s code is set by the country of origin. It is necessary to cross check the manufacturer’s code against the detected country code in order to decipher its meaning. Everything else in an NSF data string is proprietary to the company that creates it and few choose to share this information. A notable exception was the Adobe NSF string for PostScript fax. This was an attempt to get around the traditionally poor quality of faxed page images by sending a PostScript rendition of the pages rather than optically encoded lines. Adobe published this in hopes that the manufacturers would take it up and make it a widely used standard for sending clear clean fax pages. To my knowledge, only NEC actually adopted their idea but it worked splendidly.
Fax Demodulation and Remodulation
So, given the necessarily proprietary knowledge needed to respond to NSF and the universal ability to ignore it and continue with a DIS/DCS controlled call, what’s the problem? The problem is something called demod/remod. Virtually all the high capacity leased phone networks use some type of translation device to change the T.30 messages of a fax into an intermediate protocol (demodulation) so that they can achieve their transmission performance advantages over the standard PSTN once that protocol is changed back into T.30 (remodulation). This has become even more pointed with the advent of Voice over IP (VoIP) wherein the switched circuit PSTN is replaced by the switched packet Internet which requires a gateway of some sort to covert signals between them. Of late the intermediate protocol of choice has become T.38 transferred by UDPTL packets. As long as the gateways that have to perform this transcoding have a T.30 fax call to work with, all well and good. But what happens when the originating device communicating through a pair of these gateways discovers an NSF message from an answerer that it recognizes and responds to with an NSS and a blast of proprietary page code? The gateways simply throw up their hands and go out for a beer.
A VoIP gateway becomes by nature of its operation a fax terminal. It has to field a T.30 call as though it were either answering the call (connected to the originating terminal) or originating the call (connected to the answering terminal). In point of fact, a pair of gateways must sustain two simultaneous fax calls between themselves and the two fax terminals while transferring the T.38 intermediate protocol content between their IP ports. There is no space here to handle NSF/NSS. For this reason, gateways of all types, VoIP and otherwise, either zero out the content of the NSF message or delete it entirely from each fax call they carry. This assures that their fax calls stay within the T.30 protocol and limits their support of fax to dealing only with the vagaries of T.30′s implementation in the terminals.
It sounds like a good solution right up until the user, who actually bought identical fax machines because he liked their high-speed, clean page transmissions over the PSTN, connects them to his VoIP gateways and is incensed that all his wonderful performance has evaporated!
NSF, boon or curse? What do you think?