基于会话发起协议的用户注册的方法、系统及终端、服务器转让专利

申请号 : CN200710142035.9

文献号 : CN101127769B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡海华袁洪锦李洋王敏樊高峰

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种基于SIP的用户注册的方法,包括:终端发送注册请求;终端接收消息,在消息表明该用户号码已在其他终端注册,且决定取代其他终端的注册时,发送消息为发送请求终端进行注册,注销其他终端的注册,并使其他终端停止发送注册请求消息到所述注册服务器。本发明还公开了另一种基于SIP的用户注册的方法,包括:接收注册请求消息;对其鉴权通过,且发现用户号码已通过其他终端建立了注册后,发送消息至终端,;在收到请求取代消息时,为所述发送请求终端进行注册,注销所述其他终端的注册,并发送信息,指示其他终端注册已注销。本发明同时还公开了一种用户注册的系统,及相应的终端、注册服务器。通过应用本发明可以使用户在原注册未注销时,在其他终端上注册。

权利要求 :

1.一种基于会话发起协议的用户注册的方法,其特征在于,所述方法包括:终端发送携带用户号码的注册请求到注册服务器;

所述终端接收注册服务器返回的消息,在所述消息表明该用户号码已在其他终端注册时,根据预定规则决定是否取代所述其他终端的注册;所述消息中携带用户号码已绑定的注册地址信息;

在决定取代所述其他终端的注册时,发送请求取代前次注册的消息至所述注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并使所述注册服务器发送注册已注销消息至所述其他终端,以使所述其他终端在收到所述注册已注销消息后,停止发送注册请求消息到所述注册服务器。

2.如权利要求1所述的基于会话发起协议的用户注册的方法,其特征在于,所述决定取代所述其他终端的注册包括:所述终端决定取代所述其他终端的注册;

或,所述终端输出提示,提示用户所述用户号码已通过其他终端建立了注册,由用户决定使用本次注册取代所述其他终端的注册。

3.如权利要求1或2所述的基于会话发起协议的用户注册的方法,其特征在于,所述方法还包括:所述终端接收注册服务器返回的消息,在所述消息表明该用户号码已在其他终端注册,且所述终端决定退出时,所述终端输出提示,提示用户该用户号码已通过其他终端建立了注册,退出注册。

4.如权利要求1所述的基于会话发起协议的用户注册的方法,其特征在于,所述发送请求取代前次注册的消息至所述注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册包括:所述终端发送请求取代之前的注册功能的注册Register消息至注册服务器,在所述请求取代之前的注册功能的Register消息中携带所述其他终端的注册地址信息,将其他终端与注册服务器连接的期限设置为零,以使所述注册服务器注销所述其他终端的注册,在所述请求取代之前的注册功能的Register消息中携带所述发送请求终端的地址信息,以使所述注册服务器为所述发送请求终端进行注册;

或者,

所述终端发送携带注销其它已注册地址信息的标志的注册请求消息至注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册。

5.一种基于会话发起协议的用户注册的方法,其特征在于,所述方法包括:注册服务器接收终端发送的携带用户号码的注册请求消息;

所述注册服务器对所述注册请求消息进行鉴权,并查询所述用户号码的已注册信息,当鉴权通过且发现所述用户号码已通过其他终端建立了注册后,所述注册服务器发送消息至所述终端,表明该用户号码已在所述其他终端注册;所述注册服务器发送的消息中携带用户号码已绑定的注册地址信息;

所述注册服务器在收到所述终端返回的请求取代前次注册的消息时,为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并发送消息,指示所述其他终端注册已注销。

6.如权利要求5所述的基于会话发起协议的用户注册的方法,其特征在于,所述方法还包括:在表明该用户号码已在所述其他终端注册的消息中,携带所述其他终端地址信息,以使所述终端输出提示,提示用户所述用户号码已通过所述其他终端地址建立了注册。

7.如权利要求5或6所述的基于会话发起协议的用户注册的方法,其特征在于,所述发送消息,指示所述其他终端注册已注销包括:在接收到所述其他终端定时发送的注册请求消息后,发送消息,通知所述其他终端注册已注销。

8.如权利要求7所述的基于会话发起协议的用户注册的方法,其特征在于,所述方法还包括:在所述通知所述其他终端注册已注销的消息中,携带当前注册地址信息,以使所述其他终端输出提示,提示用户所述用户号码已通过所述当前注册地址建立了注册。

9.一种基于会话发起协议的用户注册的系统,其特征在于,所述系统包括:第一终端,用于发送携带用户号码的注册请求消息;在收到表明所述用户号码已在其他终端注册的消息时,根据预定规则决定是否取代所述其他终端的注册;在决定取代所述其他终端的注册时,发送请求取代前次注册的消息;

注册服务器,用于接收所述注册请求消息,对所述注册请求消息进行鉴权,并查询所述用户号码的已注册信息,在对其鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送消息至所述第一终端,表明该用户号码已在所述其他终端注册,发送至所述第一终端的消息中携带用户号码已绑定的注册地址信息;在收到所述第一终端返回的请求取代前次注册的消息时,为所述第一终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并发送注册已注销消息;

其他终端,用于在收到所述注册已注销消息时,停止发送注册请求消息到所述注册服务器。

10.一种终端,其特征在于,所述终端包括:

收发单元,用于发送携带用户号码注册请求消息至注册服务器;接收注册服务器返回的消息;

解析单元,用于解析所述注册服务器返回的消息,确定所述用户号码是否已在其他终端注册;所述注册服务器返回的消息中携带用户号码已绑定的注册地址信息;

处理单元,用于在所述用户号码已在其他终端注册,且决定取代所述其他终端的注册时,发送请求取代前次注册的消息至所述注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并使所述注册服务器发送注册已注销消息,通知到所述其他终端注册已注销;

