前因:
最近解决了一个“踢皮球的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
有兴趣的同学