T.38 & T.30 fax decoder for PCAPs.
Drop a PCAP that carries fax — T.38 (UDPTL, the SDP m=image udptl t38 reinvite) or T.30 over G.711 audio pass-through — and SIP Flow classifies the call, calls out failed reinvites and missing UDPTL traffic, and decodes the pages to a downloadable TIFF in your browser. The fax decoder is @sipflow/fax-wasm: SpanDSP compiled to WebAssembly, running in a Web Worker.
What you get out of it
Both fax-relay modes
T.38 UDPTL (m=image udptl t38) and T.30 G.711 pass-through. Auto-classified per call from SDP + User-Agent / Server headers.
Fax-specific issue detection
Detects rejected T.38 reinvites (488 / 415 / 606), missing UDPTL traffic on a negotiated stream, ECM / redundancy gaps, and spandsp decode errors.
Pages decoded to TIFF
spandsp compiled to WebAssembly runs the T.30 state machine in a Web Worker. You get the page count, remote ident (TSI/CSI), state-machine log, and a downloadable multi-page TIFF.
100% client-side
Your PCAP never leaves the browser. The fax-WASM module is ~1.2 MB and loads lazily only when a fax call is found.
How fax detection works
- SDP
m=image udptl t38classifies the call as T.38 per RFC 3362 + RFC 7345. The negotiated UDPTL 5-tuple is used to filter the packet capture. - G.711 RTP plus a fax-aware User-Agent (HylaFAX, SpanDSP, Asterisk
res_fax) classifies the call as T.30 audio pass-through. The decoder demodulates V.17 / V.27ter / V.29 / V.34 directly off the RTP audio. - A T.38 reinvite rejected with 488 / 415 / 606 is flagged as a fax issue even when no UDPTL traffic ever flowed — the most common Cisco CUBE / AudioCodes / FreeSWITCH
mod_spandspmisconfiguration. - Decoding runs in a Web Worker, so the analyzer UI stays responsive on multi-page faxes. The output is a multi-page TIFF you can download or render inline.
Related: the Sipflow MCP server grounds your editor on fax-relevant RFCs (3362, 6913, 7345) and vendor docs (SpanDSP, FreeSWITCH mod_spandsp, Cisco CUBE T.38, Asterisk res_fax / udptl.conf) so an AI assistant can answer T.38 / T.30 questions with citations.