前因:
最近解決了一個“踢皮球的bug”,為什麼說他是踢皮球了
因為IPA這個平台功能一切正常,而ATCA平台有這個bug,而芬蘭那邊的DSP專家卻說,他們的軟體沒問題,
於是乎,那麼就弱勢的一方,找找看是什麼問題了
這我們的T38實現,盡然用的是開源的庫,
天煞的,這下麻煩了,要啃沒人支援的開源庫了
終於在某天,發現了為啥會出現這天煞的bug,
原來還是DSP的問題
T38介紹:
傳真大致上,分成2類,T30、T38
T30是用在PSTN上的,這個承載是TDM
T38是用在VOIP上的,這個承載是IP
2種面向的業務不一樣,但是有個共同點,就是T38是基於T30的,也就是說,T30的狀態機器完全的適合T38
整體情境如下:
掃盲結束,那就講講T38裡,2個比較重要的東西
1、 IFP 包
在IP網路裡傳包,並不像TDM裡那樣,它會有一定的包格式,那麼這個IFP就是T38 的包格式了,而IFP裡有種recovery的機制,如果你丟失了一個包,通過這個recovery就能找到丟失的包,而這種機制的實現也是非常的簡單,就是IFP包裡包含了上一個IFP包的資料部分,格式如下:
00 01 |
01 |
02 |
00 |
01 |
01 |
01 |
Seq number |
Data size |
value |
Flag |
Number of redundancy |
Size |
data |
Seq number:IFP 的包序號,一般從0開始
Data size:包的長度
Value:
Flag:00
Number of redundancy:冗餘包的個數
Size:長度
2、流程圖
階段圖
訊息流程程圖
你也可以在“我的資源”裡下載,整個T38流程的訊息圖,並用wireshark開啟
http://download.csdn.net/detail/alajl/3664910
Spandsp:
說道T38,不得不說下,這個spandsp,這個東東的功能不要太強大,它支援許多的通訊裡使用者面的東東,例如語音編碼,傳真等等,
有興趣的同學可以從http://www.soft-switch.org/downloads/spandsp/去下載
然後編譯部署調試它: http://www.soft-switch.org/installing-spandsp.html
有興趣的同學