CN102917100B - 一种获得来电主叫号码的方法及装置 - Google Patents
一种获得来电主叫号码的方法及装置 Download PDFInfo
- Publication number
- CN102917100B CN102917100B CN201210390837.2A CN201210390837A CN102917100B CN 102917100 B CN102917100 B CN 102917100B CN 201210390837 A CN201210390837 A CN 201210390837A CN 102917100 B CN102917100 B CN 102917100B
- Authority
- CN
- China
- Prior art keywords
- answering
- calling
- message
- terminal
- circuit process
- 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.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例公开了一种获得来电主叫号码的方法及装置,涉及通信技术领域,用以正确的获取主叫号码,使被叫终端的某些需要得到主叫号码才能工作的应用程序可以正常工作。该方法包括:接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,将所述被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息;接收到补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,将所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种获得来电主叫号码的方法及装置
背景技术
在码分多址接入(Code Division Multiple Access,CDMA)网络中,被叫终端的接听线路进程将来电号码显示的业务启用后,来电消息中其实并没有带主叫号码,主叫号码是后续的一个补充消息中带的信息,与来电消息不是同时间到达的。
而被叫终端的接听线路进程在接到来电消息时,是会立即上报呼叫状态变化消息的。所以,当被叫终端的接听线路进程的一个应用程序,监听其呼叫状态的时候,在接到被叫终端的接听线路进程上报的呼叫状态变化消息时,是无法第一时间获知主叫号码的。
例如,以安卓Android平台为例,当一个应用程序,使用***中的TelephonyManager程序对listen接口监听终端的呼叫状态的时候,回调函数onCallStateChange(int state,String incomingNumber)中的状态state含有响铃信息CALL_STATE_RINGING,但是主叫号码incomingNumber却可能为空。
对于Android***的应用程序来说,上述的listen接口是唯一可能知道来电号码的接口。如果这里不能提供来电号码的话,某些应用就不能再正常实现自己的功能,比如某些来电号码归属地提醒软件,没有主叫号码也就不知道该号码的归属地了,再比如某些来电防火墙软件,没有主叫号码就不能正常实现来电防火墙的功能。
综上所述,现有移动终端不能正确获取CDMA网络中来电消息的主叫号 码,使得移动终端的一些应用程序不能正常工作。
发明内容
本发明实施例提供了一种获得来电主叫号码的方法及装置,用以正确的获取主叫号码,使被叫终端的某些需要得到主叫号码才能工作的应用程序可以正常工作。
本发明实施例提供的一种获得来电主叫号码的方法,该方法包括:
接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,将所述被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息;
接收到补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,将所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
本发明实施例提供的一种获得来电主叫号码的装置,该装置包括:
检查模块,用于接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,将所述被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息;
上报模块,用于接收补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,将所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
本发明实施例,通过设置的一套状态自动循环机制,在接收到来电消息时,先不进行呼叫状态消息的上报,直到确认或获得了主叫号码的情况下再进行上报,这样保证了被叫终端一些需要获得主叫号码的应用程序可以正常工作。
附图说明
图1为本发明实施例提供的获得来电主叫号码的方法流程示意图;
图2为本发明实施例提供的状态自动循环机制的状态关系示意图;
图3为本发明实施例提供的获得来电主叫号码的装置模块示意图;
图4为本发明实施例提供的获得来电主叫号码的方法及装置在Andriod***下的工作流程示意图。
具体实施方式
本发明实施例提供了一种获得来电主叫号码的方法及装置,用以正确的获取主叫号码,使被叫终端的某些需要得到主叫号码才能工作的应用程序可以正常工作。
基于上述目的,本发明实施例提供了一种获得来电主叫号码的方法,首先对下文实施例中涉及的状态自动循环机制的三种状态进行一个定义:
空闲状态:状态自动循环机制的初始状态为空闲状态;在当前呼叫状态为空闲IDLE的时候,状态自动循环机制也处于IDLE状态;
等待状态:表示正在等待主叫号码消息;
完成状态:表示等待主叫号码消息已经完成,并上报呼叫状态变化消息。以Android***为例,在进入这个状态的时候,需要向Android***报告呼叫状态变化消息,Android***会根据前后呼叫状态的变化调用函数onCallStateChange()通知各个应用。
如图1所示,在被叫终端侧,该方法包括:
S101,接收来自主叫终端的来电消息,且当来电消息中不包含主叫终端的号码信息时,将被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息;
S102,接收到补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,将被叫终端的接听线路进程由等待状态进入完成状态,该呼叫状态变化消息包括主叫终端的号码信息。
本发明实施例在终端内设置了一套状态自动循环机制,当其作为被叫终端时,将被叫终端的接听线路进程接听来电、获取主叫号码的过程分为空闲状态、等待状态和完成状态的三个阶段。图2是一种本发明状态自动循环机制的相互转换关系,首先先介绍一下它们之间的转换条件;
时,将被叫终端的接听线路进程接听来电、获取主叫号码的过程分为空闲状态、等待状态和完成状态的三个阶段。图2是一种本发明状态自动循环机制的相互转换关系,首先先介绍一下它们之间的转换条件;
空闲状态:状态自动循环机制的初始状态;在终端的当前呼叫状态为空闲IDLE的时候,状态自动循环机制也处于IDLE状态。
等待状态:表示正在等待主叫号码消息;在接收到来电消息,且消息中未携带主叫号码信息时由空闲状态进入这个状态。
完成状态:表示等待主叫号码信息的过程已经完成;在接收到主叫号码信息,或超过等待阈值时,由空闲状态或等待状态进入这个状态,向Android***报告呼叫状态变化消息,Android***会根据前后呼叫状态的变化调用onCallStateChange()函数通知各个应用程序。
通过三个状态之间的切换完成针对CDMA网络的获取来电主叫号码的整个过程,目的是在接到来电消息时不立即上报呼叫状态变化消息,直到在后续的补充消息中获取主叫号码信息以后,再上报呼叫状态变化消息,这样上述的应用程序就可以正常工作。
需要注意的是,上述实施例中将不是第一时间到达被叫终端的,在所述来电消息之后到达的消息称为所述的补充消息,所述补充消息除可能包含主叫号码信息外还可以包含一些其他现有技术下的常用信息。
进一步地,该CDMA网络中获得来电主叫号码的方法还可以包括:当通话结束时,将被叫终端的接听线路进程由完成状态恢复为空闲状态。
至此完成了三种状态的之间的自动循环机制,当然,用户也可以根据需要手动进行状态的转换。
由于并不是所有的来电消息后续都会补发主叫号码过来,例如主叫终端开通了去电号码隐藏业务,或者被叫终端没有开通来电号码显示业务等等,所以在被叫终端的接听线路进程处于等待状态时,可以设定一个等待时间的上限,以防没有补充消息或补充消息中不包含主叫号码时,等待时间过长。在被叫终端的接听线路进程进入等待状态的时间大于等待阈值时,将被叫终端的接听线路进程由等待状态强制进入完成状态,上报呼叫状态变化消息。
一般而言,CDMA网络上携带主叫号码信息会在来电消息的100ms左右后到达。所以,该等待阈值设置时间为200ms~300ms都是比较安全、常用的数值,当然可以根据应用程序需求主叫号码的紧急性对该等待阈值的时间进行设置,较佳地,等待阈值可以设置为一般到达时间的两倍。
经过申请人的实验得知,在网络业务允许的前提下,在合理地设计等待阈值条件下,本发明实施例提供的方法可以确保99.99%的呼叫都可以得到主叫电话号码,满足应用软件的需求。
需要说明的是,由于本发明实施例提供的方法不仅适用于CDMA网络,在其他来电消息中含有主叫号码的通信网络中也能正常工作,进一步地,本发明实施例还包括:
当来电消息中包含主叫终端的号码信息时,向所有监听被叫终端的接听线路进程的呼叫状态的应用程序上报呼叫状态变化消息后,将被叫终端的接听线路进程由空闲状态直接进入完成状态。
优选地,在被叫终端的接听线路进程进入完成状态后,向被叫终端的操作***返回代表获取主叫号码动作完成的响应消息。
可以理解的是,所述响应消息为现有技术中常用的一方在接收到请求消息后,返回发送方的用于报告状态的反馈消息,例如可以采用200OK的形式完成。
配合上述方法,如图3所示,本发明实施例还提供了一种获得来电主叫号码的装置,该装置包括:
检查模块301,用于接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,将所述被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息;
上报模块302,用于接收补充消息后,向所有监听呼叫状态的***应用程 序上报呼叫状态变化消息,将所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
在上述实施例中本发明装置的检查模块301在被叫终端的接听线路进程接收到来电消息时进行状态转换,并负责等待和获取主叫终端的主叫号码信息,当上报模块在获得主叫号码信息后,再上报呼叫状态变化消息,这样保证上报的呼叫状态变化消息中确定含有主叫号码信息,进而保证被叫终端的某些需要得到主叫号码才能工作的应用程序可以正常工作。
进一步地,所述上报模块302还用于,当通话结束时,将所述被叫终端的接听线路进程由完成状态恢复为空闲状态。
至此本发明上述实施例完成了三种状态之间的自动循环机制,当然,用户也可以根据需要手动进行状态的转换。
上报模块302还用于,在所述被叫终端的接听线路进程进入等待状态的时间大于等待阈值时,将被叫终端的接听线路进程由等待状态强制进入完成状态,上报所述呼叫状态变化消息。由于并不是所有的来电消息后续都会补发主叫号码过来,例如主叫终端开通了去电号码隐藏业务,或者被叫终端没有开通来电号码显示业务等等,所以在被叫终端的接听线路进程处于等待状态时,所述上报模块可以设定一个等待时间的上限,以防没有补充消息或补充消息中不包含主叫号码时,等待时间过长,在所述被叫终端的接听线路进程进入等待状态的时间大于等待阈值时,将被叫终端的接听线路进程由等待状态强制进入完成状态,上报所述呼叫状态变化消息。
一般而言,CDMA网络上携带主叫号码信息会在来电消息的100ms左右后到达。所以,等待阈值设置时间为200ms~300ms都是比较安全、常用的数值,当然可以根据应用程序需求主叫号码的紧急性对该等待阈值的时间进行设置,将等待阈值设置为一般到达时间的两倍为比较好的选择。
经过申请人的实验得知,在网络业务允许的前提下,在合理地设计等待阈值条件下,本发明实施例提供的方法可以确保99.99%的呼叫都得到主叫电话 号码,满足应用软件的需求。
需要说明的是,由于该方法不仅适用于CDMA网络,在其他来电消息中含有主叫号码的通信网络中也能正常工作,进一步地,本发明实施例中所述检查模块还用于:
当所述来电消息中包含主叫终端的号码信息时,向所有监听被叫终端的接听线路进程的呼叫状态的应用程序上报呼叫状态变化消息后,将所述被叫终端的接听线路进程由空闲状态直接进入完成状态。
优选地,所述上报模块302还用于,将所述被叫终端的接听线路进程由空闲状态直接进入完成状态后,向被叫终端的操作***返回代表获取主叫号码动作完成的响应消息。
需要说明的是,本发明实施例提供的获得来电主叫号码的装置可以根据被叫终端不同规格在不同的位置,例如可以设置在Android***中很多模块中,比如在Android***中的通话***CallTracker里,也可以在RILJ(adio Inteface Layer Java Part,无线接口层Java部分)里,还可以在GSM驱动模块RILD(Radio Interface Daemon,无线接口层守护进程)里。但是必须位于CallTracker和调制解调器MODEM之间。
如图4所示,为了更好的理解本发明实施例提供的方案,下面以CDMA网络中使用Andriod操作***的被叫终端为例,进行详细讲解:
S401,当被叫终端的接听线路进程接收到来电消息时,检查模块针对该呼叫请求将状态设置为空闲状态,先不向Android***报告(即不会调用onCallStateChange()函数的消息);
S402,检测当前来电消息是否包含主叫终端的主叫号码;若具有,则执行S403;否则,执行S404;
S403,将当前被叫终端的接听线路进程的状态更改为完成状态,表示等待主叫号码信息过程已经完成,向Android***返回响应消息报告呼叫状态发生变化;结束流程。
S404,将当前被叫终端的接听线路进程的状态更改为等待状态;
S405,检测是否接收到携带主叫号码的补充消息,在ADRIOD***下可UNSOL_CDMA_INFO_REC消息,并同时启动计时器,根据设置的等待阈值开始计时;
S406,当检测到已接收到UNSOL_CDMA_INFO_REC消息或者计时器到时间后,将当前被叫终端的接听线路进程的状态更改为完成状态,表示等待主叫号码信息过程已经完成,向Android***返回响应消息报告呼叫状态发生变化;结束流程。
综上所述,本发明实施例设置了一套状态自动循环机制,在接收到来电消息时,先不进行呼叫状态消息的上报,直到确认或获得了主叫号码的情况下再进行上报,这样保证了被叫终端的接听线路进程的需要获得主叫号码的应用程序可以正常工作。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种获得来电主叫号码的方法,其特征在于,该方法包括:
接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,控制被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息,其中,所述补充消息为所述来电消息之后到达的消息;
接收到所述补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,控制所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
2.如权利要求1所述的方法,其特征在于,该方法还包括:
当所述来电消息中包含主叫终端的号码信息时,向所有监听被叫终端的接听线路进程的呼叫状态的应用程序上报呼叫状态变化消息后,将所述被叫终端的接听线路进程由空闲状态直接进入完成状态。
3.如权利要求2所述的方法,其特征在于,该方法还包括:
当通话结束时,将所述被叫终端的接听线路进程由完成状态恢复为空闲状态。
4.如权利要求1所述的方法,其特征在于,在所述被叫终端的接听线路进程进入等待状态的时间大于等待阈值时,将被叫终端的接听线路进程由等待状态强制进入完成状态,上报所述呼叫状态变化消息。
5.如权利要求4所述的方法,其特征在于,所述等待阈值为200ms~300ms。
6.如权利要求1或4所述的方法,其特征在于,在所述被叫终端的接听线路进程进入完成状态后,向被叫终端的操作***返回代表获取主叫号码动作完成的响应消息。
7.一种获得来电主叫号码的装置,其特征在于,该装置包括:
检查模块,用于接收来自主叫终端的来电消息,且当所述来电消息中不包含主叫终端的号码信息时,将被叫终端的接听线路进程由空闲状态进入等待状态,等待接收包括主叫终端的号码信息的补充消息,其中,所述补充消息为所述来电消息之后到达的消息;
上报模块,用于接收所述补充消息后,向所有监听呼叫状态的***应用程序上报呼叫状态变化消息,将所述被叫终端的接听线路进程由等待状态进入完成状态,所述呼叫状态变化消息包括主叫终端的号码信息。
8.如权利要求7所述的装置,其特征在于,所述检查模块还用于:
当所述来电消息中包含主叫终端的号码信息时,向所有监听被叫终端的接听线路进程呼叫状态的应用程序上报呼叫状态变化消息后,将所述被叫终端的接听线路进程由空闲状态直接进入完成状态。
9.如权利要求8所述的装置,其特征在于,所述上报模块还用于:
当通话结束时,将所述被叫终端的接听线路进程由完成状态恢复为空闲状态。
10.如权利要求7所述的装置,其特征在于,所述上报模块还用于,在所述被叫终端的接听线路进程进入等待状态的时间大于等待阈值时,将被叫终端的接听线路进程由等待状态强制进入完成状态,上报所述呼叫状态变化消息。
11.如权利要求7或10所述的装置,其特征在于,所述上报模块还用于,在所述被叫终端的接听线路进程进入完成状态后,向被叫终端的操作***返回代表获取主叫号码动作完成的响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210390837.2A CN102917100B (zh) | 2012-10-15 | 2012-10-15 | 一种获得来电主叫号码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210390837.2A CN102917100B (zh) | 2012-10-15 | 2012-10-15 | 一种获得来电主叫号码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102917100A CN102917100A (zh) | 2013-02-06 |
CN102917100B true CN102917100B (zh) | 2015-03-04 |
Family
ID=47615326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210390837.2A Active CN102917100B (zh) | 2012-10-15 | 2012-10-15 | 一种获得来电主叫号码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102917100B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518259A (zh) * | 2003-01-17 | 2004-08-04 | 华为技术有限公司 | Cdma网络中显示主叫号码的方法 |
CN101365009A (zh) * | 2008-09-24 | 2009-02-11 | 侯万春 | 实现一卡多号被叫移动电话终端显示被叫号码的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060046720A1 (en) * | 2004-09-02 | 2006-03-02 | Teemu Toropainen | Mobile communications terminal, system and method therefore |
-
2012
- 2012-10-15 CN CN201210390837.2A patent/CN102917100B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518259A (zh) * | 2003-01-17 | 2004-08-04 | 华为技术有限公司 | Cdma网络中显示主叫号码的方法 |
CN101365009A (zh) * | 2008-09-24 | 2009-02-11 | 侯万春 | 实现一卡多号被叫移动电话终端显示被叫号码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102917100A (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3537734B1 (en) | Method and device for connecting a bluetooth device | |
TWI378708B (en) | Call processing method and system implemented in a mobile communication terminal | |
CN102880514B (zh) | 一种调用应用程序的方法和装置 | |
CN103249018A (zh) | 一种多方通话进行切换的方法及终端设备 | |
CN103491256B (zh) | 通信处理方法及终端设备 | |
CN104936282A (zh) | 一种融合通信业务的注册方法及装置 | |
CN103402186A (zh) | 一种来电转接方法及通讯终端 | |
CN104954589A (zh) | 一种呼叫转移的方法及其*** | |
CN102833404B (zh) | 一种选择通话设备的方法及装置 | |
CN104468962A (zh) | 一种呼叫请求的处理方法及电子设备 | |
CN103986824A (zh) | 电子设备的数据显示方法及*** | |
CN104507056A (zh) | 一种基于事件类型的集群调度数据处理方法及*** | |
CN105578438A (zh) | 一种固定电话的共享方法及相关设备 | |
CN102883292B (zh) | 一种实现呼叫转移的方法、***、设备及移动终端 | |
CN106535150A (zh) | 一种来电转接的方法及装置 | |
CN103369474B (zh) | 漏话提醒方法和装置 | |
CN105635497A (zh) | 终端呼叫转移的方法及终端 | |
CN102595455B (zh) | 自动路测***中测试模块的管理方法及装置 | |
CN104394266A (zh) | 终端工作状态切换方法和*** | |
CN102917100B (zh) | 一种获得来电主叫号码的方法及装置 | |
CN103888923A (zh) | 应用于虚拟专用移动网的呼叫接续方法、***及装置 | |
CN105227780B (zh) | 来电处理方法及终端 | |
JP6223043B2 (ja) | 通信システム、及び、通信方法 | |
CN103067624A (zh) | 一种通信处理方法、终端、服务器及*** | |
CN104469720A (zh) | 一种回拨来电的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 100085 Beijing city Haidian District Qinghe Street No. 68 Huarun colorful city shopping center two floor 13 Applicant after: Xiaomi Technology Co., Ltd. Address before: 100102 Beijing Wangjing West Road, a volume of stone world building, A, block, floor 12 Applicant before: Beijing Xiaomi Technology Co., Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |