发明内容
有鉴于此,本发明的主要目的在于提供一种号码携带在短消息***中的实现方法和装置,无需再建设NPDB的相关设备,实现起来简单方便。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种号码携带在短消息***中的实现方法,该方法包括:
短消息中心SMSC接收到短消息后,向自身的内置号码携带数据库NPDB查询被叫用户的路由号码RN信息;
SMSC依据查询到的所述RN信息,判断所述RN信息是否指向所述SMSC所在的本地网,如果是,则所述SMSC进行短消息终呼;否则,所述SMSC根据获取到的所述RN信息,将所述短消息发送到所述RN信息指向的网络,并对所述短消息进行终呼。
其中,所述RN信息包括:号码携出网络的RN和号码携入网络的RN。
所述判断RN信息是否指向本地网为:判断所述号码携入网络的RN是否指向本地网;
将所述短消息发送到所述RN信息指向的网络为:将所述短消息发送到所述号码携入网络的RN指向的网络。
在所述SMSC向自身的内置NPDB查询被叫用户的RN信息之后,该方法进一步包括:判断所述查询是否成功,如果查询成功,则判断所述RN信息是否指向本地网;如果查询失败,则根据所述被叫用户的用户号码所属的号段,在预设的号段与RN的对应表中匹配所述被叫用户对应的号码携入网络的RN。
该方法进一步包括:对所述内置NPDB中的数据进行同步,具体为:定期将全网中全局NPDB存储的数据同步到内置NPDB中;或者,所述内置NPDB定期与其他网络的内置NPDB进行同步。
其中,对所述内置NPDB进行同步时,该方法进一步包括:对所述内置NPDB的数据进行增加、和/或删除、和/或修改、和/或更新。
本发明还提供了一种号码携带在短消息***中的实现装置,该装置包括:内置NPDB、NPDB管理模块、业务处理机和前置机;其中,
所述内置NPDB,用于存储用户的RN信息;
所述NPDB管理模块,用于到所述内置NPDB中查询所述RN信息;并将查询到的所述RN信息反馈给所述业务处理机;
所述业务处理机,用于依据查询到的所述RN信息判断RN信息是否指向本地网,得到判断结果;
所述前置机,用于依据所述判断结果,当所述RN信息指向本地网时,进行短消息终呼;当所述RN信息不指向所述本地网时,将短消息发送到所述RN信息指向的网络。
其中,所述业务处理机,还用于向所述NPDB管理模块发送查询被叫用户RN信息的消息;
相应的,所述NPDB管理模块还用于接收所述查询被叫用户RN信息的消息,并依据所述消息查询所述RN信息。
所述业务处理机还用于,在没有接收到所述NPDB管理模块返回的所述RN信息时,根据所述被叫用户的用户号码所属的号段,在预设的号段与RN的对应表中匹配所述被叫用户对应的RN信息;
相应的,该装置进一步包括:配置台,用于预设所述号段与RN的对应表,并将所述对应表同步到所述业务处理机。
所述配置台还用于,控制所述NPDB管理模块对所述内置NPDB的数据进行增加、和/或删除、和/或修改、和/或更新。
所述内置NPDB包括:NPDB物理库和NPDB内存库,用于分别存储用户的RN信息;
相应的,所述NPDB管理模块包括:NPDB物理库管理模块和NPDB内存库管理模块;
所述配置台控制所述NPDB物理库管理模块对所述NPDB物理库进行增加、和/或删除、和/或修改、和/或更新;
相应的,所述NPDB物理库管理模块控制所述NPDB内存库管理模块对所述NPDB内存库进行增加、和/或删除、和/或修改、和/或更新。
本发明提供的号码携带在短消息***中的实现方法和装置,通过建立NPDB物理库和/或内存库的方式将NPDB设置在本地网中,较佳地NPDB内置于SMSC中,如此,将查询NPDB的流程放在SMSC内部实现,使得SMSC在查询RN信息时不必出局查询,即可直接查询内置的NPDB即可得到需要的数据;同时,在内部查询NPDB也不会受到网络因素的影响,从而提高了查询及处理数据的效率。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明将NPDB设置在本地网内,较佳地将NPDB内置于SMSC中,可在SMSC内部创建一个独立的NPDB物理库,同时还可以在SMSC内部的内存库中划分出一部分区域用来建立NPDB内存库,如此将NPDB内置在SMSC中,实现起来比较简单。在应用的过程中,SMSC就可以在本地网内,通过访问NPDB物理库的数据库写入/读取(DBI/O)接口,到NPDB物理库中查询所需的信息;或者将NPDB物理库同步到NPDB内存库中,SMSC直接通过内部消息接口就可以从NPDB内存库查询到所需的信息。
本发明号码携带在短消息***中的实现方法,如图1所示,该方法包括:
步骤101,SMSC接收到短消息后,向自身的内置NPDB查询被叫用户当前签约网络对应的RN。
NPDB主要用于存储用户的NP信息,该NP信息至少包括:用户号码、号码携出网络的RN和号码携入网络的RN。其中,号码携出网络为该用户发生号码携带前所归属的网络;号码携入网络为该用户发生号码携带后所归属的网络,即当前签约的网络。
SMSC接收到一条短消息后,首先需要查询该短消息对应的被叫用户的RN信息,包括号码携出网络的RN和号码携入网络的RN。需要指出的是,针对短消息的转发,本发明只关心被叫用户当前的签约网络,由当前签约网络的SMSC针对该短消息进行终呼。因此,SMSC获取到被叫用户的RN信息后,只关心号码携入网络的RN。
具体的,SMSC通过内部消息向NPDB发送一个针对当前被叫用户RN信息的查询请求,如NPQry_Req消息,该消息中至少包含了该被叫用户的用户号码;NPDB依据所述用户号码,查找到相应的RN信息,再将该RN信息封装在查询结果中通过内部消息、如NPQry_Ack消息反馈给SMSC。
步骤102,判断查询是否成功,如果是,则执行步骤103;如果否,则执行步骤106。
较佳地,可以在查询结果中设置一个字段用来表示查询是否成功,SMSC通过读取该字段的值来判断查询是否成功。当然也可以有其他的方式来判断,如设置SMSC收到RN信息为查询成功;否则查询失败。
如果查询成功,说明SMSC获取到了该被叫用户的RN信息,说明被叫用户为号码携带用户;如果查询失败,则SMSC就无法获取到被叫用户的RN信息,即内置NPDB中没有存储该用户的RN信息,说明该被叫用户不是号码携带用户。
步骤103~104,判断获取到的RN是否指向本地网,如果是,则执行步骤104,SMSC进行终呼,当前处理流程结束;如果否,则执行步骤105。
较佳地,SMSC内部配置有一个RN与网络的对应表,该表可以加载在内存库中,每一个网络对应一个RN。一般情况下,一个网络中含有一个HLR,则RN与HLR也是一一对应的。但是,有些网络可能会含有多个HLR,此时,这些多个HLR对应一个RN,并且每个HLR对应预先设置的号段。如果SMSC由于某种原因没有从NPDB获取到被叫用户对应的RN信息时,还可以通过被叫用户的用户号码所属的号段来匹配HLR,从而匹配到相应的RN信息。具体的,SMSC由于某种原因没有从NPDB获取到被叫用户对应的RN信息的情况将在下面的步骤中进行说明。
SMSC获取到被叫用户的RN信息后,通过号码携入网络的RN来判断该RN是否指向本地网,即判断被叫用户的当前签约网络是否为本地网。具体的,可以通过查询RN与网络的对应表的方式来获知当前RN是否对应本地网,即RN是否指向本地网。如果判定RN指向本地网,说明被叫用户当前的签约网络为本地网,执行步骤104,由SMSC针对当前的短消息进行终呼;否则执行步骤105。
其中,终呼的具体流程为:SMSC向本地HLR获取进行终呼的路由;SMSC获取到本地HLR关于所述路由的响应后,进行终呼。该流程的具体实现为现有技术,此处不再赘述。
步骤105,SMSC根据获取到的RN,将短消息发送到对应的网络,当前处理流程结束。
根据步骤103关于RN是否指向本地网的判断,如果号码携入网络的RN不是指向本地网,说明被叫用户的当前签约网络不是本地网,则需要根据RN与网络的对应表,查找到该RN指向的网络,并将当前短消息经过协议的转换后发送到该RN指向的网络,由该网络对当前短消息进行终呼。由于该网络为号码携入网络的RN指向的网络,因此该网络即为被叫用户当前签约的网络,则该网络的SMSC可以针对该短消息进行终呼。其中,将短消息进行协议的转换的具体实现为现有技术,此处不再赘述。
步骤106,根据被叫用户的用户号码所属的号段匹配被叫用户当前签约网络的RN。
如果SMSC查询被叫用户的RN信息的操作失败,则需要根据被叫用户的用户号码所属的号段来匹配RN,匹配到的RN即为被叫用户当前签约网络对应的RN。
这里,造成SMSC查询被叫用户的RN信息失败的原因主要有以下两种:
1、被叫用户没有发生号码携带,内置NPDB中不会存储其对应的RN信息,如号码携出网络的RN、号码携入网络的RN,则SMSC不会获取到该被叫用户的RN信息。
2、用户发生了号码携带,但是内置NPDB发生错误,无法将用户的RN信息返回给SMSC。
当然,造成SMSC查询被叫用户的RN信息失败也可能有其他的原因,此处不再一一列举。只要SMSC没有获取到当前被叫用户的RN信息,SMSC就需要根据当前被叫用户的用户号码所属的号段来匹配RN。具体的,根据步骤103所述的RN与网络、网络中的HLR和号段的关系,可以通过查询预先配置的号段与RN的对应表来查询与当前用户号码匹配的RN。较佳地,可以将号段与RN的对应表加载在内存库中。
需要指出的是,现有技术基于外置NPDB,通过号段来匹配当前被叫用户签约网络的RN的方式获取到的RN有可能是错误的。假设网络A对应的RN为A,网络A的HLR被预先分配了特定的号段N,即该HLR管理属于该号段N的所有用户,则这些用户的归属网络、即签约网络为网络A。当属于号段N的用户a发生了号码携带,且用户a的签约网络变更为网络B,则NPDB中就需要记录用户a的NP信息,至少包括用户a的用户号码、号码携出网络的RN:A和号码携入网络的RN:B。如果此时SMSC向外置的NPDB获取用户a的RN信息,由于常见的网络繁忙或者网络处理能力瓶颈等问题,会导致SMSC没有从外置NPDB获取到用户a的RN信息,则SMSC就需要通过查询号段与RN的对应表来获取用户a的RN信息:用户a属于号段N,号段N对应的RN为A,则SMSC由此得出用户a的当前签约网络为网络A。因为当前用户a的签约网络为网络B,如果SMSC将短消息发送到网络A,则网络A就无法将短消息转发给用户a,为用户a提供服务。
但是,本发明中基于内置NPDB,SMSC不需要出局查询RN信息,不会受到常见的网络因素的影响,SMSC只需要通过内部接口,如数据库接口、消息接口等,直接向内置NPDB获取RN信息即可。本发明中,由于SMSC查询RN信息的流程和实现都是在SMSC内部进行的,因此查询RN信息失败的可能性非常小,由此出现SMSC按照RN发送短消息出错的可能性也非常小。该步骤是本发明针对SMSC由于意外而获取不到RN的情况设置的。
另外,对于用户没有发生号码携带的情况,通过号段来匹配RN时,就不会发生错误的情况,因为用户所属的号段与HLR的关系不会改变,HLR与网络的关系也不会改变,则通过用户号码所属的号段就可以匹配到正确的RN。
SMSC获取到RN后,返回执行步骤103。
一般情况下,SMSC对每一条短消息只需要查询一次内置NPDB,但是运营商同时运营多个网络,以支持网间自由行业务功能时,用户可以随意地在不同网络之间进行切换,每次切换可以理解为一次号码携带。因此SMSC在每一次终呼之前,都需要向NPDB查询被叫用户的RN信息,以确定被叫用户是否发生号码携带及其号码携入的网络。
另外,本发明还可以通过短消息中心来统计NPDB查询的相关参数,以此体现出用户使用号码携带的情况,供运营商参考。其中,统计的参数包括查询RN的次数、收到查询结果的次数和成功查询的次数等。
为了方便预付费平台对短消息用户的计费,本发明还提出了关于计费的相关实现,具体为:一般情况下,SMSC需要通过预付费扣费请求消息将主叫号码发送给预付费平台,来计算主叫用户使用相关业务的费率。具体的,预付费平台还需要根据主叫用户的签约网络来进行费率的计算。但是,实际应用中,有的预付费平台不支持NP查询功能,如果SMSC在预付费扣费请求消息中不增加RN信息,则预付费平台就无法得知该主叫用户的签约网络,也就无法计算费率,这种情况下,需要SMSC在预付费扣费请求消息中增加RN信息,以供预付费平台计算费率;而有的预付费平台支持NP查询功能,则预付费平台直接依据主叫号码就可以查找到对应的签约网络进行费率的计算。
SMSC还需要在主叫用户的话务单中添加RN信息,以用来对号码携带用户和非号码携带用户进行区别计费。例如,可以设定话务单中含有RN信息的为号码携带用户,否则为非号码携带用户。另外,话务单分拣***还可以根据需要设置是否在话务单中分拣RN信息。
为了保证内置NPDB数据的有效性和完整性,需要定期对内置NPDB进行数据同步,具体为:如果全网存在一个统一的全局NPDB,主要用于存储全网内所有用户的NP信息,则定期将全局NPDB存储的数据同步到内置NPDB中,可以采用文本接口处理的方式,通过FTP接口进行数据文件的传输;如果全网没有一个全局NPDB,则定期与其他网络的内置NPDB进行同步,这样各个网络的内置NPDB之间可以互相共享存储的数据,这种同步情况也可以采用文本接口处理的方式,通过FTP接口进行数据文件的传输。
对内置NPDB进行同步包括:对NPDB存储的数据进行增加、和/或删除、和/或修改、和/或更新等操作。
下面基于上述对内置NPDB进行数据同步的实现,来具体说明一下本发明的组网方式。
图2所示为本发明组网方式实施例一的示意图。其中,全局NPDB,主要用于存储全网用户的NP信息,这些信息的增加、和/或删除、和/或修改、和/或更新等操作由第三方管理。其他网络的NPDB,包括内置的NPDB和外置的NPDB都需要定期从全局NPDB中进行数据同步。
如图2所示,网络1没有NPDB,则其SMSC1需要查询RN信息时,只能从全局NPDB查询;网络2有一个外置的NPDB,在SMSC2查询RN信息时,需要从外置NPDB查询。这两种查询方式都需要SMSC出局查询,如此容易受到网络因素的影响,查询的失败率会比较高。
图2中网络3到网络n采用了本发明内置NPDB的方式。内置NPDB定期的从全局NPDB进行数据同步,保持用户信息的有效性和完整性。较佳地,内置NPDB与全局NPDB之间采用FTP接口,当全局NPDB中的NP信息发生变化时,全局NPDB将变化的NP信息写入数据库文件;内置NPDB定时通过FTP接口下载数据库文件,更新自身的NP信息。在SMSC3或SMSCn在查询RN信息时,可以直接到对应的内置NPDB去查询,不用出局查询,这样不会受到网络因素的影响,大大降低了查询出错的机率。
图3所示为本发明组网方式实施例二的示意图。在该组网方式中,不存在全局NPDB,各个网络内置NPDB之间共享存储的NP信息。较佳地,各个网络中的内置NPDB通过组成FTP文件顺序发送环的方式进行NP信息的同步。当某一个内置NPDB存储的数据发生变化时,如RN信息发生了变化,则该内置NPDB对应的SMSC将该变化的NPDB写入一个数据库文件,然后将该数据库文件依据配置信息发送给下一级SMSC,该SMSC依据数据库文件更新自身的内置NPDB,同时依据配置数据将该数据库文件发送给自身的下一级SMSC,直到全网的各个网络中的内置NPDB都进行了更新。
例如:当SMSC1的内置NPDB1中的RN信息发生变化后,SMSC1将变化的RN信息写入对应的数据库文件1,并通过FTP的方式将数据库文件1发送给它的下一级SMSC2。需要指出的是,数据库文件1中存储了生成该数据库文件的SMSC的编号,如SMSC1。并且,当前SMSC可以根据数据库文件的配置数据得到自身的下一级SMSC的编号。
SMSC2定时检测FTP目录,根据检测到的数据库文件1,将变化的RN信息更新到自身的内置NPDB2;SMSC2通过配置数据可以得知数据库文件1的接收方为SMSC3,所以SMSC2通过FTP的方式将数据库文件1发送给自身的下一级SMSC3;而数据库文件1的文件名中SMSC的编号仍然为SMSC1。
后续的SMSC操作与SMSC2相同,直到SMSCn。SMSCn定时检测FTP目录,根据检测到的数据库文件1,将变化的RN信息更新到自身的内置NPDBn;同时,SMSCn通过配置数据可以得知数据库文件1的接收方为SMSC1,而数据库文件1的文件名中,SMSC的编号也为SMSC1,所以SMSCn不再将数据库文件1进行FTP传送。如此,全网中各个网络的内置NPDB就完成了针对该变化的RN信息的同步。
为了实现上述号码携带在短消息***中的实现方法,本发明还提供了一种号码携带在短消息***中的实现装置,该装置应用在SMSC中,如图4所示,本发明中的SMSC40包括:内置NPDB41、NPDB管理模块42、业务处理机43和前置机44,其中,
内置NPDB41,用于存储用户的RN信息;
NPDB管理模块42,用于到内置NPDB41中查询RN信息;并将查询到的RN信息反馈给业务处理机43;
业务处理机43,用于依据查询到的RN信息判断RN信息是否指向本地网,得到判断结果;
前置机44,用于依据判断结果,当RN信息指向本地网时,进行短消息终呼;当RN信息不指向本地网时,将短消息发送到RN信息指向的网络。
其中,业务处理机43,还用于向NPDB管理模块42发送查询被叫用户RN信息的消息;
相应的,NPDB管理模块42还用于接收查询被叫用户RN信息的消息,并依据该消息查询RN信息。
另外,业务处理机43还用于,在没有接收到NPDB管理模块42返回的RN信息时,根据被叫用户的用户号码所属的号段,在预设的号段与RN的对应表中匹配被叫用户对应的RN信息;
相应的,SMSC40进一步包括:配置台45,用于预设号段与RN的对应表,并将对应表同步到业务处理机43,供业务处理机43使用。其中,配置台45可以通过FTP接口将对应表同步到业务处理机43中。
配置台45还用于,控制NPDB管理模块42对内置NPDB41的数据进行增加、和/或删除、和/或修改、和/或更新等操作。
另外,本发明的内置NPDB41可以包括:NPDB物理库411和NPDB内存库412,用于分别存储用户的RN信息。其中,NPDB物理库411可以采用现有的数据库开发软件在SMSC内部创建;NPDB内存库412可以通过在SMSC内部的内存库中划分出一部分区域来创建。需要指出的是,NPDB管理模块42即可以直接到NPDB物理库411中查询RN信息,也可以直接从NPDB内存库412中查询RN信息,但是通过内存读取信息比直接访问物理库读取信息的速度有很大的提升。
相应的,NPDB管理模块42包括:NPDB物理库管理模块421和NPDB内存库管理模块422。其中,NPDB物理库管理模块421可以采用DBI/O模块;NPDB内存库管理模块422可以采用公用数据库加载查询模块(GDB,GlobalDate Base)。
另外,用户还可以通过配置台45查询、和/或增加、和/或删除、和/或修改、和/或更新内置NPDB41存储的数据:当通过配置台45查询数据时,配置台45发送消息通知NPDB物理库管理模块421将所需数据从NPDB物理库411读出并反馈,显示在配置台45上;当增加、和/或删除、和/或修改、和/或更新内置NPDB41存储的数据时,配置台45可以控制NPDB物理库管理模块421对NPDB物理库411进行增加、和/或删除、和/或修改、和/或更新等操作;同时,NPDB物理库管理模块421控制NPDB内存库管理模块422对NPDB内存库412进行增加、和/或删除、和/或修改、和/或更新等操作。其中,配置台45与NPDB物理库管理模块421之间是消息接口,可以采用浏览器/服务器(B/S)的架构,或者客户端/服务器(C/S)的架构;NPDB物理库管理模块421与NPDB物理库411之间是数据库接口;NPDB物理库管理模块421与NPDB内存库管理模块422之间是消息接口,NPDB内存库管理模块422与NPDB内存库412之间是消息接口。
在查询RN信息时,业务处理机43发送查询被叫用户RN信息的消息给NPDB内存库管理模块422;由NPDB内存库管理模块422到NPDB内存库412中查询RN信息,并将查询到的RN信息返回给业务处理机43。本发明中基于NPDB内存库412的方式,在进行查询、和/或增加、和/或删除、和/或修改、和/或更新等操作时的效率更高。
需要指出的是,正常情况下,只要设备不掉电,NPDB内存库412都是存在的。为了防止设备异常掉电,本发明的装置做了如下保护:
当NPDB内存库管理模块422启动时,发现NPDB内存库412未建立,则NPDB内存库管理模块422会通过数据库接口从NPDB物理库411中读取数据,并加载到NPDB内存库412中。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。