Faxing is a technology that instead of nuking it from orbit (the only way to be sure), we’ve propped it up and tried to make it part of the VoIP world, resulting in a whole lot of troubleshooting and whole lot of bang-head-here moments for voice engineers.
While time, variances in equipment, and sheer PTSD keep me from exploring all the ways in which faxing can
suck go wrong, I thought I’d throw out a recent example of an all too common occurrence – proving your fax machine isn’t the (biggest) offender in an outbound communication failure.
Specifically, this example deals with an XMedius fax server, a Cisco voice gateway with PRI, and a who-knows-what fax endpoint on the other side. Your mileage in fax troubleshooting may and likely will vary, just keep that in mind and a drink at hand.
The first step in dealing with one of these reported issues (after cursing, of course) is to determine if it’s an isolated incident or possibly a dialing issue. Besides calling and confirming* a fax machine actually picks up, checking your inbound and outbound logs on the fax server can quickly quell those reports the server is down when someone really forgot to dial a 9 when sending the fax. Happens all the time.
In my case, I had plenty of inbound/outbound successes to determine this was an isolated case. I also had the packet capture feature of XMedius turned on.**
This feature is brilliant, truly not an understatement.
I opened the packet capture for one of the failed attempts, navigated to Telephony -> VoIP Calls -> and then selected Flow for my call. When you do this, there will be quite a bit of information presented in graph form.
You should be looking for a few basic things in particular:
- Do you see the call ever connect?
- Do you see the sender’s cng (calling tone) packet?
- Do you see a DIS (Digital Identification Signal) from the remote endpoint?
- Do you see the sender’s training message?
- Do you see the remote endpoint’s CFR (confirmation to receive)?
In my flow graph of the not-so-happy fax, I notice that even though I’ve made contact with the (whiny) fax machine on the other side and negotiations have been successful – the remote endpoint never sends a CFR, therefore the server will not send the fax data.
The fax server tries again and again to elicit a response, but there’s only silence from the other side. I assume because the remote endpoint realized that for every successful fax, a puppy dies. Well, that’s the rumor I’ve heard (or started).
Here’s an excerpt from the flow graph, definite lack of CFR.
Below is flow graph of a fax that the server sent successfully to another number. While there are differences, you can see that CFR goodness the flow graph above is missing.
After reviewing this information, I moved onto finding out if the voice gateway ever sees the CFR and maybe just forgets to send it along.
After working with TAC and doing a PCM capture on the gateway, I was able to confirm that the remote endpoint never sends the CFR, which meant I could declare with some amount of relative certainty that this was a whole lot of not-my-problem.***
TAC even provided me this handy-dandy flow graph built from the captures we took on the gateway, you can see that the fax server tries three times (TCF (9600)) to get the remote end to cough up a CFR, but no dice.
While this just scratches the surface, these basics, along with a formidable hammer, should get you started in your fax fighting mission. Just remember to really effectively troubleshoot a fax machine, it’s all in the swing…
*Do not skip this step. Never assume a user is asking you about problems with a working telephone number. Always test from outside your phone system to confirm that the phone number in question hasn’t been disconnected or written down wrong by the user. This will save you countless hours and possibly what’s left of your sanity.
**Check your XMedius Administrator’s guide or call their support for steps to turn on this feature, it’s a pretty straightforward process and well worth the time.
***Trust me there are no absolutes in fax, unless you’re talking about frustration, that part is guaranteed.