星号不能通过T.38发送传真

我在星号上更新。 当我试图发送传真时,我无法取得成功。 做了很多研究之后,我决定在这里问我的问题。

我希望有人能给我一些想法来纠正我的configuration。 最后,我希望我的系统可以通过t.38发送传真。

非常感谢!

这里是细节:

我的系统: Ubuntu 14.04 +星号11.7

我使用apt-get来安装星号11.7的ubuntu默认版本。 为了方便debugging,我只是用默认版本更改了一些参数值

sip.conf

t38pt_udptl = yes,redundancy,maxdatagram=400 faxdetect = yes 

extension.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没有Dis”

经过研究,我得到了这个:

T.30传真信令消息在VoIP传真呼叫中,T.38数据包在T.30传真信令消息之前和之后。 这些消息包括:

  1. DIS:数字识别信号指示终止传真function(例如,数据速率)
  2. DCS:数字命令信号,指示发端传真将使用的传输模式(例如传输速率)
  3. TCF:训练检查序列(发送1.5秒)
  4. CFR:确认接收指示接收传真已准备好接收文件
  5. MPS:多页信号(如果发送多个页面,则在每个页面之后发送)
  6. MCF:表示已收到页面的消息确认
  7. EOP:过程结束消息,指示不再有要发送的页面
  8. DCN:断开消息

其他可选消息:

1.CSI:被叫用户标识

2.TSI:传输用户标识

但是我仍然对“Dcn No Dis”意味着我的星号系统有什么问题感到困惑。

我确信这些:

  1. 接收器工作正常。
  2. 我的ISP提供商完全支持g711和t.38的传真terminal
  3. 我的testing服务器不在任何防火墙后面。

demo.jpg是我的wireshark的截图。 从19到1841年,所有的stream量都是RTP包。

t.38 png图解是一个典型的传真呼叫。

以下是t.38的主要问题

1)默认情况下星号compliled没有spandsp的支持,所以没有t.38

2)即使你提到了,你的t38udpl系也有EXACT相同的提供者期望。 任何单个参数错误都可能导致t.38不能正常工作

3)出境呼叫t.38由CALLED方发起。 所以如果你的提供商没有检测到传真或不要求星号切换到t.38,星号不会这样做。

4)t.38的创build使用了一些variables(T38CALL = 1在星号1.8中,而不是在11版本中检查)和使用提供者的部分而不是ip。

http://www.voip-info.org/wiki/view/Asterisk+T.38

DISCALIMER:T38呼叫是星号中最复杂的部分之一,更复杂的只有两个主题 – h323video呼叫和webrtc。