Name the stage that failed
Record the sending and receiving equipment, direction, page count, time and displayed error. Check whether the call reached the destination, whether fax negotiation began, whether any pages transferred and whether both sides reported completion. Repeat with a known test document and a known destination. A failure with one remote machine suggests a different investigation from failures with every destination. Avoid changing codec, speed and error correction together before retaining a baseline.
Inspect the actual media mode
Capture authorized signaling around fax detection and any re-INVITE. Determine whether T.38 was offered and accepted, rejected with fallback, or never attempted. For G.711 passthrough, confirm that the full path stays compatible and does not introduce an unexpected codec conversion. Compare RTP or relay-path loss and timing with the failure interval. A successful voice call does not exclude impairments that disrupt fax. Also inspect local analog cabling, ring behavior and ATA regional settings before attributing every failed page to the provider.
Validate the recovery
After one bounded change, test both sending and receiving, short and multi-page documents, and the remote destinations relevant to the business. Record completion at both ends where possible. A sender's apparent success and an unreadable received document are not equivalent to successful delivery. Retain only necessary diagnostic evidence. Fax content can be sensitive; use a non-sensitive test page and redact identifiers before sharing traces. If the supported path remains unreliable, escalate with exact timestamps, negotiation results and device versions instead of repeatedly resetting the ATA.
Move to FreePBX delivery only after session success
When Asterisk reports a completed fax session but FreePBX email, attachment or UCP state is missing, use the FreePBX post-receipt diagnostic. It keeps media negotiation separate from recipient mapping and distribution.
Use the Asterisk branch for a terminating or originating fax application
When Asterisk runs ReceiveFAX() or SendFAX(), use the focused res_fax workflow to prove modules, session options, file access, media mode and the complete result tuple.
Separate call setup, T.38 negotiation and document acceptance
The T38Fax symptom workflow preserves each evidence stage instead of treating an answered SIP call as a successful fax.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Grandstream HT813 administration and analog interfaces ↗
- ITU-T T.38: real-time Group 3 fax over IP ↗
- Sangoma: Fax Pro Admin Guide ↗
- Sangoma: Fax Pro product boundary ↗
- FreePBX Fax Configuration release/17.0 source ↗
- Asterisk ReceiveFAX application ↗
- Asterisk SendFAX application ↗
- Asterisk FAXOPT function ↗
- Asterisk 22 FAXOPT function ↗
- Asterisk 22 ReceiveFAX application ↗
- Asterisk 22 SendFAX application ↗
- Asterisk branch 22 res_fax sample configuration ↗
- Asterisk branch 22 res_fax implementation ↗
- Testing a Power-T.38 SIP trunk ↗
- T38Fax recommended firewall settings ↗
- T38Fax SIP ALG guidance ↗
- T38Fax packet-capture guidance ↗
- T38Fax ECM guidance ↗
- T38Fax voice-call policy and UDPTL boundary ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.