专利名称:一种会话建立协议网络结构及实现sip群组呼叫的方法
技术领域:
本发明涉及通信领域,尤其涉及一种会话建立协议(SIP)网络结构及实现SIP群组呼叫的方法。
背景技术:
会话建立协议(SIP,Session Initiation Protocol),是互联网时代的基础信令。SIP最初是为在互联网上打电话而设计的,目前SIP已经远远超越了打电话的范畴,可用于在IP网上支持各种各样的新业务。3GPP组织已经将SIP定为未来3G通信的基本信令。SIP是一种很灵活的协议,因此SIP应用小到电话终端,大到交换网络系统。为保证SIP的灵活性,基本SIP比较简单。SIP协议在建立群组会话方面,需要主叫通信终端逐个邀请被叫通信终端加入会话。这样虽然比较灵活,但也比较浪费网络资源,会话建立时间也比较长。
如图1所示,是一个示意性的SIP网络结构图,图中所有的用户终端通过IP网络和SIP Proxy相连。用户的终端是支持SIP的终端,可以是手机,也可以是固定电话。
假设用户A要发起和B,C,D的群组通话,如果使用标准SIP协议,流程必须如图2所示,包括以下步骤1.用户A给B,C,D分别发INVITE消息;2.SIP Proxy转发INIVITE消息给目标用户;3.目标用户返回200OK消息给SIP Proxy;4.SIP Proxy转发200OK给用户A;5.用户A返回ACK消息给各个用户。消息首先到达SIP Proxy;6.SIP Proxy转发ACK消息给目标用户。
实际上就是主叫用户A和所有的被叫分别建立呼叫点对点呼叫的标准SIP点对点呼叫流程。标准SIP可参见RFC3261。
标准SIP可以实现多个用户之间的通话,但如有如下缺点1、用户要建立一个呼叫,必须给每个被叫通信终端分别发Invite消息,比较浪费资源和时间;2、除非被叫通信终端主动离开,群组呼叫发起人难以让用户离开而不中止会话;3、被叫通信终端难以呼叫保持和恢复;4、群组管理功能难以实现。标准SIP没有群组成员权限的设置和管理,动态调整群组成员的加入和退出较难实现;5、不能让有权限的用户一次性释放整个群组呼叫。所有用户是平等的,只能自己退出群组,无法行使释放整个群组会话的管理功能;6、管理通话方媒体的功能较弱。如果用户媒体中断,网络不能尽快主动发现并释放相关资源。
发明内容
本发明的目的是提出一种新的SIP网络,及应用该网络完成的群组通话服务。
为此,本发明采用如下方案一种会话建立协议(SIP)网络结构,采用SIP协议为信令通信,包括通过IP网络与SIP Proxy连接的通信终端,所述的SIP Proxy控制通信终端间通话的建立;其特征在于所述的网络还包括群组控制模块,所述群组控制模块接收SIPProxy转发来的终端信息并解析出该终端信息中携带的群组信息,根据该群组信息控制SIP Proxy完成通信终端通话的建立。
所述的群组控制模块包括SIP协议栈模块、SIP扩展解析适配模块、群组管理模块和呼叫控制模块;
所述的SIP协议栈模块与SIP Proxy交互SIP扩展消息,将其解析为标准的SIP消息;所述的SIP扩展适配模块与SIP协议栈模块及呼叫控制模块相连接,组装或解释SIP扩展消息的SIP扩展;所述的呼叫控制模块根据SIP标准信息及扩展信息,和群组管理模块交互,产生标准及扩展的SIP消息,控制群组呼叫的建立,修改和释放;所述的群组管理模块提取数据库中的静态群组信息,根据呼叫管理模块传来的用户当前信息,管理和维护群组及群组用户的动态信息,并提供动态信息供呼叫控制模块使用。
一种实现SIP群组呼叫的方法,适用于由SIP Proxy控制通信终端并采用SIP协议为信令通信的网络,由SIP Proxy和群组控制模块控制通信终端间通话的建立,其特征在于包括以下步骤a、主叫通信终端设置群组成员,并发送INVITE消息给被叫通信终端,在该INVITE消息的SIP扩展中,包含主叫通信终端设置的群组信息和主叫通信终端的媒体信息;b、SIP Proxy将该INVITE消息转发给群组控制模块进行解析;c、群组控制模块根据解析结果,为主叫通信终端建立媒体上下文;d. 群组控制模块通过SIP Proxy给被叫通信终端转发送INVITE消息,该消息包含群组控制器设置的群组信息及媒体信息;e、被叫通信终端接收上述消息后,通过SIP Proxy给群组控制模块发送200OK命令,其中包含被叫通信终端设置的媒体信息;f、群组控制模块将被叫通信终端加入媒体上下文后通过SIP Proxy给被叫通信终端发送ACK命令,通知被叫;g、同步重复步骤d到f,邀请任意数目的被叫到群组中。
所述的SIP扩展中的群组信息,包括以下内容的一种或多种的组合群组标识、群组成员列表、成员状态、成员类型、成员权限、群组拥有者、群组操作。
所述的步骤c中,还包括群组控制模块检查被叫通信终端是否在线的步骤。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,增加用户到通话群组中时,包括以下步骤A、主叫通信终端发送INVITE或UPDATE消息给被叫群组控制模块,该消息的SIP扩展群组信息中,表明向正在通话的群组中增加的被叫通信终端;B、SIP Proxy将该INVITE或UPDATE消息转发给群组控制模块进行解析;C、群组控制模块通过解析消息,SIP Proxy给主叫通信终端回200OK消息;D、如果步骤A中使用的消息是INVITE消息,则主叫通信终端通过SIPProxy给群组控制模块回ACK消息;E、群组控制模块通过SIP Proxy给被叫通信终端发送INVITE消息,通知其加入群组通话,消息中包含SIP扩展信息,告诉新用户群组中已经有哪些用户,以及群组的媒体信息;F、被叫通信终端通过SIP Proxy给群组控制模块回200OK消息,同意加入群组,同时报告自己的媒体信息;G、群组控制模块将用户加入媒体上下文,再通过SIP Proxy给被叫通信终端发送ACK消息,通知其通话情况;H、群组控制模块通过Notify消息通知群组中的其它用户新用户加入。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,删除通话群组中的用户时,包括以下步骤A、第一通信终端向第二通信终端发送INVITE或UPDATE消息,该消息的SIP扩展中,表明向正在通话的群组中删除第二通信终端;B、SIP Proxy将该INVITE或UPDATE消息转发给群组控制模块进行解析;C、群组控制模块验证第一通信终端的权限信息,通过SIP Proxy给第一通信终端回200OK消息;
D、如果步骤A中使用的消息是INVITE消息,则第一通信终端通过SIPProxy给群组控制模块回ACK消息;E、群组控制模块通过SIP Proxy给第二通信终端发BYE消息,通知其退出群组通话;F、第二通信终端收到该消息后,通过SIP Proxy给群组控制模块回200OK消息,退出群组通话;G、群组控制器给其它用户发Notify消息通知其它用户有用户被删除。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,呼叫保持和恢复时,包括以下步骤A、第一通信终端通过SIP Proxy向群组控制模块发INVITE或UPDATE消息,该INVITE或UPDATE消息中的SIP群组扩展表明用户是想进入/退出呼叫保持状态;B、群组控制模块修改用户上下文,控制第一通信终端进入呼叫保持状态,群组控制模块过SIP Proxy向第一通信终端发200OK消息,通知第一通信终端;C、如果步骤A中使用的消息是INVITE消息,则第一通信终端通过SIPProxy向群组控制模块发ACK消息;D、群组控制模块发Notify消息通知群组中的其它用户;E、群组中的其它用户发200OK消息响应群组控制模块。
所述的方法,若所述的SIP扩展中的群组信息中,包含了成员标识,群组控制模块通过成员标识,验证通信终端的权限。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,呼叫释放时,包括以下步骤A、主叫通信终端发送BYE消息,经SIP Proxy送到群组控制模块;B、群组控制模块发现是主叫发送的SIP消息,则通过SIP Proxy向所有用户发送BYE消息,结束呼叫。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,被叫请求退出时,包括A、被叫通信终端通过SIP Proxy发送BYE消息给群组控制模块;B、如果此时群组中没有其它被叫通信终端,群组控制模块通过SIP Proxy释放群组呼叫;C、如果此时群组中有其它被叫通信终端,则群组控制模块释放被叫的媒体上下文,通过SIP Proxy响应200OK给该被叫的通信终端。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,若产生群组媒体故障,或者主叫用户媒体故障或者群组超过网络设定的时间而没有通话,则群组控制模块释放群组呼叫。
所述的方法,在主叫通信终端与被叫通信终端通话过程中,若被叫媒体故障,则群组控制模块释放该被叫的媒体资源,并删除该被叫。
本发明技术主要能带来如下有益效果为SIP主叫通信终端提供一种简洁的方法只用一条消息就能发起群组通话。
提供SIP群组呼叫的群组管理功能,包括有权限的用户能为群组添加或删除用户,或释放整个群组通话。
为所有群组通话用户提供呼叫保持功能。
提供媒体检测上报接口和处理机制,如果通话的用户出现媒体中断的情况并被媒体网络及时发现,可能通知SIP Proxy及时拆除相关媒体资源功能。
防止群组中只剩下一个用户还不释放呼叫的情况。
提供权限控制,控制某用户能否使用某项功能。
图1是现有技术中的SIP网络结构示意图;图2是现有SIP网络技术中通话建立的流程示意图;图3是本发明的SIP网络结构示意图;图4是本发明群组控制模块的结构示意图;
图5是本发明的呼叫建立流程示意图;图6是本发明通话过程中增加单个用户到通话群组中的流程示意图;图7是本发明通话过程中删除通话群组中的用户的流程示意图;图8是本发明通话过程中的呼叫保持和恢复的流程示意图。
具体实施例方式
下面结合说明书附图来说明本发明的具体实施方式
。
SIP扩展是SIP的术语,表示SIP消息中的一个增加部分。标准SIP允许增加任意这样的扩展,但对扩展的定义不加限制,本发明就是增加这样的一个部分,本发明通过增加SIP扩展域的方式解决前述要解决的问题。为处理SIP群组通话而增加的扩展在下文中简称“SIP群组扩展”。
本发明的组网如图3所示其采用SIP协议为信令通信,包括通过IP网络与SIP Proxy连接的通信终端,所述的SIP Proxy和群组控制模块共同控制通信终端间群组通话的建立。
为使通信网络处理SIP群组扩展,本发明增加了一个处理SIP群组扩展的群组控制模块。该群组控制模块接收SIP Proxy转发来的终端信息并解析出该终端信息中携带的群组信息,根据该群组信息控制SIP Proxy完成通信终端通话的建立、修改和释放。
如图4所示,是本发明群组控制模块的结构示意图,从图中可以看出,本发明的群组控制模块主要包括SIP协议栈模块、SIP扩展解析适配模块、群组管理模块和呼叫控制模块;所述的SIP协议栈模块与SIP Proxy交互SIP扩展消息,将其解析为标准的SIP消息;所述的SIP扩展适配模块与SIP协议栈模块及呼叫控制模块相连接,组装或解释SIP扩展消息的SIP扩展;所述的呼叫控制模块根据SIP标准信息及扩展信息,和群组管理模块交互,产生标准及扩展的SIP消息,控制群组呼叫的建立,修改和释放;所述的群组管理模块提取数据库中的静态群组信息,根据呼叫管理模块传来的用户当前信息,管理和维护群组及群组用户的动态信息,并提供动态信息供呼叫控制模块使用。
当SIP消息进入群组控制模块后,首先进入“SIP协议栈模块”,解析成标准的SIP消息,再由“SIP扩展解析适配模块”解释本发明的SIP扩展,再由“呼叫控制模块”和“群组管理模块”处理呼叫和群组信息。
SIP群组控制模块要发消息时,一般由“呼叫控制模块”和“群组管理模块”交互后发起,经过“SIP扩展解析适配模块”组装SIP扩展,再由“SIP协议栈模块”发送SIP消息出去。
群组控制模块是一个功能实体,可以和SIP Proxy做在一起,也可以分开,为多种业务服务。
如果SIP Proxy和群组控制模块分开,SIP Proxy可以设置适当的IFC规则,当SIP消息有含有SIP群组扩展时,转群组控制模块处理。IFC指Initial FilterCriteria(初始过滤准则),是3GPP组织提出的控制SIP Proxy行为的规则。但IFC不是必需的。
本发明中,支持群组通话的SIP群组扩展要素可以有如下内容1、群组标识标识一个群组的标识。如果是网络预定义群组,发消息的用户可以直接使用网络预定义的群组标识。如果是用户自定义的群组,不使用群组标识。
2、群组成员列表SIP扩展中需要有群组成员的地址列表。地址可以是S'URL或ENUM地址。
3、成员状态标识群组成员的状态。如在线,拒绝,离线,免打扰等。
4、成员类型标识是群组成员还是个人用户成员。对网络预定义群组,因为使用群组标识,因此是群组成员;对用户自定义群组,成员都是以个人用户身份出现的。
5、成员权限表示成员是否有权发起群组呼叫、增加和删除群组成员等。
6、群组拥有者表示有权发起群组呼叫、增加和删除群组成员等的用户。
也可以是网络管理员。对自定义群组,群组拥有者就是主叫通信终端。群组拥有者是成员类型的一种。
7、群组操作对群组可以有增加成员、删除成员、修改成员信息及覆盖群组信息等操作。
以上要素可以视具体情况而选择,可以是其中的一种,也可以是其中多个的组合,由使用者参照网络功能而定。上述要素可以增加在一个特殊类型的消息体中,并且可以以各种具体形式出现。
一种在消息体中实现的这种扩展可如下表示扩展分为Group参数、GroupOperation和GroupMember List参数。
Group参数可表示为Group=″group″″″(group_name″;″addr-spec)*(″,″group_name″;″addr-spec)表示用字符串group开头表示后面的是Group参数。后面跟群组名和群组地址。
GroupOperation参数可表示为PTToperation=″PTToperation=″″add″|″delete″|″modify″|″cover″表示GroupOperation参数由“PTTOperation”后的字符表示,“add”表示增加群组成员的操作,“delete”表示删除成员的操作,“modify”表示修改成员参数的操作,“cover”表示修改PTT扩展的操作。
GroupMemberList参数可表示为PTTmember参数其语法如下PTTmember=″PTTmember″″″member-addr[*(″;″member-params)]*[″,″member-addr[*(″;″member-params)]]member-params=member-addr|member-status|member-priority|member-type|
member-status=″status=″″deactive″|″inviting″|″connected″|″rejected″|″busy″|″hold″|″leaved″|″deleted″|″error″|extension-attributemember-type=″mtype=″″group-user″|″single-user″|″owner″member-addr=name-addr|addr-specmember-priority=″mpriority=″1DIGIT;0-3表示用PTTMember开始标识GroupMemberList参数。后者又分为member-addr和member-param参数。Member-addr表示成员地址,member-param又可细分为状态(member-status)、类型(member-type)、优先级(member-priority)等。
采用上述组网方式及SIP群组扩展后,本发明的呼叫建立流程如图5所示对自定义群组,本发明采用如下的呼叫建立流程,如图5所示1、主叫通信终端在终端上设定群组的其它成员,在本例中主叫通信终端为A,被叫通信终端为B和C。主叫通信终端给SIP Proxy发INVITE消息,消息的SIP群组扩展中含有用户B和C的信息,表明此次呼叫是邀请用户B和C加入群组通话。
2、SIP Proxy向群组控制模块转发INVITE请求。此INVITE请求的TO域为群组控制模块。此INVITE请求中包含SIP扩展,但仅包含成员列表。标准SIP只能邀请消息中的TO域中的用户加入会话。本INVITE消息的作用是通知群组控制模块,将SIP扩展包含的成员列表中的非主叫成员邀请到会话中来。
由于是自定义群组的呼叫,群组标识由群组控制模块在收到用户INVITE请求后才提供,因此没有群组标识要素。
3、群组控制模块检查A的权限并解析。
4、群组控制模块检查所有被叫通信终端的权限及是否在线情况。在本例中为B和C。然后给有权限且在线的用户发INVITE命令。给B和C的INVITE消息也包含了SIP扩展,并且包含了成员列表、成员类型、成员状态和成员权限等要素。INVITE消息中可选择性地包含群组控制模块分配的群组标识。
5、SIP Proxy收到INVITE消息并转发INVITE给所有被叫通信终端,在本例中为B和C。
6、用户B同意加入会话后回200OK消息给SIP Proxy。SIP Proxy转发消息给群组控制模块。
7、群组控制模块收到200OK命令后给用户B发ACK消息。
8、用户C同意加入会话后回200OK消息给SIP Proxy。SIP Proxy转发消息给群组控制模块。
9、群组控制模块收到200OK命令后给用户C发ACK消息。
10、群组控制模块给用户A发200OK消息。
11、用户A给群组控制模块回ACK消息。
12、至此,系统进入了媒体通话状态。
对预定义群组的呼叫建立,采用相同的流程。但主叫通信终端的INVITE消息中不是用户列表,而是群组名。网络群组名及成员信息可通过群组控制模块在适当的时候下载到终端,也可由终端发起下载。群组控制模块解析群组中的所有被叫通信终端并逐个邀请被叫通信终端加入。
当被叫通信终端中的用户不归属主叫通信终端的群组控制模块时,也就是说被叫通信终端的动态数据不在主叫通信终端的群组控制模块中,则主叫通信终端的群组控制模块对被叫通信终端的权限可不作检查,但一定发INVITE消息经被叫通信终端的群组控制模块给被叫通信终端。被叫通信终端的群组控制模块在转发INVITE消息前首先检查被叫通信终端的权限及状态。如果没有权限或用户不在线,则不予转发。是否在主叫通信终端的群组控制模块检查用户的权限信息等静态数据,可由系统设计者自定。
如图6所示,是本发明通话过程中增加单个用户到通话群组中的示意图假设在通话过程中,有权限的用户希望增加一个新的用户到PTT群组通话中,他可以用下面的流程完成这一功能。下面的流程假设群组中原有A、B、C三个用户。A有权限增加新用户。新用户是D。下面流程中的主叫发的INVITE消息也可以用UPDATE代替,主叫相应地就不用发对应的ACK消息。
1、用户A发INVITE消息给用户D。消息首先到达SIP Proxy。INVITE消息中包含成员列表要素,此时成员列表中只有用户D的地址。此消息中还包含群组操作要素,指明是将D加入到群组中。
2、SIP Proxy向群组控制模块转发INVITE消息。
3、群组控制模块收到消息后,根据SIP群组扩展域知道是这往正在通话的群组增加新用户的操作。群组控制模块查询A是否有权限增加新用户到群组通话中。
4、如果A有权限,群组控制模块给A回200OK消息。200OK消息通过SIPProxy转发给用户A。A回ACK消息,经SIP Proxy给群组控制模块。
5、群组控制模块不等A回消息,就可给用户D发INVITE消息,通知用户D加入群组通话。在INVITE消息的SIP群组扩展部分中,指明了这条消息是让该用户加入群组通话,并告诉用户D,群组中有哪些成员。
6、用户D收到SIP Proxy转发的INVITE消息,如果同意加入,则回200OK消息。经SIP Proxy到达群组控制模块。
7、群组控制模块给用户D建立媒体资源,再发含SIP群组扩展的ACK消息,通知用户D通话的情况。消息经SIP Proxy转发后到达D。
8、群组控制模块给其它所有的用户发Notify消息,告诉大家新用户D加入。
9、原有用户给群组控制模块发200OK消息响应。
其中步骤4和步骤5的顺序可以互换。
上述消息中的INVITE消息也可以为UPDATE等消息。
如图7所示,是本发明通话过程中删除通话群组中的单个用户的流程示意图通话过程中删除单个用户的流程和增加单个用户的流程完全相似,但SIP消息中的SIP群组扩展提示群组控制模块删除用户。流程如图7所示,包括以下步骤(下面流程中主叫用户发的INVITE消息也可以用INVITE消息代替。主叫相应地就不用发对应的ACK消息。)
1、用户A发INVITE消息给用户D。消息首先到达SIP Proxy。INVITE消息中包含成员列表要素,此时成员列表中只有用户D的地址。此消息中还包含群组操作要素,指明是将D从群组中删除。用户A必须是主叫,或有删除用户的权限。
2、SIP Proxy向群组控制模块转发INVITE消息。
3、群组控制模块收到消息后,根据SIP群组扩展域知道是这往正在通话的群组删除用户的操作。群组控制模块查询A是否有权限删除群组通话中的用户。
4、如果A有权限,群组控制模块先给A回200OK消息。200OK消息通过SIPProxy转发给用户A。A回ACK消息,经SIP Proxy给群组控制模块。
5、群组控制模块不等A回消息,就可给用户D发BYE消息,通知用户D退出群组通话。
6、用户D收到SIP Proxy转发的BYE消息,则回200OK消息。经SIP Proxy到达PTT控制器。
7、群组控制模块收到用户D的BYE消息或超出允许用户D响应的时间,释放用户的媒体资源,并给其它所有的用户发Notify消息,告诉大家新用户D退出。
8、其它用户给群组控制模块发200OK消息响应。
上述步骤4和步骤5的顺序可以互换。
此流程也可以用UPDATE消息替代INVITE消息实现。
如图8所示,是本发明通话过程中呼叫保持和恢复的流程示意图在群组通话过程中,用户可以请求暂停群组通话。这时,用户听不到群组中其它人说话,也不能和群组中的其它说话,但用户在网络中呼叫信息依然保持,可在用户随时快速返回群组通话。
假设用户D希望呼叫保持,呼叫叫保持的流程如图8所示,具体包括以下步骤1、用户D通过SIP Proxy向群组控制模块发UPDATE消息。UPDATE消息中的SIP群组扩展指明用户是想进入呼叫保持状态。INVITE消息中包含成员列表要素,此时成员列表中只有用户D的地址。
2、群组控制模块收到消息后,检查用户D的权限状态及在线情况。
3、如果用户D有权限呼叫保持,群组控制模块暂停用户的媒体资源使用,通过SIP Proxy向用户D发200OK消息,通知用户D。
4、群组控制模块在发200OK后,发Notify消息通知群组中的其它用户。
5、群组中的其它用户发200OK消息响应群组控制模块。用户D进入呼叫保持状态。
呼叫恢复的流程和呼叫保持完全相同,但请求消息中的SIP群组扩展的参数有所不同,指明是呼叫恢复而不是呼叫保持。
此功能也可能用INVITE消息替代UPDATE消息实现。
如果D不是主叫通信终端所有的群组控制模块中的用户,上述流程的INVITE消息或UPDATE消息将被转发到D所在的群组控制模块,由D所在的群组控制模块查询B的权限。
呼叫释放有3种呼叫释放,下面分别说明1、主叫通信终端发起的呼叫主叫通信终端发BYE消息,群组控制模块收到后,向所有用户发BYE消息,呼叫结束。
2、被叫通信终端发起,此时群组中没有其它被叫通信终端这种情况下,整个呼叫都将释放。用户用BYE释放自己的呼叫,群组控制模块判断在这个用户释放了自己,如果群组中只有主叫通信终端,则释放主叫通信终端的主叫通信终端,也就是释放群组呼叫。
3、被叫通信终端发起,此时群组中还有其它被叫通信终端这种情况下,只释放该用户的呼叫。用户用BYE释放自己的呼叫。
4、群组媒体故障群组控制模块检测到群组媒体障后,将释放本板的群组呼叫资源,也就是释放相关呼叫。
5、用户媒体故障用户和网络失去联系,超过网络允许的时间,将释放用户的呼叫。如果是主叫通信终端,释放群组呼叫;如果是被叫通信终端,且群组中没有其它被叫通信终端,也将释放群组呼叫;如果是被叫通信终端,群组中还有其它被叫通信终端,将只释放该用户的呼叫。
6、超时群组长时间没人说话,超过网络设定的时间,群组控制模块可以释放群组呼叫。
本发明是SIP的一种扩展,主要能解决如下问题1、为SIP主叫通信终端提供一种简洁的方法只用一条消息就能发起群组通话。
2、提供SIP群组呼叫的群组管理功能,包括有权限的用户能为群组添加或删除用户,或释放整个群组通话。
3、为所有群组通话用户提供呼叫保持功能。
4、提供媒体检测上报接口和处理机制,如果通话的用户出现媒体中断的情况并被媒体网络及时发现,可能通知SIP Proxy及时拆除相关媒体呼叫功能。
5、防止群组中只剩下一个用户还不释放呼叫的情况。
本技术是一种完整的全新的方案。通过采用本技术,可以在各种SIP网上开展受到用户和运营商欢迎的群组业务,包括现存很受运营商欢迎的Push to Talk业务。
本发明技术主要能带来如下有益效果1、为SIP主叫通信终端提供一种简洁的方法只用一条消息就能发起群组通话。
2、提供SIP群组呼叫的群组管理功能,包括有权限的用户能为群组添加或删除用户,或释放整个群组通话。
3、为所有群组通话用户提供呼叫保持功能。
4、提供媒体检测上报接口和处理机制,如果通话的用户出现媒体中断的情况并被媒体网络及时发现,可能通知SIP Proxy及时拆除相关媒体呼叫功能。
5、防止群组中只剩下一个用户还不释放呼叫的情况。
6、提供权限控制,控制某用户能否使用某项功能。
7、可以有多个群组控制模块组合,提高容量。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种会话建立协议(SIP)网络结构,采用SIP协议为信令通信,包括通过IP网络与SIP Proxy连接的通信终端,所述的SIP Proxy控制通信终端间通话的建立;其特征在于所述的网络还包括群组控制模块,所述群组控制模块接收SIP Proxy转发来的终端信息并解析出该终端信息中携带的群组信息,根据该群组信息控制SIP Proxy完成通信终端通话的建立。
2.如权利要求1所述的会话建立协议(SIP)网络结构,其特征在于所述的群组控制模块包括SIP协议栈模块、SIP扩展解析适配模块、群组管理模块和呼叫控制模块;所述的SIP协议栈模块与SIP Proxy交互SIP扩展消息,将其解析为标准的SIP消息;所述的SIP扩展适配模块与SIP协议栈模块及呼叫控制模块相连接,组装或解释SIP扩展消息的SIP扩展;所述的呼叫控制模块根据SIP标准信息及扩展信息,和群组管理模块交互,产生标准及扩展的SIP消息,控制群组呼叫的建立、修改和释放;所述的群组管理模块提取数据库中的静态群组信息,根据呼叫管理模块传来的用户当前信息,管理和维护群组及群组用户的动态信息,并提供动态信息供呼叫控制模块使用。
3.一种实现SIP群组呼叫的方法,适用于由SIP Proxy控制通信终端并采用SIP协议为信令通信的网络,由SIP Proxy和群组控制模块控制通信终端间通话的建立,其特征在于包括以下步骤a、主叫通信终端设置群组成员,并发送INVITE消息给被叫通信终端,在该INVITE消息的SIP扩展中,包含主叫通信终端设置的群组信息和主叫通信终端的媒体信息;b、SIP Proxy将该INVITE消息转发给群组控制模块进行解析;c、群组控制模块根据解析结果,为主叫通信终端建立媒体上下文;d.群组控制模块通过SIP Proxy给被叫通信终端转发送INVITE消息,该消息包含群组控制器设置的群组信息及媒体信息;e、被叫通信终端接收上述消息后,通过SIP Proxy给群组控制模块发送200OK命令,其中包含被叫通信终端设置的媒体信息;f、群组控制模块将被叫通信终端加入媒体上下文后通过SIP Proxy给被叫通信终端发送ACK命令,通知被叫;g、同步重复步骤d到f,邀请任意数目的被叫到群组中。
4.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于所述的SIP扩展中的群组信息,包括以下内容的一种或多种的组合群组标识、群组成员列表、成员状态、成员类型、成员权限、群组拥有者、群组操作。
5.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于所述的步骤c中,还包括群组控制模块检查被叫通信终端是否在线的步骤。
6.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,增加用户到通话群组中时,包括以下步骤A、主叫通信终端发送INVITE或UPDATE消息给被叫群组控制模块,该消息的SIP扩展群组信息中,表明向正在通话的群组中增加的被叫通信终端;B、SIP Proxy将该INVITE或UPDATE消息转发给群组控制模块进行解析;C、群组控制模块通过解析消息,SIP Proxy给主叫通信终端回200OK消息;D、如果步骤A中使用的消息是INVITE消息,则主叫通信终端通过SIPProxy给群组控制模块回ACK消息;E、群组控制模块通过SIP Proxy给被叫通信终端发送INVITE消息,通知其加入群组通话,消息中包含SIP扩展信息,告诉新用户群组中已经有哪些用户,以及群组的媒体信息;F、被叫通信终端通过SIP Proxy给群组控制模块回200OK消息,同意加入群组,同时报告自己的媒体信息;G、群组控制模块将用户加入媒体上下文,再通过SIP Proxy给被叫通信终端发送ACK消息,通知其通话情况;H、群组控制模块通过Notify消息通知群组中的其它用户新用户加入。
7.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,删除通话群组中的用户时,包括以下步骤A、第一通信终端向第二通信终端发送INVITE或UPDATE消息,该消息的SIP扩展中,表明向正在通话的群组中删除第二通信终端;B、SIP Proxy将该INVITE或UPDATE消息转发给群组控制模块进行解析;C、群组控制模块验证第一通信终端的权限信息,通过SIP Proxy给第一通信终端回200OK消息;D、如果步骤A中使用的消息是INVITE消息,则第一通信终端通过SIPProxy给群组控制模块回ACK消息;E、群组控制模块通过SIP Proxy给第二通信终端发BYE消息,通知其退出群组通话;F、第二通信终端收到该消息后,通过SIP Proxy给群组控制模块回200OK消息,退出群组通话;G、群组控制器给其它用户发Notify消息通知其它用户有用户被删除。
8.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,呼叫保持和恢复时,包括以下步骤A、第一通信终端通过SIP Proxy向群组控制模块发INVITE或UPDATE消息,该INVITE或UPDATE消息中的SIP群组扩展表明用户是想进入/退出呼叫保持状态;B、群组控制模块修改用户上下文,控制第一通信终端进入呼叫保持状态,群组控制模块过SIP Proxy向第一通信终端发200OK消息,通知第一通信终端;C、如果步骤A中使用的消息是INVITE消息,则第一通信终端通过SIPProxy向群组控制模块发ACK消息;D、群组控制模块发Notify消息通知群组中的其它用户;E、群组中的其它用户发200OK消息响应群组控制模块。
9.如权利要求4——8任意一项所述的实现SIP群组呼叫的方法,其特征在于若所述的SIP扩展中的群组信息中,包含了成员标识,群组控制模块通过成员标识,验证通信终端的权限。
10.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,呼叫释放时,包括以下步骤A、主叫通信终端发送BYE消息,经SIP Proxy送到群组控制模块;B、群组控制模块发现是主叫发送的SIP消息,则通过SIP Proxy向所有用户发送BYE消息,结束呼叫。
11.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,被叫请求退出时,包括A、被叫通信终端通过SIP Proxy发送BYE消息给群组控制模块;B、如果此时群组中没有其它被叫通信终端,群组控制模块通过SIP Proxy释放群组呼叫;C、如果此时群组中有其它被叫通信终端,则群组控制模块释放被叫的媒体上下文,通过SIP Proxy响应200OK给该被叫的通信终端。
12.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,若产生群组媒体故障,或者主叫用户媒体故障或者群组超过网络设定的时间而没有通话,则群组控制模块释放群组呼叫。
13.如权利要求3所述的实现SIP群组呼叫的方法,其特征在于在主叫通信终端与被叫通信终端通话过程中,若被叫媒体故障,则群组控制模块释放该被叫的媒体资源,并删除该被叫。
全文摘要
本发明涉及一种SIP网络结构及实现SIP群组呼叫的方法。一种SIP网络结构,采用SIP协议为信令通信,包括通过IP网络与SIP Proxy连接的通信终端,所述的SIP Proxy控制通信终端间通话的建立;其特征在于所述的网络还包括群组控制模块,所述群组控制模块接收SIP Proxy转发来的终端信息并解析出该终端信息中携带的群组信息,根据该群组信息控制SIP Proxy完成通信终端通话的建立。本发明为SIP主叫通信终端提供一种简洁的方法,只用一条消息就能发起群组通话。同时提供SIP群组呼叫的群组管理功能,包括有权限的用户能为群组添加或删除用户,或释放整个群组通话,并为所有群组通话用户提供呼叫保持功能。
文档编号H04L29/06GK1635765SQ20031011036
公开日2005年7月6日 申请日期2003年12月31日 优先权日2003年12月31日
发明者赵建国, 冯雁仪, 郑长海 申请人:华为技术有限公司