传真协议基础:T.30、T.38、ECM 详解
#核心一句话总览
T.30 是G3传真的会话控制协议(业务逻辑);T.38 是把T.30会话搬到IP网络上的承载协议(FoIP);ECM 是T.30附带的可选纠错机制,用来保证图像数据完整。 三者不是同级替代关系:T.30是传真的“灵魂握手流程”,无论跑在PSTN模拟线还是T.38 IP上,两端终端之间的T.30协商逻辑不变;T.38只是网关之间的数据包封装层;ECM是T.30会话内的数据校验重传机制。
#一、T.30:G3传真的会话控制核心协议(ITU-T T.30)
T.30定义一次传真呼叫完整生命周期,分为 A/B/C/D/E 五个阶段,所有实体传真机、云传真网关都遵循这套时序。它原生为PSTN电路交换网络设计,默认固定时延、电路持续连通,对IP网络的抖动、超时非常敏感。
#阶段A:呼叫建立(Call Establishment)
拨号、振铃、线路接通。
- 主叫发送 CNG(1100Hz 呼叫提示音),告知对方:这是传真呼叫,不是普通语音;
- 被叫应答后发送 CED(2100Hz 应答音);
- 人工收发、自动收发都从这一步开始;线路接通后,进入传真能力协商。
#阶段B:报文前协商(Pre-message Procedure,最容易协商失败)
两端互相上报能力、协商通信参数,是传真握手的核心:
- DIS:被叫上报自己支持的能力(分辨率、纸张尺寸、ECM是否支持、最高速率、压缩算法MH/MR/MMR);
- DCS:主叫选定一套双方交集内的参数,下发给被叫;
- 训练信号(Training):双方调制解调器同步、测速,确定最终传输速率(V.27/V.29/V.34 Super G3)。
这里决定后续所有参数:标准/精细/超精细分辨率、A4/Letter、ECM开启与否、传输速率。任何一方不支持对方选定参数,就会握手失败、挂断。
#阶段C:图像传输(Message Transmission)
按照B阶段协商好的参数,传输经过T.4压缩(MH/MR/MMR)的位图图像数据。
- 普通模式:收到的包直接解码,线路噪声会直接出现黑线、麻点、缺行;
- ECM模式:数据按块分片、带校验,出错则请求重传(见ECM章节)。
#阶段D:报文后流程(Post-message Procedure)
单页传输完成后的交互:
- EOM:本页结束,还有下一页;
- EOP:全部页面传输完毕,准备结束;
- MPS、PRQ、PPR:ECM纠错重传交互信号。
#阶段E:呼叫释放(Call Release)
协商结束、挂断线路,释放呼叫资源。
业务重点:所有失败,大多发生在阶段B协商、阶段C ECM重传超时。T.30是时序强依赖协议,有严格计时器,IP网络时延大、抖动高时,很容易出现“信号在路上,终端判定超时”。
#二、T.38:IP网络传真承载协议(Fax over IP,ITU-T T.38)
T.30本身不懂IP包、丢包、抖动。当传真要跑在SIP/互联网上时,就需要T.38网关做中继转换,这也是云传真、IPPBX传真的标准方案。
#T.38的工作模型(网关中继模型)
- 发送侧网关:接收来自本地传真机的模拟T.30调制信号,解调、提取T.30信令与图像数据;
- 封装为 IFP(Internet Facsimile Protocol)报文,通过UDPTL(UDP Transport Layer)在IP网络传输;支持包冗余,对丢包做容错;
- 接收侧网关:收到IFP包,重新调制回模拟音频信号,继续以原生T.30和远端传真机对话;
- 两端的实体传真机完全感知不到IP网络存在,它们只看到标准T.30会话。
对比另一种IP传真方案:G.711音频透传(Pass-through)
- G.711:不做解调,直接把传真音频打包成语音RTP;一旦开启G.729/G.722压缩、VAD静音检测,传真几乎必失败;
- T.38:专门解调解封传真数据,不依赖语音编码,是IP传真优先方案;但需要两端网关同时支持T.38并协商启用,协商失败时会降级到G.711透传,稳定性下降。
#T.38的关键约束
- 传输默认UDP,防火墙、NAT、运营商UDP封禁、会话超时,是T.38失败最高发原因;
- T.38本身默认不加密;加密需要外层SIP TLS隧道,不是T.38自带能力;
- 冗余机制可以改善少量丢包,但无法抵消高时延、连续丢包;跨境公网路由依然容易超时;
- T.38只负责网关之间的包转发;ECM纠错逻辑依然在两端传真终端之间执行,不是网关做的。
#三、ECM:纠错模式 Error Correction Mode(T.30 附录A可选能力)
ECM是G3传真的可选增强能力,不是独立协议,在阶段B协商时决定是否开启,必须收发两端同时支持ECM才会生效。
#ECM原理
- 页面数据被切分为固定大小的数据块(HDLC帧),每帧附带FCS校验和;
- 接收方校验每一块,校验失败则发送PPR重传请求;
- 发送方重传出错分片,直到校验正确,或者重传次数超限直接失败;
- 传输成功后,页面像素完整,不会出现局部麻点、黑线。
#ECM的业务取舍(非常重要,直接影响发送成功率)
✅ 优点:线路噪声、少量丢包场景下,图像干净、无残缺;合同、签章单据、外贸单证强烈建议开启ECM。 ⚠️ 代价:
- 增加交互握手,传输耗时变长;
- 在高抖动、高丢包跨境链路,反复重传会触发T.30计时器超时,直接整通失败;
行业实操:国内稳定PSTN链路开ECM;跨境链路频繁失败时,可以尝试关闭ECM换取更高送达率,代价是页面可能出现噪点。
#常见误区
❌ ECM = T.38自带纠错:错。ECM是终端T.30逻辑;T.38的冗余是网关层面的包冗余,两层独立。 ❌ 开了ECM就一定不会失败:错。重传超过阈值、时延超时,依然会中断。
#四、T.30 / T.38 / ECM 三者关系简图
[发送端传真机] ← T.30(含ECM协商、图像、重传) → [发送网关]
↓(T.38 IFP UDP包)
IP网络(互联网/SIP中继)
↓
[接收端传真机] ← T.30(含ECM协商、图像、重传) ← [接收网关]
- 终端 ↔ 网关:T.30(模拟调制)
- 网关 ↔ 网关:T.38(IP包)
- 纠错:ECM 跑在两端终端之间的T.30流里面
#五、配套压缩标准(T.4,和T.30配套)
T.4定义G3传真图像压缩,在T.30阶段B协商选定:
- MH:一维编码,最简单,兼容性最好;
- MR:二维编码,压缩率更高;
- MMR:改进二维,压缩最强,多用于超精细模式;
压缩算法不影响会话流程,只影响文件大小、传输时长。
#六、业务层面快速判断清单
- 振铃接通、几秒后断线:大概率 T.30阶段B协商失败(对方不支持你选的分辨率/ECM/V.34速率);
- 能传一部分,中途断开:ECM反复重传超时,或T.38 UDP丢包;
- 接通、传完,但页面有黑线麻点:T.30会话成功,ECM未开启,线路噪声/丢包导致图像损坏;
- 本地PSTN发稳定,云T.38跨境容易失败:T.30对时延敏感,跨境IP路由超出T.30计时器窗口;
- 对方是老式传真机:优先降分辨率到Fine、关闭V.34高速、按需关闭ECM。
#七、常见误区澄清
- ❌ T.38是新一代传真协议,可以替代T.30 更正:T.38只是承载层,T.30是传真会话核心,不能替代。
- ❌ 云传真用T.38,传统传真机不支持 更正:远端传真机完全不需要知道T.38,网关做转换,互通是标准能力。
- ❌ ECM是网关配置项,网关开了就生效 更正:协商发生在两端终端;只要其中一台终端不支持ECM,ECM自动失效。
- ❌ T.38冗余=ECM 更正:T.38包冗余是网关防止IP包丢;ECM是终端校验图像分片,两套独立容错。