通過Spiceworks的調(diào)查報告說明,大約89%的中小型企業(yè)仍然使用傳真,大約62%的TI部門仍然使用物理傳真機。
在今天的VOIP網(wǎng)絡中,傳真的使用雖然在不斷增加,但是用戶可以選擇很多方式來實現(xiàn)傳真發(fā)送,而且傳真的話題也不是我們SIP系列中重要的話題,所以,筆者不打算花很多篇幅做非常深入的討論,只是通過幾個方面的介紹,幫助讀者能夠掌握SIP網(wǎng)絡中的傳真使用情況。我們涉及的內(nèi)容包括傳真的背景介紹,傳真的協(xié)議使用,傳真的幾種方式,帶寬和傳真問題排查等幾個方面進行討論。
1、傳真最早是在1843年發(fā)明的,但是傳真大規(guī)模的使用是在1970年后。當時使用的協(xié)議是T.30,通過PSTN網(wǎng)絡在不同地區(qū)的部署來實現(xiàn)傳真收發(fā)。
首先讓我們看看T.30環(huán)境下,收發(fā)傳真是如何工作的。
- 發(fā)送傳真方首先啟動一個發(fā)送傳真音,通知對端需要發(fā)送傳真。
- 接收傳真方返回一個CED表示可以接收傳真。
- 接下來,接收傳真方發(fā)送一個DIS表示所支持的能力,例如,速率等可選參數(shù)。
- 發(fā)送傳真方收到接收方所提供的可選參數(shù),然后做一個協(xié)商,最后返回發(fā)送方所支持的最佳匹配參數(shù)(DCS)。
- 發(fā)送方然后發(fā)送一個TCF。
- 接收方發(fā)送一個確認信息(CFR)。
- 發(fā)送方開始正式發(fā)送傳真內(nèi)容,發(fā)送傳真完成以后,發(fā)送一個(EOP)表示傳真發(fā)送結(jié)束。
- 收發(fā)互發(fā)傳真結(jié)束確認消息,掛斷傳真。
以下是不同階段所使用的相關(guān)語音和協(xié)議,這里大家注意,V.21是負責處理收發(fā)協(xié)議握手協(xié)商機制,V.27ter/V.17/V34,V.29則負責傳真?zhèn)鬏攨f(xié)議。各自的速率完全不同。
2、在上面的介紹中,我們可以看到,如果通過傳統(tǒng)的T30方式發(fā)送傳真需要經(jīng)過普通的PSTN網(wǎng)絡,使用成本比較高,同時需要購買傳真機和其他的硬件設備。和傳統(tǒng)的傳真方式相比,基于VOIP網(wǎng)絡的傳真具有一下幾個方面的優(yōu)勢:
- 和PSTN發(fā)送傳真成本,通過IP發(fā)送傳真可節(jié)約成本。
- 無需昂貴的傳真設備。
- IP傳真方案可靈活拓展。
- 無紙化傳真方式節(jié)省了大量傳真用紙,綠色環(huán)保。
- 是當前融合通信的主要功能之一,用戶可以通過客戶端直接發(fā)送傳真。
基于SIP-TDM的傳真實現(xiàn)方式如下,傳真服務器遷移到了IPPBX中,IPPBX支持了PCI的語音板卡,語音板卡接口可以支持運營商的PSTN接入,當然,這里的語音板卡也可以通過外置的語音網(wǎng)關(guān)來代替,語音網(wǎng)關(guān)通過SIP對接IPPBX。
如果用戶完全使用SIP trunk的話,用戶可以通過以下拓撲方式實現(xiàn)傳真的收發(fā)。這里的FoIP表示Fax Over IP(使用了T.38)。傳真機通過網(wǎng)關(guān)發(fā)送到SIP trunk,運營商然后通過PSTN發(fā)送到客戶端的模擬傳真機。
具體的應用細節(jié)如下:
如果我們看詳細的應用場景,可能會發(fā)現(xiàn),發(fā)送傳真的路徑可能經(jīng)過了多次協(xié)議的轉(zhuǎn)換,在整個路徑的不同用戶可以需要不同的傳真協(xié)議支持,這樣就可能導致很多傳真的問題,例如因為轉(zhuǎn)換的時延,可能導致傳真失敗或者傳真不能發(fā)送等問題。
3、在FoIP中,傳真收發(fā)是通過三種協(xié)議來獲得支持, 它們是G.711 Pass-through,T.37和T38。
筆者分別介紹三種協(xié)議的具體內(nèi)容:
G.711 pass-through 的工作原理類似于普通的VOIP呼叫,pass-through 可以支持IP網(wǎng)絡和PSTN,終端可能仍然需要T.30來進行轉(zhuǎn)換。
Pass-through具有以下幾個方面的特點:
- 協(xié)議相對比較簡單。
- 支持實時傳輸方式。
- 工作方式和VoIP呼叫類似。
- 可以使用RTP和RTCP。
- 如果使用SG3的話,傳輸速度可以超過T.38。
- 對網(wǎng)絡延遲,抖動,丟包比較敏感,如果出現(xiàn)前面所說的情況,傳真數(shù)據(jù)可能丟失。
- 需要消耗很多帶寬支持傳輸。
- 僅支持編碼選擇,不能壓縮編碼。
- 可以使用SRTP支持加密傳輸。
T.37的工作原理是通過存儲轉(zhuǎn)發(fā)到方式來實現(xiàn)。用戶傳真以PDF或者郵件的形式發(fā)送,然后在客戶端進行經(jīng)過郵件處理,和傳真機協(xié)商后發(fā)送到傳真機。
T.37如果通過PSTN接收傳真時,傳真會通過T.38發(fā)送到本地的傳真網(wǎng)關(guān),然后傳真文件被轉(zhuǎn)換成傳真文件格式Tiff或者PDF,郵件服務器會存儲這個傳真文件,然后通過郵箱附件形式轉(zhuǎn)發(fā)到客戶郵箱。
T.37存儲轉(zhuǎn)發(fā)到方式具有以下幾個方面的特點:
- 支持存儲轉(zhuǎn)發(fā)傳真文件,傳真文件保存在郵件服務器。
- 協(xié)議支持非常簡單。
- 需要傳真機和郵件服務器支持,使用SMTP協(xié)議。
- 傳真之間不能互相協(xié)商。
- 無接收方接收傳真,這樣的話,發(fā)送方可能不知道傳真是否被成功接收接收或者是否成功發(fā)送。
- 非實時傳輸方式,因為是通過郵件服務器來發(fā)送傳真,傳輸速度可能取決于郵件服務器本身。
- T.38 Relay方式通過T.38 發(fā)送傳真,傳真機則通過T.30來接收傳真,終端傳真機沒有意識到是通過多次IP網(wǎng)絡傳輸?shù)膫髡鏀?shù)據(jù)。
T.38 Relay具有以下幾個方面的特點:
- 支持標準的實時傳輸方式。
- 避免了G.711 pass-through 的丟包帶來的影響。
- 可以確認接收方信息。
- 可以支持終端逃生方式來支持傳真接收。
- 和G.711相比,需要相對比較低的帶寬。
- T.38使用UDPTL和RTP協(xié)議發(fā)送傳真。以下是通過UDPTL和UDP發(fā)送傳真的數(shù)據(jù)標識。
T.38 通過RTP發(fā)送傳真的方式雖然很多公司在嘗試使用,允許對傳真發(fā)送也是一個比較好的選擇。這里假設我們有兩個傳真需要發(fā)送(IFP3和IFP2),用戶可以通過RTP選擇UDP或者TCP方式發(fā)送。
通過RTP發(fā)送T.38 傳真具有以下幾個方面的特點,用戶可以考慮:
- 支持UDP傳輸可以更好兼容很多第三方設備,兼容性可能比UDPTL好。
- 支持RTCP可以獲得傳真發(fā)送數(shù)據(jù)報告。
- 支持SRTP可以對傳真進行加密處理。
- 支持cRTP可以支持對RTP頭進行壓縮,節(jié)省帶寬。
- 如果使用TCP傳輸?shù)脑,無需重發(fā),支持更小的T.38 數(shù)據(jù)包。
4、使用FoIP發(fā)送時,用戶需要了解基本的傳真發(fā)送流程,F(xiàn)在我們看看實際場景中SIP消息和SDP中的fax消息。在下面的圖例中,通過SIP消息發(fā)起INVITE,然后建立RTP媒體通道,通道建立后,接收方檢測到傳真音信號,然后再發(fā)起一個T.38 INVITE, 經(jīng)過雙方協(xié)商后,開始傳輸傳真數(shù)據(jù),最后雙方發(fā)送Bye消息。
以下圖例說明了SDP中的fax 支持能力描述。具體的傳真SDP定義,建議用戶參考RFC3407。這里的sqn必須以0開始,此值介于0-255之間遞增。
5、FoIP傳真業(yè)務很大程度上有賴于企業(yè)網(wǎng)絡帶寬,這里的圖例介紹了各種傳輸協(xié)議下單帶寬占用情況,目前,T.38 仍然主宰著傳真市場,對于比較大的文件很多客戶仍然選擇G.711傳輸。這里的R的值表示一個冗余,R3表示級別最高。主要的協(xié)議包括V.29/V.17。
6、在傳統(tǒng)的PSTN環(huán)境下,傳真問題不是一個非常普遍的問題,但是基于IP的傳真可能經(jīng)常會遇到一些問題導致傳真不能超過發(fā)送。通常情況下,這些問題包括:
SIP響應慢導致的T.38 Re-INVITE失敗。在前面的討論中,我們已經(jīng)介紹過,雙方在收到200 OK之前,要啟動一個T.38的請求消息,如果雙方都沒有收到T.38的請求,則傳真就可能失敗。導致這個問題發(fā)生的原因可能是網(wǎng)絡帶寬有問題,或者網(wǎng)絡比較慢,可能有延時,抖動或者丟包現(xiàn)象出現(xiàn)。建議用戶檢查網(wǎng)絡。
T.38 V3版本的問題,因為運營商可能會根據(jù)管理策略對一些路徑進行靜音設置,這樣可能導致無語音傳輸包括傳真音的測試。需要運營商檢查此參數(shù)。
V.34支持問題,很多傳真機可能不支持V34。如果對端傳真機不支持V.34的話,需要重新協(xié)商通過V.17來重新發(fā)送。如果對端使用的是G.711方式發(fā)送到話,則可能傳真失敗。
ECM是彩色傳真,V.34 和MMP必須要求的參數(shù),有一些運營商可能不支持ECM功能。所以,為了保證傳真能夠成功發(fā)送,可能需要關(guān)閉ECM,這樣用戶僅能收到黑白色的傳真文件。
編碼問題可能導致傳真發(fā)送失敗。G.711語音編碼完全可以在Pass-through 模式下工作,但是如果遇到G.729編碼環(huán)境下的SIP trunk時,如果傳真在V.21和其他版本切換時,例如切換到V.29環(huán)境下時,編碼帶寬則可能出現(xiàn)問題。因此,筆者建議用戶如果用戶經(jīng)常通過SIP trunk發(fā)送傳真的話,最好再創(chuàng)建一個G.711的pass-through 的中繼線路,支持傳真的收發(fā)。
終端的回聲抑制或者語音壓縮功能可能導致傳真失敗;芈曇种坪驼Z音壓縮時可能會消除傳真音本身的數(shù)據(jù),這樣可能傳真音不能被成功檢測。同時,如果從普通語音切換到傳真時,終端的回聲抑制或語音壓縮功能也可能出現(xiàn)錯誤的判斷。如果傳真發(fā)送失敗的話,筆者也建議用戶關(guān)閉回聲抑制和壓縮功能。
在本章節(jié)的討論中,我們首先討論了企業(yè)用戶對傳真的需求,然后簡單回顧了傳統(tǒng)PSTN收發(fā)傳真的基本知識背景和協(xié)議構(gòu)成。另外,筆者也介紹了FoIP的三種方式和各自的特點,另外介紹了關(guān)于傳真帶寬占用的介紹,最后羅列了幾個使用傳真時遇到的問題。筆者希望通過幾個方面的介紹,幫助用戶能夠快速掌握基本的FoIP知識,同時可以快速排查問題所在。
參考資料:
https://www.rfc-editor.org/info/rfc3206
https://www.qualitylogic.com/2013/04/30/v-34-to-v-17-can-be-a-hard-fall/
關(guān)注微信公眾號:asterisk-cn,獲得有價值的行業(yè)分享。訪問開源IPPBX論壇獲得技術(shù)幫助:www.issabel.cn/forum