{"id":"image-t38","mimeType":"image/t38","name":"T.38 Fax over IP (FoIP)","shortName":"T.38","category":"Telecommunications \u0026 Fax","extensions":[".t38"],"description":"The image/t38 MIME type represents the T.38 Fax over IP (FoIP) protocol payload. Unlike traditional static image files, image/t38 defines a real-time data stream used to transport Group 3 facsimile communications over IP networks. It is primarily used within Session Initiation Protocol (SIP) and Session Description Protocol (SDP) messages to negotiate fax transmissions between VoIP gateways and fax servers.","seo":{"title":"image/t38 MIME Type | Complete Developer Reference","description":"Complete reference for the image/t38 MIME type: its role in Fax over IP (FoIP), SIP/SDP negotiations, developer snippets, and technical specifications.","faqs":[{"question":"Is image/t38 a standard image file like JPEG or PNG?","answer":"No. While classified under the 'image' MIME type tree, image/t38 represents a real-time telecommunications stream (Fax over IP protocol) rather than a standalone image file that you can open in a photo viewer."},{"question":"How do you view or open a T.38 stream?","answer":"T.38 data is typically captured in network traces (like PCAP files) rather than saved as standalone image files. You use network analyzers like Wireshark to inspect the T.38 packets, or VoIP fax servers (like HylaFAX or Asterisk) to decode the stream and save the final output as a TIFF or PDF document."},{"question":"What kind of image compression does T.38 use?","answer":"The T.38 protocol transports standard ITU-T Group 3 fax image compressions, which include Modified Huffman (MH), Modified Read (MR), and Modified Modified Read (MMR) for 1-bit monochrome images."}]},"index":{"compression":["Lossless (MH, MR, MMR / T.4, T.6)"],"browserSupport":{"score":1,"label":"None"},"commonUses":["Fax over IP (FoIP) Transmissions","SIP/SDP Media Negotiation","VoIP Gateways and PBX Systems","Enterprise Fax Servers"]},"technical":{"magicBytes":{"hex":"None (Network Stream)","ascii":"None"},"container":"UDPTL or TCP (Network Transport)","compressionAlgorithm":["MH (Modified Huffman)","MR (Modified Read)","MMR (Modified Modified Read)"],"colorDepth":["1-bit (Monochrome B\u0026W)"],"transparency":false,"animation":false,"metadata":{"exif":false,"xmp":false,"iccProfile":false},"alphaChannel":false,"progressiveLoading":false,"hdrSupport":false},"history":{"developer":"ITU-T (International Telecommunication Union)","released":"1998","specification":"ITU-T Recommendation T.38 / RFC 3362"},"browserSupport":{"chrome":false,"chromeVersion":"None","firefox":false,"firefoxVersion":"None","safari":false,"safariVersion":"None","edge":false,"edgeVersion":"None","internetExplorer":false},"softwareSupport":[{"name":"Wireshark","logo":""},{"name":"Asterisk PBX","logo":""},{"name":"FreeSWITCH","logo":""},{"name":"HylaFAX","logo":""}],"conversion":{"convertTo":["tiff"],"convertFrom":["audio/pcmu (G.711 fallback)","tiff"]},"developer":{"httpHeaders":[{"header":"Content-Type","value":"application/sdp (containing m=image ... image/t38)"}],"htmlAccept":"None","fileDetection":["T.38 is typically detected via SIP SDP payloads during call negotiation, looking for 'm=image \u003cport\u003e udptl t38'","Network packet inspection (e.g., via Wireshark) identifies UDPTL framing for T.38 payload types"]},"prosCons":{"pros":["Designed specifically to overcome the timing and packet-loss issues that plague traditional fax over standard VoIP audio codecs (like G.711)","Reduces bandwidth requirements by transmitting fax protocol data rather than uncompressed audio tones","Universally supported by enterprise SIP trunks and Session Border Controllers (SBCs) for FoIP"],"cons":["Not an actual image file format, causing confusion due to its 'image/' MIME classification","Extremely complex to implement correctly over lossy UDP networks (relies on UDPTL redundancy mechanisms)","Zero support in web browsers or standard image viewing software"]},"specifications":{"url":"https://www.itu.int/rec/T-REC-T.38/en","rfc":"RFC 3362 (Real-time Facsimile (T.38) - image/t38 MIME Sub-type Registration)","mimeAliases":[]},"developerSnippets":{"python":"# T.38 is a network protocol, not a standard file. To detect it in a network capture, you would parse the SDP using a library like pyshark:\nimport pyshark\ncap = pyshark.FileCapture('fax_call.pcap', display_filter='sdp')\nfor packet in cap:\n    if 'image' in packet.sdp.media_type and 't38' in packet.sdp.media_format:\n        print('T.38 Fax Negotiation Detected!')","nodejs":"// Detecting T.38 negotiation in a raw SIP SDP string:\nconst sdp = 'v=0\\r\\nm=image 10000 udptl t38\\r\\na=T38FaxVersion:0\\r\\n';\nconst isT38 = /^m=image \\d+ udptl t38/m.test(sdp);\nconsole.log(isT38); // true","go":"import \"strings\"\n// Checking for T.38 media descriptor in an SDP payload\nfunc isT38FoIP(sdp string) bool {\n    return strings.Contains(sdp, \"m=image\") \u0026\u0026 strings.Contains(sdp, \"t38\")\n}","php":"// Standard file detection like mime_content_type() will not work on raw T.38 network dumps. It requires SIP/SDP parser logic."},"relatedFormats":["tiff"]}
