Asterisk的T1/E1 PRI是通过libpri库+Chan_dahdi.c+DAHDI驱动+E1板卡实现的。目前libpri最新的版本是libpri-1.6.0.tar.gz(下载地址:ibpri-1.6.0.tar.gz)。libpri实现了三层协议:网络层Q.931协议、数据链路层Q.921协议和物理层。
Asterisk、chan_dahdi、DAHDI驱动、wct4xxp、E1板卡TE420这几者之间的示意图如下:
其中dahdi.ko统一提供接口(设备文件)给应用层Asterisk。这些接口包括:
/dev/dahdi/channel
/dev/dahdi/ctl
/dev/dahdi/transcode
/dev/dahdi/timer
/dev/dahdi/pseudo
在PRI信令下D channel是负责信令维护的channel,包括链路连接、断开、警告等状态。比如E1模式下:dchan=16,47,78,109。
1、PRI初始化