所述终端还包括:

决策单元,用于决定是否取代所述其他终端的注册;

和/或,输出单元,用于输出提示,提示用户所述用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代所述其他终端的注册。

11.如权利要求10所述的终端,其特征在于,所述处理单元包括:

第一发送单元,用于发送请求取代之前的注册功能的注册Register消息至注册服务器,在所述请求取代之前的注册功能的Register消息中携带所述其他终端的注册地址信息,将其他终端与注册服务器连接的期限设置为零,以使所述注册服务器注销所述其他终端的注册,在所述请求取代之前的注册功能的Register消息中携带所述发送请求终端的地址信息,以使所述注册服务器为所述发送请求终端进行注册;

或,

第二发送单元,用于发送携带注销其它已注册地址信息的标志的注册请求消息至注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册。

12.一种注册服务器,其特征在于,所述注册服务器包括:

接收单元,用于接收终端发送的携带用户号码的注册请求消息;接收所述终端返回的请求取代前次注册的消息;

鉴权单元,用于对所述注册请求进行鉴权;

注销注册单元,用于根据所述请求取代前次注册的消息,为所述发送请求终端进行注册,注销其他终端的注册,以本次注册取代所述其他终端的注册;

发送单元,用于在对所述注册请求鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送该用户号码已在所述其他终端注册的消息至所述终端,所述该用户号码已在所述其他终端注册的消息中携带用户号码已绑定的注册地址信息;并在所述注销注册单元用本次注册取代所述其他终端的注册时,发送注册已注销消息,通知到所述其他终端注册已注销。

13.如权利要求12所述的注册服务器,其特征在于,所述注册服务器还包括:解析单元,用于解析所述请求取代前次注册的消息,确定是否需要以本次注册取代所述其他终端的注册。

说明书 :

基于会话发起协议的用户注册的方法、系统及终端、服务器

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种基于会话发起协议的用户注册的方法、系统及终端、服务器。

背景技术

