admin管理员组

文章数量:1122853

freeswitch

PSTN网络,即公共电话网,物理线路主要是E1/T1/J1线和双绞线。这里主要研究E1线及相关的ISDN协议标准。freeswitch在ftmod_isdn.c文件定义了ISDN模块的加载,退出,配置函数,可以从这个文件开始阅读源码。ftdm_io.c提供给外部使用的API,用ftdm_module_t区分endpoint类型,有GSM,ISDN,R2。

L1层
freeswitch不涉及此部分,可以看IDT2288芯片,一块芯片支持8路E1线,写相关寄存器即可实现相关配置(例如线路阻抗,成帧非成帧,时钟,还回,HDLC通道等配置)和D通道数据的发送;读寄存器可得到线路状态并产生告警供排查问题,还可以接收D通道数据。PSTN转VOIP,在软交换设备上B通道时隙通常用交叉芯片,fpga芯片操作数据流向DSP芯片的channel,freeswitch可用软DSP spandsp,运行在CPU上,怎样将B通道上的数据正确导向channel?
是否存在一个器件将TDM转为以太网数据送给CPU,例如以太网电路仿真单元

L2层
实现在q921.c文件
代码风格挺好的,很容易看懂,各类帧的收发处理。重点关注下L2的状态变迁和定时器
Q921Rx32
Q921Rx12
Q921Tx21Proc
Q921Tx23Proc

L3层
实现在q931.c文件
用户侧的信令消息处理在q931stateTE.c,网络测的在q931stateNT.c,添加删除IE在q931ie.c,Q921与Q931之间打包解包在q931mes.c,主要看的是呼叫的信令流程和状态机。
主要处理函数入口
Q931Rx23
Q931Tx34
Q931Rx43
创建呼叫控制块
Q931CreateCRV

本文标签: freeswitch