有鉴于此,本发明的目的是提供一种基于移动终端客户端
软件模块实现实 名呼叫业务的方法和系统,该方法能够在实现实名呼叫业务过程中克服现有技 术存在的话路迂回和通信资费昂贵的技术难题。
为了达到上述目的,本发明提供了一种基于移动终端客户端软件模块实现 实名呼叫业务的方法,其特征在于,该方法包括如下步骤:
(1)在移动终端安装客户端软件模块;
(2)启动客户端软件模块,在输入界面上输入待呼叫的实名信息,并点击 确认;
(3)客户端软件模块根据用户输入的实名信息在移动终端的
数据库中搜索 与该实名信息相对应的电话号码,如果搜索成功,跳转执行步骤(6);如果搜 索失败,则按照自定义的消息协议格式对该实名进行编码,并调用底层
接口模 块发送到网络侧的通讯录
服务器;
(4)通讯录服务器接收到客户端软件模块的
请求,按对应的自定义消息协 议格式进行解码,取出实名信息,再查询对应的电话号码;如果查询成功,把 查询结果按照所述自定义的消息协议格式进行编码后,返回给移动终端客户端 软件模块;如果查询失败,则给客户端软件模块返回呼叫失败信息,结束该流 程;
(5)客户端软件模块收到通讯录服务器发来的消息后,进行解码,取出对 应的电话号码;如果该电话号码只有一条,执行步骤(6)的操作;如果该电话 号码是多条记录,客户端软件模块把该多条记录都向用户显示,由用户点击确 定待呼出的号码;
(6)客户端软件模块调用手机底层接口模块的呼出功能,完成向被叫的呼 出;并把呼出的被叫号码和对应的实名信息一起缓存到移动终端临时通讯录中。
为了达到上述目的,本发明还提供了一种基于移动终端客户端软件模块实 现实名呼叫业务的网络系统,包括:移动通信核心网、移动通信接入网、移动 终端;其特征在于:所述系统还包括通讯录服务器,所述移动终端中绑定有用 于直接与该通讯录服务器进行交互、以获取实名信息所对应的电话号码的客户 端软件模块;该客户端软件模块采用包括短信承载、USSD承载和移动的数据 网络承载方式与通讯录服务器实现数据交互;该客户端软件模块包括下述八个 功能模块:
主控模块,用作该客户端软件模块的核心控
制模块,负责包括资源调度、 呼叫控制、内部消息分发及其它处理功能;
用户界面UI模块,用作客户端软件模块的
可视化呈现界面,以供用户进行 实名信息的录入和分类检索;
数据库DB模块,负责存储用户的移动终端通讯录信息和临时通讯录信息, 其中前者与移动终端自身的通讯录共享存储空间,后者存储有用户最近呼出的 通讯录中尚未存储的多个电话号码,用于实现来电的实名显示;
搜索模块,负责根据用户的实名呼叫请求,在移动终端搜索对应的号码, 如果搜索失败,则通过主控模块向网络侧的通讯录服务器发起实名搜索请求;
协议封装模块,负责在客户端软件模块向网络侧的通讯录服务器发起号码 搜索请求时,被主控模块调用而把实名搜索请求按自定义的协议消息格式进行 封装,再分别通过手机底层的包括SMS、USSD、或GPRS/CDMA 1X的接口模 块发向网络侧;当搜索结果返回时,该协议封装模块负责对消息包解码,解析 出实名信息和对应的电话号码及其它相关信息,并将解码后的信息送至UI模块 显示;
消息队列模块,负责对放入该客户端软件模块中等待处理的所有消息进行 排队和分配优先级,其中,异常消息的优先级最高,其次是与呼叫相关的消息; 并负责将优先级高的消息插入到消息队列的最前端优先进行处理;
短消息SMS模块,作为可调用的短信接口,供客户端软件模块调用该接口 来收发短信,并通过短信承载方式传递搜索请求或搜索结果;
非结构化补充业务
数据网络USSD模块,作为可调用的USSD接口,供客 户端软件模块调用该接口,以USSD承载方式传递搜索请求或搜索结果;
GPRS/CDMA 1X模块,供客户端软件模块调用该模块,通过GPRS或 CDMA1X数据网络传递搜索请求或搜索结果。
本发明的优点和效果是:本发明在有效避免
现有技术存在的话路迂回所导 致的
电路资源浪费的前提下,实现了实名呼叫业务的自动呼出,不仅能够节省 用户的通信资费,还能够提高电话接听时效。本发明系统的创新之处是把传统 的114查号服务器的查询功能移植到手机客户端和网络侧的通讯录服务器来实 现,避免了传统查号台人工介入所带来的业务流程的繁琐操作。本发明方案的 实施,对现有的无线通信网络几乎不需要改动,也不影响普通呼叫的路由方式, 只要在手机终端侧加载相应的软件和在114查号服务器增添相应的软件功能模 块,即可实现该业务。因此,本发明方法简单、方便、容易掌握和实现,网络 系统结构也非常简单,实现和推广的投资
费用低廉,具有很好的推广应用前景。
附图说明
图1是本发明基于移动终端客户端软件模块实现实名电话呼叫业务的方法 的操作步骤
流程图。
图2是本发明基于移动终端客户端软件模块实现实名电话呼叫业务的方法 的网络系统结构组成示意图。
图3是本发明移动终端客户端软件模块内的功能软件模块结构组成示意 图。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作 进一步的详细描述。
参见图1,介绍本发明基于移动终端客户端实现实名呼叫业务的方法的操 作步骤:
(1)在移动终端安装客户端软件模块;
(2)启动客户端软件模块,在输入界面上输入待呼叫的实名信息(包括自 然人姓名,政府、团体、企事业法人单位的名称),并点击确认;
(3)客户端软件模块根据用户输入的实名信息在移动终端的数据库中搜索 与该实名信息相对应的电话号码,如果搜索成功,跳转执行步骤(6);如果搜 索失败,则按照自定义的消息协议格式对该实名进行编码,并调用底层接口模 块发送到网络侧的通讯录服务器;
(4)通讯录服务器接收到客户端软件模块的请求,按对应的自定义消息协 议格式进行解码,取出实名信息,再查询对应的电话号码;如果查询成功,把 查询结果按照所述自定义的消息协议格式进行编码后,返回给移动终端客户端 软件模块;如果查询失败,则给客户端软件模块返回呼叫失败信息,结束该流 程;
(5)客户端软件模块收到通讯录服务器发来的消息后,进行解码,取出对 应的电话号码;如果该电话号码只有一条,执行步骤(6)的操作;如果该电话 号码是多条记录,客户端软件模块把该多条记录都向用户显示,由用户点击确 定待呼出的号码;
(6)客户端软件模块调用手机底层接口模块的呼出功能,完成向被叫的呼 出;并把呼出的被叫号码和对应的实名信息一起缓存到移动终端临时通讯录中。
(7)用户将客户端软件模块缓存到移动终端临时通讯录中的实名及对应的 电话号码一起转存到手机的通讯录中。
在上述步骤(3)、(4)、(5)中,本发明都涉及一种按照自定义的消息协议 格式对实名信息进行编码或解码,该消息协议也是本发明的一种专
门设计的创 新信息协议,下面简要说明该协议至少包括如下表所示的各个字段。
协议格式 消息类型 定义消息是由客户端发向服务器的请求消息,还是从服务 器发向客户端的响应消息。 流
水号 定义消息序列号,用于保证接收到的响应消息和发出的请 求消息相互对应起来,每一条请求消息对应一条或多条响应 消息。流水号由客户端软件模块自身生成和维护,其数值是 在一个足够大的自然数范围内循环使用。 实名类型 定义查询的范围,比如从个人通讯录、企业黄页、分类信 息对应的通讯录数据库中查询 号码数 定义每个消息包所携带的搜索到的电话号码条数的最大值 实名 表示待搜索的自然人姓名,政府、团体、企事业法人单位 的名称
消息数 表示根据搜索到的结果,将全部搜索结果返回给客户端的 消息数量。如果该字段内容为1,表示用一条消息就可以携 带所有的搜索结果,并送回客户端软件模块。 实名1 搜索到的含有“实名”的第1个名字 号码1 搜索到的对应“实名”的第1个电话号码 实名2 搜索到的含有“实名”的第2个名字 号码2 搜索到的对应“实名”的第2个电话号码 ……… ……… 消息内容 结束符 表示该消息的结束
参见图2,为了实现上述发明目的,本发明还提出一种基于移动终端客户 端软件模块实现实名呼叫业务的网络系统,该业务系统包括:移动通信核心网、 移动通信接入网、移动终端和通讯录服务器(图2中只展示了后两者),其中移 动终端中绑定有用于直接与该通讯录服务器进行交互、以获取实名信息所对应 的电话号码的客户端软件模块。通讯录服务器是在114查号台服务器的
基础上, 扩展相应的功能软件模块所组成的装置,或者是采用自定义的接口协议与114 查号台服务器实现通讯录信息共享的一台计算机装置。该客户端软件模块与通 讯录服务器之间采用包括短信承载、USSD承载和移动的数据网络承载方式实 现数据交互。
本发明移动终端客户端软件模块的功能主要包括:(1)为用户提供实名信 息的输入和查询结果的显示界面;用户输入的实名信息可以是该实名名称的全 称、或实名的关键字、或关键字的中文拼音、或输入关键字的拼音首字母。(2) 基于移动终端的实名信息与电话号码的查询和管理。(3)按照自定义的消息协 议格式对查询的实名信息进行编码和解码。(4)实现与运营商业务网络侧的通 讯录服务器的
通信接口功能。(5)根据实名信息的对应电话号码进行呼出的功 能;
通讯录服务器的主要功能包括:(1)实现实名信息和与之对应的电话号码信 息(以及其他相关信息)的存储、管理和查询。(2)按照自定义的消息协议格式 对实名信息查询内容进行编码和解码。(3)实现与移动终端的客户端软件模块的 通信接口功能。
本发明系统还能够提供对用户移动终端通讯录和网络侧通讯录服务器中的 通讯录的实现自动同步映射和强制同步映射的两种同步映射功能;同步映射通 讯录的协议是采用国际开放移动联盟OMA组织的SYNCML协议。
自动同步映射功能是由网络侧的通讯录服务器控制执行的、针对用户对移 动终端通讯录的相关操作:即用户在移动终端通讯录所进行的
修改和增加的记 录内容都将同步映射到通讯录服务器的通讯录中;但是用户删除移动终端通讯 录中的某个或某些联系人及其电话记录的操作不会导致通讯录服务器也将通讯 录中相应联系人的记录作删除处理。
强制同步映射功能是由用户手动控制执行的,在强制同步映射时,网络系 统以通讯录服务器的通讯录为准,由用户手动选择需要同步映射的哪些联系人 记录,此时,系统将通讯录服务器的通讯录信息逐条下载并记录到移动终端的 通讯录中,直至通讯录服务器的通讯录全部下载到移动终端本机或者移动终端 的通讯录容量饱和为止。
参见图3,介绍本发明移动终端客户端软件模块所包括的下述八个功能模 块:
(1)主控模块,用作该客户端软件模块的核心
控制模块,负责包括资源调 度、呼叫控制、内部消息分发及其它处理功能。
(2)用户界面UI模块,用作客户端软件模块的可视化呈现界面,以供用 户进行实名信息的录入和分类检索。
(3)数据库DB模块,负责存储用户的移动终端通讯录信息和临时通讯录 信息,其中前者与移动终端自身的通讯录共享存储空间,后者存储有用户最近 呼出的通讯录中尚未存储到通讯录中的多个电话号码(比如50个号码),用于 实现来电的实名显示。
(4)搜索模块,负责根据用户的实名呼叫请求,在移动终端搜索对应的号 码,如果搜索失败,则通过主控模块向网络侧的通讯录服务器发起实名搜索请 求。
(5)协议封装模块,负责在客户端软件模块向网络侧的通讯录服务器发起 号码搜索请求时,被主控模块调用而把实名搜索请求按自定义的协议消息格式 进行封装,再分别通过手机底层的接口模块(包括SMS模块、USSD模块、或 GPRS/CDMA 1X模块)发向网络侧;当搜索结果返回时,该协议封装模块负责 对消息包解码,解析出实名信息和对应的电话号码及其它相关信息,并将解码 后的信息送至UI模块显示。
(6)消息队列模块,因为整个客户端软件模块的软件运行是在消息驱动机 制下完成的,消息的收发和调度在主控模块下进行,所有的消息在被处理之前 被放入消息队列模块,排队等候处理。消息队列模块负责对放入客户端软件模 块中等待处理的所有消息进行排队和分配优先级,其中,异常消息的优先级最 高,其次是与呼叫相关的消息;并将优先级高的消息插入到消息队列的最前端 优先进行处理;
(6)短消息SMS模块,作为可调用的短信接口,供客户端软件模块调用 该接口来收发短信,并通过短信承载方式传递搜索请求或搜索结果;
(7)非结构化补充业务数据网络USSD模块,作为可调用的USSD接口, 供客户端软件模块调用该接口,以USSD承载方式传递搜索请求或搜索结果;
(8)GPRS/CDMA 1X模块,供客户端软件模块调用该模块,通过GPRS 或CDMA1X数据网络传递搜索请求或搜索结果。
本发明网络系统处理的消息主要分为三类:
(1)与用户界面UI模块通信的消息,主要包括:根据用户实名信息在移 动终端本地搜索电话号码的消息UI_UserName_search,根据电话号码在移动终 端本地查询用户实名的消息UI_PhoneNum_search,根据电话号码发起呼叫的消 息UI_Call_setup等;
实施例将其操作码的范围设置为10-50。
(2)与外部实体通信的消息,主要包括:根据用户实名信息从网络侧的通 讯录服务器搜索电话号码的消息NET_Name_search,根据电话号码从网络侧的 通讯录服务器查询用户实名消息的消息NET_Phonenum_search等消息;实施例 将其操作码的范围设置为51-99。
(3)内部消息,主要有:超时消息timeout_msg,异常消息unnormal_msg; 实施例将其操作码的范围设置为1-9。
最后,具体介绍本发明实施例中采用ASN.1语言进行定义的几个主要消息 格式如下(每行分号“;”后面的文字是对该行语句的说明):
(1)根据用户实名信息在移动终端本地搜索电话号码的消息 UI_UserName_search:
UI_UserName_search::=10;本消息的操作码是10
ARGUMENT ;输入参数ARGUMENT部分
UserNamesearchArg ;输入参数是UserNamesearchArg
RESULT ;输出结果RESULT部分
UserNamesearchResult ;输出结果是UserNamesearchResult
ERRORS{ ;错误码ERRORS定义部分
Noresult 9;无搜索结果
OperationNotSupported 1;不支持搜索请求
ParameterError 4;参数错误
SystemFailure 3;系统错误
UnrecognizedParameterValue 5;不识别的参数值
MissingParameter 2;丢失参数
}
UserNamesearchArg::=SEQUENCE{ ;输入参数UserNamesearchArg 定义为一个序列SEQUENCE
Besearchedtype[4],integer...;被搜索的数据库范围:1为个人库,2为群组 库,3为黄页库,整数integer类型
username[20]String,.......;待搜索的名字,字符串String类型
....
}
UserNamesearchResult::=SEQUENCE{ ;输出结果定义为一个序列 SEQUENCE
resultnum[4],integer...;搜索到的结果的条数,整数类型
username [size(1)...size(200)]String,.......;搜索到的名字,多个结果用不 同的序号标识,字符串类型
phonenum [size(1)...size(300)]string, ......;搜索到的号码,多个结果 用不同的序号标识,字符串类型
....
}
(2)根据号码在移动终端本地查询用户实名的消息UI_PhoneNum_search:
UI_PhoneNum_search::=11;本消息的操作码是11
ARGUMENT ;输入参数ARGUMENT部分
PhoneNumsearchArg ;输入参数是PhoneNumsearchArg
RESULT ;输出结果RESULT部分
PhoneNumsearchResult ;输出结果是PhoneNumsearchResult
ERRORS{ ;错误码ERRORS定义部分
Noresult 9;无搜索结果
OperationNotSupported 1;不支持搜索请求
ParameterError 4;参数错误
SystemFailure 3;系统错误
UnrecognizedParameterValue 5;不识别的参数值
MissingParameter 2;丢失参数
}
PhoneNumsearchArg::=SEQUENCE{ ;输入参数是PhoneNumsearchArg 定义为一个序列SEQUENCE
Besearchedtype[4],integer...;被搜索的数据库范围,1为个人库,2为群组 库,3为黄页库,整数integer类型
phonenum [20]string,......;根据号码查名字,字符串string类型
....
}
UserNamesearchResult::=SEQUENCE{
resultnum[4],integer...;搜索到的结果的条数
phonenum[size(1)...size(200)]String,.......;待搜索的号码,多个结果用 不同的序号标识,字符串string类型
username [size(1)...size(300)]string,......;搜索到的实名,多个结果用 不同的序号标识,字符串string类型
....
}
(3)根据号码发起呼叫的消息UI_Call_setup:
UI_Call_setup::=12;本消息的操作码是12
ARGUMENT ;输入参数ARGUMENT部分
CallsetupArg ;输入参数是CallsetupArg
RESULT ;输出结果RESULT部分
CallsetupResult ;输出结果是CallsetupResult
ERRORS{ ;错误码ERRORS定义部分
ParameterError 4;参数错误
UnrecognizedParameterValue 5;不识别的参数值
}
CallsetupArg::=SEQUENCE{ ;输入参数CallsetupArg定义为一个 序列SEQUENCE
phonenum [20]string,......;发起呼叫的被叫号码,字符串String类型
....
}
CallsetupResult::=SEQUENCE{ ;输出结果CallsetupResult定义为一 个序列SEQUENCE
callstate[1],BOOL...;标示呼叫发起是成功还是失败,TRUE:成功; FALSE:失败,布尔BOOL类型
....
}
(4)根据用户实名信息从网络侧的通讯录服务器搜索号码的消息 NET_Name_search:
NET_Name_search::=51 ;本消息的操作码是51
ARGUMENT ;输入参数ARGUMENT部分
UserNamesearchArg ;输入参数是UserNamesearchArg
RESULT ;输出结果RESULT部分
UserNamesearchResult ;输出结果是UserNamesearchResult
ERRORS{ ;错误码ERRORS定义部分
Noresult 9;无搜索结果
OperationNotSupported 1;不支持搜索请求
ParameterError 4;参数错误
SystemFailure 3;系统错误
UnrecognizedParameterValue 5;不识别的参数值
MissingParameter 2;丢失参数
}
(5)根据号码从网络侧的通讯录服务器查询用户实名消息的消息 NET_Phonenum_search:
NET_PhoneNum_search::=52; 本消息的操作码是52
ARGUMENT ;输入参数ARGUMENT部分
PhoneNumsearchArg ;输入参数是PhoneNumsearchArg
RESULT ;输出结果RESULT部分
PhoneNumsearchResult;输出结果是PhoneNumsearchResult
ERRORS{ ;错误码ERRORS定义部分
Noresult 9;无搜索结果
OperationNotSupported 1;不支持搜索请求
ParameterError 4;参数错误
SystemFailure 3;系统错误
UnrecognizedParameterValue 5;不识别的参数值
MissingParameter 2;丢失参数
}
(6)超时消息Timeout_msg:
Timeout_msg::=1; 本消息的操作码是1
ARGUMENT ;输入参数ARGUMENT部分
TimeoutArg ;输入参数是TimeoutArg
RESULT ;输出结果RESULT部分
NoResult ;输出结果是NoResult
TimeoutArg::=SEQUENCE{ ;输入参数TimeoutArg定义为一个序列 SEQUENCE
timetype [4]integer,......;时钟类型,1:毫秒级;2:秒级;3:分钟 级,整数integer类型
timevalue [4]integer, ......;超时时间,整数integer类型
....
}
(7)异常消息UnNormal_msg:
UnNormal_msg::=2; ;本消息的操作码是2
ARGUMENT ;输入参数ARGUMENT部分
UnnormalArg ;输入参数是UnnormalArg
RESULT ;输出结果RESULT部分
NoResult ;输出结果是NoResult
UnnormalArg::=SET{;输入参数UnnormalArg定义为一个集合SET
noresponse [4]integer,......;1:系统无相应,整数integer类型
netnotbeused [4]integer, ...;2:网络不可用,整数integer类型
databaseerror [4]integer,...;3:数据库异常,整数integer类型
....
}