发明内容
本发明要解决的技术问题是提供一种分布式呼叫处理系统中的呼叫同
抢消除方法,不会降低呼叫处理的效率,同时解决了呼叫同抢问题。
为了解决上述技术问题,本发明提供了一种分布式呼叫处理系统中的呼
叫同抢消除方法,其特点是:
在各处理模块中定义两个呼叫同抢状态机状态:S0:表示未收到呼叫请
求,及S1:表示已经为本端呼叫分配了资源,并将该呼叫同抢状态机嵌入标
准状态机,构成双状态机模型;
在S0状态下,所述处理模块按以下方式执行操作:呼叫到达本端模块
后,本端模块为其分配资源,如果分配资源成功,为本端呼叫向远端模块申
请资源,同时将呼叫状态由S0迁入S1;如果分配资源不成功,拒绝呼叫并
保持呼叫状态为S0;
在S1状态下,所述处理模块按以下方式执行操作:
如果本端模块收到远端模块对本端呼叫资源请求的响应,判断是否在远
端模块获得资源,如果是,接纳本端呼叫,同时将呼叫状态由S1迁入S0,
如果未获得资源,则释放本端呼叫,同时将呼叫状态由S1迁入S0;
如果本端模块收到远端呼叫对本端模块的资源请求,如果能满足该资源
请求,为其分配资源并返回响应,保持呼叫状态为S1;如果不能满足,在远
端呼叫的优先级高于本端呼叫且释放本端呼叫资源后可满足远端呼叫资源
请求时,释放本端呼叫,为远端呼叫分配资源并返回响应,同时将呼叫状态
迁入S0,如果释放本端呼叫资源后还不能满足远端呼叫资源请求时,拒绝远
端呼叫并返回响应,保持呼叫状态为S1。
在ATM网络中,所述优先级的高低可按以下方法确认:首先按服务质
量等级排序,从高到低依次为:恒定比特率、实时可变比特率、非实时可变
比特率、可用比特率、未指定比特率;当服务质量等级相同时,优先通过资
源要求小的呼叫;如果服务质量等级和资源要求都相同,则优先通过端口的
全局索引小的端口发起的呼叫。
所述处理模块可采用呼叫优先级动态队列来保存多个进行中的呼叫,当
呼叫同抢发生时,按优先级由低至高的顺序,按所述S1状态下的操作方法
依次处理队列中的呼叫。这样,当队列中的一个呼叫产生资源问题时,可以
优先拒绝低优先级的呼叫,提高处理效率。
上述方法中,在S1状态下,在释放本端呼叫资源后可满足远端呼叫资
源请求且远端呼叫的优先级低于本端呼叫时,可以拒绝远端呼叫并返回响
应,保持呼叫状态为S1;或者等收到远端对本端呼叫资源请求的呼应后,如
果获得资源,拒绝远端呼叫并返回响应,接纳本端呼叫,同时将呼叫状态迁
入S0;如果没有获得资源,释放本端呼叫,为远端呼叫分配资源并返回响应,
同时将状态机迁入S0。后一种方法在远端呼叫优先级低且本端能够满足其资
源请求,同时远端无法满足本端呼叫的资源请求时,可以接纳远端呼叫。
由上可知,本发明通过执行以呼叫优先级顺序处理为基础的有限状态
机,仍然采用分布式资源管理的方式,有效解决了信令系统中的呼叫同抢问
题,不会降低呼叫处理的效率。同时实现了对高优先级的呼叫优先处理,使
呼叫处理具备了服务质量(QoS)特性,充分利用了有限的网络资源。
具体实施方式
本发明是通过执行以呼叫优先级顺序处理为基础的有限状态机,来实现
对高优先级的呼叫优先处理,同时消除呼叫同抢。首先定义了两个呼叫同抢
状态机状态:S0、S1;,其含义如下:
S0-NULL状态:表示模块未收到呼叫请求;
S1-ALLOCATED状态:表示模块已经为到达本模块的呼叫分配了资
源。
下面以宽带网络信令系统的网络侧处理过程为例,结合附图对本发明的
具体实施方式作进一步的描述。
如图2所示的ATM节点上,ATM交换机两侧分别与线路接口卡1和线
路接口卡2连接,呼叫1和呼叫2的SETUP消息分别同时到达线路接口卡1
和线路接口卡2。
根据Q.2931的呼叫处理流程,当呼叫发生时,如果本地可以为呼叫分
配资源,则将呼叫状态由零状态(N0)迁至出呼叫状态(N3)。在这个标
准状态机内,将本发明的呼叫同抢状态机嵌入,构成双状态机模型。在接收
SETUP消息前,呼叫状态为N0+S0,在标准呼叫状态由N0迁至N3时,同
时将S0状态跃迁入S1。
线路接口卡1对呼叫1的呼叫发生处理流程(即S0状态下的处理流程)
如图3所示,包括以下步骤,
步骤110,接收到SETUP消息后,先进行解码,如果成功,执行下一步,
否则执行步骤150;
步骤120,进行呼叫接纳控制(CAC),如果成功,执行下一步,否则
执行步骤150;
步骤130,分配虚通路标识符/虚通道标识符(VPI/VCI),如果成功,
执行下一步,否则执行步骤150;
步骤140,向线路接口卡2申请资源,将状态机迁到N3+S1,结束。
步骤150,释放呼叫,保持状态机为N0+S0,结束。
本实施例的CAC算法使用等效资源算法,对不同QoS等级的呼叫,所
占用的资源大小不同,对QoS等级高的呼叫分配更多的等效资源;而VPI、
VCI分配方法,则采用静态数组模拟静态链表的方法来实现,通过设置链表
中的0/1标志,标志VPI/VCI资源是否可用;
与此同时,线路接口卡2对呼叫2执行同样的操作,只是在步骤140中
是向线路接口卡1申请资源。
当线路接口卡1和2上的剩余资源,呼叫1和2申请的资源满足式(1)
的关系,即两个线路接口卡上的剩余资源中至少有一个小于两个呼叫请求的
资源之和,但都可以接纳其中任一呼叫时,就可能发生同抢了。
在线路接口卡的呼叫接纳过程中,同样将呼叫同抢状态机嵌入标准状态
机,构成双状态机模型。在出呼叫状态,当前状态机为N1+S1。
下面仍以线路接口卡1的呼叫接纳流程(即S1状态下的处理流程)为
例,说明本实施例消除呼叫同抢的方法,如图4所示,包括以下步骤:
步骤210,本端模块(指线路接口卡1)首先收到远端模块(指线路接
口卡2)对本端呼叫(指呼叫1)的资源请求响应;
步骤220,判断是否在远端模块获得资源,如果是,执行步骤230,否
则执行步骤240;
步骤230,发出本端呼叫的连接消息,将状态机迁入N10+S0,结束。
N10表示已接纳了本端呼叫,本端呼叫进入稳定状态;
步骤240,释放本端呼叫,将状态机迁入N0+S0,结束;
步骤310,本端模块首先收到了远端呼叫(指呼叫2)对本端模块的资
源请求;
步骤320,判断本端的剩余资源是否满足远端呼叫的要求,如果是,认
为同抢未发生,执行步骤380,否则,执行下一步;
步骤330,判断远端呼叫的优先级是否高于本端呼叫,如果是,执行下
一步,否则,执行步骤370;
步骤340,判断释放了本端呼叫后,本端剩余资源是否能满足远端呼叫,
如果是,执行下一步,否则,执行步骤370;
步骤350,释放本端呼叫资源并清除本端呼叫;
步骤360,为远端呼叫分配资源并返回响应消息,将状态机迁入N0+S0,
结束;
步骤370,拒绝远端呼叫并返回响应消息,保持状态机为N3+S1,结束;
步骤380,为远端呼叫分配资源,保持状态机为N3+S1,结束。
在步骤330中,可以使用如下规定的优先级算法:
首先按服务质量(QoS)等级排序,例如CBR(恒定比特率)>rtVBR(实
时可变比特率)>nrtVBR(非实时可变比特率)>ABR(可用比特率)>UBR
(未指定比特率);
当QoS等级相同时,则优先通过资源要求小的呼叫;
如果两个呼叫QoS等级和资源要求都相同,则根据端口的全局索引来排
序,优先通过端口的全局索引小的端口发起的呼叫。
如果是在IP网络中,可以利用IP报文的TOS字段确定优先级。
线路接口卡2上的呼叫接纳流程与线路接口卡1相同,只是本端、远端
模块和本端、远端呼叫的含义不同。结合两个线路卡的处理,可以看出,在
呼叫同抢发生时,假设呼叫1的优先级高于呼叫2,则线路接口卡1会运行
到步骤370,拒绝呼叫2的资源请求,同时,线路接口卡2会运行到步骤360,
释放掉呼叫2的资源,为呼叫1分配资源并返回响应;接下来,线路接口卡
1收到线路接口卡2为呼叫1分配资源的响应后,就会发出呼叫1的连接消
息,从而最终接纳呼叫1,释放呼叫2。反过来,如果呼叫1的优先级低于
呼叫2,则会接纳呼叫2,释放呼叫1,从而实现了在呼叫同抢发生时,消除
了呼叫同抢,并对高优先级呼叫优先处理。
在一个模块中可能同时存在多个进行中的呼叫,即未达到稳定状态N10
的呼叫,本发明实施例建立了一个呼叫优先级动态队列来保存进行中的呼
叫,如图5所示,当呼叫发生时,根据呼叫的QoS等级的,按照UBR、ABR、
nrtVBR、rtVBR、CBR的顺序由低到高排序,并将呼叫入队。当呼叫同抢发
生时,按优先级由低至高的顺序,按照上述的呼叫状态机处理过程依次处理
呼叫,这样,当队列中的一个呼叫产生资源问题时,优先拒绝低优先级的呼
叫,可以提高处理效率。当呼叫完成时,将呼叫从队列中出队。
在上述实施例的基础上,还可以做一些变换,例如,在实施例步骤320
中本端资源不能满足远端呼叫之后,执行以下步骤:
判断释放了本端呼叫后,本端剩余资源是否能满足远端呼叫,如果不能,
拒绝远端呼叫并返回响应消息,保持状态机为N3+S1,结束;如果能,执行
下一步;
判断远端呼叫的优先级是否高于本端呼叫,如果是,释放本端呼叫,为
远端呼叫分配资源并返回响应消息,将状态机迁入N0+S0;如果远端呼叫优
先级低,执行下一步;
等收到远端模块对本端呼叫的资源请求响应后,如果获得资源,再拒绝
远端呼叫并返回响应消息,发出本端呼叫的连接消息,同时将状态迁入
N10+S0;如果没有获得资源,释放本端呼叫,为远端呼叫分配资源并返回响
应消息,同时将状态机迁入N0+S0。
上述步骤和实施例的区别在于,当远端呼叫优先级低且本端能够满足其
资源请求,同时远端无法满足本端呼叫的资源请求时,可以接纳远端呼叫。
而按实施例流程,会将远端呼叫和本端呼叫均拒绝掉。但两种方法,均可以
在满足式(1)条件的呼叫同抢发生时,消除呼叫同抢。