发明内容
本发明的目的在于提供一种指示终端设备呼叫状态的方法,旨在解决现有技术中终端设备根据MGCP信令来粗略的估计当前所处的呼叫状态,造成呼叫状态信息的提供不准确,增加了终端设备的工作负担和复杂度,影响系统稳定性和可靠性的问题。
本发明的另一目的在于提供一种指示终端设备呼叫状态的系统。
本发明的另一目的在于提供一种媒体网关控制器。
本发明的另一目的在于提供一种终端设备。
本发明是这样实现的,一种指示终端设备呼叫状态的方法,所述方法包括下述步骤:
A.终端设备向媒体网关控制器上报终端检测事件通知;
B.媒体网关控制器根据所述终端检测事件通知下发携带有终端设备或者与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令;
C.终端设备或者与所述终端设备有呼叫连接的终端设备接收媒体网关控制器下发的MGCP信令,提取所述MGCP信令中的呼叫状态指示信息。
所述MGCP信令为RQNT消息,所述RQNT消息包含有终端设备或与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息,用于指示终端设备或者与所述终端设备有呼叫连接的终端设备当前所处的呼叫状态。
所述RQNT消息内嵌在CRCX消息、MDCX消息或者DLCX消息中。
所述呼叫状态指示信息包括呼叫建立信息、信息传递阶段信息或者呼叫清除信息。
一种指示终端设备呼叫状态的系统,所述系统包括设置于媒体网关控制器的呼叫状态信息发送子系统,以及设置于终端设备的呼叫状态信息接收子系统;
所述呼叫状态信息发送子系统用于根据呼叫状态信息接收子系统上报的终端检测事件通知下发携带有终端设备或者与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令;
所述呼叫状态信息接收子系统用于向呼叫状态信息发送子系统上报终端检测事件通知,接收呼叫状态信息发送子系统下发的MGCP信令,提取所述MGCP信令中的呼叫状态指示信息。
所述呼叫状态信息发送子系统包括:
终端检测事件通知接收单元,用于接收呼叫状态信息接收子系统上报的终端检测事件通知;
呼叫状态指示生成单元,用于根据所述终端检测事件通知生成包含终端设备或者与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令;以及
呼叫状态指示发送单元,用于将所述MGCP信令下发给呼叫状态信息接收子系统。
所述呼叫状态信息接收子系统包括:
终端检测事件通知发送单元,用于向呼叫状态信息发送子系统上报终端检测事件通知;
呼叫状态指示接收单元,用于接收呼叫状态信息发送子系统下发的MGCP信令;以及
呼叫状态指示显示单元,用于提取所述MGCP信令中的呼叫状态指示信息。
所述呼叫状态指示显示单元进一步包括:
显示器,用于向用户显示所述呼叫状态指示信息。
一种媒体网关控制器,所述媒体网关控制器用于根据终端设备上报的终端检测事件通知下发携带有终端设备或者与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令。
所述媒体网关控制器包括:
终端检测事件通知接收单元,用于接收终端设备上报的终端检测事件通知;
呼叫状态指示生成单元,用于根据所述终端检测事件通知生成包含终端设备或者与所述终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令;以及
呼叫状态指示发送单元,用于向终端设备、与所述终端设备有呼叫连接的终端设备或者终端设备和与所述终端设备有呼叫连接的终端设备下发所述MGCP信令。
一种终端设备,所述终端设备用于向媒体网关控制器上报终端检测事件通知,接收媒体网关控制器下发的MGCP信令,提取所述MGCP信令中的呼叫状态指示信息。
所述终端设备包括:
终端检测事件通知发送单元,用于向媒体网关控制器上报终端检测事件通知;
呼叫状态指示接收单元,用于接收媒体网关控制器下发的MGCP信令;以及
呼叫状态指示显示单元,用于提取所述MGCP信令中的呼叫状态指示信息。
所述呼叫状态指示显示单元进一步包括:
显示器,用于显示所述呼叫状态指示信息。
在本发明中,媒体网关控制器通过终端设备上报的终端检测事件通知下发携带终端设备或者与所述终端设备有呼叫连接的终端设备当前所处的呼叫状态信息的MGCP信令,减轻了终端设备的工作负担,增强了系统的稳定性和可靠性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明中,终端设备在检测到终端检测事件发生时,向软交换发出通知,软交换根据终端设备上报的终端检测事件终端通知下发携带终端设备或者与终端设备有呼叫连接的终端设备呼叫状态指示信息的MGCP信令,终端设备或者与终端设备有呼叫连接的终端设备根据软交换下发的MGCP信令获知终端设备或者与终端设备有呼叫连接的终端设备当前所处的呼叫状态。
图2示出了本发明中指示终端设备呼叫状态的实现流程:
1.当终端设备检测到终端检测事件发生时,向软交换发出终端检测事件通知;
2.软交换根据终端设备通知的终端检测事件生成携带终端设备或者与终端设备有呼叫连接的终端设备的呼叫状态指示信息的MGCP信令;
3.软交换根据实际业务情况,向终端设备、与终端设备有呼叫连接的终端设备下发携带呼叫状态指示信息的MGCP信令,或者向终端设备和与终端设备有呼叫连接的终端设备都下发携带呼叫状态指示信息的MGCP信令;
4.终端设备或与终端设备有呼叫连接的终端设备收到软交换下发的MGCP信令,提取呼叫状态指示信息,并显示给用户。
在现有的MGCP协议中,没有特定的协议字段来提供呼叫状态的表示,但是MGCP协议定义了有效的扩展机制,为了实现各种不同特定场合的应用,可以对MGCP协议进行扩展。由于在Q.931协议中,对于呼叫的建立、信息的传递、呼叫的清除以及其他消息都有完善的定义,因此作为本发明的一个优选实施例,参考Q.931协议,采用Q.931协议中电路方式连接控制的消息对MGCP协议消息进行扩展,当然也可以采取其他扩展方式。
本发明所采用的Q.931的消息如下表所示:
用于呼叫建立的消息 |
提醒(ALERTING) |
呼叫进程(CALL PROCEEDING) |
连接(CONNECT) |
连接证实(CONNECT ACKNOWLEDGE) |
进展(PROGRESS) |
建立(SETUP) |
建立确认(SETUP ACKNOWLEDGE) |
用于信息传递阶段的消息 |
恢复(RESUME) |
恢复证实(RESUME ACKNOWLEDGE) |
恢复拒绝(RESUME REJECT) |
暂停(SUSPEND) |
暂停证实(SUSPEND ACKNOWLEDGE) |
暂停拒绝(SUSPEND REJECT) |
用于呼叫清除的消息 |
拆线(DISCONNECT) |
释放(RELEASE) |
释放完成(RELEASE COMPLETE) |
其他消息 |
信息(INFORMATION) |
通知(NOTIFY) |
状态(STATUS) |
状态询问(STATUS ENQUIRY) |
请求通知(Notification Request,RQNT)消息为软交换请求终端检测事件或执行信号的MGCP信令。本发明对RQNT消息进行扩展,在RQNT消息增加X-CS(呼叫状态扩展)包来指示终端设备当前的呼叫状态,该包表示为X-CS/status(extension...),其中status为Q.931的消息对应的扩展字符,表明呼叫状态的信号;extension可以为增加的其他与呼叫状态相关的信息,比如当前终端设备呼叫的号码、对方的用户名及地址等。扩展后的RQNT消息示例如下:
RQNT 27804005 aaln/l@ephone.com MGCP 1.0
X:1602220a
R:G/ft(N),D/[0-9*#](N)
S:G/rt,X-CS/status(extension...)
RQNT消息还可以与其他消息,如建立连接(Create Connection,CRCX)消息、修改连接(Modift Connection,MDCX)消息或者删除连接(Deleteconnection,DLCX)消息一起下发给终端设备。具体操作是将RQNT消息内嵌到CRCX消息、MDCX消息或者DLCX消息后下发给终端设备。
内嵌RQNT消息的CRCX消息示例如下:
CRCX 27804002 aaln/l@ephone.com MGCP 1.0
C:32816
L:a:PCMA,p:20
M:inactive
X:16022207
R:G/ft(N),D/[0-9*#](N)
S:G/rt@$,X-CS/status(extension...)
内嵌RQNT消息的MDCX消息示例如下:
MDCX 27804002 aaln/l@ephone.com MGCP 1.0
C:32816
I:1554
L:a:PCMA,p:20
M:sendonly
X:16022207
R:G/ft(N),D/[0-9*#](N)
S:G/rt@$,X-CS/status(extension...)
v=0
c=IN IP4 191.168.158.3
m=audio 50000 RTP/AVP 8。
内嵌RQNT消息的DLCX消息示例如下:
DLCX 27804002 aaln/l@ephone.com MGCP 1.0
C:32816
X:16022207
R:L/hd
S:L/bz,X-CS/status(extension...)
扩展后的RQNT消息中X-CS信号的定义如下,包括呼叫建立信息、信息传递阶段信息、呼叫清除信息以及其他信息:
MGCP信令 |
Q.931信令 |
定义 |
X-CS/alrt |
提醒(ALERTING) |
表明被叫已经开始振铃,接续成功 |
X-CS/cprc |
呼叫进程(CALL PROCEEDING) |
表明已经收齐号码,开始进行呼叫 |
X-CS/cnct |
连接(CONNECT) |
表明被叫已经摘机,开始进行通话 |
X-CS/cnct-ack |
连接证实(CONNECT ACKNOWLEDGE) |
表明已经开始进行通话 |
X-CS/prgs(time,charge...) |
进展(PROGRESS) |
表明一些应用的进展情况,比如说通话时长,当前话费等等,可以灵活扩展 |
X-CS/stp |
建立(SETUP) |
未定义,可扩展 |
X-CS/stp-ack(buzy/no response/out of servise.etc.) |
建立确认(SETUP ACKNOWLEDGE) |
向主叫表明被叫的状态,用于呼叫失败时指示主叫呼叫失败的原因 |
X-CS/rsm(cid,usr) |
恢复(RESUME) |
恢复被暂停的呼叫,比如呼叫等待业务中主叫重新和被叫开始通话 |
MGCP信令 |
Q.931信令 |
定义 |
X-CS/rsm-ack |
恢复证实(RESUME ACKNOWLEDGE) |
未定义,可扩展 |
X-CS/rsm-rjk |
恢复拒绝(RESUME REJECT) |
未定义,可扩展 |
X-CS/sspd(cid,usr) |
暂停(SUSPEND) |
新业务中用于表明当前被保持接通的用户信息 |
X-CS/sspd-ack |
暂停证实(SUSPEND ACKNOWLEDGE) |
未定义,可扩展 |
X-CS/sspd-rjk |
暂停拒绝(SUSPEND REJECT) |
未定义,可扩展 |
X-CS/disc(cid,usr) |
拆线(DISCONNECT) |
表明呼叫中一方已经挂机或拆线,呼叫结束,其中cid和usr扩展可指示拆线方标识 |
X-CS/rls(cid,usr) |
释放(RELEASE) |
表明呼叫建立之后,在通话之前主叫方结束呼叫,振铃早释 |
X-CS/rls-cmp |
释放完成(RELEASE COMPLETE) |
未定义,可扩展 |
X-CS/info(info) |
信息(INFORMATION) |
用于指示终端设备显示信息,可以灵活应用,比如说呼叫类型等 |
X-CS/ntfy |
通知(NOTIFY) |
未定义,可扩展 |
X-CS/stts |
状态(STATUS) |
未定义,可扩展 |
X-CS/stts-eqr |
状态询问(STATUS ENQUIRY) |
未定义,可扩展 |
X-CS包的信号类型可定义为短暂型(Brief,BR)信号,其中一些未定义的信号可以留作扩展使用,以适应不同通信业务的需要。
本发明以三方通话为例,对软交换向终端设备下发呼叫状态指示信息的过程进行详细说明,如图3所示。为了描述简便,只描述与终端设备呼叫状态相关的典型流程,其他流程与现有技术相同,不再赘述。
在本示例中,EphoneA是三方通话的召集者,EphoneA拨打EphoneB,通话开始后EphoneA、EphoneB的用户有问题需要咨询EphoneC的用户,于是EphoneA召集EphoneC进行会议,咨询完毕后EphoneA挂断EphoneC继续和EphoneB通话,最后EphoneA结束与EphoneB的通话:
1.EphoneA摘机听到拨号音,拨打EphoneB的号码,向软交换发送拨打EphoneB号码的终端检测事件通知。
1.1软交换向EphoneA下发下述RQNT消息,告知拨号已经结束:
RQNT 27804005 aaln/l@ephonel.com MGCP 1.0
X:1602220a
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/cprc(表明已经收齐EphoneB号码,开始进行呼叫)
EphoneA向软交换发送20027804005OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
2.EphoneA呼叫接续到EphoneB,被叫EphoneB开始振铃,主叫EphoneA开始送回铃音,向软交换发送呼叫接续的终端检测事件通知。
2.1软交换向EphoneA下发如下RQNT消息,表明接续已经正常:
RQNT 27804007 aaln/l@ephonel.com MGCP 1.0
X:1602220b
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:G/rt,X-CS/alrt(表明被叫EphoneB已经开始振铃,接续成功)
EphoneA向软交换发送200 27804007 OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
3.EphoneB摘机,软交换分别向EphoneA和EphoneB下发RQNT消息指示通话开始。
3.1软交换向EphoneA下发下述RQNT消息指示EphoneA通话开始:
RQNT 27804008 aaln/l@ephonel.com MGCP 1.0
X:1602220c
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/cnct(表明被叫EphoneB摘机,开始进行通话)
EphoneA向软交换发送200 27804008 OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
3.2软交换向EphoneB下发下述RQNT消息指示EphoneB通话开始:
RQNT 27805001 aaln/l@ephone2.com MGCP 1.0
X:16022300
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/cnct(表明被叫EphoneB摘机,开始进行通话)
EphoneB向软交换发送200 27805001 OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
4.呼叫接通后,实时传输协议(Realtime Transfer Protocol,RTP)媒体流传送,EphoneA与EphoneB开始通话。
5.当EphoneA有问题需要咨询EphoneC时,于是EphoneA拍叉,此时用户EphoneB被挂起。
5.1软交换向EphoneB下发下述RQNT消息,表明被EphoneA挂起:
RQNT 27805002 aaln/l@ephone2.com MGCP 1.0
X:16022301
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/sspd(A’s number,A’s name)(表明在通话中当前被保持接通的EphoneA的信息)
EphoneB向软交换发送200 27805002OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
5.2软交换向EphoneA下发表明EphoneB被挂起的RQNT消息:
RQNT 27804009 aaln/l@ephonel.com MGCP 1.0
X:1602220d
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/sspd(B’s number,B’s name)(表明在通话中当前被保持接通的EphoneB的信息)
EphoneA向软交换发送200 27804009 OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
6.EphoneA拨打EphoneC,EphoneC摘机,呼叫成功,EphoneA开始和EphoneC通话,这个呼叫接续流程中的呼叫状态指示过程与EphoneA拨打EphoneB的过程相同,不再赘述。
7.EphoneA与EphoneC接通通话后,EphoneA拍叉再报3开始EphoneA、EphoneB与EphoneC的三方通话,此时需要给EphoneB送解除挂起的消息。
7.1软交换向EphoneB下发下述RQNT消息:
RQNT 27805003 aaln/l@ephone2.com MGCP 1.0
X:16022302
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/rsm(A’s number,A’s name)(表明恢复被暂停的与EphoneA之间的通话)
EphoneB向软交换发送200 27805003 OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
7.2软交换向EphoneA发送解除EphoneB被挂起的RQNT消息,指示当前正在进行三方通话:
RQNT 2780400a aaln/l@ephonel.com MGCP 1.0
X:1602220e
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/rsm(B’s number,B’s name)(表明恢复被暂停的与EphoneB之间的通话)
EphoneA向软交换发送200 2780400a OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
8.当EphoneA和EphoneB咨询EphoneC完毕后,EphoneA挂断EphoneC,此时软交换需要给EphoneA和EphoneC分别发送通话挂断的RQNT消息:
8.1软交换向EphoneA发送下述RQNT消息:
RQNT 2780400b aaln/l@ephonel.com MGCP 1.0
X:1602220f
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/disc(C’s number,C’s name)(表明EphoneA已经挂断与EphoneC的通话)
EphoneA向软交换发送200 2780400a OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
8.2软交换向EphoneC发送下述RQNT消息:
RQNT 2780500b aaln/l@ephone3.com MGCP 1.0
X:16022400
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/disc(A’s number,A’s name)(表明EphoneC与EphoneA的通话已经切断)
EphoneC向软交换发送200 2780400a OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
9.结束与EphoneC的通话后,EphoneA与EphoneB继续通话,通话结束后,EphoneB挂机。
9.1软交换需要给EphoneA发送EphoneB退出呼叫状态的RQNT消息:
RQNT 2780400b aaln/l@ephonel.com MGCP 1.0
X:1602220f
R:G/ft(N),D/[0-9*#](N),L/hu(N),L/hf(N)
S:X-CS/disc(B’s number,B’s name)(表明EphoneB与EphoneA的通话已经切断)
EphoneA向软交换发送200 2780400a OK消息,响应软交换发送的RQNT消息,表明RQNT消息执行成功。
作为本发明另外一个实施例,除了指示终端设备的呼叫状态外,也可以增加诸如短消息、信息提示等信息,例如可以向用户提供天气预报信息。具体实现可以利用扩展后的RQNT消息中上述X-CS信号中的X-CS/info(info)信号,由软交换向终端设备下发RQNT消息:
RQNT 2780500b aaln/l@ephone3.com MGCP 1.0
X:16022400
R:L/hd(N)
S:X-CS/info(yyyy-mm-dd,temp,others)(表明当前日期、天气、以及其他信息)
图4示出了实现本发明提供的指示终端设备呼叫状态的系统的结构,包括位于设备媒体网关控制器,向终端设备发送呼叫状态指示的呼叫状态信息发送子系统400以及位于终端设备,接收呼叫状态信息发送子系统400下发的呼叫状态指示的呼叫状态信息接收子系统500。为了便于描述,图4中仅示出与本发明相关的部分。
当终端设备检测到终端检测事件时,终端检测事件通知发送单元501向软交换发送终端检测事件通知。终端检测事件通知接收单元401接收终端设备上报的终端检测事件通知。呼叫状态指示生成单元402根据终端设备上报的终端检测事件通知,生成包含相应呼叫状态指示信息的MGCP信令,如RQNT消息,呼叫状态指示发送单元403将呼叫状态指示生成单元402生成的MGCP信令发送给终端设备。
呼叫状态指示接收单元502接收软交换下发的包含呼叫状态指示信息的MGCP信令。呼叫状态指示显示单元503提取RQNT消息中的呼叫状态指示信息,并向用户显示。呼叫状态指示显示单元503能够即时根据软交换下发的信息来刷新用户界面,从而满足各种业务的需要。呼叫状态指示显示单元503包括一块显示器5031,例如LCD显示屏,向用户显示各种信息。同时,呼叫状态指示显示单元503配合终端设备的相关按键可以完成信息查询、删除以及记录等操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。