[0002] 会话发起协议(SIP,Session Initiation Protocol)是基于网际协议(IP,Internet Protocol)网络的会话控制协议,通常应用于下一代网络(NGN,NextGeneration Network)、IP多媒体子系统(IMS,IP Multimedia Subsystem)网络、或其他类型网络作为主要的通信控制协议,用于创建、修改、终结和控制多媒体会话进程。
[0003] 在SIP协议中定义有用户终端登录注册到注册服务器(registrar)的规范,现以NGN网络为例对终端注册的过程进行描述。
[0004] 在NGN网络中,注册服务器的功能通常由软交换实现,每个用户会拥有一个用户号码,一个用户号码同一时间只能在一个终端上成功注册到该用户号码归属的软交换。 [0005] 当用户要使用用户号码从终端A登录注册到软交换时,由终端A发送注册请求(Register)消息到用户号码归属的软交换申请注册,Register消息中携带呼叫标志(Call-ID)、用户号码和终端注册地址信息,软交换与终端A之间通过消息交互完成用户鉴权,鉴权通过之后,软交换存储用户号码和终端注册地址信息的对应关系,用户通过终端A在软交换上的注册完成,之后,终端A会定时发送Register消息携带相同的Call-ID、用户号码和注册地址信息到该软交换,保持与软交换之间的连接状态。
[0006] 在对现有技术的研究和实践过程中,发明人发现现有技术存在以下问题: [0007] 由于有时用户在注册后可能由于某种原因,没有注销就离开了该地,用户在移动到其它地方后,可能会需要通过其他的终端进行注册。
[0008] 当用户使用相同的用户号码在其他的终端B上向软交换发起新一次注册请求时,软交换有两种处理方式:
[0009] 一种是返回失败信息拒绝终端B的注册请求,显然这样做是不能满足用户需求的。
[0010] 另一种是使用终端B的注册替代终端A的注册,但是由于终端A会继续定时发送保持连接的Register消息,软交换收到后将作为新的一次注册请求与终端A交互消息进行鉴权,鉴权通过后再次替换终端B的前一次注册,此后终端A、B将陷入循环向软交换注册中,无法为用户提供正常的服务,同样不能满足用户需求。
[0011] 发明内容
[0012] 本发明要解决的技术问题是使用户在前次注册未注销时,可以在其他终端注册。 [0013] 为解决上述技术问题本发明一方面,提供了一种基于会话发起协议的用户注册的方法,所述方法包括:
[0014] 终端发送携带用户号码的注册请求到注册服务器;
[0015] 所述终端接收注册服务器返回的消息,在所述消息表明该用户号码已在其他终端注册时,根据预定规则决定是否取代所述其他终端的注册;所述消息中携带用户号码已绑定的注册地址信息;
[0016] 在决定取代所述其他终端的注册时,发送请求取代前次注册的消息至所述注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并使所述注册服务器发送注册已注销消息至所述其他终端,以使所述其他终端在收到所述注册已注销消息后,停止发送注册请求消息到所述注册服务器。
[0017] 另一方面,提供了一种基于会话发起协议的用户注册的方法,所述方法包括: [0018] 注册服务器接收终端发送的携带用户号码的注册请求消息;
[0019] 所述注册服务器对所述注册请求消息进行鉴权,并查询所述用户号码的已注册信息,当鉴权通过且发现所述用户号码已通过其他终端建立了注册后, 所述注册服务器发送消息至所述终端,表明该用户号码已在所述其他终端注册;所述注册服务器发送的消息中携带用户号码已绑定的注册地址信息;
[0020] 所述注册服务器在收到所述终端返回的请求取代所述其他终端的注册的消息时,为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并发送消息,指示所述其他终端注册已注销。
[0021] 另一方面,提供了一种基于会话发起协议的用户注册的系统,所述系统包括: [0022] 第一终端,用于发送携带用户号码的注册请求消息;在收到表明所述用户号码已在其他终端注册的消息时,根据预定规则决定是否取代所述其他终端的注册;在决定取代所述其他终端的注册时,发送请求以本次注册取代所述其他终端的注册的消息; [0023] 注册服务器,用于接收所述注册请求消息对所述注册请求消息进行鉴权,并查询所述用户号码的已注册信息,在对其鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送消息至所述第一终端,表明该用户号码已在所述其他终端注册,发送至所述第一终端的消息中携带用户号码已绑定的注册地址信息;在收到所述第一终端返回的请求取代所述其他终端的注册的消息时,为所述第一终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并发送注册已注销消息。
[0024] 第二终端,用于在收到所述注册已注销消息时,停止发送注册请求消息到所述注册服务器。
[0025] 另一方面,提供了一种终端,所述终端包括:
[0026] 收发单元,用于发送携带用户号码注册请求消息至注册服务器;接收注册服务器返回的消息;
[0027] 解析单元,用于解析所述注册服务器返回的消息,确定所述用户号码是否已在其他终端注册;所述注册服务器返回的消息中携带用户号码已绑定的注册地址信息; [0028] 处理单元,用于在收到注册服务器返回的消息,表明所述用户号码已在其他终端注册,且决定取代所述其他终端的注册时,发送消息至所述注册服务器,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并使所述注册服务器发送 注册已注销消息,通知到所述其他终端注册已注销; [0029] 所述终端还包括:
[0030] 决策单元,用于决定是否取代所述其他终端的注册;
[0031] 和/或,输出单元,用于输出提示,提示用户所述用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代所述其他终端的注册。
[0032] 另一方面,提供了一种注册服务器,所述注册服务器包括:
[0033] 接收单元,用于接收终端发送的携带用户号码的注册请求消息; [0034] 鉴权单元,用于对所述注册请求进行鉴权;
[0035] 发送单元,用于在对所述注册请求鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送该用户号码已在所述其他终端注册的消息至所述终端,所述该用户号码已在所述其他终端注册的消息中携带用户号码已绑定的注册地址信息;并在所述注销注册单元用本次注册取代所述其他终端的注册时,发送注册已注销消息,通知到所述其他终端注册已注销。
[0036] 由以上描述可知,在用户在原注册终端上的注册未注销,又需要在其他终端注册时,使用本发明实施例提供的技术方案,注册服务器会在使用新的终端上的注册取代原来的注册后,通知原注册使用的终端,原注册已注销,原注册使用的终端就不会定时向注册服务器发送保持连接的Register消息,原终端和新注册使用的终端也就不会陷入循环注册。 [0037] 因此用户可以在原注册未注销时,在其他终端上注册,满足了用户的需求。 [0038] 附图说明
[0039] 图1、本发明实施例提供的基于会话发起协议的用户注册的方法实施例流程图; [0040] 图2、本发明实施例提供的基于会话发起协议的用户注册的方法实施例一信令流程图;
[0041] 图3、本发明实施例提供的基于会话发起协议的用户注册的方法实施例二信令流程图;
[0042] 图4、本发明实施例提供的基于会话发起协议的用户注册的系统结构图; [0043] 图5、本发明实施例提供的装置实施例一结构图;
[0044] 图6、本发明实施例提供的装置实施例二结构图;
[0045] 图7、本发明实施例提供的注册服务器实施例结构图。
[0046] 具体实施方式
[0047] 本发明实施例提供了一种基于会话发起协议的用户注册的方法、系统及终端、服务器,以满足用户在前次注册未注销时,可以在其他终端注册的需求。
[0048] 本发明实施例提供的基于会话发起协议的用户注册的方法实施例流程图如图1所示:
[0049] 步骤101、用户通过终端发送注册请求消息到注册服务器。
[0050] 终端发送注册请求消息到用户号码归属的注册服务器申请注册,注册请求消息中携带Call-ID、用户号码和终端注册地址信息。
[0051] 步骤102、注册服务器对本次发起注册请求的用户身份鉴权。
[0052] 步骤103、鉴权通过后,判断该用户号码是否已经通过其他终端建立了注册关系,若是,则进入步骤104;否则进入步骤109。
[0053] 步骤104、注册服务器返回消息到终端,通知终端该用户号码已经通过其他终端建立了注册关系。
[0054] 该消息中可以携带用户号码已绑定的注册地址信息。
[0055] 步骤105、终端根据事先配置的规则,决定是提示用户,由用户决定是否取代;还是直接取代;还是提示用户,然后退出。
[0056] 若决定是提示用户,由用户决定是否取代之前的注册,则进入步骤106; [0057] 若决定直接取代之前的注册,则进入步骤107;
[0058] 若决定提示用户,然后退出则进入步骤110。
[0059] 这里事先配置的规则,可以由使用者使用时设定,也可以由制造商在终端出厂前就设定好,或由设计者决定。
[0060] 步骤106、终端输出提示,提示用户该用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代之前的注册,若决定取代,则进入步骤107;否则进入步骤111。
[0061] 输出提示的方式可以是通过显示介面输出,也可以通过音频输出 [0062] 步骤107、终端发送用于取代前次注册的消息至注册服务器。
[0063] 步骤108、注册服务器注销前次注册,注册服务器存储该用户号码和本次发出注册请求终端注册地址信息的对应关系,完成用户通过该终端在注册服务器上的注册。 [0064] 步骤109、注册服务器发送消息,通知前次注册中绑定的终端,前次注册已被注销。 [0065] 前次注册中绑定的终端收到该消息后,不再继续发送注册请求消息到注册服务器。流程结束。
[0066] 步骤110、终端输出提示,提示用户该用户号码已通过其他终端建立了注册。 [0067] 步骤111、终端退出注册流程。流程结束。
[0068] 若以原绑定的终端为终端B,本次使用的终端为终端A为例,本发明实施例提供的基于会话发起协议的用户注册的方法实施例一信令流程图如图2所示:
[0069] 步骤201、终端A发送Register消息到注册服务器。
[0070] 用户在终端A上登录,终端A发送Register消息到注册服务器,在该消息的Call-ID头域中携带标志本次注册会话的唯一标识,往(TO)域携带该用户的用户号码,联系(Contact)域携带终端A的地址信息。
[0071] 步骤202、注册服务器返回未授权(Unauthorized)消息。
[0072] 注册服务器返回Unauthorized消息,要求终端A发送用户号码口令用于鉴权,消息头域携带用于口令加密的挑战字和加密算法。
[0073] 步骤203、终端A发送Register消息到注册服务器。
[0074] 终端A再次发送Register消息注册,消息头域除Call-ID、用户号码、注册地址外,同时携带鉴权用的用户名、口令、挑战字、加密算法等信息,Call-ID与步骤201中的Register携带的Call-ID相同。
[0075] 步骤204、鉴权通过,但该用户号码已经通过其他终端建立了注册关系, 注册服务器返回消息到终端,通知终端该用户号码已经通过其他终端建立了注册关系。 [0076] 注册服务器对用户身份鉴权通过,然后查询存储的用户号码已注册信息,查询到当前已有终端B使用相同的用户号成功注册并保持连接,注册Call-ID和地址信息与终端A本次发起的注册请求所携带的信息不同,注册服务器向终端A返回已注册(Already Registered)消息表示已有终端注册并保持连接,该消息中可以携带已注册的注册地址信息,本实施例中为终端B的注册地址信息。
[0077] 本步骤中使用的消息是一种SIP格式的消息,可以使用SIP协议中未被分配的消息号作为该消息的消息号,例如409消息。
[0078] 由于SIP协议定义的SIP消息分为消息头和消息体两部分,有些消息可以不带消息体,本步骤中使用的消息就可以不带消息体部分,先本文给出一个该消息消息头部分的格式实例:
[0079] 首行:SIP/2.0409 AlreadyRegistered
[0080] 按照SIP协议格式,首行包含协议版本号、消息号、消息描述,本实施例消息号取409作为示例。
[0081] FROM:SIP协议格式规定的一个域,携带注册服务器地址,其格式与用于应答的Register消息发送的FROM域相同。
[0082] To:SIP协议格式规定的一个域,携带本次注册的用户号码,其格式也和用于应答的Register消息相同,带注册服务器分配的标签(tag)值。
[0083] Call-ID:SIP协议格式规定的一个域,表示本次呼叫的标志,其格式与用于应答的Register消息相同。
[0084] Cseq:SIP协议格式规定的一个域,其格式与用于应答的Register消息相同,与Call-ID域一起表示该消息的身份。
[0085] Contact:携带在注册服务器上本次注册用户号码已经注册的注册地址信息,并且携带该注册中终端与注册服务器连接的期限(expires)参数。该域内容为可选的,当该消息携带已注册的注册地址信息时,需要使用Contact域。
[0086] Content-长度(Length):表示Contact域的长度。
[0087] 消息格式示例如下:
[0088] SIP/2.0409 AlreadyRegistered
[0089] From:;tag=3326082552
[0090] To:;tag=23f709fb
[0091] CSeq:2REGISTER
[0092] Call-ID:1463786448@10.164.8.70
[0093] Via:SIP/2.0/UDP 10.164.8.70:5060;branch = z9hG4bK730331344;rport =5060
[0094] Contact:;expires =300
[0095] Content-Length:0
[0096] 其中,终端IP地址为10.164.8.70
[0097] 注册服务器地址为10.75.35.161
[0098] 已注册并保持连接的终端地址,本实施例中为终端B的注册地址信息为10.170.8.100
[0099] 用户号码为075589834250@10.75.35.161
[0100] 步骤205、终端A收到消息后,根据事先配置的规则,决定是否取代之前的注册,或者提示用户,由用户决定是否取代之前的注册。
[0101] 若由终端决定是否取代,则终端在决定直接取代时,直接进入步骤206;在决定退出时,可以通知到用户,用户该用户号码已通过其他终端建立了注册,直接退出流程,若在步骤204中返回的信息携带有用户已注册地址信息,在本实施例中为终端B的注册地址信息,此时终端可以提取终端B的注册地址信息,提示用户本次登录使用的用户号码已经注册并显示终端B的地址信息给用户,提示用户已存在其它注册,登录失败,注册流程结束。 [0102] 若事先配置的策略是由用户决定是否取代之前的注册,则终端输出提示,提示用户该用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代之前的注册,若决定取代,则进入步骤206;否则退出注册流程。若 在步骤204中返回的信息携带有用户已注册地址信息,在本实施例中为终端B的注册地址信息,此时终端可以提取终端B的注册地址信息,提示用户该用户号码前次登录的地址为终端B的注册地址。 [0103] 步骤206、进入步骤206,说明决定取代前次注册,终端A向注册服务器发送消息,请求取代之前的注册。
[0104] 可以实现请求取代之前的注册功能的消息有很多种,本实施例将以Register消息为例进行描述。
[0105] 可以实现请求取代之前的注册功能的Register消息,Call-ID头域携带本次注册会话标识(id),TO域携带注册用户号码。
[0106] 在该Register消息中,可以携带两行Contact头域信息,一行是希望注销的前次注册地址信息,expires参数取值为0,另一行为终端A的地址信息,用于取代前次注册,两行信息位置无顺序关系。
[0107] Contact头域格式示例如下:
[0108] Contact:;expires=0
[0109] Contact:;expires=300
[0110] 整个Register消息格式示例如下:
[0111] REGISTER sip:10.75.35.161:5060SIP/2.0
[0112] Via:SIP/2.0/UDP 10.164.8.70:5060;branch=z9hG4bK3562787246 [0113] From:;tag=3326082552
[0114] To:
[0115] Call-ID:1463786448@10.164.8.70
[0116] CSeq:3REGISTER
[0117] Contact:
[0118] Contact:;expires=0 [0119] Max-Forwards:5
[0120] User-Agent:Softphone v1.0
[0121] Expires:300
[0122] Content-Length:0
[0123] 后续步骤通过读取Contact头域信息就可以知道,该Register消息是一个请求取代之前注册的消息。
[0124] 本步骤中也可以仍然采用标准的Register消息,在后续步骤的消息中携带注销前次注册的信息,请求取代之前的注册。
[0125] 步骤207、注册服务器返回Unauthorized消息。
[0126] 注册服务器返回Unauthorized消息,要求终端A发送用户号码口令用于鉴权,消息头域携带用于口令加密的挑战字和加密算法。
[0127] 步骤208、终端A再次发送Register消息。
[0128] 终端A再次发送Register消息注册,消息头域除步骤206中携带的Call-ID、用户号码、注册地址外,同时携带鉴权用的用户名、口令、挑战字、加密算法等信息,Call-ID与步骤206中的Register携带的Call-ID相同。
[0129] 如果步骤206中终端发送的是一个标准的Register消息,则在本步骤中发送的Register消息中携带注销前次注册的信息,请求取代之前的注册,其实现方法可参考步骤206的描述。
[0130] 步骤209、鉴权通过,注册服务器以终端A的注册替代终端B的注册,返回注册成功(200 OK)信息。
[0131] 注册服务器对用户身份鉴权通过,然后从收到的Register消息的Contact头域中获取到两行Contact头域,注册服务器对两行消息进行逐行处理,根据每一行中的注册地址信息在注册服务器中进行查询,查询是否在注册服务器中已经存储了该地址与该用户号码的注册关系。
[0132] 若包含前次注册终端的地址信息的Contact行在前,则对第一行进行处理时会发现,该终端的地址信息已存在且该地址指向的终端与服务器处于连接状态,则进一步判断该Contact行是否携带有expires参数;如果该行携带了expires参数,且expires参数取值为0,则注册服务器将该行携带的注册地址 与用户号码注册关系状态设置为注销状态,或者删除该注册信息,以达到该行携带的注册地址与用户号码注册关系状态设置为注销状态的目的,在本实施例中,该行携带的注册地址即为终端B,注册服务器可以将终端B的注册信息设置为注销状态,或者删除掉终端B的注册信息。本步骤中使用何种方式注销原来的注册,通常由事先配置在注册服务器的策略决定。
[0133] 注册服务器处理完携带前次注册信息的Contact行后,继续处理另一个Contact行,判断该行携带的注册地址信息在注册服务器上没有保存,并且该行携带的expires参数符合SIP规范要求,且不为0,或者不存在expires参数,则将该行携带的注册地址添加到用户号码的注册信息表中。保存的信息包括Call-ID、CSeq、注册地址、状态,状态设置为保持连状态。在本实施例中,该行携带的注册地址即为终端A的注册地址,注册服务器将终端A的注册地址信息设置为注册且保持连接状态。
[0134] 注册服务器按照SIP协议规范向终端A返回注册成功信息。
[0135] 若包含本次注册终端的地址信息的Contact行在前,则对第一行进行处理时会发现,该行携带的注册地址信息在注册服务器上没有保存,并且该行携带的expires参数符合SIP规范要求,且不为0,或者不存在expires参数,则转去处理另一个Contact行,先注销前次注册终端,再为本次注册终端进行注册。此时也可以进一步比对Call-ID,Call-ID不同,则可以进一步确认这是两次不同的注册。
[0136] 此时在注册服务器上,终端A的注册取代了终端B的注册,但是终端B并不知道其注册已被注销,所以终端B还会继续发送保持连接的Register消息到注册服务器,因此注册服务器需要将该注册已注销的信息通知到终端B。
[0137] 将已注销消息通知到终端B的方法有两种,一种是注册服务器收到终端B发送的保持连接的Register消息后,将已注销消息返回给终端B;另一种是注册服务器在注销终端B的注册后,直接发送信息到终端B,通知终端B该注册已注销。
[0138] 本发明实施例提供的基于会话发起协议的用户注册的方法实施例一中,将以第一种方式,注册服务器收到终端B发送的保持连接的Register消息后, 将已注销消息返回给终端B,为例进行信令流程的描述。
[0139] 步骤210、终端B定时向注册服务器发送保持连接的Register消息。 [0140] 步骤211、注册服务器返回Unauthorized消息要求鉴权。
[0141] 注册服务器返回Unauthorized消息,要求终端B发送用户号码口令用于鉴权,消息头域携带用于口令加密的挑战字和加密算法。
[0142] 步骤212、终端B发送Register消息到注册服务器。
[0143] 终端B再次发送用于鉴权的Register消息注册,消息头域除Call-ID、用户号码、注册地址外,同时携带鉴权用的用户名、口令、挑战字、加密算法等信息。 [0144] 步骤213、注册服务器鉴权通过后,发送消息至终端B,通知终端B该注册已被注销。
[0145] 注册服务器鉴权通过后,查询Register消息中携带的用户号码在注册服务器上保持连接状态的注册地址信息,查询到该注册地址信息与终端B请求注册地址信息不同,并且保存的Call-ID也与本次Register消息中携带的Call-ID不同,则返回Already Registered消息,通知终端B该注册已被注销,该AlreadyRegistered消息Contact头域中,可以携带当前与注册服务器保持连接的终端A的注册地址信息。本步骤中使用的Already Registered消息格式可参考步骤204中的Already Registered消息格式。 [0146] 终端B接收到消息后,获知该注册已被注销,以后不再定时向注册服务器发送保持连接的Register消息,同时终端B可以输出显示,提示用户该注册已注销。如果注册服务器返回的Already Registered消息Contact头域中,携带有当前与注册服务器保持连接的终端A的注册地址信息,终端B可以输出显示,提示用户该用户号码在另一个终端上注册了,注册地址为终端A的注册地址,终端B上的注册已注销。
[0147] 流程结束。
[0148] 本发明实施例提供的基于会话发起协议的用户注册的方法实施例一中提到,可以实现请求取代之前的注册功能的消息有很多种,实施例一描述了一 种携带两行Contact头域信息的Register消息,作为实现请求取代之前的注册功能的消息,本发明实施例提供的基于会话发起协议的用户注册的方法实施例二将描述另一种实现请求取代之前的注册功能的消息。
[0149] 并且在实施例二中也将对另一种将已注销消息通知到终端B的方法进行详细描述。
[0150] 仍以原绑定的终端为终端B,本次使用的终端为终端A为例,本发明实施例提供的基于会话发起协议的用户注册的方法实施例二信令流程图如图3所示:
[0151] 步骤301、终端A发送Register消息到注册服务器。
[0152] 用户在终端A上登录,终端A发送Register消息到注册服务器,在该消息的Call-ID头域中携带标志本次注册会话的唯一标识,往(TO)域携带该用户的用户号码,联系(Contact)域携带终端A的地址信息。
[0153] 步骤302、注册服务器返回未授权(Unauthorized)消息。
[0154] 注册服务器返回Unauthorized消息,要求终端A发送用户号码口令用于鉴权,消息头域携带用于口令加密的挑战字和加密算法。
[0155] 步骤303、终端A发送Register消息到注册服务器。
[0156] 终端A再次发送Register消息注册,消息头域除Call-ID、用户号码、注册地址外,同时携带鉴权用的用户名、口令、挑战字、加密算法等信息,Call-ID与步骤301中的Register携带的Call-ID相同。
[0157] 步骤304、鉴权通过,但该用户号码已经通过其他终端建立了注册关系,注册服务器返回消息到终端,通知终端该用户号码已经通过其他终端建立了注册关系。 [0158] 注册服务器对用户身份鉴权通过,然后查询存储的用户号码已注册信息,查询到当前已有终端B使用相同的用户号成功注册并保持连接,注册Call-ID和地址信息与终端A本次发起的注册请求所携带的信息不同,注册服务器向终端A返回已注册(Already Registered)消息表示已有终端注册并保持连接,该消息中可以携带已注册的注册地址信息,本实施例中为终端B的注册地址 信息。
[0159] 本步骤中使用的消息可以是一种SIP格式的消息,可以使用SIP协议中未被分配的消息号作为该消息的消息号,例如409消息。
[0160] 由于SIP协议定义的SIP消息分为消息头和消息体两部分,有些消息可以不带消息体,本步骤中使用的消息就可以不带消息体部分,先本文给出一个该消息消息头部分的格式实例:
[0161] 首行:SIP/2.0409 AlreadyRegistered
[0162] FROM:其格式与用于应答的Register消息发送的FROM域相同。
[0163] To:携带本次注册的用户号码,其格式也和用于应答的Register消息相同,带注册服务器分配的标签(tag)值。
[0164] Call-ID:其格式与用于应答的Register消息相同。
[0165] Cseq:其格式与用于应答的Register消息相同。
[0166] Contact:携带在注册服务器上本次注册用户号码已经注册的注册地址信息,并且携带该注册中终端与注册服务器连接的期限(expires)参数。该域内容为可选的,当该消息携带已注册的注册地址信息时,需要使用Contact域。
[0167] Content-长度(Length):表示Contact域的长度。
[0168] 消息格式示例如下:
[0169] SIP/2.0409 AlreadyRegistered
[0170] From:;tag=3326082552
[0171] To:;tag=23f709fb
[0172] CSeq:2REGISTER
[0173] Call-ID:1463786448@10.164.8.70
[0174] Via:SIP/2.0/UDP 10.164.8.70:5060;branch = z9hG4bK730331344;rport =5060
[0175] Contact:;expires =300
[0176] Content-Length:0
[0177] 其中,终端IP地址为10.164.8.70
[0178] 注册服务器地址为10.75.35.161
[0179] 已注册并保持连接的终端地址,本实施例中为终端B的注册地址信息为10.170.8.100
[0180] 用户号码为075589834250@10.75.35.161
[0181] 步骤305、终端A收到消息后,根据事先配置的规则,决定是否取代之前的注册,或者提示用户,由用户决定是否取代之前的注册。
[0182] 若由终端决定是否取代,则终端在决定直接取代时,直接进入步骤306;在决定退出时,可以通知到用户,用户该用户号码已通过其他终端建立了注册,直接退出流程,若在步骤304中返回的信息携带有用户已注册地址信息,在本实施例中为终端B的注册地址信息,此时终端可以提取终端B的注册地址信息,提示用户本次登录使用的用户号码已经注册并显示终端B的地址信息给用户,提示用户已存在其它注册,登录失败,注册流程结束。 [0183] 若事先配置的策略是由用户决定是否取代之前的注册,则终端输出提示,提示用户该用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代之前的注册,若决定取代,则进入步骤306;否则退出注册流程。若在步骤304中返回的信息携带有用户已注册地址信息,在本实施例中为终端B的注册地址信息,此时终端可以提取终端B的注册地址信息,提示用户该用户号码前次登录的地址为终端B的注册地址。 [0184] 步骤306、进入步骤306,说明决定取代前次注册,终端A向注册服务器发送消息,请求取代之前的注册。
[0185] 可以实现请求取代之前的注册功能的消息有很多种,本实施例将以另一种Register消息为例进行描述。
[0186] 该Register消息,Call-ID头域携带本次注册会话标识(id),TO域携带注册用户号码。
[0187] 在该Register消息中,可以在Register消息中增加一个头域,用于携带注销其它已注册地址信息的标志,假定该头域名称为注销其他(RejectOthers) 头域,则该Register消息格式示例如下:
[0188] REGISTER sip:10.75.35.161:5060 SIP/2.0
[0189] Via:SIP/2.0/UDP 10.164.8.70:5060;branch=z9hG4bK3562787246 [0190] From:;tag=3326082552
[0191] To:
[0192] Call-ID:1463786448@10.164.8.70
[0193] CSeq:3 REGISTER
[0194] Contact:
[0195] Rej ectOthers:Yes
[0196] Max-Forwards:5
[0197] User-Agent:Softphone v1.0
[0198] Expires:300
[0199] Content-Length:0
[0200] RejectOthers头域对Register消息是可选的,当取值为“Yes”时表示本消息要求注销其它注册信息。
[0201] 后续步骤中,注册服务器对注册请求鉴权通过后读取到该头域标志则使用本次注册取代其它注册信息。
[0202] 本步骤中也可以仍然采用标准的Register消息,在后续步骤的消息中携带注销前次注册的信息,请求取代之前的注册。
[0203] 步骤307、注册服务器返回Unauthorized消息。
[0204] 注册服务器返回Unauthorized消息,要求终端A发送用户号码口令用于鉴权,消息头域携带用于口令加密的挑战字和加密算法。
[0205] 步骤308、终端A再次发送Register消息。
[0206] 终端A再次发送Register消息注册,消息头域除步骤306中携带的Call-ID、用户号码、注册地址外,同时携带鉴权用的用户名、口令、挑战字、 加密算法等信息,Call-ID与步骤306中的Register携带的Call-ID相同。
[0207] 如果步骤306中终端发送的是一个标准的Register消息,则在本步骤中发送的Register消息中携带注销前次注册的信息,请求取代之前的注册,其实现方法可参考步骤306的描述。
[0208] 步骤309、鉴权通过,注册服务器以终端A的注册替代终端B的注册,返回注册成功信息。
[0209] 注册服务器对用户身份鉴权通过,然后从收到的Register消息RejectOthers头域中获取注销其它注册信息的标志,注册服务器则使用本次注册取代其它注册信息。 [0210] 在本实施例中,注册服务器注销终端B的注册,并将终端A的注册地址信息设置为注册且保持连接状态。
[0211] 注册服务器按照SIP协议规范向终端A返回注册成功信息。
[0212] 此时在注册服务器上,终端A的注册取代了终端B的注册,但是终端B并不知道其注册已被注销,所以终端B还会继续发送保持连接的Register消息到注册服务器,因此注册服务器需要将该注册已注销的信息通知到终端B。
[0213] 将已注销消息通知到终端B的方法有两种,一种是注册服务器收到终端B发送的保持连接的Register消息后,将已注销消息返回给终端B;另一种是注册服务器在注销终端B的注册后,直接发送信息到终端B,通知终端B该注册已注销。
[0214] 本发明实施例提供的基于会话发起协议的用户注册的方法实施例一中,描述了第一种方式,本发明实施例提供的基于会话发起协议的用户注册的方法实施例二中,将以第二种方式为例进行信令流程的描述。
[0215] 步骤310、注册服务器发送消息至终端B,通知终端B该注册已被注销。 [0216] 注册服务器在注销终端B的注册后,直接发送消息至终端B,通知终端B该注册已被注销,其使用的消息可以是讯息(Message)消息、通知(INFO)消息等,在该消息中可以携带当前注册地址信息。
[0217] 该消息格式示例如下:
[0218] Message sip:075589834250@10.75.35.161 SIP/2.0
[0219] Via:SIP/2.0/UDP 10.164.8.70:5060;branch=z9hG4bK3562787246 [0220] Call-ID:1463786448@10.164.8.70
[0221] From:;tag=3326082552
[0222] To:
[0223] CSeq:1 Message
[0224] Contact:
[0225] Max-Forwards:70
[0226] Content-Length:137
[0227] Content-Type:text/xml
[0228]
[0229] logout
[0230]
[0231] sip:075589834250@10.170.8.100:5060;user = phone;expires = 300
[0232]
[0233] 该消息中,cmd参数取值注销(logout)表示终端被注销,当前注册地址(CurrentContact)参数取值为当前替代该终端注册的终端地址信息,在本实施例中为终端A的地址信息。
[0234] 终端B接收到消息后,获知该注册已被注销,以后不再定时向注册服务器发送保持连接的Register消息,同时终端B可以输出显示,提示用户该注册已注销。如果注册服务器发送的消息中,携带有当前与注册服务器保持连接的终端A的注册地址信息,终端B可以输出显示,提示用户该用户号码在另一个终端上注册了,注册地址为终端A的注册地址,终端B上的注册已注销。
[0235] 流程结束。
[0236] 本实施例适用于所有使用SIP协议的系统,例如NGN、IMS,在NGN系统中,注册服务器体现为软交换。
[0237] 由以上描述可知,在用户在原注册终端上的注册未注销,又需要在其他终端注册时,使用本发明实施例提供的基于会话发起协议的用户注册的方法,注册服务器会在使用新的终端上的注册取代原来的注册后,通知原注册使用的终端,原注册已注销,原注册使用的终端就不会定时向注册服务器发送保持连接的Register消息,原终端和新注册使用的终端也就不会陷入循环注册。
[0238] 进一步,本发明实施例提供的基于会话发起协议的用户注册的方法中,还提供了几种可选方案,可以使用户获知在其他终端上已有注册,由用户决定是否取代之前的注册,或者由终端决定是否取代之前的注册。
[0239] 同时,本发明实施例提供的基于会话发起协议的用户注册的方法中,可以在消息中携带注册终端的地址,可以使终端在通知用户已在其他终端注册时,将注册地址显示给用户。
[0240] 本发明实施例提供的基于会话发起协议的用户注册的系统实施例结构如图4所示,包括:
[0241] 第一终端401,用于发送携带用户号码的注册请求消息;在收到表明所述用户号码已在其他终端注册的消息,且决定取代所述其他终端的注册时,发送请求以本次注册取代所述其他终端的注册的消息;
[0242] 注册服务器402,用于接收所述注册请求消息,在对其鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送消息至所述第一终端401,表明该用户号码已在所述其他终端注册,在收到所述第一终端401返回的请求取代所述其他终端的注册的消息时,为所述第一终端401进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并发送注册已注销消息。
[0243] 第二终端403,用于在收到所述注册已注销消息时,停止定时发送注册请求消息到所述注册服务器402。
[0244] 在本发明实施例提供的基于会话发起协议的用户注册的系统中出现的第一终端或第二终端,其本质都只是普通终端,只是在本系统中第一终端担任 的是发出新的注册请求的终端,而第二终端担任的是前次注册使用的终端。
[0245] 本发明实施例提供的基于会话发起协议的用户注册的系统中出现的装置:终端和注册服务器的内部结构,可参考下文对本发明实施例提供的终端和注册服务器的详细节介绍。
[0246] 本发明实施例提供的基于会话发起协议的用户注册的系统的工作方式,与上文对本发明实施例提供的基于会话发起协议的用户注册的方法的描述基本相似,在此不再重复描述。
[0247] 本发明实施例提供的终端实施例一描述的是担任发出新的注册请求的终端,其结构如图5所示,终端500包括:
[0248] 收发单元510,用于发送携带用户号码注册请求消息至注册服务器;,接收注册服务器返回的消息;
[0249] 解析单元520,用于解析所述注册服务器返回的消息,确定所述用户号码是否已在其他终端注册;
[0250] 处理单元550,用于在该用户号码已在其他终端注册,且决定取代所述其他终端的注册时,发送请求取代前次注册的消息至注册服务器,以使注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册,并使注册服务器发送注册已注销消息,通知到所述其他终端注册已注销。
[0251] 决策单元530,用于决定是否取代所述其他终端的注册;
[0252] 和/或,输出单元540,用于输出提示,提示用户所述用户号码已通过其他终端建立了注册,由用户决定是否使用本次注册取代所述其他终端的注册。
[0253] 决策单元530、和输出单元540通常由其中的一个决定是否取代所述其他终端的注册,同时存在也是可以的,此时只需选择其中的一个使用即可。
[0254] 其中,处理单元550包括:
[0255] 第一发送单元551,用于发送注册请求消息至注册服务器,在所述注册请求消息中携带所述其他终端的注册地址信息,将其期限设置为零,以使所述注册服务器注销所述其他终端的注册,在所述注册请求消息中携带所述发送 请求终端的地址信息,以使所述注册服务器为所述发送请求终端进行注册;
[0256] 或第二发送单元552,用于发送注册请求消息至注册服务器,在所述注册请求消息中携带注销其它已注册地址信息的标志,以使所述注册服务器为所述发送请求终端进行注册,注销所述其他终端的注册。
[0257] 第一发送单元551、或第二发送单元552通常由其中的一个决定是否取代所述其他终端的注册,同时存在也是可以的,此时只需选择其中的一个使用即可。 [0258] 本发明实施例提供的终端实施例二,描述的是担任的前次注册使用的终端,其结构如图6所示,终端600包括:
[0259] 接收单元601,用于接收通知注册已注销消息;
[0260] 处理单元602,在收到所述通知注册已注销消息后,使终端停止定时发送注册请求消息到注册服务器。
[0261] 输出单元603,用于在收到的所述通知所述其他终端注册已注销的消息中包含当前注册地址信息时,输出提示,提示用户所述用户号码已通过所述当前注册地址建立了注册。
[0262] 本发明实施例提供的注册服务器实施例,其结构如图7所示,注册服务器700包括:
[0263] 接收单元701,用于接收终端发送的携带用户号码的注册请求消息;接收所述终端返回的请求取代前次注册的消息。
[0264] 鉴权单元702,用于对所述注册请求进行鉴权。
[0265] 发送单元703,用于在对所述注册请求鉴权通过,且发现所述用户号码已通过其他终端建立了注册后,发送消息至所述终端,表明该用户号码已在所述其他终端注册;并在所述注销注册单元用本次注册取代所述其他终端的注册时,发送注册已注销消息,通知到所述其他终端注册已注销。
[0266] 解析单元704,用于解析所述请求取代前次注册的消息,确定是否需要以本次注册取代所述其他终端的注册。
[0267] 注销注册单元705,用于根据所述请求取代前次注册的消息,为所述发送 请求终端进行注册,注销所述其他终端的注册,以本次注册取代所述其他终端的注册。 [0268] 本发明实施例提供的终端实施例一、二、注册服务器的实施例的工作方式,与上文对本发明实施例提供的基于会话发起协议的用户注册的方法的描述基本相似,在此不再重复描述。
[0269] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,上述提到的存储介质可以是只读存储器,磁盘或光盘等。 [0270] 以上对本发明所提供的一种基于会话发起协议的用户注册的方法、系统及终端、服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。