CN106060181A - 号码字典 - Google Patents
号码字典 Download PDFInfo
- Publication number
- CN106060181A CN106060181A CN201610028014.3A CN201610028014A CN106060181A CN 106060181 A CN106060181 A CN 106060181A CN 201610028014 A CN201610028014 A CN 201610028014A CN 106060181 A CN106060181 A CN 106060181A
- Authority
- CN
- China
- Prior art keywords
- numsubsvr
- dicagent
- hcode
- telephone number
- nms
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Abstract
本发明公开一种号码字典,包括调度服务器(DSvr),号码映射系统(NMS),以及多个字典代理(DicAgent)。所述NMS用于登记相应号码的相关属性信息。所述DSvr用于接收字典访问请求,选择合适的DicAgent,向访问请求者返回所选DicAgent的连接信息。所述DicAgent用于接收查询命令,将所述查询命令发送给NMS,由NMS来处理,并将NMS返回的处理结果回复给查询请求者。按照本发明实现的号码字典,由于简化了访问接口,便于对访问进行控制,因此,有助于运营管理。
Description
技术领域
本发明涉及互联网技术领域,更确切地说涉及互联网中的号码字典实现方法。
背景技术
很多邮箱系统都提倡使用手机号码注册邮箱,例如,中国移动的139信箱,网易的163信箱等等。在移动终端中,要根据一个手机号码发送邮件,就需要知道根据该手机号码注册的邮箱属于哪个ISP的邮箱系统。但是,实际当中,用户并不是都知道自己号码簿中每一个号码对应的邮箱地址。
还有,移动即时通信系统,例如微信、易信、陌陌等等,一般提供号码簿匹配功能,能匹配出号码簿中哪些号码使用了相同的系统,其一般实现过程是这样的,在微信系统的服务器侧,登记了那些参与匹配的微信用户的手机号码,当一个微信用户提出匹配请求时,微信客户端将该用户的手机号码簿号码发送给服务器侧,服务器侧根据这些号码,查找参与匹配的微信用户的手机号码,对于查找到的号码,返回客户端匹配成功标志。但是,微信的号码匹配功能无法识别出号码簿中那些注册易信的相应用户,同样,微信的号码匹配功能无法识别出号码簿中那些注册陌陌的相应用户。在易信和陌陌互联互通环境下,在进行号码匹配时,就需要易信的客户端能够确认那些在陌陌注册的相应用户。虽然,让易信访问陌陌的服务器侧,可以确认哪些号码簿用户在陌陌注册了账户,但这不利于扩展,例如,将来易信还要和微信互通,以及还要和米聊互通,等等。
按照电话号码到URI的映射(ENUM,E.164Number URI Mapping)协议,可以将一个E.164格式的电话号码转换为一个域名。ENUM协议定义了基于域名系统(DNS,Domain Name System),将E.164电话号码映射到URI的体系结构和协议。基于ENUM,可以根据一个电话号码获取该电话号码的URI信息,从而,可以满足上述需求。
但是,对于运营中的即时通信服务器(IMSvr,IM Server),例如陌陌的服务器,来说,如果让该IMSvr直接基于ENUM访问DNS,除了效率低之外,也不利于DNS的运营管理。
例如,一般地,所述DNS由多家电信运营商承建,让一个IMSvr访问多家运营商的分别承建的DNS,对DNS运营(接入费用,安全性等等方面)是一个挑战。
按照申请号为201310700473.8的《电话号码映射方法》发明专利实现的号码字典,也可以满足上述需求。
但是,对于运营中的IMSvr来说,如果让该IMSvr直接访问所述号码字典,需要该IMSvr直接访问太多的号码存储设备。这样做,既不利于简化IMSvr的接口,也不利于所述号码字典的运营管理。
例如,让IMSvr直接访问所述号码字典,各个IMSvr需要了解号码字典的访问规则,各个子字典的访问控制如何实现?如何防护攻击,等等。
关于ENUM的更多描述,参见RFC2916文档中关于E.164号码与域名系统(E.164Numberand DNS)的相关内容,本发明不再进行赘述和转摘。
发明内容
有鉴于此,本发明公开了一种号码字典,包括:调度服务器(DSvr),号码映射系统(NMS),以及多个字典代理(DicAgent)。按照本发明实现的号码字典,由于简化了访问接口,便于对访问进行控制,因此,有助于运营管理。
所述号码字典包括:包括:调度服务器(DSvr),号码映射系统(NMS),以及多个字典代理(DicAgent);其特征在于,所述NMS用于登记相应号码的相关属性信息;
所述DSvr用于接收字典访问请求,选择合适的DicAgent,向访问请求者返回所选DicAgent的连接信息;
所述DicAgent用于接收查询命令,将所述查询命令发送给NMS,由NMS来处理,并将NMS返回的查询结果回复给查询请求者。
可选地,所述DSvr保存了相应DicAgent的地理信息(GI)数据;
所述字典访问请求中携带了相应请求者的GI数据,所述DSvr根据访问请求者的GI数据来选择合适的DicAgent。
可选地,所述NMS包括多个号码存储设备(NumSubSvr);建立归属码(HCode)与相应NumSubSvr的对应关系;
所述DicAgent在收到查询命令后,根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr;所述的“将所述查询命令发送给NMS,由NMS来处理,并将NMS返回的查询结果回复给查询请求者”进一步是:将所述查询命令发送给所确定的NumSubSvr,由该NumSubSvr来处理,并将NumSubSvr返回的查询结果回复给查询请求者。
可选地,所述建立HCode与相应NumSubSvr的对应关系直接是在DicAgent中完成;
所述的“根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr”是指:用该查询命令中携带的目的号码匹配所建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr。
可选地,所述建立HCode与相应NumSubSvr的对应关系是在DNS中完成;
所述的“根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr”是指:根据该查询命令中携带的目的号码的HCode,得到对应的归属域名,解析该归属域名,得到对应NumSubSvr的IP地址。
一种DicAgent,包括:通信模块和处理模块;其特征在于,
所述通信模块用于接入NumSubSvr,以及接收来自IP网络的携带了目的号码的查询请求;
所述处理模块用于根据所述查询请求中的目的号码,确定对应的NumSubSvr,向所确定的NumSubSvr发送查询命令,并将接收自相应NumSubSvr的查询回复消息发送给相应的查询请求者。
可选地,在DicAgent中,还设置存储模块,用于保存HCode与相应NumSubSvr的对应关系;
所述“根据所述查询请求中的目的号码,确定对应的NumSubSvr”是指:用所述目的号码匹配所述HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr。
可选地,所述“根据所述查询请求中的目的号码,确定对应的NumSubSvr”是指:根据所述目的号码的HCode产生归属域名,解析该归属域名,得到对应NumSubSvr的IP地址。
一种批量查询方法,所述方法包括如下步骤:
a、将对应的NumSubSvr相同的电话号码选出;
b、将选出的电话号码的指示信息打包,向NumSubSvr发送查询请求。
可选地,步骤a进一步是:从电话号码列表中第一个电话号码开始,选择对应的NumSubSvr的IP地址相同的连续的N个电话号码;相应地,步骤b进一步是:将所选出的N个电话号码的指示信息打包,按照所述NumSubSvr的IP地址,向该NumSubSvr发送查询请求。
本发明提出的号码字典,能够满足部署灵活性要求、最优接入要求、接口简化要求、访问控制简化要求,方便了IMSvr的接入访问,因此,可以满足各种即时通信系统,例如陌陌、易信,以及小米等等即时通信产品间互联互通时,对于号码信息访问的需要。
附图说明
图1所示,为本发明号码字典的一个实例图。
图2所示,为基于分布式NMS的号码字典实例图。
图3所示,为本发明NumSubSvr组成图。
图4所示,为本发明DicAgent组成图。
具体实施方式
本发明提出一种号码字典,包括:一个调度服务器(DSvr,Dispatch Server),一个号码映射系统(NMS,Number Mapping System),以及一个或多个字典代理(DicAgent,DictionaryAgent)。
DicAgent与NMS建立有通信连接。通过该通信连接,对NMS进行读或写操作。
NMS将处理结果回复给DicAgent,DicAgent将NMS回复的处理结果发送给请求者。
所述DicAgent连接到IP网络,以接收来自IP网中相应请求者发送的关于字典维护的业务操作命令。所述DicAgent在收到一个所述的业务操作命令后,将所述业务操作命令发送给NMS,由NMS来处理。所述NMS将处理结果回复给所述DicAgent,该DicAgent将NMS回复的处理结果发送给所述请求者。
所述业务操作命令分为:登记、注销、修改、查询等等。表现为对字典数据信息的增加、删除、修改、查询等等。
如图1所示,为本发明号码字典的一个实例图。在该图中,包括一个DSvr,一个NMS,以及三个DicAgent:DicAgent-A、DicAgent-B、DicAgent-C。
所述DSvr连接到IP网络,以接收字典访问请求。DSvr在接收到一个字典访问请求后,选择合适的DicAgent,向请求者返回相应DicAgent的连接信息。
在DSvr中,设置有存储模块,用于保存了相应DicAgent的连接信息;以及设置有通信模块,用于连接到IP网络,以接收来自IP网络的字典访问请求。
在DSvr中,还设置业调度模块。DSvr在接收到字典访问请求后,是由业务调度模块选择合适的DicAgent,将该DicAgent的连接信息回复给访问请求者。
本发明以所述DicAgent的连接信息是相应DicAgent的IP地址为例,但不用于限定。
一、DSvr可以根据访问请求者的IP地址来选择合适的DicAgent
例如,根据访问请求者的IP地址所在区域,选择较易访问的DicAgent,例如,按照就
近接入原则,可以将距离所述访问请求者最近的DicAgent作为所述合适的DicAgent。
一般地,可以用所述访问请求者的IP地址匹配各个DicAgent的IP地址,将最佳匹配者作为选择结果返回给所述访问请求者。例如,选择与访问请求者的IP地址最近的DicAgent。更多描述,参见申请号为201410098231.0的《基于半永久地址的消息发送方法》发明专利中所提到的域名智能解析方法。这里不再赘述。
本发明特别推荐DSvr采用辅助解析方法来确定合适的DicAgent。
为了更加精确和灵活地控制号码字典的接入,较佳地,DSvr根据访问请求者的地理信息(GI,Geographic Information)数据来选择合适的DicAgent。
二、DSvr根据访问请求者的GI数据来确定合适的DicAgent
后面以{所述GI数据包括相应的区域信息(AI,Area Information)和经纬度数据,以及所述AI是国家码}为例,但不用于限定。
例如:在DSvr保存如表9所示的DicAgent描述表:
表9
IP | AI | Longitude | Latitude | Remark |
北京DicAgent的IP地址 | 86 | 相应的经度数据 | 相应的纬度数据 | |
广州DicAgent的IP地址 | 86 | 相应的经度数据 | 相应的纬度数据 | |
上海DicAgent的IP地址 | 86 | 相应的经度数据 | 相应的纬度数据 | |
成都DicAgent的IP地址 | 86 | 相应的经度数据 | 相应的纬度数据 | |
深圳DicAgent的IP地址 | 86 | 相应的经度数据 | 相应的纬度数据 | |
河内DicAgent的IP地址 | 84 | 相应的经度数据 | 相应的纬度数据 | |
首尔DicAgent的IP地址 | 82 | 相应的经度数据 | 相应的纬度数据 | |
德里DicAgent的IP地址 | 91 | 相应的经度数据 | 相应的纬度数据 |
在表9中,针对一个DicAgent的IP地址保存对应GI数据。
按照如表9所示的DicAgent描述表,用如下实例来展示一个调度流程:
步骤101、访问请求者根据相应DSvr的IP地址,发送辅助解析请求,请求中包括该访问请求者的AI,以及经度数据和纬度数据。
步骤102、DSvr接收辅助解析请求,根据所述辅助解析请求中携带的AI,从DicAgent描述表中查找匹配的记录;然后再根据所述辅助解析请求中携带的经纬度数据,从所述匹配的记录中选择距离最近DicAgent的IP地址。由于根据两点的经纬度数据,计算两点间的距离是成熟技术,因此,这里不再赘述。
步骤103、将所选择的DicAgent的IP地址回复给所述访问请求者。
例如,所述辅助解析请求中携带的经纬度数据值取自广西南宁,则所述辅助解析请求中携带的GI数据为AI值86,以及南宁某一点的经纬度数据。DSvr在选择合适的DicAgent的IP地址时,先根据所述辅助解析请求中携带的AI值86,从如表9所示的DicAgent描述表中获取匹配的IP地址记录,得到北京DicAgent的IP地址记录,广州DicAgent的IP地址记录,上海DicAgent的IP地址记录,成都DicAgent的IP地址记录,以及深圳DicAgent的IP地址记录。然后再根据所述辅助解析请求中携带的经纬度数据,从这些IP地址记录中确定距离最近的IP地址。由于广州距离南宁最近,因此,最终确定的解析结果为广州DicAgent的IP地址。这样,DSvr将广州DicAgent的IP地址作为选择结果回复给访问请求者。这样,访问请求者就可以根据广州DicAgent的IP地址访问该广州的DicAgent,从而实现对所述NMS的维护,也即对电话号码字典的访问。例如,查询一个号码对应的域标识信息,或者登记一个号码对应的域标识信息。
关于辅助解析方法的更多描述参见申请号为201410765289.6的《辅助解析方法》发明专利。这里不一一穷举DSvr可以采用的辅助解析方法实例。
实际当中,在部署号码字典时,可以在DNS中,将号码字典的域名(例如teldic.com)指向号码字典中DSvr的IP地址或主机名,这样,在步骤101之前,所述访问请求者可以通过解析号码字典的域名,来获取相应DSvr的IP地址。
一般地,所述访问请求者为相应IMSvr,例如,陌陌或易信的服务器。
在根据一个IP地址访问一个主机设备时,一般地根据获得的端口号,或约定的统一端口号进行访问。当没有约定统一端口号时,可以在如表9所示的DicAgent描述表中进一步保存各个DicAgent对应的端口号。后面不再就此类情况赘述。
所述NMS用于登记相应号码的相关属性信息。
在NMS中,设置有存储模块,用于保存相应号码的相关属性信息;以及设置有通信模块,用于接入到IP网络,以接收来自DicAgent的访问请求。
在NMS中,还设置处理模块。NMS在接收到来自DicAgent的查询请求后,由处理模块处理该查询请求,将处理结果回复给该DicAgent。
所述通信模块还进一步用于接收登记请求者,例如DicAgent,发送的携带相应电话号码的指示信息和相关属性信息的登记请求。相应地,所述处理模块还用于处理由所述通信模块接收的登记请求:在所述存储模块中,根据相应登记请求中携带的电话号码的指示信息保存所述携带的相关属性信息。
在NMS中,可以直接根据相应号码保存该号码的相关属性信息。所述相关属性信息可以是相应电话号码对应的统一资源标识(URI,Uniform Resource Identifier)或其它任何描述信息。
例如,所述相关属性信息可以是对应电话号码的转向目的,例如该转向目的是一个E-mail地址。
还例如,所述相关属性信息是对应电话号码所对应的通信终端的描述信息,例如,是该通信终端的IP地址。
还例如,所述相关属性信息可以直接是域名,例如,易信的域名yixin.im,陌陌的域名immomo.com或米聊的域名miaoliao.com或微信的域名weixin.qq.com等等。例如,用户根据一个电话号码在陌陌服务器里注册了账户,则,该域名可以是immomo.com。
还例如,所述相关属性信息可以是相应电话号码所对应的互联网帐户对应的驻地码(RCode,Residence Code)信息。关于RCode的更多描述,参见申请号为201410098231.0的《基于半永久地址的消息发送方法》发明专利,以及申请号为201410116253.5的《基于半永久地址的消息发送方法》发明专利。
还例如,一个号码的属性信息可能包括多项,例如,一个号码的属性信息包括域名信息和RCode信息。这种情况下,所述相关属性信息是域名和RCode。
以所述相关属性信息是域名为例,参见如表1所示的号码和域名对应关系表。
表1
MSISDN | 域名 | Remark |
8613923812345 | yixin.im | 易信中国用户 |
8613316882223 | immomo.com | 陌陌中国用户 |
84903441338 | miliao.com | 米聊越南用户 |
85291234567 | yixin.im | 易信香港用户 |
919310598991 | immomo.com | 陌陌印度用户 |
按照如表1所示的号码和域名对应关系表,可以根据一个手机号码,查询相应的域名,以确定该手机号码对应的用户在那个ISP中注册了账户。
例如,查询请求者向相应的DicAgent发送携带目的号码的查询请求,该DicAgent接收该查询请求后,根据所述目的号码,向NMS发送查询请求,请求中携带了所述目的号码。NMS收到该查询请求后,按照如表1所述的号码和域名对应关系表,根据所述目的号码查找对应的域名,将查找到的域名返回给相应的DicAgent,该DicAgent将查询结果回复给所述查询请求者。
所述查询请求者,也可以直接是一些即时通信的客户端。
一般地,所述查询请求者为相应IMSvr,例如,陌陌或易信的服务器。
例如,相应即时通信客户端向IMSvr发送查询请求,请求中携带目的号码,该IMSvr收到该请求后,向DicAgent发送查询请求,请求中携带所述目的号码。相应DicAgent接收该查询请求,向NMS发送查询请求,请求中携带了所述目的号码。NMS收到该查询请求后,按照如表1所述的号码和域名对应关系表,根据所述目的号码查找对应的域名,将查找到的域名返回给相应的DicAgent;该DicAgent收到所述返回消息后,将查询结果回复给所述查询请求者,即所述IMSvr,由该IMSvr将查询结果发送给相应客户端。
实际当中,所述相关属性信息还可以包括RCode。这种情况下,通过加入RCode字段,来扩展如表1所述的号码和域名对应关系表,可以得到如表1-1所示的号码描述表。
表1-1
在该号码描述表里,可以根据电话号码来保存对应的域名信息和RCode信息。
这样,在根据一个电话号码查询号码字典时,号码字典将该电话号码对应的域名信息和RCode信息都回复给查询请求者。
下面以所述相关属性信息是域名为例举例说明,但不用于限定。
考虑到全球手机号码有数十亿之多,并且还在继续增长,因此,将所有手机号码的映射数据存放到一个表中,或者存放到一个设备中,很难满足访问效率、数据安全性等等多方面的需求,因此,一般地,NMS应是一个分布式系统。
所述NMS可以直接是基于ENUM部署的DNS系统。
考虑到ENUM协议具有相应缺陷,参见所述《电话号码映射方法》发明专利所述,实际当中,较佳地,NMS是按照申请号为02146090.6的《一种通过数据信息关键域存储和读取数据信息的方法》发明专利中提到的方法所实施的存储系统,或者是所述《电话号码映射方法》发明专利中提到的号码字典。
在本发明里,所述NMS包括N个号码存取设备(NumSubSvr,Number Subserver)。其中N是任意正整数。一般地所述N大于1。
如图2所示,为基于分布式NMS的号码字典实例图。该图的虚线圈中为分布式NMS,其中包括了3个NumSubSvr:NumSubSvr-1、NumSubSvr-2、NumSubSvr-3。
一个NumSubSvr由存储模块,通信模块,处理模块组成,参见图3所示的NumSubSvr组成图。
所述存储模块用于根据相应电话号码的指示信息保存相关属性信息。
所述通信模块用于连接IP网,接收相应DicAgent发送的携带相应电话号码的指示信息的查询请求。
所述处理模块用于处理由所述通信模块接收的查询请求:根据相应查询请求中携带的所述电话号码的指示信息,查询所保存的该电话号码的相关属性信息,将查询结果经由所述通信模块回复给相应的DicAgent。
所述通信模块还进一步用于接收登记请求者发送的携带相应电话号码的指示信息和相关属性信息的登记请求。相应地,所述处理模块还用于处理由所述通信模块接收的登记请求:在所述存储模块中,根据相应登记请求中携带的电话号码的指示信息保存所述携带的相关属性信息。
本发明里,将一个电话号码划分成归属码(HCode,Home Code)和用户码(UCode,UserCode)两部分。一般地,所述HCode用于指示该电话号码归属的NumSubSvr。
所述HCode可以是对电话号码按照一定算法进行摘要计算得到的一个摘要,相应的,UCode可以是该电话号码本身。
一般地,所述HCode是电话号码的首部若干位号码,对应的UCode是电话号码中除去相应HCode之后的部分。本发明以此为例,但不用于限定。
例如,对于中国的手机号码+86-13923812345或8613923812345来说,若HCode为8,则相应的UCode为613923812345;若HCode为86,则相应的UCode为13923812345;若HCode为861,则相应的UCode为3923812345。
在所述NMS中,基于上述对电话号码的划分,来建立所述电话号码与相关属性信息的对应关系。也即,先建立电话号码对应的HCode与相应NumSubSvr的对应关系,才在相应的NumSubSvr中建立该电话号码与其相关属性信息的对应关系。
实际当中,先所述建立HCode与相应NumSubSvr的对应关系,而后在相应NumSubSvr中建立该HCode对应的电话号码与该电话号码的相关属性信息的对应关系。
按照所述建立的HCode与相应NumSubSvr的对应关系,DicAgent可以根据一个电话号码的HCode来确定对应的NumSubSvr。
后面以所述建立HCode与相应NumSubSvr的对应关系是建立HCode与相应NumSubSvr的连接信息的对应关系为例,并以所述NumSubSvr的连接信息是该NumSubSvr的IP地址为例,但不用于限定。
这样,根据一个HCode,按照建立的HCode与相应NumSubSvr的对应关系可以确定对应的NumSubSvr的IP地址。
一般地,在运营过程中,NumSubSvr中相关电话号码的相关属性信息的登记、注销、查询由相应的IMSvr发起。
例如,以{在NMS中,也即,在相应NumSubSvr中,根据一个电话号码中只保存一条记录}为例,由IMSvr发起的业务命令的执行一般包括如下几个步骤:
步骤11、所述IMSvr将相关业务命令发送给接入的DicAgent,所述业务指令中携带了目的号码。
步骤12、所述DicAgent收到所述业务命令后,根据所述业务命令中携带的目的号码,按照所述建立的HCode与相应NumSubSvr的对应关系,得到相应NumSubSvr的IP地址,按照所得到的IP地址,向相应的NumSubSvr发送相应的业务指令,该业务指令中携带了所述目的号码的指示信息。
步骤13、所述NumSubSvr在收到所述业务指令后,按照所述指示信息完成相应业务操作,并将操作结果发送给所述DicAgent,由所述DicAgent将所述操作结果回复给所述IMSvr。
所述业务是对一个电话号码的相关属性信息的登记、或注销、或者查询。
以在NumSubSvr中登记一个电话号码的相关属性信息为例。
步骤a11,IMSvr向DicAgent发送登记请求,登记请求中包括所述电话号码和相应的属性信息。
步骤a12、DicAgent收到所述登记请求后,根据所述电话号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,得到对应的IP地址,根据所得到的IP地址,向对应的NumSubSvr发送登记请求,该登记请求中包括所述电话号码的指示信息和相应的属性信息。
步骤a13、所述NumSubSvr收到所述登记请求后,根据该登记请求中携带的所述电话号码的指示信息保存登记请求中携带的相应属性信息;将执行结果回复给DicAgent。
步骤a14、所述DicAgent将执行结果回复给所述IMSvr。
在步骤a13中,在根据所述电话号码的指示信息保存登记请求中携带的相应属性信息时,先根据所述电话号码的指示信息查找对应的记录,如果查找到对应的记录,则用所述携带的属性信息覆盖该记录的相应属性字段。如果没有查到对应的记录,则根据该电话号码新增记录,在该新增记录里,保存所述携带的属性信息。
以在NumSubSvr中注销一个电话号码的相关属性信息为例。
步骤d11,IMSvr向DicAgent发送注销请求,注销请求中包括所述电话号码。
步骤d12、DicAgent收到所述注销请求后,根据所述电话号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,得到对应的IP地址,根据所得到的IP地址,向对应的NumSubSvr发送注销请求,该注销请求中包括所述电话号码的指示信息。
步骤d13、所述NumSubSvr收到所述注销请求后,根据该注销请求中携带的所述电话号码的指示信息确定要删除的记录,将所确定的记录删除;将执行结果回复给DicAgent。
步骤d14、所述DicAgent将执行结果回复给所述IMSvr。
以查询一个电话号码的相关属性信息为例。
步骤q11,IMSvr向DicAgent发送查询请求,查询请求中包括所述电话号码。
步骤q12、DicAgent收到所述查询请求后,根据所述电话号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,得到对应的IP地址,根据所得到的IP地址,向对应的NumSubSvr发送查询请求,该查询请求中包括所述电话号码的指示信息。
步骤q13、所述NumSubSvr收到所述查询请求后,根据该查询请求中携带的所述电话号码的指示信息查询相关属性信息;将执行结果回复给DicAgent。
步骤q14、所述DicAgent将执行结果回复给所述IMSvr。
本发明中,称用户名为电话号码的email地址为叠加影码email地址,简称影码email地址。
以所述相关属性信息包括了域名为例,在根据一个手机号码,查询号码字典得到对应的域名后,就得到了该电话号码对应的影码email地址。
在互联网中,每个账户都有一个账户地址(AccoAddr,Account Address),以用于账户寻址。
实际当中,一个影码email地址对应了一个AccoAddr。例如,手机号码8613316882015与域名yixin.im对应的影码email地址8613316882015@yixin.im,为易信服务域里电话号码8613316882015对应的易信账户的AccoAddr,在互联网中根据该地址可以确定对应的易信账户。
由于根据一个电话号码,可以在多个服务域中注册账户,因此,一个电话号码就可以对应互联网中多个账户地址。例如,根据电话号码8613316882015分别在易信和米聊中注册账户,对应的账户地址分别为8613316882015@yixin.im和8613316882015@miliao.com。
这种情况下,可以在NMS中,也即,在相应NumSubSvr中,根据一个电话号码,可以保存多条记录,以分别对应不同的互联网账户。
这种情况下,在步骤a13中,在根据所述电话号码的指示信息保存登记请求中携带的相应属性信息时,先根据所述电话号码的指示信息与相应域名信息查找对应的记录,如果查找到对应的记录,则:用所述携带的属性信息覆盖该记录的相应属性字段,或者在仅有域名信息一个属性时直接结束。如果没有查到对应的记录,则根据该电话号码新增记录,在该新增记录里,保存所述携带的属性信息。这里,所述携带的属性信息中包括所述域名信息。
这种情况下,在步骤d13中,可能出现根据一个电话号码一次注销多条记录的情况。
这种情况下,在步骤q13中,在根据该查询请求中携带的所述电话号码的指示信息查询相关属性信息时,可能会查询出多条记录,这样,回复给DicAgent的查询结果中就会包括多条记录的相关信息。
实际当中,一般地,一个IMSvr只被授权注销NumSubSvr中与该IMSvr有关的记录。因此,一般地,在步骤d12中,所示注销请求中进一步包括所述IMSvr对应的域名。这种情况下,一般地,在步骤d11中,所述注销请求中也进一步包括一个域名。相应地,在步骤d13中,所述NumSubSvr收到所述注销请求后,根据该注销请求中携带的所述电话号码的指示信息和所述域名确定要删除的记录,将所确定的记录删除;将执行结果回复给DicAgent。当然,这种情况下,如果所述注销请求中没有携带相应域名信息,则可以将该电话号码对应的所有记录都删除。
如果不考虑两个HCode指向同一个NumSubSvr的情况,即不考虑两个HCode对应的电话号码的相关属性信息存放在同一个NumSubSvr中的情况,则在一个NumSubSvr中保存相应电话号码的相关属性数据时,只需要根据该电话号码的UCode部分来保存即可。这种情况下,所述电话号码的指示信息是该电话号码的UCode部分。
出于部署极端灵活性方面考虑,一般地,在NumSubSvr中,根据电话号码本身保存对应的属性信息,这种情况下,所述电话号码的指示信息是该电话号码本身。
下面举两类方式来建立一个HCode与相应NumSubSvr的对应关系。
方式一、直接方式
直接建立各个HCode与相应NumSubSvr连接信息的对应关系。
这种情况下,一般地,直接在DicAgent中保存所述对应关系。例如,直接在DicAgent设置如表2所示的HCode描述表,通过该表来保存所述对应关系。
表2
HCode | IP地址 | Remark |
1347 | NumSubSvr-us的IP地址 | 美国 |
8498 | NumSubSvr-vn的IP地址 | 越南 |
86133 | NumSubSvr-cn10的IP地址 | 中国北京 |
86136 | NumSubSvr-cn20的IP地址 | 中国广州 |
86139 | NumSubSvr-cn21的IP地址 | 中国上海 |
86189 | NumSubSvr-cn28的IP地址 | 中国成都 |
91978 | NumSubSvr-in的IP地址 | 印度 |
按照HCode与相应NumSubSvr的对应关系,在各个NumSubSvr中,保存相应电话号码的属性信息。
例如,按照如表2所示的HCode描述表,对于中国北京的NumSubSvr,即NumSubSvr-cn10来说,存放以86133开头的手机号码对应的相关属性信息;对于中国广州的NumSubSvr,即NumSubSvr-cn20来说,存放以86136开头的手机号码对应的相关属性信息。同样,对于越南的NumSubSvr,即NumSubSvr-vn来说,存放以8498开头的手机号码对应的相关属性信息。
用一个HCode匹配如表2所示的HCode描述表,来确定对应NumSubSvr的IP地址。
例如,当DicAgent收到一个查询请求者,例如IMSvr,发送的号码查询请求后,进入如下流程:
步骤201、所述DicAgent用所述查询请求中携带的目的号码,匹配如表2所示的HCode描述表,确定对应NumSubSvr的IP地址。
步骤202、所述DicAgent根据确定的IP地址,向对应的NumSubSvr发送查询请求,请求中携带所述目的号码的指示信息。
步骤203、相应的NumSubSvr收到所述查询请求后,根据所述指示信息查找对应的属性信息,例如域名,将查找到的域名返回给相应的DicAgent。
步骤204、所述DicAgent将收到的查询结果回复给所述查询请求者,即所述IMSvr。
这里,当在NumSubSvr中,在根据电话号码本身保存对应的属性信息时,所述电话号码的指示信息是该电话号码本身;在根据电话号码的UCode保存对应的属性信息时,所述电话号码的指示信息是该电话号码的UCode。
实际当中,如表2所示的HCode描述表可能很大,例如,HCode长6位,则该表记录数理论上最大可达到九十万(100000到999999)。这样,DicAgent在执行所述匹配操作时,可能要考虑效率因素。为此,本发明提供一种优化措施:让DicAgent在执行匹配操作时,只针对如表2所示的HCode描述表的一个子表来进行。
以HCode长度取定长为5为例,参见如表2-Tmp所示的HCode描述临时表:
表2-Tmp
HCode | IP地址 | Remark |
13470 | NumSubSvr-us的IP地址 | 美国 |
13471 | NumSubSvr-us的IP地址 | 美国 |
13472 | NumSubSvr-us的IP地址 | 美国 |
13473 | NumSubSvr-us的IP地址 | 美国 |
13479 | NumSubSvr-us的IP地址 | 美国 |
91978 | NumSubSvr-in的IP地址 | 印度 |
在德里的DicAgent中,保存了如表2-Tmp所示的HCode描述临时表。
这种情况下,所示步骤201进一步是步骤201B:所述DicAgent用所述查询请求中携带的目的号码,匹配如表2-Tmp所示的HCode描述临时表,确定对应NumSubSvr的IP地址。
在DicAgent中,如表2-Tmp所示的HCode描述临时表初始状态为空。
在所述步骤201B中,如果没有匹配到对应的记录,则进一步用所述查询请求中携带的目的号码匹配如表2所示的HCode描述表,如果匹配到对应的记录,则获取对应NumSubSvr的IP地址,并在如表2-Tmp所示的HCode描述临时表中新增一条记录,以登记匹配到的HCode的描述信息。
这种情况下,在如表2-Tmp所示的HCode描述临时表中,就不会出现那些本DicAgent用不到的HCode的描述信息。这样,就可以达到快速检索的目的。
由于一个NumSubSvr的IP地址可能会因为某种原因发生变更,或者,由于NumSubSvr扩容或合并,需要将一个NumSubSvr中存储的某一HCode相应的电话号码的相关属性信息迁移到另外的NumSubSvr中,例如,迁入到一个新增的NumSubSvr,等等,这些情况下都需要对如表2所示的HCode描述表进行更新,这样,就需要经常维护各个DicAgent中保存的如表2所示的HCode描述表。
对此,可以在DNS系统中来建立一个HCode与相应NumSubSvr的对应关系。
方式二、间接方式
这种情况下,一般地,直接在DNS中建立所述HCode与相应NumSubSvr的对应关系。
例如,根据电话号码的HCode产生归属域名,在相应的DNS中,将所述归属域名指向对应的NumSubSvr。
这种情况下,各个DicAgent不需要保存如表2所示的HCode描述表。这样,当一个NumSubSvr的IP地址发生变更后,或者,一个HCode对应的NumSubSvr发生变化后,只需要对DNS中相应域名的配置数据进行更新即可,而不需要通知各个DicAgent进行数据更新。
本发明称,根据一个HCode产生的归属域名为该HCode的归属域名;根据一个电话号码的HCode产生的归属域名为该电话号码的归属域名。
为便于描述,本发明称,一个完整的电话号码为一个电话号码全号,电话号码全号必需包括对应的国家码或地区码。例如,一个固定电话号码全号是由电话国家码(TCC,TelecomCountry Code)、国内固定电话区号(FAC,Fixed Area Code)和序列号(SN)组成,例如86-755-28780808中,TCC值为86,FAC值为755;一个移动电话号码全号是由TCC、移动接入号(MAN,Mobile Access Number)和SN组成,例如86-13923812345中,TCC值为86,MAN值为139。
一个E.164号码由以下几个部分组成,不同部分之间可以用“-”、“.”或空格等连接:+国家码(1~3位数字)-地区码(n位数字)-电话号码(15-n位数字)。例如,对于中国深圳的电话号码28780808,写成标准的E.164格式应是:+86-755-28780808。
为便于描述,本发明称,不含有字冠或连接符号的全号为净号。仅由TCC、FAC和SN组成的固定电话号码为固定净号,例如,+86-755-28780808对应的净号为8675528780808。仅由TCC、MAN和SN组成的移动电话号码为移动净号,例如,+86-13923812345对应的净号为8613923812345。
实际当中,可以笼统地约定一个统一的HCode长度,例如6就比较合适。这种情况下,直接从一个电话号码净号中截取首部指定长度的数字即可得到对应的HCode值。
考虑到不同国家或地区人口数量不同,以及对应的电话国家码(TCC,Telecom CountryCode)长度存在差异,因此,本发明提出如下优化方式:
首先,设置如表3所示的TCC码表:
表3
在该表中,HcodeLength值用于指示一个国家或地区的HCode的长度。从该表中可以看出,美国和越南的HCodeLength值都为5,是因为美国的TCC长度为1,而越南的人口较少。相应地,中国和印度的HCodeLength值都为6。
用一个电话号码的净号,按照最大匹配方式,匹配如表3所示的TCC码表,从中确定最长匹配的TCC值,从而确定该电话号码的HCodeLength值。这样,就可以确定一个电话号码的HCode值。
如表3所示的TCC码表中只列举了部分国家或地区的TCC记录。按照该表,用净号8675528780808进行最大匹配,得到TCC为86,对应HCodeLength为6;用净号1123456789进行最大匹配,得到TCC为1,对应HCodeLength为5;用18761234567进行最大匹配,得到最长TCC值为1876,而不是TCC值1,相应地,HCodeLength为5。
就如表3所示的TCC码表来说,实际当中,TCC值为1876的这条TCC记录,由于其HcodeLength为5,与TCC值为1的这条TCC记录的HcodeLength值相同,因此可以不用配置。但考虑到可能存在TCC值为187的TCC记录对应的HcodeLength值不是5这种情况,较佳地,对应TCC记录进行全配置,从而避免隐藏错误。
例如,在DicAgent中进一步设置如表3所示的TCC码表。
当DicAgent收到一个查询请求者,例如IMSvr,发送的查询请求后,从所述查询请求中携带的目的号码里截取对应长度的HCode值,产生该HCode的归属域名,解析产生的归属域名,得到对应NumSubSvr的IP地址;所述DicAgent根据解析得到的IP地址,向对应的NumSubSvr发送查询请求,请求中携带了所述目的号码的指示信息,例如目的号码本身。该NumSubSvr收到该查询请求后,根据所述目的号码的指示信息,查找对应的属性信息,例如域名,将查找到的域名返回给相应的DicAgent;该DicAgent将收到的查询结果回复给所述查询请求者,即所述IMSvr。
在从所述查询请求中携带的目的号码里截取对应长度的HCode值时,如果所述HCode是约定的统一值,则直接采用该约定值。如果没有约定,则用所述目的号码匹配如表3所示的TCC码表,从中确定最长匹配的TCC值,从而确定该目的号码的HCodeLength值。
在域名解析时,一般先查询本地保存的解析结果表,在根据域名,从本地查找到对应IP地址时,直接返回解析结果。在根据所述域名在本地查找不到对应的IP地址时,根据该域名向DNS服务器发送解析请求,由DNS服务器处理,并将解析结果返回给解析请求者。在收到DNS服务器返回的解析结果后,还将解析结果临时保存在本地,以减少下次解析的时间。
本发明列举两种根据一个HCode产生归属域名的方法供参考。
第一种、将一个HCode作为子域,加上约定的后缀“.tel”,得到该HCode相应的归属域名。例如,将HCode值86133作为子域,加上约定的后缀“.tel”后,得到对应的归属域名为86133.tel。
第二种、对一个HCode执行翻转和分隔操作后,加上约定的后缀“.tel”,得到该HCode相应的归属域名。所述分隔是:在各个数字间加上域名分隔符。例如,将HCode值86133进行翻转得到33168,执行分隔操作后得到3.3.1.6.8;加上约定的后缀“.tel”后,得到对应的归属域名为3.3.1.6.8.tel。
上面各处所述约定的后缀也可以是“.e164.arpa”,或“.tel.e164”,或其它。
根据一个HCode产生归属域名的方法有多种,更多描述参见所述的《电话号码映射方法》发明专利。
通过如下方式可以对所述NMS进行部署,从而使得该NMS能够在IP网中向例如DicAgent等提供号码查询服务。
该方式预先根据HCode值产生相应的归属域名。在DNS中,将相应HCode对应的归属域名指向对应的NumSubSvr。例如,在相应的DNS服务器中,将所述归属域名指向对应的NumSubSvr的IP地址或主机名。
一个归属域名指向一个NumSubSvr时,该归属域名由所述NumSubSvr所拥有。
例如,约定HCode长度为6。按照上面第一种归属域名产生方式,根据HCode值861391、861392、861331、861001、862001等等产生的归属域名分别为861391.tel、861392.tel、861331.tel、861001.tel和862001.tel。以所述NumSubSvr包括中国移动NumSubSvr、中国电信NumSubSvr、北京NumSubSvr、和广州NumSubSvr为例。在相应的DNS服务器中,将861391.tel和861392.tel指向中国移动NumSubSvr;将861331.tel指向中国电信NumSubSvr;将861001.tel指向北京NumSubSvr;将862001.tel指向广州NumSubSvr。
按照所述NumSubSvr所拥有的归属域名,在该NumSubSvr中,根据相应电话号码的指示信息保存相关属性信息。所述电话号码的归属域名为该NumSubSvr所拥有。
例如,在861331.tel所指向的中国电信NumSubSvr中,保存的都是以861331开头的手机号码的相关属性信息。
一个电话号码归属的NumSubSvr,是该电话号码的归属域名指向的NumSubSvr。
这由上可知,一个IMSvr可以在NMS里相应的NumSubSvr中,针对一个号码,进行相关属性信息的登记操作,并对这些登记的数据进行注销或查询等业务操作。这样,该IMSvr或其它的IMSvr就可以通过各自接入的DicAgent,访问所述NMS,从而获得所登记的所述电话号码的相关属性信息。
上面所述电话号码的指示信息可以是该电话号码的UCode。
也即,在NumSubSvr中,直接根据所述电话号码的UCode保存所述相关属性信息。
例如,对于所述NumSubSvr来说,所述存储模块用于根据相应电话号码的UCode保存相关属性信息。所述通信模块用于连接IP网,接收DicAgent发送的携带相应电话号码的UCode的查询请求。所述处理模块用于处理所述通信模块接收的查询请求:根据相应查询请求中携带的相应电话号码的UCode,查询所保存的该电话号码的相关属性信息,将查询结果经由所述通信模块发送给相应的DicAgent。所述通信模块还用于接收登记请求者发送的携带相应电话号码的UCode和相关属性信息的登记请求;相应地,所述处理模块还用于处理所述通信模块接收的登记请求:在所述存储模块中,根据相应登记请求中携带的电话号码的UCode保存所述携带的相关属性信息。
实际当中,为了进一步增强号码字典部署的灵活性,可以让多个HCode对应到一个NumSubSvr。例如,将HCode值861331与861890都指向一个NumSubSvr,并且在该NumSubSvr中,将净号为8613318780808的移动电话号码的转向目的设置为8613318780808@163.com。还例如,在该NumSubSvr中,将净号为8618908780808的移动电话号码的转向目的设置为8618908780808@qq.com。这时就不能根据电话号码的UCode来保存对应的转向目的。
较佳地,所述电话号码的指示信息由该电话号码的HCode的相关信息与该电话号码的UCode产生。
所述电话号码的HCode的相关信息可以直接是该HCode自身。这种情况下,所述电话号码的指示信息一般地是该电话号码的净号。
也即,在NumSubSvr中,根据所述电话号码的净号保存所述相关属性信息。
例如,对于所述NumSubSvr来说,所述存储模块用于根据相应电话号码的净号保存相关属性信息。所述通信模块用于连接IP网,接收DicAgent发送的携带相应电话号码的净号的查询请求。所述处理模块用于处理所述通信模块接收的查询请求:根据相应查询请求中携带的相应电话号码的净号,查询所保存的该电话号码的相关属性信息,将查询结果经由所述通信模块发送给相应的DicAgent。所述通信模块还用于接收登记请求者发送的携带相应电话号码的净号和相关属性信息的登记请求;相应地,所述处理模块还用于处理所述通信模块接收的登记请求:在所述存储模块中,根据相应登记请求中携带的电话号码的净号保存所述携带的相关属性信息。
考虑到一般情况下,一个NumSubSvr中保存的电话号码的相关属性信息仅限于一个国家或地区,因此,所述电话号码的HCode的相关信息也可以是该HCode的一部分。例如,所述HCode的一部分仅仅是该HCode中去掉对应TCC的部分。
例如,在中国的某个NumSubSvr中,根据8613318780808的国内部分13318780808保存转向目的8613318780808@163.com,根据8618908780808的国内部分18908780808保存转向目的8618908780808@qq.com。
一种DicAgent,包括:通信模块和处理模块。参见图4所示的DicAgent组成图。
所述通信模块用于接入IP网络,以连接NMS中各个NumSubSvr,以对相应NumSubSvr进行业务操作,以及接收来自IP网络的维护请求者,例如IMSvr等,发送的对于号码字典的操作维护业务命令。
所述处理模块用于对来自IP网络的相关操作维护请求者所发送的操作维护业务命令进行分拣,按照分拣结果向对应的NumSubSvr发送操作维护业务命令,并将接收自相应NumSubSvr的回复消息发送给所述操作维护请求者。
所述操作维护业务命令包括目的号码,所述对操作维护业务命令进行分拣是根据所述目的号码确定对应的NumSubSvr的连接信息。
所述操作维护业务命令可以是登记电话号码的相关属性信息,或者是注销电话号码的相关属性信息,或者是修改电话号码的相关属性信息,或者是查询电话号码的相关属性信息。
所述NumSubSvr的连接信息是IP地址。
一、对应于直接建立HCode与相应NumSubSvr的对应关系的方式
在DicAgent中,还设置存储模块,用于存储如表2所示的HCode描述表。
所述根据所述目的号码确定对应的NumSubSvr的连接信息是:用所述目的号码匹配如表2所示的HCode描述表,获取对应的IP地址。
所述的按照分拣结果向对应的NumSubSvr发送操作维护业务命令是:根据匹配得到的IP地址,向对应的NumSubSvr发送操作维护业务命令。
二、对应于间接建立HCode与相应NumSubSvr的对应关系的方式
所述根据所述目的号码确定对应的NumSubSvr的连接信息是:获取所述目的号码的HCode对应的归属域名,解析该归属域名,获取对应的IP地址。
所述的按照分拣结果向对应的NumSubSvr发送操作维护业务命令是:根据解析所述归属域名得到的IP地址,向对应的NumSubSvr发送操作维护业务命令。
在DicAgent中,还设置存储模块,用于临时保存所述归属域名解析结果。在解析所述归属域名时,先查询所述临时保存的归属域名解析结果,判断是否查找到对应的IP地址,如果查找到,则结束解析操作,否则将所述归属域名发送给远端DNS服务器来解析。
在DicAgent中,还设置存储模块,用于存储如表3所示的TCC码表。所述处理模块用操作维护业务命令中携带的目的号码匹配如表3所示的TCC码表,确定对应的HcodeLength值,根据确定的HcodeLength值,从所述目的号码中获取对应的HCode,用于获取所述目的号码的HCode对应的归属域名。
向对应的NumSubSvr发送的操作维护业务命令是登记指令,所述登记指令中包括所述目的号码的指示信息和相关属性信息。这种情况下,接收自IP网络的操作维护请求者发送的登记业务命令中携带了所述目的号码和相关属性信息。
向对应的NumSubSvr发送的操作维护业务命令是注销指令,所述注销指令中包括所述目的号码的指示信息。这种情况下,接收自IP网络的操作维护请求者发送的注销业务命令中携带了所述目的号码。
向对应的NumSubSvr发送的操作维护业务命令是修改指令,所述修改指令中包括所述目的号码的指示信息和新的相关属性信息。这种情况下,接收自IP网络的操作维护请求者发送的更新业务命令中携带了所述目的号码和新的相关属性信息。
向对应的NumSubSvr发送的操作维护业务命令是查询指令,所述查询指令中包括所述目的号码的指示信息。这种情况下,接收自IP网络的操作维护请求者发送的查询业务命令中携带了所述目的号码。
所述目的号码的指示信息是目的号码本身,或者目的号码的UCode,或者是目的号码的HCode相关部分和UCode。
建议针对不同国家或地区设置不同的NumSubSvr。这样,在NumSubSvr中,至少电话号码的国家吗部分可以省略。
实际当中,查询电话号码相关属性信息时,经常会遇到批量查询,例如,即时通信客户端请求相应的IMSvr查询手机号码簿中所有号码的相关属性信息。而批量查询中,可能大量存在两个或以上电话号码对应同一个NumSubSvr的情况,为了提高查询效率,DicAgent宜将对应于同一个NumSubSvr的若干电话号码的查询需求集中,例如一次,发送给该NumSubSvr来处理。这样,可以就可能大大降低DicAgent向各个NumSubSvr发送的查询请求的数量,从而,有助于提高批量查询效率。
对此,本发明提出一种批量查询方法,以提高查询效率。
一种电话号码批量查询方法,该方法包括如下步骤:
步骤81、将对应的NumSubSvr相同的电话号码选出。
步骤83、执行打包发送操作。即将选出的电话号码的指示信息打包,向NumSubSvr发送查询请求。
这样,所述NumSubSvr收到所述查询请求后,按照请求中携带的各个电话号码的指示信息,查询对应的相关属性信息,将查询结果回复给相应的查询请求者。
在执行完步骤83后,对电话号码列表中余下部分重复执行该方法,直到电话号码列表中所有的电话号码都被处理完毕为止。
按照所述批量处理方法,可以使得DicAgent向各个NumSubSvr发送的查询请求的数量大大降低,从而,可以大大提高查询效率。
在步骤81中,所述对应的NumSubSvr相同进一步是:对应的NumSubSvr的IP地址相同。
所述步骤81进一步包括步骤81-1和81-2,相应地所述步骤83进一步是步骤83B。
所述步骤81-1是:从当前电话号码列表中选取第一个电话号码,获取该电话号码对应的NumSubSvr的IP地址。
所述步骤81-2是:从电话号码列表中第二个电话号码开始,顺序选择满足条件{对应的NumSubSvr与第一个电话号码对应的NumSubSvr相同}的N个电话号码。其中,N可以为0或任意正整数。
所述步骤83B是:执行打包发送操作:将所述第一个电话号码,以及所述N个电话号码,等等这些电话号码的指示信息打包,按照所述NumSubSvr的IP地址,向该NumSubSvr发送查询请求。
在所述步骤83B之后,对余下的电话号码重复执行所述步骤81-1至所述步骤83B的流程,直到对电话号码列表中所有电话号码执行完毕为止。
在判断一个电话号码A与电话号码B对应的NumSubSvr是否相同时,可以按照如下方法来进行:
判断电话号码B的HCode与电话号码A的HCode是否相同,如果是,则认为二者对应的NumSubSvr相同。在电话号码B的HCode与电话号码A的HCode不同时,进一步判断电话号码B对应的NumSubSvr的IP地址与电话号码A对应的NumSubSvr的IP地址是否相同,如果是,则认为二者对应的NumSubSvr相同,否则,认为二者对应的NumSubSvr不同。
这里,按照上面所述直接方式或间接方式建立的HCode与相应NumSubSvr的对应关系,根据一个电话号码的HCode可以获得该电话号码对应的NumSubSvr的IP地址。
在步骤81-2中,在顺序选择满足条件{对应的NumSubSvr与第一个电话号码对应的NumSubSvr相同}的N个电话号码时,一般执行到的所述条件不成立时停止这一轮选择。
为了提高执行效率,较佳地,在步骤81之前,所述电话号码列表是按照各个电话号码升序或降序排列的,或者是按照各个电话号码的HCode值升序或降序排列的。
例如,所述步骤81之前进一步包括步骤80:对所述电话号码列表按照各个电话号码的HCode值进行排序。
通过执行步骤80的排序操作,使得,在电话号码列表中,对应于同一个NumSubSvr的电话号码相对集中起来,这样,通过对电话号码列表执行{重复执行所述步骤81-1至所述步骤83B的流程,直到对电话号码列表中所有电话号码执行完毕为止}这一流程时,可以帮助减少发送给相应NumSubSvr的查询请求的数量。
一种电话号码批量查询方法,预先求得每个电话号码对应的NumSubSvr的IP地址,该方法还包括如下步骤:
步骤92、从电话号码列表中第一个电话号码开始,选择对应的NumSubSvr的IP地址相同的连续的N个电话号码。
步骤93、执行打包发送操作:将所述选出的N个电话号码的指示信息打包,按照所述NumSubSvr的IP地址,向该NumSubSvr发送查询请求。
对电话号码列表中余下部分重复执行步骤92至步骤93,直到电话号码列表中所有电话号码被处理完毕为止。
在获取号码列表中各个电话号码对应的NumSubSvr的IP地址之前,为了提高获取各个电话号码对应的NumSubSvr的IP地址的操作效率,较佳地,所述电话号码列表是按照各个电话号码升序或降序排列的,或者是按照各个电话号码的HCode值升序或降序排列的。这种情况下,对于HCode相同的连续几个电话号码,只需要求出第一个电话号码对应的NumSubSvr的IP地址即可。这样,就提高了获取各个电话号码对应的NumSubSvr的IP地址的操作效率。
在步骤92之前,在获取号码列表中各个电话号码对应的NumSubSvr的IP地址之后,还可以进一步包括步骤91:对所述号码列表按照对应的NumSubSvr的IP地址排序。这样,可以使得,对于一个电话号码列表来说,向各个NumSubSvr发送的查询指令数降为最低。
特别地,在获取号码列表中各个电话号码对应的NumSubSvr的IP地址之前,还可以进一步包括步骤90:对所述电话号码列表按照各个电话号码的HCode值进行排序。这样,在获取各个电话号码对应的NumSubSvr的IP地址时,对于HCode相同的电话号码,只需要获取一次NumSubSvr的IP地址即可。这种情况下,不执行所述步骤91,也可以大大降低向各个NumSubSvr发送的查询指令数。
上述几处提到的对电话号码列表中电话号码按照电话号码的HCode值来进行升序或降序等排序操作,可以由DicAgent来完成,也可以由批量查询请求者,例如IMSvr来完成。实际当中,一般由DicAgent和IMSvr双方来协商,例如,如果为了降低DicAgent侧的负载分担,则由IMSvr侧来执行;如果是按照各个电话号码的HCode值来排序,则需要考虑易扩展性,这时,较佳地,由DicAgent来进行。
需要说明的是,对NMS中电话号码的相关属性信息的登记或注销等等的业务操作,完全可以不透过DicAgent来实现,而是由各个IMSvr的维护人员定期(比如每天或每周)以电邮的方式发送给NMS的维护人员,有NMS的维护人员借助某种工具软件将相应的数据导入到NMS中。这种方式是可行的,也是有效的。因此,上面所提到的对NMS中电话号码的相关属性信息的登记或注销等等的业务操作的描述,不是本发明所必须的。
基于本发明实现的号码字典,IMSvr只需要连接到一个合适连接的DicAgent,就可以实现对整个庞大的号码字典的访问,从而简化了访问接口。
另外,由于通过DSvr实现了业务最佳接入选择,因此,可以提高IMSvr对号码字典访问的效率。
还有,由于可以通过DicAgent来对访问的安全性进行控制,可以为整个号码字典筑成一道安全屏障,因此,简化了安全管理。
由于人类生活甚至交友的聚集性特点,使得不同人群对不同数据的访问有很大不同。例如,华文圈子的人口在需要访问号码字典时,大多访问大陆、港澳台新马泰等相关的号码数据,而欧洲的人口,多会访问欧洲的号码数据,因此,相比于将所有号码数据集中存放,没有区分的随意访问而言,本发明提出的分布式号码字典,具有分布式存储和分布式访问特点,可以极大地提高号码字典的访问效率,并且使得号码字典具有良好的系统伸缩性,从而使得号码字典从初期运营的业务小规模到后来的业务大规模演变过程中,号码字典能够给予良好的业务可扩展性支持。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。
Claims (10)
1.一种号码字典,包括:调度服务器(DSvr),号码映射系统(NMS),以及多个字典代理(DicAgent);其特征在于,所述NMS用于登记相应号码的相关属性信息;
所述DSvr用于接收字典访问请求,选择合适的DicAgent,向访问请求者返回所选DicAgent的连接信息;
所述DicAgent用于接收查询命令,将所述查询命令发送给NMS,由NMS来处理,并将NMS返回的查询结果回复给查询请求者。
2.根据权利要求1所述的号码字典,其特征在于,所述DSvr保存了相应DicAgent的地理信息(GI)数据;
所述字典访问请求中携带了相应请求者的GI数据,所述DSvr根据访问请求者的GI数据来选择合适的DicAgent。
3.根据权利要求1所述的号码字典,其特征在于,所述NMS包括多个号码存储设备(NumSubSvr);建立归属码(HCode)与相应NumSubSvr的对应关系;
所述DicAgent在收到查询命令后,根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr;所述的“将所述查询命令发送给NMS,由NMS来处理,并将NMS返回的查询结果回复给查询请求者”进一步是:将所述查询命令发送给所确定的NumSubSvr,由该NumSubSvr来处理,并将NumSubSvr返回的查询结果回复给查询请求者。
4.根据权利要求3所述的号码字典,其特征在于,所述建立HCode与相应NumSubSvr的对应关系直接是在DicAgent中完成;
所述的“根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr”是指:用该查询命令中携带的目的号码匹配所建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr。
5.根据权利要求3所述的号码字典,其特征在于,所述建立HCode与相应NumSubSvr的对应关系是在DNS中完成;
所述的“根据该查询命令中携带的目的号码的HCode,按照建立的HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr”是指:根据该查询命令中携带的目的号码的HCode,得到对应的归属域名,解析该归属域名,得到对应NumSubSvr的IP地址。
6.一种DicAgent,包括:通信模块和处理模块;其特征在于,
所述通信模块用于接入NumSubSvr,以及接收来自IP网络的携带了目的号码的查询请求;
所述处理模块用于根据所述查询请求中的目的号码,确定对应的NumSubSvr,向所确定的NumSubSvr发送查询命令,并将接收自相应NumSubSvr的查询回复消息发送给相应的查询请求者。
7.根据权利要求6所述的DicAgent,其特征在于:在DicAgent中,还设置存储模块,用于保存HCode与相应NumSubSvr的对应关系;
所述“根据所述查询请求中的目的号码,确定对应的NumSubSvr”是指:用所述目的号码匹配所述HCode与相应NumSubSvr的对应关系,确定对应的NumSubSvr。
8.根据权利要求6所述的DicAgent,其特征在于,所述“根据所述查询请求中的目的号码,确定对应的NumSubSvr”是指:根据所述目的号码的HCode产生归属域名,解析该归属域名,得到对应NumSubSvr的IP地址。
9.一种批量查询方法,其特征在于,所述方法包括如下步骤:
a、将对应的NumSubSvr相同的电话号码选出;
b、将选出的电话号码的指示信息打包,向NumSubSvr发送查询请求。
10.根据权利要求9所述的方法,其特征在于,步骤a进一步是:从电话号码列表中第一个电话号码开始,选择对应的NumSubSvr的IP地址相同的连续的N个电话号码;
相应地,步骤b进一步是:将所选出的N个电话号码的指示信息打包,按照所述NumSubSvr的IP地址,向该NumSubSvr发送查询请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510179467 | 2015-04-16 | ||
CN2015101794671 | 2015-04-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106060181A true CN106060181A (zh) | 2016-10-26 |
Family
ID=57484169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610028014.3A Pending CN106060181A (zh) | 2015-04-16 | 2016-01-15 | 号码字典 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106060181A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631133A (zh) * | 2008-07-15 | 2010-01-20 | 华为技术有限公司 | 一种域名解析系统、设备及方法 |
CN101958937A (zh) * | 2009-07-17 | 2011-01-26 | 中国移动通信集团公司 | 一种解析系统查询方法、号码域名系统服务器及系统 |
CN103391332A (zh) * | 2012-05-08 | 2013-11-13 | 王正伟 | 辅助寻址方法 |
CN103716417A (zh) * | 2012-10-09 | 2014-04-09 | 王正伟 | E-mail地址编码方法 |
CN103986795A (zh) * | 2013-02-08 | 2014-08-13 | 王正伟 | 电话号码映射方法 |
-
2016
- 2016-01-15 CN CN201610028014.3A patent/CN106060181A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631133A (zh) * | 2008-07-15 | 2010-01-20 | 华为技术有限公司 | 一种域名解析系统、设备及方法 |
CN101958937A (zh) * | 2009-07-17 | 2011-01-26 | 中国移动通信集团公司 | 一种解析系统查询方法、号码域名系统服务器及系统 |
CN103391332A (zh) * | 2012-05-08 | 2013-11-13 | 王正伟 | 辅助寻址方法 |
CN103716417A (zh) * | 2012-10-09 | 2014-04-09 | 王正伟 | E-mail地址编码方法 |
CN103986795A (zh) * | 2013-02-08 | 2014-08-13 | 王正伟 | 电话号码映射方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861975B (zh) | 面向工业互联网的标识注册信息查询方法和系统 | |
CN111541796B (zh) | Cdn访问流量调度方法、设备、通信系统及存储介质 | |
CN101175097B (zh) | 用于针对ims服务的灵活的地址机制的解析的方法和装置 | |
CN103248726B (zh) | 一种多根对等的物联网标识解析方法 | |
US20040243719A1 (en) | System and method for routing messages over disparate networks | |
EP2933961A1 (en) | Method and apparatus for routing and forwarding, building routing tables, and obtaining contents | |
EP2062424B1 (en) | Methods, systems, and computer program products for providing a country code identifier in an international enum system | |
CN101087253A (zh) | 保存域名系统记录的方法、装置、域名解析方法及装置 | |
CN101827309A (zh) | 一种推送消息的发送方法、终端、服务器及系统 | |
CN101656765A (zh) | 身份位置分离网络的名址映射系统及数据传输方法 | |
CN107846483A (zh) | 一种域名解析方法、系统和服务器 | |
CN101499996B (zh) | 域名差异化解析方法和域名服务器 | |
CN108702396A (zh) | 用于数据处理的方法、设备和计算机程序以及层级式域名系统区文件 | |
CN110225150B (zh) | 不同网络协议间的通信方法、系统和存储介质 | |
US20070050507A1 (en) | Context discovery for DNS names | |
US20120303601A1 (en) | Mobile search method and system thereof | |
KR20040015775A (ko) | Enum 서비스 시스템 및 이의 운용방법 | |
CN101567879A (zh) | 处理终端请求的方法、服务器、设备和系统 | |
CN104125310A (zh) | 基于半永久地址的消息发送方法 | |
CN106060181A (zh) | 号码字典 | |
CN1933461A (zh) | 实现多注册域实名/实号呼叫的通信系统和方法 | |
CN103986795A (zh) | 电话号码映射方法 | |
CN203086518U (zh) | 一种自适应智能dns服务器 | |
CN108768853B (zh) | 基于域名路由器的分布式混合域名系统及方法 | |
CN103166967B (zh) | 无中心交换通信系统及其通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161026 |
|
WD01 | Invention patent application deemed withdrawn after publication |