CN102572778A - 基于gruu的消息处理方法和装置 - Google Patents
基于gruu的消息处理方法和装置 Download PDFInfo
- Publication number
- CN102572778A CN102572778A CN201110452614XA CN201110452614A CN102572778A CN 102572778 A CN102572778 A CN 102572778A CN 201110452614X A CN201110452614X A CN 201110452614XA CN 201110452614 A CN201110452614 A CN 201110452614A CN 102572778 A CN102572778 A CN 102572778A
- Authority
- CN
- China
- Prior art keywords
- gruu
- terminal
- open
- request message
- sip uri
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000000977 initiatory effect Effects 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 74
- 239000000284 extract Substances 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 11
- 239000003999 initiator Substances 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种基于GRUU的消息处理方法和装置,其中方法包括当接收到注册请求消息时,根据非GRUU终端的SIP URI为其分配公开GRUU,并将SIP URI和公开GRUU对应记录到数据库中;当接收到主叫请求消息时,根据非GRUU终端的SIP URI在数据库中查询获取该终端对应的公开GRUU,并以该公开GRUU替换主叫请求消息中的非GRUU终端SIP URI,而后将主叫请求消息发送至被叫终端;当接收到被叫请求消息时,按照非GRUU终端的第一配置策略,根据被叫请求消息中所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换被叫请求消息中主叫方的公开GRUU,而后将被叫请求消息发送至非GRUU终端。上述技术方案,能够准确实现非GRUU终端的查找。
Description
技术领域
本发明涉及通信技术,尤其涉及一种基于GRUU的消息处理方法和装置。
背景技术
目前通信领域中,IP多媒体子系统(IP Multimedia Subsystem,以下简称IMS)使用全IP的通信方式,IMS独立于接入技术,可为各种类型的终端提供基于IP的通信服务。
以第三代伙伴计划(Third Generation Partnership Project,以下简称3GPP)版本6来说,IMS允许多个终端共享单个用户身份。具体而言是指:用户可能只拥有一个公共用户身份,但是可以在不同的终端同时注册该公共用户身份,而这些不同的注册可以通过使用终端的IP和端口进行区分。但是,对于那些位于局域网内、只被分配了私有IP的终端而言,这些终端对外显示的IP将是其所在局域网的公有IP。因而,如果用户使用这些终端进行注册或与他人进行对话,将有可能导致对方不能确切知道该用户具体在哪个终端上进行了操作。
在“RFC 5627”标准中,即举了一个例子:用户A与用户B正在通话,用户A希望把用户B的通话转给用户C,因而用户A向用户C发请求,让用户C与用户B联系。由于用户A只知道用户B的公共用户身份,所以用户A只能把用户B的公共用户身份发给用户C。但是,对于用户C而言,从用户B的公共用户身份无法判断用户B正在使用哪个终端通话,因而无法与用户B进行连接。针对这种情况,“RFC 5627”标准提出使用全局可路由用户代理统一资源标识(Globally Routable User Agent URIs,以下简称GRUU)区分运行于各终端上的用户实例,从而使基于信令控制协议(Session Initiation Protocol,以下简称SIP)的消息可以准确地发送给目的终端。其做法是:在用户使用某个终端进行注册时,在注册消息中指明其支持GRUU并携带了一个指明当前在终端上所运行实例(INSTANCE)的编号;注册服务器根据以上的信息为用户分别产生一个公开GRUU和一个私有GRUU,然后注册服务器把这两个GRUU和用户的相关信息进行保存,同时并把这两个GRUU发送给用户。当用户与他人进行对话时,根据隐私策略,把公开GRUU或私有GRUU发给对端,让对端可以唯一定位其正在使用的实例。
下面对公开GRUU和私有GRUU进行简单介绍。公开GRUU的格式为SIP:aliceexample.com;gr=kj69rx,从该格式可以看出,公开GRUU的前半部分,即第一字段,aliceexample.com与传统的会话初始化协议的统一资源标识符(Session Initiation Protocol-Uniform Resource Identifier,以下简称SIP URI)相同,第二字段gr=kj69rx的对应值kj69rx则是由核心网元,例如服务呼叫会话控制功能(Serving Call Session ControlFunction,简称S-CSCF)根据一定规则产生并告知用户的。而用户在发起请求时把此kj69rx加到请求的联系头域(Contact)中,本文也称CONTACT头域,以便让请求消息的接收方可以准确定位用户所处的终端。私有GRUU的格式为SIP:xv8934ytexample.com;gr,其中第一字段xv8934ytexample.com中的xv8934yt在注册时由核心网元,例如S-CSCF产生,gr的值一般为空。
在终端支持GRUU的情况下,RFC 5627能够解决在多终端情况下唯一定位用户所使用终端的问题。但是在终端不支持GRUU的情况下,无法实现对终端的定位。
发明内容
本发明提供一种基于GRUU的消息处理方法和装置,用于实现对非GRUU终端的查找。
本发明一方面提供一种基于GRUU的消息处理方法,其中,包括:
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中;
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIPURI,而后将所述主叫请求消息发送至被叫终端;
当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至所述非GRUU终端。
本发明另一方面提供一种基于GRUU的消息处理装置,其中,包括:
标识分配模块,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中;
第一标识转换模块,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIP URI,而后将所述主叫请求消息发送至被叫终端;
第二标识转换模块,用于当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至所述非GRUU终端。
本发明提供的基于GRUU的消息处理方法和装置,为非GRUU终端分配了公开GRUU,实现了对非GRUU终端的准确定位,下面结合实施例详细说明本发明技术方案。
附图说明
图1为本发明实施例一提供的基于GRUU的消息处理方法的流程图;
图2为本发明实施例二提供的基于GRUU的消息处理方法的流程图;
图3为本发明实施例三提供的基于GRUU的消息处理方法的流程图;
图4为本发明实施例四提供的基于GRUU的消息处理装置的方框示意图。
具体实施方式
本发明实施例提供一种基于GRUU的消息处理方法,该方法可由IP多媒体子系统(IP Multimedia Subsystem,以下简称IMS)中的核心网元S-CSCF执行,该方法具体包括以下内容:
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中;
此处,注册请求消息可为首次注册的第二个请求消息,首次注册的第一个请求消息和重注册消息不分配公开GRUU。数据库可为S-CSCF的本地数据库。本申请中所指的SIP URI是指会话初始化协议的统一资源标识符(Session Initiation Protocol-Uniform Resource Identifier,以下简称SIP URI)。非GRUU终端可以为电脑、IPAD或手机等。
用户注册时为用户提供注册服务、并分配GRUU的S-CSCF,叫做用户的归属地S-CSCF。用户后续的所有请求、响应消息都要经过这个归属地S-CSCF。一个消息可能会经过很多S-CSCF,但只有归属地S-CSCF才会分配公开GRUU,或者给消息添加、删除公开GRUU,并非消息传输过程中每个S-CSCF都会对消息做修改的。
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIP URI,而后将所述主叫请求消息发送至被叫终端;
当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至非GRUU终端。
上述步骤中,非GRUU终端作为被叫方,非GRUU终端的配置策略有两个:第一配置策略和第二配置策略。所谓第一配置策略是指:非GRUU终端配置为希望收到主叫方的公开GRUU。第二配置策略是指:非GRUU终端配置为不希望收到主叫方的公开GRUU。
此步骤中,由于非GRUU终端作为被叫方,该非GRUU终端无法识别被叫请求消息的CONTACT头域中携带的主叫方的公开GRUU,故需根据主叫方的公开GRUU生成为非GRUU终端可以识别的SIP URI。此处通过下述例子解释上述生成操作:
假设公开GRUU为aliceexample.com;gr=kj69rx。则提取出第二字段gr=kj69rx,并将第二字段的对应值kj69rx与第一字段的域名拼接,生成新的SIP URI,即kj69rxexample.com,后续发给被叫方非GRUU终端的SIP URI,即kj69rxexample.com。
当然,非GRUU终端也可以配置为不希望收到主叫方的公开GRUU,即为第二配置策略,这种情况下,则直接删掉公开GRUU的第二字段即可。例如:假设公开GRUU为aliceexample.com;gr=kj69rx。直接删掉gr=kj69rx,就是普通的SIP URI了。
非GRUU终端没有公开GRUU,也无法识别消息中的公开GRUU,在本发明技术方案中,核心网元S-CSCF为非GRUU终端分配了公开GRUU,但是核心网元S-CSCF并不把该公开GRUU发给非GRUU终端。
本实施例中的各个步骤可以由核心网元S-CSCF中集成的功能模块来实现,功能模块可以采用硬件或软件,或软硬件协同工作的方式来实现。
由于本发明涉及的是非GRUU终端,该类终端在GRUU层面上无法进行隐身请求,因而本发明当前只关注公开GRUU。至于用户的隐身请求,可由其他服务器完成,或者也可以基于公开GRUU实施,本发明对此不加以详述。上述消息处理方法,为非GRUU终端分配了公开GRUU,实现了对非GRUU终端的准确定位,下面结合实施例详细说明本发明技术方案。
实施例一
参见图1,图1为本发明实施例一提供的基于GRUU的消息处理方法的流程图。该方法包括:
步骤S01,归属地S-CSCF接收到消息。
可以对现有S-CSCF执行升级操作来使其能够支持本方法,升级操作主要是指改变S-CSCF处理消息的流程,以使S-CSCF接收到消息后,能够按照预定的流程对消息进行处理。
用户注册时为用户提供注册服务、并分配GRUU的S-CSCF,叫做用户的归属地S-CSCF。用户后续的所有请求、响应消息都要经过这个归属地S-CSCF。一个消息可能会经过很多S-CSCF,但只有归属地S-CSCF才会分配公开GRUU,或者给消息添加、删除公开GRUU,并非消息传输过程中每个S-CSCF都会对消息做修改的。
步骤S02,归属地S-CSCF判断所述消息,若所述消息为来自非GRUU终端的注册请求消息,则进行步骤S03,此处注册请求消息可以为首次注册的第二个注册请求消息;若所述消息为来自非GRUU终端的主叫请求消息,则进行步骤S04;若所述消息为发往非GRUU终端的被叫请求消息,则进行步骤S05。
步骤S03,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU;
步骤S03中,为非GRUU终端分配公开GRUU只在接收到用户首次发出的第二个注册请求消息时分配,首次注册所发出的第一个注册请求和重注册是不为非GRUU终端分配公开GRUU的。
步骤S39,将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中,后续可执行其他常规的注册操作,而后等待接收下一个消息。
步骤S04,根据CONTACT头域所携带的非GRUU终端的SIP URI在数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIPURI;
步骤S04中非GRUU终端的归属地S-CSCF收到此非GRUU终端所发请求消息,该请求消息称为主叫请求消息。
步骤S49,而后将所述主叫请求消息发送至被叫终端,后续可执行其他常规的主叫连接请求操作,而后等待接收下一个消息。
步骤S05,判断所述非GRUU终端是否配置为希望收到对方的公开GRUU,若是,执行步骤S57,若否,执行步骤S56。
步骤S57,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIPURI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU;
步骤S57中,非GRUU终端的归属地S-CSCF收到发给此非GRUU终端的请求消息,该请求消息称为被叫请求消息。
步骤S56,按照所述非GRUU终端的第二配置策略,删除被叫请求消息中所携带的主叫方的公开GRUU的第二字段。
步骤S59,而后将所述被叫请求消息发送至非GRUU终端,后续可执行其他常规的被叫连接请求操作,而后等待接收下一个消息。
本实施例的消息处理方法,根据消息种类的不同,制定了不同的处理策略,使得非GRUU终端和非GRUU终端之间可以建立对话,非GRUU终端与GRUU终端或非GRUU终端之间都可以准确建立对话。
实施例二
参见图2,在上述实施例的技术方案基础之上,优选地,步骤S03包括下述步骤:
步骤S31、提取所述注册请求消息CONTACT头域所携带的SIP URI;其中,所述注册请求消息为首次注册的第二个注册请求消息,在用户首次注册所发送的第一个注册请求消息或重注册时不为用户分配公开的GRUU。
步骤S32、根据SIP URI和当前状态参数生成哈希值。
所述当前状态参数为:当前时间和/或注册时间,也可以为其他有关其本身特征、注册用户特征的信息或者其它可以唯一生成不重复编号的参数。
步骤S33、将所述SIP URI作为公开GRUU的第一字段、将所述哈希值作为公开GRUU的第二字段的对应值,以生成所述非GRUU终端的公开GRUU。
公开GRUU比如为aliceexample.com;gr=kj69rx,上述第一字段是指aliceexample.com部分;第二字段是指gr=kj69rx部分,上述生成的哈希值即为gr的值。
步骤S33之后,进行步骤S39,然后按照已有的消息处理流程对消息进行注册。
进一步地,步骤S04可以包括以下步骤:
步骤S41、从所述主叫请求消息的CONTACT头域中提取所述非GRUU终端的SIP URI。
步骤S42、在数据库中查找与所述SIP URI对应的公开GRUU。
步骤S43、以所述公开GRUU替换所述主叫请求消息的CONTACT头域中非GRUU终端的SIP URI。
步骤S43之后,进行步骤S49,然后按照已有的消息处理流程对消息进行处理。
本实施例中,步骤S57具体可以包括以下步骤:
步骤S51、提取所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU;
步骤S52、提取所述公开GRUU的第二字段,并将所述第二字段的对应值与所述公开GRUU第一字段的域名进行拼接,以得到所述被叫请求消息中主叫方的SIP URI;
公开GRUU标识的格式为SIP:aliceexample.com;gr=kj69rx,步骤S52是指提取第二字段gr的值,即kj69rx,然后将该gr值与第一字段的域名“example.com”进行拼接,得到kj69rxexample.com,即为所述被叫请求消息中主叫方的SIP URI,由于gr的值是唯一的,所以可以唯一标识主叫方目前所使用的终端。
步骤S53、用所述新生成的SIP URI,即kj69rxexample.com替换所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU。
步骤S53完成后,只保留了公开GRUU的gr值,然后进行步骤S59,而后按照已有的消息处理流程对消息进行处理。
本发明实施例二提供的消息处理方法,通过生成gr值的方式为非GRUU终端分配了公开GRUU,实现了对非GRUU的准确定位,且实现便捷,更利于方案的推广应用。
实施例三
参见图3,图3为本发明实施例三提供的基于GRUU的消息处理方法的流程图。本发明实施例三在上述实施例的技术方案基础之上,优选的是,还包括:
步骤S06、当归属地S-CSCF识别到接收的响应消息为来自非GRUU终端的发起响应消息时,根据CONTACT头域所携带的所述非GRUU终端的SIP URI在所述数据库中查询获取对应的公开GRUU,并以公开GRUU替换所述发起响应消息中的消息发起方SIP URI,而后将所述发起响应消息发送至接收终端。
步骤S06中,非GRUU终端的归属地S-CSCF收到此非GRUU终端所发出的响应消息,该响应消息称为发起响应消息。
发起响应消息的处理方法可与主叫请求消息的处理方法原理相同,具体为提取所述发起响应消息SIP URI中的SIP URI;在S-CSCF数据库中查找与所述SIP URI对应的公开GRUU;以所述公开GRUU替换所述发起响应消息中的SIP URI,然后按照已有的消息处理流程对消息进行处理。
步骤S79、当非GRUU终端的归属地S-CSCF识别到接收的响应消息为发往此非GRUU终端的接收响应消息时,判断非GRUU终端是否配置为希望收到对方的公开GRUU,若是执行步骤S07,若否,执行步骤S71.
步骤S07,按照所述非GRUU终端的第三配置策略,根据所述接收响应消息中CONTACT头域所携带的公开GRUU生成响应消息发起方对应的SIPURI,并以此SIP URI替换所述接收响应消息中的响应消息发起方的公开GRUU,而后将所述接收响应消息发送至非GRUU终端。
步骤S71,按照非GRUU终端的第四配置策略,删除接收响应消息中公开GRUU的第二字段,而后将接收响应消息发送至非GRUU终端。
上述步骤S79中,非GRUU终端为响应消息的接收方,被配置了两种策略:第三配置策略和第四配置策略。
所谓第三配置策略是指非GRUU终端配置为希望收到响应消息发起方的公开GRUU。步骤S07中非GRUU终端为响应消息的接收方,该响应消息称为接收响应消息。生成的操作具体如下:假设公开GRUU为aliceexample.com;gr=kj69rx。则提取出第二字段kj69rx,将kj69rx与第一字段中的域名拼接,生成新的SIP URI,即kj69rxexample.com。
另外,如果非GRUU终端配置为不希望收到公开GRUU,则直接删掉公开GRUU的第二字段即可。
下面通过一个例子详细说明上述方法,此处假设对话的M终端和N终端都为非GRUU终端,对话过程基于IMS网络进行。
步骤T01、用户M1在M终端向IMS网络发起首次注册请求或重新注册请求时,IMS中的S-CSCF提取注册请求消息中的SIP URI。由于用户M1在进行注册时,会将其所在终端,即M终端的IP地址以及应用实例所使用端口添加到SIP URI中,因而S-CSCF可以根据提取的SIP URI唯一确定用户M1目前在使用哪个应用实例,此处假设用户M1当前所用实例为INSTANCE-M。步骤T01中,若是首次注册,则在非GRUU终端第二次所发的注册请求中提取;若是首次注册所发送的第一个请求消息和重注册,则无需提取。
步骤T02、为了使其他用户,此处假设为N终端的用户N1,可以方便地给当前的实例INSTANCE-M发送请求,M终端对应的S-CSCF根据当前SIPURI中的地址,比如SIP URI,为M终端生成一个公开GRUU(注:由于本专利针对的是非GRUU终端,用户无法自行使用私用GRUU实现隐藏,因而用于隐藏真实身份的私有GRUU的生成在本申请中不予考虑),假设为Uua,然后把Uua和SIP URI对应存储,随后按照正常流程对注册请求进行处理。需要说明的是,由于M终端为非GRUU终端,所以M终端对应的S-CSCF为M终端生成的公开GRUU不会发送给M终端。此处用户M1可以在多个非GRUU终端上运行实例并注册,对于每个实例发来的注册请求,S-CSCF均要分配相应的公开GRUU。N终端的用户N1按照与用户M1相同的方法注册,N1的运行实例假设为INSTANCE-N。
步骤T03、上述注册完成后,当用户M1向用户N1发送请求消息时,假设是INVITE请求消息,M终端对应的归属地S-CSCF在收到该INVITE请求后,根据请求消息中CONTACT头域所携带的主叫方SIP URI中携带的SIPURI,在其数据库中找到之前分配给此SIP URI的公开GRUU,即Uua,删除SIP URI中的SIP URI,把Uua添加到CONTACT头域中,然后核心网元S-CSCF按照正常流程处理此INVITE请求。具体的处理流程可参见“RFC3261”标准或“3GPP 24.228”标准等文档。
步骤T04、当被叫用户N1的S-CSCF接收到用户M1所发的INVITE请求后,根据被叫用户N1之前订阅的策略,决定是否用SIP URI所携带的Uua第二字段“gr”的对应值替换掉Uua中第一字段SIP URI的用户名。如果被叫用户N1之前设置的策略是获取主叫方的GRUU,即为第一配置策略,则S-CSCF使用SIP URI中的Uua第二字段“gr”的对应值替换掉Uua中第一字段SIP URI的用户名,然后把“gr”字段及其对应值删掉;如果被叫用户N1之前设置的策略是不需要获取主叫方的GRUU,即为第二配置策略,则S-CSCF直接把“gr”字段及其对应值删掉。在完成上述流程后,核心网元S-CSCF按照正常流程处理INVITE请求。
步骤T05、当被叫用户N1收到INVITE请求,其产生首个响应,此处假设为183响应,并在183响应中填入自己的地址,指示它希望用此地址接收该对话中的后续请求。当用户N1的归属地S-CSCF收到用户N1的183响应时,根据183响应中的CONTACT头域所携带的SIP URI,在其数据库中找到之前分配给此SIP URI的公开GRUU,即Uub,删除CONTACT头域中的SIP URI,把Uub添加到CONTACT头域中。然后S-CSCF按照正常流程处理此183响应,具体处理方法可以参见“RFC 3261”标准或“3GPP 24.228”标准等文档。
步骤T06:当主叫用户M1的S-CSCF接收到用户N1所发的183响应后,根据主叫用户M1之前设置的策略,决定是否用CONTACT头域所携带的Uub第二字段“gr”的对应值替换掉Uub中第一字段SIP URI的用户名。如果主叫用户M1之前订阅的策略是获取被叫方的GRUU,即为第三配置策略,则S-CSCF使用CONTACT头域中的Uub第二字段“gr”的对应值替换掉Uub中第一字段SIP URI的用户名,然后把“gr”字段及其对应值删掉;如果主叫用户M1之前订阅的策略是不需要获取被叫方的GRUU,即为第四配置策略,则S-CSCF直接把“gr”字段及其对应值删掉。在完成上述流程后,S-CSCF按照正常流程处理183响应。
经过此INVITE请求流程和183响应流程,如果主叫用户M1使用的是策略三、被叫用户N1使用的是策略一,则主叫用户M1拥有了被叫用户N1所使用的INSTANCE-N对应的SIP URI,而被叫用户N1也拥有了主叫用户M1所使用的INSTANCE-M对应的SIP URI。于是,在此后用户M1向用户N1,或用户N1向用户M1所发送的请求中,如果希望某个请求由接收方的特定终端接收,则请求发起方可以直接把INSTANCE-N或INSTANCE-M的SIP URI添加到请求消息的请求行中,从而达到了指定接收终端的目的。当被叫方的S-CSCF接收到此请求后,把INSTANCE-N或INSTANCE-M的URI映射成为被叫用户所使用的INSTANCE对应的IP和端口,即可使用户的请求到达指定客户端。
在用户M1向用户N1发送INVITE请求时,如果被叫用户N1使用的是策略二,则用户N1无法获悉用户M1所使用的INSTANCE-M对应的公开GRUU,则之后用户N1向用户M1所发送的请求中,仍然是发给用户M1的公共地址,由用户M1的S-SCSF依据一定策略把请求转发到用户M1的某个终端,而用户N1无法指定请求发给用户M1特定的实例。同理,如果用户M1使用的是第四配置策略,则用户M1亦无法获悉用户N1所使用的INSTANCE-N对应的公开GRUU。
在以上所述例子中,虽然M终端、N终端并不支持GRUU,但由于S-CSCF把公开GRUU中第二字段“gr”字段的对应值添加到SIP URI的用户名中,因而M终端、N终端仍然可以获得对方所使用实例的确切地址,并可利用此地址指定接收终端,从而建立对话。
本发明实施例提供的技术方案,能够对涉及非GRUU终端的响应消息进行处理,且处理方法便于推广利用。
实施例四
参见图4,图4为本发明实施例四提供的基于GRUU的消息处理装置的方框示意图。本发明实施例四提供一种基于GRUU的消息处理装置,该消息处理装置位于核心网元S-CSCF上的判断模块140和消息处理模块150之间。其中,判断模块140用于判断接收模块130接收到的消息,并判断该消息的类型,消息的类型可能是注册请求消息、主叫请求消息、被叫请求消息、发起响应消息或接收响应消息等。消息处理模块150用于根据现有文档标准对消息进行处理,比如进行注册操作、主叫连接请求操作或被叫连接请求操作等。该消息处理装置包括标识分配模块20、第一标识转换模块80和第二标识转换模块90。
标识分配模块20,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIPURI和公开GRUU进行对应记录到数据库中;
第一标识转换模块80,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIP URI,而后将所述主叫请求消息发送至被叫终端;
第二标识转换模块90,用于当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至非GRUU终端。
本发明的基于GRUU的消息处理装置可以用于执行本发明基于GRUU的消息处理方法任意实施例的技术方案,具有相应的功能模块。
进一步地,标识分配模块20包括:
第一提取单元201,用于提取所述注册请求消息中CONTACT头域所携带的SIP URI;其中,所述注册请求消息为首次注册的第二个注册请求消息;
在用户首次注册所发送的第一个注册请求消息或重注册时不为用户分配公开的GRUU。
第一生成单元202,用于根据SIP URI和当前状态参数生成哈希值;
当前状态参数可以为当前时间和/或注册时间,也可以为其他有关其本身特征、注册用户特征的信息或者其它可以唯一生成不重复编号的参数。
第一替换单元203,用于将所述SIP URI作为公开GRUU的第一字段、将所述哈希值作为公开GRUU的第二字段,以生成所述非GRUU终端的公开GRUU。
可选地,所述第一标识转换模块80包括:
第二提取单元801,用于从所述主叫请求消息的CONTACT头域中提取所述非GRUU终端的SIP URI;
第二查找单元802,用于在数据库中查找与所述SIP URI对应的公开GRUU;
第二替换单元803,用于以所述公开GRUU替换所述主叫请求消息的CONTACT头域中非GRUU终端的SIP URI。
具体地,所述第二标识转换模块90可包括:
第三提取单元901,用于提取所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU;
第四提取单元902,用于提取所述公开GRUU的第二字段,并将所述第二字段的对应值与所述公开GRUU第一字段的域名进行拼接,以得到所述被叫请求消息中主叫方的SIP URI;
第三替换单元903,用于用所述SIP URI替换所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU。
可选地,消息处理装置还包括:
第一响应标识转换模块100,用于当归属地S-CSCF识别到接收的响应消息为来自非GRUU终端的发起响应消息时,根据CONTACT头域所携带的所述非GRUU终端的SIP URI在所述数据库中查询获取对应的公开GRUU,并以公开GRUU替换所述发起响应消息中的消息发起方SIP URI,而后将所述发起响应消息发送至接收终端;
第二响应标识转换模块110,用于当归属地S-CSCF识别到接收的响应消息为发往非GRUU终端的接收响应消息时,按照所述非GRUU终端的第三配置策略,根据所述接收响应消息中CONTACT头域所携带的公开GRUU生成响应消息发起方对应的SIP URI,并以此SIP URI替换所述接收响应消息中的响应消息发起方的公开GRUU,而后将所述接收响应消息发送至非GRUU终端。
本发明实施例四提供的消息处理装置,易于基于现有程序进行改进,成本低,实现难度小。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种基于GRUU的消息处理方法,其特征在于,包括:
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中;
当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIPURI,而后将所述主叫请求消息发送至被叫终端;
当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至所述非GRUU终端。
2.根据权利要求1所述的消息处理方法,其特征在于,所述根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU包括:
提取所述注册请求消息中CONTACT头域所携带的SIP URI;其中,所述注册请求消息为首次注册的第二个注册请求消息;
根据SIP URI和当前状态参数生成哈希值;将所述SIP URI作为公开GRUU的第一字段、将所述哈希值作为公开GRUU的第二字段的对应值,以生成所述非GRUU终端的公开GRUU。
3.根据权利要求2所述的消息处理方法,其特征在于,所述当前状态参数为:当前时间和/或注册时间。
4.根据权利要求1或2所述的消息处理方法,其特征在于,所述根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端的SIP URI包括:
从所述主叫请求消息的CONTACT头域中提取所述非GRUU终端的SIPURI;
在数据库中查找与所述SIP URI对应的公开GRUU;
以所述公开GRUU替换所述主叫请求消息的CONTACT头域中非GRUU终端的SIP URI。
5.根据权利要求2所述的基于GRUU的消息处理方法,其特征在于,所述根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU包括:
提取所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU;
提取所述公开GRUU的第二字段,并将所述第二字段的对应值与所述公开GRUU第一字段的域名进行拼接,以得到所述被叫请求消息中主叫方的SIPURI;
用所述SIP URI替换所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU。
6.根据权利要求1所述的消息处理方法,其特征在于,还包括:
当归属地S-CSCF识别到接收的响应消息为来自非GRUU终端的发起响应消息时,根据CONTACT头域所携带的所述非GRUU终端的SIP URI在所述数据库中查询获取对应的公开GRUU,并以公开GRUU替换所述发起响应消息中的消息发起方SIP URI,而后将所述发起响应消息发送至接收终端;
当归属地S-CSCF识别到接收的响应消息为发往非GRUU终端的接收响应消息时,按照所述非GRUU终端的第三配置策略,根据所述接收响应消息CONTACT头域所携带的公开GRUU生成响应消息发起方对应的SIP URI,并以此SIP URI替换所述接收响应消息中的响应消息发起方的公开GRUU,而后将所述接收响应消息发送至非GRUU终端。
7.一种基于GRUU的消息处理装置,其特征在于,包括:
标识分配模块,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的注册请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI为非GRUU终端分配公开GRUU,并将非GRUU终端的SIP URI和公开GRUU进行对应记录到数据库中;
第一标识转换模块,用于当归属地S-CSCF识别到接收的请求消息为来自非GRUU终端的主叫请求消息时,根据CONTACT头域所携带的非GRUU终端的SIP URI在所述数据库中查询获取所述非GRUU终端对应的公开GRUU,并以该公开GRUU替换所述主叫请求消息中的CONTACT头域所携带的所述非GRUU终端SIP URI,而后将所述主叫请求消息发送至被叫终端;
第二标识转换模块,用于当归属地S-CSCF识别到接收的请求消息为发往非GRUU终端的被叫请求消息时,按照所述非GRUU终端的第一配置策略,根据所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU生成主叫方对应的SIP URI,并以该SIP URI替换所述被叫请求消息中主叫方的公开GRUU,而后将所述被叫请求消息发送至所述非GRUU终端。
8.根据权利要求7所述的基于GRUU的消息处理装置,其特征在于,所述标识分配模块包括:
第一提取单元,用于提取所述注册请求消息中CONTACT头域所携带的SIP URI;其中,所述注册请求消息为首次注册的第二个注册请求消息;
第一生成单元,用于根据SIP URI和当前状态参数生成哈希值;
第一替换单元,用于将所述SIP URI作为公开GRUU的第一字段、将所述哈希值作为公开GRUU的第二字段,以生成所述非GRUU终端的公开GRUU。
9.根据权利要求7所述的基于GRUU的消息处理装置,其特征在于,所述第一标识转换模块包括:
第二提取单元,用于从所述主叫请求消息的CONTACT头域中提取所述非GRUU终端的SIP URI;
第二查找单元,用于在数据库中查找与所述SIP URI对应的公开GRUU;
第二替换单元,用于以所述公开GRUU替换所述主叫请求消息的CONTACT头域中非GRUU终端的SIP URI。
10.根据权利要求7所述的基于GRUU的消息处理装置,其特征在于,所述第二标识转换模块包括:
第三提取单元,用于提取所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU;
第四提取单元,用于提取所述公开GRUU的第二字段,并将所述第二字段的对应值与所述公开GRUU第一字段的域名进行拼接,以得到所述被叫请求消息中主叫方的SIP URI;
第三替换单元,用于用所述SIP URI替换所述被叫请求消息中CONTACT头域所携带的主叫方的公开GRUU。
11.根据权利要求7所述的基于GRUU的消息处理装置,其特征在于,还包括:
第一响应标识转换模块,用于当归属地S-CSCF识别到接收的响应消息为来自非GRUU终端的发起响应消息时,根据CONTACT头域所携带的所述非GRUU终端的SIP URI在所述数据库中查询获取对应的公开GRUU,并以公开GRUU替换所述发起响应消息中的消息发起方SIP URI,而后将所述发起响应消息发送至接收终端;
第二响应标识转换模块,用于当归属地S-CSCF识别到接收的响应消息为发往非GRUU终端的接收响应消息时,按照所述非GRUU终端的第三配置策略,根据所述接收响应消息中CONTACT头域所携带的公开GRUU生成响应消息发起方对应的SIP URI,并以此SIP URI替换所述接收响应消息中的响应消息发起方的公开GRUU,而后将所述接收响应消息发送至非GRUU终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110452614.XA CN102572778B (zh) | 2011-12-29 | 2011-12-29 | 基于gruu的消息处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110452614.XA CN102572778B (zh) | 2011-12-29 | 2011-12-29 | 基于gruu的消息处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102572778A true CN102572778A (zh) | 2012-07-11 |
CN102572778B CN102572778B (zh) | 2014-12-24 |
Family
ID=46416994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110452614.XA Active CN102572778B (zh) | 2011-12-29 | 2011-12-29 | 基于gruu的消息处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102572778B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018240A (zh) * | 2006-02-07 | 2007-08-15 | 华为技术有限公司 | 检查通用可路由用户代理统一资源标识有效性的方法 |
CN101064940A (zh) * | 2006-04-28 | 2007-10-31 | 华为技术有限公司 | 一种实现呼叫的方法 |
CN101697619A (zh) * | 2009-09-30 | 2010-04-21 | 华为技术有限公司 | 实现寻址的方法、装置及系统 |
-
2011
- 2011-12-29 CN CN201110452614.XA patent/CN102572778B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018240A (zh) * | 2006-02-07 | 2007-08-15 | 华为技术有限公司 | 检查通用可路由用户代理统一资源标识有效性的方法 |
CN101064940A (zh) * | 2006-04-28 | 2007-10-31 | 华为技术有限公司 | 一种实现呼叫的方法 |
CN101697619A (zh) * | 2009-09-30 | 2010-04-21 | 华为技术有限公司 | 实现寻址的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102572778B (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7996541B2 (en) | Methods, systems, and computer program products for identifying a serving home subscriber server (HSS) in a communications network | |
JP4567752B2 (ja) | エマージェンシーコールを処理するための方法及び装置 | |
US8213935B2 (en) | Creating a globally unique identifier of a subscriber device | |
JP5662745B2 (ja) | 企業外の電話を企業内のユーザに関連付けるネットワーク・フレームワーク | |
EP2501097A1 (en) | Domain name processing method and domain name server | |
CN102025718B (zh) | Sip端点增强器 | |
BRPI0610718A2 (pt) | porta de numeração eletrÈnica e método e para temporariamente associar uma numeração eletrÈnica com uma dada comunicação | |
KR20120040231A (ko) | 인스턴트 메시징 서비스와 단문 메시지 서비스 간의 연동을 위한 방법 및 시스템 | |
CN101043526B (zh) | 在ims网络中处理消息的方法、装置及系统 | |
CN103338213A (zh) | 本地设备与ims网络互通的方法、系统及接入网关 | |
WO2009024076A1 (fr) | Procédé pour configurer un service et entité pour stocker une configuration de service | |
US8966091B2 (en) | Method of distinguishing a plurality of UEs sharing one PUID and a device thereof | |
US9509730B2 (en) | Method and apparatus for identifying a subscriber home domain in a communication network | |
CN101026870A (zh) | 一种实现被叫服务的方法和系统 | |
CN101426261B (zh) | 多媒体子系统业务处理的方法、p-cscf、i-cscf和多媒体子系统 | |
CN101330741A (zh) | 一种共享公共用户标识用户终端业务重定向方法 | |
CN102144379A (zh) | Tel uri处理方法和设备 | |
US8755799B1 (en) | Provisioning and using wildcarded private identity to register devices for wireless services | |
CN102572778B (zh) | 基于gruu的消息处理方法和装置 | |
JP2019016923A (ja) | Ip−pbxシステム、ip−pbx設定自動化方法およびip−pbx設定自動化プログラム | |
CN101867926A (zh) | 通过用户代理的会话初始协议注册的方法和装置 | |
KR100894906B1 (ko) | 세션 설정 프로토콜 기반의 ip 멀티미디어 서비스를제공하는 단말장치, 호 세션 제어 기능 장치 및 이를이용한 서비스 요청 송/수신 방법 | |
CN104661203B (zh) | 一种呼叫方法及设备 | |
CN102440017B (zh) | 一种为非ims终端实现ims共享公共用户标识服务的方法及装置 | |
JP3781020B2 (ja) | 論理アドレスサービス起動方法及び論理アドレス管理装置及びアプリケーション実行装置及び論理アドレスサービス管理プログラム及び論理アドレスサービス起動プログラム及び論理アドレスサービス管理プログラムを格納した記憶媒体及び論理アドレスサービス起動プログラムを格納した記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |