Asterisk 不能通過 T.38 發送傳真
我是星號的新人。當我嘗試發送傳真時,我無法成功。在做了很多研究之後,我決定在這裡問我的問題。
我希望有人能給我一些想法來糾正我的配置。最後,我希望我的系統可以通過 t.38 發送傳真。
非常感謝!
這是詳細資訊:
我的系統:ubuntu 14.04 + 星號 11.7
我使用 apt-get 安裝星號 11.7 的 ubuntu 預設版本。為了方便調試,我只是用預設版本更改了一些參數值
sip.conf
t38pt_udptl = yes,redundancy,maxdatagram=400 faxdetect = yes
副檔名.conf
[sendFAX] exten => s,1,VERBOSE(sending fax...) exten => s,n,Set(FAXOPT(headerinfo)=Fax from a Demo test) exten => s,n,SendFAX(/tmp/demo.tiff,f) ;I get demo.tiff file from "$ gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=letter -sOutputFile=<dest> <src>" exten => s,n,VERBOSE(ok!) exten => s,n,Hangup
我使用 AMI 發起傳真呼叫。在 CLI 中,一切看起來都很好。我沒有收到任何錯誤消息。當我使用wireshark 檢查此通信的詳細資訊時,我發現Asterisk 使用了G711 而不是使用預期的T.38。
但是,在接收端,我沒有收到傳真,我只是收到一個錯誤“Dcn No Dis”
經過研究,我得到了這個:
T.30 傳真信令消息 在 Voip 傳真呼叫中,T.38 數據包之前和之後是 T.30 傳真信令消息。這些消息包括:
- DIS:數字辨識信號,指示終止傳真功能(例如,數據速率)
- DCS:數字命令信號,指示原始傳真將使用的傳輸模式(例如,傳輸速率)
- TCF:訓練檢查序列(發送 1.5 秒)
- CFR:Confirmation To Receive 表示接收傳真已準備好接收文件
- MPS:多頁信號(如果發送多頁,則在每頁之後發送)
- MCF:指示頁面已收到的消息確認
- EOP:程序結束消息,指示沒有更多頁面要發送
- DCN:斷開連接消息
其他可選消息:
1.CSI:被稱為使用者辨識
2.TSI:發送使用者標識
但是我仍然對“Dcn No Dis”意味著我的星號系統有什麼問題感到困惑。
我確信這些:
- 接收器工作正常。
- 我的 ISP 提供商完全支持 g711 和 t.38 中的傳真終止
- 我的測試伺服器不在任何防火牆後面。
demo.jpg是我的wireshark 的截圖。從19到1841,所有流量都是RTP包。
t.38 png圖說明的是典型的傳真呼叫。
t.38 的主要問題如下
- 預設情況下星號在沒有 spandsp 支持的情況下編譯,所以沒有 t.38
2)即使您編譯了它,您的 t38udpl 行也與提供者期望的完全相同。任何單個參數錯誤都可能導致無法正常工作 t.38
在外呼t.38 已由CALLED 方發起。因此,如果您的提供商沒有檢測到傳真或沒有要求星號切換到 t.38,星號不會這樣做。
t.38 的起源是使用一些變數完成的(星號 1.8 中的 T38CALL=1,未檢查 11 版本中的內容)並使用提供者的部分,而不是 ip。
http://www.voip-info.org/wiki/view/Asterisk+T.38
DISCALIMER:T38 通話是星號中最複雜的部分之一,更複雜的只有兩個主題 - h323 影片通話和 webrtc。