由于没有实战经验,纯属理论分析,不能保证100%完全正确。
一、断电逃生
1、
未上电时,SLIC、SLAC和DSP都不能工作,此时通过继电器直接将FXO口与FXS口相连,
相当于把FXS口的电话直接连到FXO口上的PSTN外线上。
2、板子上电后,
SLIC、
SLAC与
DSP初始化正常,这时候控制继电器,将
FXS口与
SLIC芯片连接,并断开与
FXO口的连接。
二、FXS从PSTN线路呼出(透传方式)
1、
FXS口摘机后听拨号音。
2、此时
FXS口按
FXO口外线前缀号码,如
9,停止拨号音,进行上层逻辑处理(判断出用透传方式连接
FXO口)。
3、调用
ENDPT驱动控制
FXO口摘机,并将
FXS口线路
VHD对象与
FXO口线路
VHD对象立即建立连接。
4、此时从
PSTN侧传来的播号音将通过
FXOà
SLACà
DSP,直接透传到
SLIC上对应
FXS口的电话。
5、同样
FXS口电话后续按键也是直接传到
PSTN线路上。
三、FXS从PSTN线路呼出(非透传方式)
1、
FXS口摘机后听拨号音。
2、此时
FXS口按
FXO口外线前缀号码,如
9,停止拨号音,进行上层逻辑处理(判断出用非透传方式连接
FXO口)。
3、此时
DSP收集
FXS口准备向
PSTN侧发送的号码。
4、号码收集完成后,调用
ENDPT驱动控制
FXO口摘机。
5、
DSP检测到
FXO口有拨号音,则将之前收集的号码发送到
PSTN线路。
6、
DSP检测到
FXO口有
TONE音生成事件,则将
FXS口线路
VHD对象与
FXO口线路
VHD对象建立连接。
四、收到PSTN线路呼入,连接FXS口
1、
SLAC芯片检测到振铃信号后,上报给应用层。
2、应用层进行逻辑处理(需要直接连接对应的
FXS口)。
3、此时给对应的
FXS口放振铃。
4、
FXS口连接的电话摘机后,停止振铃,控制
FXO口摘机,并将
FXS口线路
VHD对象与
FXO口线路
VHD对象建立连接。
五、收到PSTN线路呼入,走IP线路
1、
SLAC芯片检测到振铃信号后,上报给应用层。
2、应用层进行逻辑处理(需要走
IP线路)。
3、控制
FXO口摘机,并给
FXO口上
PSTN线路放播号音。
4、收集
PSTN线路上的
DTMF按键,停止给
PSTN线路放播号音。
5、按键收集完后,向
IP侧发起呼叫。
6、最终与
IP侧对端建立信令连接后,通过将资源
VHD对象与
FXO口线路
VHD对象连接来完成媒体通信。
六、收到PSTN线路呼入,加入三方通话。
1、
SLAC芯片检测到振铃信号后,上报给应用层。
2、应用层进行逻辑处理(需要将此
FXO口呼入加入到当前正在通话的对话中)。
3、控制
FXO口摘机,将
FXO口的线路
VHD与正在通话的资源
VHD建立连接,来完成三方通话。