Freeze one session and classify the first missing outcome
Record timestamp and timezone, call direction, channel names and unique IDs, dialplan location, application and options, FAXOPT writes, source or destination file, signaling, T.38 exchange, media, application return, session variables and later storage or delivery. Redact telephone numbers, station IDs, addresses and document content.
Classify the first divergence: application absent, technology resource absent, configuration rejected, wrong channel, file unreadable or unwritable, detection missing, T.38 not negotiated, audio fallback unexpected, transmission failed, partial pages, artifact missing or downstream delivery missing.
Prove the loaded fax stack and effective configuration
Inventory the installed Asterisk artifact, loaded res_fax module, loaded fax technology resource, module load errors and effective res_fax.conf values. Preserve the first configuration or dependency error before editing dialplan or media policy.
The presence of ReceiveFAX() or SendFAX() documentation does not prove that the installed system supplies a working technology resource. Correct packaging, module loading or configuration parsing before interpreting a later session failure.
Follow FAXOPT writes onto the application channel
Trace the channel that receives every per-session setting and the channel that executes the fax application. Preserve inherited or copied variables across Local channels, transfers and created call legs. Read back the relevant value where supported rather than assuming a write on another leg applied.
Keep detection, gateway, ECM, rates, modem types, station identity and T.38 timeout separate. Change only the setting tied to the earliest observed mismatch.
Verify the TIFF/F path before media diagnosis
For receiving, prove that the destination directory exists, the Asterisk process can create the intended file, free space is sufficient and the final file belongs to the intended retention boundary. For sending, prove that the exact TIFF/F file exists, is readable and is the artifact named by the application.
A path or permission error is not a codec or T.38 failure. A created file is not proof of a complete document, and a readable source is not proof that the far endpoint accepted it.
Preserve negotiation and media before changing mode
Capture the call-leg signaling, any T.38 offer or answer, UDPTL or audio path and the final FAXMODE. If fallback was allowed, identify what ended T.38 negotiation and what audio path followed. If audio was forced, retain that explicit application option.
Do not enable detection, gatewaying, T.38 and audio fallback together to manufacture a success. They represent different roles, and broad changes erase the first useful boundary.
Use the complete session result and retest one correction
Retain status, error, detailed status string, session ID, local and remote station IDs, pages, rate, resolution and mode from the same channel. Correlate that result with module logs, signaling, packets and the exact artifact before assigning a carrier, PBX, endpoint or storage cause.
Apply one reversible correction and repeat the same authorized scenario. Confirm every expected page and the required downstream storage or delivery separately, then remove debug and sensitive captures. No host, module, file, channel, packet, fax session or document was inspected or tested.
Distinguish application failure from trunk negotiation failure
The T38Fax diagnostic carries one failed fax from the initial dialog through T.38 negotiation, media reachability, ECM and page evidence.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- 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.