专注SIP通讯产品与方案

CCB的状态转移

在ccb.cptlb.state中存放的CCB的状态可具有以下的值:
•onfreeqCCB在空闲队列中。
•onreadyq2CCB在呼出队列中,可以有1至2封信件编在ccb.cptlb.letterq,呼出代理的TSW应与CCB链接。
•onreadyqlCCB在进行队列中,可以有1至2封信件以及1.314.个或多个TSW与CCB链接。
•linked_cpmbCCB与CDB及其相关的进程链接,有一个或多个TSW与CCB链接,也可能有信件链接。
•linked_nocpmb呼叫在压缩期间»CCB不与CDB勾连,也无信件勾连,但至少有一个TSW链接到CCB.
•unavailable表示呼叫在进行差错恢复的处理。
图5.19表示了CCB的状态转移。
CCB的状态转移
对照图5.19中的数字,说明如下:
①收到呼出消息。收到呼出消息将使CCB从状态onfreeq转移到onreadyq2。
②收到后继消息,启动新的事务处理。在状态onreadyq2或on-readyql收到消息,呼叫进程开始新的事务处理,CCB就转移到状态linked_cpmbo此时应与呼叫进程及CDB,相链接。
(a)呼出进程先从进行队列(CCB在状态onreadyql)取出CCB,处理完变成空链后才从呼出队列中取出CCB(CCB在状态on-readyq2)o取出一个CCB后,就与CDB勾连。
(b)与CCB链接的第一封信件内容复制到cdb.message中,信件归还到可用队列。
(c)呼叫进程按照发送消息的代理属性,用表格驱动方式调用相应的呼叫处理应用过程。
(d)如两个队列都为空链,呼叫进程自身挂起在availcpmbs队列。
③呼叫压缩。当呼叫压缩时,CCB从linked.cpmb转移到linked_nocpmbo呼叫压缩发生于以下情况:
(a)当前的事务处理完成。
(b)如有2封信件,则处理完第1封信件后,又处理下一个事务。当无信件链接在CCB±时,呼叫被压缩。
④压缩的呼叫收到进展的消息。CCB从状态linked-nocpmb转移到onreadyqlo
⑤呼叫正常终止。呼叫结束时,CCB从状态linked_cpmb转移到onfreeqo此时,应无任何TSW、信件、CDB、ECCB等与CCB勾连。CCB内容初始化,返回到可用队列,CCB的顺序号则加K
⑥发生严重故障。当发生严重故障或陷阱时,可从任何状态转移到unavailable状态,呼叫进程被杀死,向呼叫父进程发送死亡消息。图5.19中表示的是从linked^cpmb转移到unavailableo
⑦在严重故障后清除呼叫。当从严重故障或陷阱中恢复后,父进程重新创建呼叫进程,将呼叫清除,CCB从状态unavailable转移^|<Hifreeqo
⑧呼叫执行等待或延迟。CCB在状态linked_cpmb时,呼叫进程可以将自身挂起在定时队列以等待一消息或执行延迟操作。在此馆况下,CCB的状态不变。
⑨等待超时、收到消息或延时已到。在等待超时、未超时而收到浪恳,或菇时已到时间,呼叫进程将准备运行。CCB的状态仍在linked_cpmb。