重拨方法及终端设备转让专利

申请号 : CN202211103179.4

文献号 : CN115190468B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚东强

申请人 : 荣耀终端有限公司

摘要 :

本申请实施例提供一种重拨方法及终端设备,涉及通信技术领域。在本申请方案中,针对在终端设备中设置有多个SIM卡的用户,当在一张SIM卡发起主叫,但由于振铃前收到网络错误码或IMS服务状态异常等原因,导致在这张SIM卡主叫被快速挂断时,终端设备会在另一张SIM卡上自动发起拨号,从而使得用户可以通过另一张SIM卡与被叫设备通话,以保证正常通话,如此提高了主叫成功率,并提升了用户的通话体验。

权利要求 :

1.一种重拨方法,其特征在于,所述方法应用于第一终端,所述第一终端至少包括第一SIM卡和第二SIM卡,所述方法包括:所述第一终端响应于用户的拨号操作,在所述第一SIM卡上向第二终端发起主叫;

在所述第一SIM卡向所述第二终端发起的主叫失败,且所述第一终端满足换卡重拨条件的情况下,若确定所述第二SIM卡的IMS服务状态处于正常状态,则所述第一终端在所述第二SIM卡上向所述第二终端发起主叫,并在与所述第二SIM卡对应的主叫界面上,显示正在通过所述第二SIM卡向所述第二终端发起主叫的提示信息;

其中,所述换卡重拨条件包括:在预设时长内未监控到音频播放进程,所述音频播放进程用于输出所述第一SIM卡主叫失败的语音提示;以及,所述第一SIM卡不存在重拨机制,所述重拨机制是指在所述第一SIM卡主叫失败的情况下,在所述第一SIM卡上再次向所述第二终端发起主叫的机制;

所述第一SIM卡向所述第二终端发起的主叫失败,通过下述任意一项确定:所述第一终端接收到来自网络设备的取消消息,所述取消消息用于指示所述第一SIM卡主叫失败,所述取消消息在下述任意一个时间节点返回:100响应消息的发送时间节点,ACK响应消息的发送时间节点,以及180响应消息的发送时间节点;或者,所述第一终端的应用程序层接收到来自与所述第一SIM卡关联的调制解调器的响应消息,所述响应消息用于指示所述第一SIM卡的IMS服务状态处于非正常状态。

2.根据权利要求1所述的方法,其特征在于,若所述第一终端接收到来自所述网络设备的所述取消消息,则所述换卡重拨条件还包括:所述取消消息携带原因值或错误码,且所述原因值或所述错误码在预先定义的集合内。

3.根据权利要求2所述的方法,其特征在于,所述原因值或所述错误码携带在所述取消消息的原因头域中,所述原因头域包括下述任意一项:会话初始协议编码原因头域;

Q850原因头域;以及,

RELEASE_CAUSE原因头域。

4.根据权利要求2所述的方法,其特征在于,所述预先定义的集合包括以下错误类型:与会话初始协议对应的37个错误码:400至403、405至407、410、413至416、420、421、

423、480至488、491、493、500至505、513、600、603、604、606;

与Q850原因头域对应的72个原因值:2至9、16至27、29至31、34、35、38至44、46、47、49、

50、52至55、57、58、62、63、65、66、69、70、79、81至88、90、91、95至103、110、111和127;

以及与RELEASE_CAUSE原因头域对应的7个原因值:1、2、3、4、5、6和7。

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:在所述第一SIM卡存在所述重拨机制的情况下,所述第一终端通过所述第一SIM卡,在IMS上或在电路域上,重新向所述第二终端发起主叫。

6.根据权利要求1至4中任一项所述的方法,其特征在于,所述在所述第一SIM卡上向第二终端发起主叫,包括:在所述第一终端将所述第一SIM卡设置为默认拨号卡的情况下,在所述第一SIM卡上向所述第二终端发起主叫;或者,在所述第一终端未设置默认拨号卡的情况下,响应于用户对所述第一SIM卡的选择操作,在所述第一SIM卡上向所述第二终端发起主叫。

7.一种终端设备,其特征在于,包括处理器、通信接口和存储器,所述处理器和所述通信接口均与所述存储器耦合,所述通信接口用于与网络设备传输数据,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述终端设备实现如权利要求1至6中任一项所述的重拨方法。

8.一种芯片,其特征在于,所述芯片与存储器耦合,所述芯片用于读取并执行所述存储器中存储的计算机程序,以实现如权利要求1至6中任一项所述的重拨方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在终端设备上运行时,使得所述终端设备执行如权利要求1至6中任一项所述的重拨方法。

说明书 :

重拨方法及终端设备

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种重拨方法及终端设备。

背景技术

[0002] 网际互连协议多媒体子系统(internet protocol multimedia subsystem,IMS)是一个基于网际互连协议(internet protocol,IP)提供语音及多媒体业务的网络体系架构。
[0003] 当终端设备的用户标识模块(subscriber identification module,SIM)卡在IMS正常注册时,如果在SIM卡发起主叫后,终端设备收到网络设备发送的错误提示,且SIM卡没有重拨机制,那么电话会立即挂断,从而影响用户通话。或者,当终端设备的SIM卡无法在IMS正常注册时,如果SIM卡发起主叫,且SIM卡没有重拨机制,那么电话也会立即挂断,从而影响用户通话。

发明内容

[0004] 本申请提供一种重拨方法及终端设备,针对设置有多个SIM卡的终端设备,当在一个SIM卡发起主叫被快速挂断时,会在另一个SIM卡上自动拨号,以保证正常通话,从而提高了主叫成功率,并提升了用户的通话体验。
[0005] 为达到上述目的,本申请采用如下技术方案:
[0006] 第一方面,本申请实施例提供一种重拨方法。该方法应用于第一终端,第一终端至少包括第一SIM卡和第二SIM卡。该方法包括:第一终端响应于用户的拨号操作,在第一SIM卡上向第二终端发起主叫。在第一SIM卡向第二终端发起的主叫失败,且第一终端满足换卡重拨条件的情况下,第一终端在第二SIM卡上向第二终端发起主叫。应理解,当在一个SIM卡发起主叫被挂断时,如果满足换卡重拨条件,那么终端设备通过在另一个SIM卡上自动拨号,保证了使用该终端设备的用户与使用其他终端设备的被叫用户可以正常通话,而无需用户进行其他操作,从而提高了该终端设备的主叫成功率,并提升了用户的通话体验。
[0007] 在一种可能的实现方式中,第一SIM卡向第二终端发起的主叫失败,可以通过下述任意一项确定:第一终端接收到来自网络设备的取消消息,该取消消息用于指示第一SIM卡主叫失败;或者,第一终端的应用程序层接收到来自与第一SIM卡关联的调制解调器的响应消息,该响应消息用于指示第一SIM卡的IMS服务状态处于非正常状态。应理解,无论是振铃前收到网络设备的取消消息,还是第一SIM卡的IMS服务状态异常,第一SIM卡的IMS系统均无法为第一终端提供服务,从而导致第一终端在第一SIM卡上发起的主叫失败。
[0008] 在一种可能的实现方式中,若第一终端接收到来自网络设备的取消消息,则换卡重拨条件可以包括1至3中的至少一项:
[0009] 1、若取消消息携带原因值或错误码,则原因值或错误码在预先定义的集合内。应理解,取消消息携带的原因值或错误码有可能不适合换卡重拨,因此通过判断是否属于预先定义的集合,可以提高换卡重拨的准确性。
[0010] 2、第一终端没有输出第一SIM卡主叫失败的语音提示。具体地,第一终端的应用程序层可以通过监控是否创建或运行用于语音提示的音频播放进程,来确定是否输出呼叫失败的语音提示。如果应用程序层在预设时长内,监控到创建或运行用于语音提示的音频播放进程,那么应用程序层可以确认有输出呼叫失败的语音提示。如果在达到预设时长后,应用程序层仍未监控到创建音频播放进程,那么确认没有输出呼叫失败的语音提示。
[0011] 3、第一SIM卡不存在重拨机制。其中,该重拨机制是指在第一SIM卡主叫失败的情况下,在第一SIM卡上再次向第二终端发起主叫的机制。应理解,当第一SIM卡存在重拨机制时,可以在第一SIM卡上再次对第二终端发起重拨,无需用户手动介入,因此不符合换卡重拨条件。
[0012] 在一种可能的实现方式中,上述原因值或错误码可以携带在取消消息的原因头域中。该原因头域可以包括下述任意一项:会话初始协议编码原因头域,Q850原因头域,以及RELEASE_CAUSE原因头域。
[0013] 在一种可能的实现方式中,预先定义的集合包括以下错误类型:客户端错误,服务器错误,以及全局错误。
[0014] 在一种可能的实现方式中,若第一终端的应用程序层接收到来自与第一SIM卡关联的调制解调器的响应消息,则换卡重拨条件包括1和2中的至少一项:
[0015] 1、第一终端没有输出第一SIM卡主叫失败的语音提示。具体地,第一终端的应用程序层可以通过监控是否创建或运行用于语音提示的音频播放进程,来确定是否输出呼叫失败的语音提示。如果应用程序层在预设时长内,监控到创建或运行用于语音提示的音频播放进程,那么应用程序层可以确认有输出呼叫失败的语音提示。如果应用程序层在达到预设时长后,仍未监控到创建音频播放进程,那么确认没有输出呼叫失败的语音提示。
[0016] 2、第一SIM卡不存在重拨机制。其中,重拨机制是指在第一SIM卡主叫失败的情况下,在第一SIM卡上再次向第二终端发起主叫的机制。应理解,当第一SIM卡存在重拨机制时,可以在第一SIM卡上再次对第二终端发起重拨,无需用户手动介入,因此不符合换卡重拨条件。
[0017] 在一种可能的实现方式中,该方法还可以包括:在第一SIM卡存在重拨机制的情况下,第一终端通过第一SIM卡,在IMS上或在电路域上,重新向第二终端发起主叫。应理解,当第一SIM卡存在重拨机制时,仍可以在IMS上继续向第二终端发起主叫,也可以切换至电路域重新向第二终端发起主叫。
[0018] 在一种可能的实现方式中,在第一SIM卡上向第二终端发起主叫,包括:在第一终端将第一SIM卡设置为默认拨号卡的情况下,在第一SIM卡上向第二终端发起主叫;或者,在第一终端未设置默认拨号卡的情况下,响应于用户对第一SIM卡的选择操作,在第一SIM卡上向第二终端发起主叫。
[0019] 在一种可能的实现方式中,第一终端在第二SIM卡上向第二终端发起主叫之后,该方法还包括:在与第二SIM卡对应的主叫界面上,显示提示信息,该提示信息用于指示第一终端正在通过第二SIM卡向第二终端发起主叫。应理解,当在第二SIM卡上向第二终端发起主叫之后,通过显示提示信息,使得用户可以更容易察觉到已经自动换卡重拨。
[0020] 在一种可能的实现方式中,在第一终端在第二SIM卡上向第二终端发起主叫之前,该方法还包括:确定第二SIM卡的IMS服务状态处于正常状态。应理解,即便第一终端满足换卡重拨条件,由于第二SIM卡的IMS服务状态也可能处于异常服务状态,若是直接在第二SIM卡上向第二终端发起主叫,可能再次导致主叫失败,因此可以先确定第二SIM卡的IMS服务状态处于正常状态,再在第二SIM卡上向第二终端发起主叫,从而提高了第一终端的主叫成功率。
[0021] 第二方面,本申请提供一种重拨装置,该装置包括用于执行上述第一方面的方法的单元/模块。该装置可对应于执行上述第一方面描述的方法,该装置中的单元/模块的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
[0022] 第三方面,提供一种终端设备,包括处理器、存储器和通信接口。处理器和通信接口均与存储器耦合。该通信接口用于与网络设备传输数据。该处理器与存储器耦合,该处理器用于执行该存储器中存储的计算机程序或指令,以使得终端设备实现如第一方面中任一项的重拨方法。
[0023] 第四方面,提供一种芯片,该芯片与存储器耦合,该芯片用于读取并执行该存储器中存储的计算机程序,以实现如第一方面中任一项的重拨方法。
[0024] 第五方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在终端设备上运行时,使得终端设备执行如第一方面中任一项的重拨方法。
[0025] 第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任一项的重拨方法。
[0026] 可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

[0027] 图1为本申请实施例提供的一种基于IMS的通信系统的架构示意图;
[0028] 图2为本申请实施例提供的一种注册和拨打电话的流程示意图;
[0029] 图3为本申请实施例提供的基于SIP的基本拨号流程示意图;
[0030] 图4为本申请实施例提供的手机的结构示意图;
[0031] 图5为本申请实施例提供的终端设备的软件结构示意图;
[0032] 图6为本申请实施例提供的一种双卡管理界面的示意图;
[0033] 图7为本申请实施例提供的一种重拨方法的流程示意图;
[0034] 图8为本申请实施例提供的另一种重拨方法的流程示意图;
[0035] 图9为本申请实施例提供的在双卡管理界面中设置默认拨号卡的示意图;
[0036] 图10为本申请实施例提供的使用SIM卡1拨号的界面示意图;
[0037] 图11为本申请实施例提供的在双卡管理界面中不设置默认拨号卡的示意图;
[0038] 图12为本申请实施例提供的使用SIM卡2拨号的界面示意图;
[0039] 图13为本申请实施例提供的换卡重拨的界面图;
[0040] 图14为本申请实施例提供的重拨装置的结构示意图。

具体实施方式

[0041] 为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
[0042] 在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B。在本申请的描述中,“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
[0043] 在本申请的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。例如,第一SIM卡和第二SIM卡是用于区别不同的SIM卡,而不是用于描述SIM卡的特定顺序。在本申请实施例中,“多个”是指两个或两个以上。
[0044] 在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0045] 图1为本申请实施例提供的一种基于IMS的通信系统的架构示意图。如图1所示,该通信系统可以包括接入网和核心网。其中,接入网可以包括:终端设备01(也称为第一终端)当前驻留的第一无线电蜂窝小区03,以及终端设备02(也称为第二终端)当前驻留的第二无线电蜂窝小区04。核心网可以包括IMS系统05。
[0046] IMS系统05是一个在分组(packet switch,PS)域上的多媒体控制/呼叫平台。IMS使得PS域具有电路(circuit switching,CS)域的部分功能,支持会话类和非会话类的多媒体业务。IMS系统05支持的IP媒体业务类型可以分为:信息类业务,多媒体呼叫话音业务,增强型呼叫管理,群组业务,信息共享和在线娱乐等。通常,在SIM卡成功注册至IMS系统的前提条件下,IMS系统可以为SIM卡提供通话业务/呼叫话音业务等。
[0047] IMS系统05的核心网元可以包括呼叫会话控制功能(call session control function,CSCF)。根据CSCF在网络中所处的位置的不同,承担的作用也不一样,CSCF可以分为如图1所示的三种类型的功能实体:代理呼叫会话控制功能(proxy‑call session control function,P‑CSCF),问询呼叫会话控制功能(interrogation‑call session control function,I‑CSCF),服务呼叫会话控制功能(serving‑call session control function,S‑CSCF)。其中,P‑CSCF是IMS系统中与终端设备的第一个连接点,提供代理功能,即接受并转发业务请求。I‑CSCF类似于IMS系统的关口节点,负责分配S‑CSCF、路由查询以及IMS域间拓扑隐藏等。S‑CSCF在IMS系统中处于核心控制地位,负责对终端设备的注册鉴权、会议控制以及用户数据管理等。
[0048] 应理解,IMS系统05还可以包括其他功能实体,比如,多媒体资源功能(multimedia resource function,MRF)、本地用户服务器(home subscriber server,HSS)、媒体网关控制功能(Media Gateway Control Function,MGCF)、IMS媒体网关(IMS media gateway,IMS MGW)和信令网关(signaling gateway,SGW)等,本申请实施例不作限定。
[0049] 以如图1所示的终端设备01为主叫设备,终端设备02为被叫设备为例,图2示出了本申请实施例提供的一种注册和拨打电话的流程示意图,图3示出了本申请实施例提供的基于会话初始协议(session initialization protocol,SIP)的基本拨号流程示意图。
[0050] 如图2所示,P‑CSCF‑01位于终端设备01的拜访网络。I‑CSCF‑01、S‑CSCF‑01和HSS‑01位于终端设备01的归属网络。P‑CSCF‑02位于终端设备02的拜访网络。I‑CSCF‑02、S‑CSCF‑02和HSS‑02位于终端设备02的归属网络。终端设备01的注册流程如1至8对应的虚线所示。P‑CSCF‑01用于把用户注册请求路由回终端设备01的归属网络,S‑CSCF‑01负责处理签权,HSS‑01用于提供用户的签权数据。假设终端设备01和终端设备02分别成功注册至归属网络。当终端设备01的SIM卡在第一无线电蜂窝小区03发起主叫时,向P‑CSCF‑01发送呼叫(invite)请求。P‑CSCF‑01根据用户的注册时保存的路由把用户的业务请求,路由回S‑CSCF‑01。S‑CSCF‑01负责分析被叫路由,依次通过I‑CSCF‑02、S‑CSCF‑02和P‑CSCF‑02,将invite请求发送至终端设备02。终端设备02再依次通过P‑CSCF‑02、S‑CSCF‑02、I‑CSCF‑02、S‑CSCF‑01和P‑CSCF‑01,向终端设备01返回183消息,183消息用于指示会话进度。
[0051] 如图3所示,终端设备01向终端设备02发起主叫(dialog)的过程可用事务1、事务2和事务3标记。主叫过程具体可以包括下述步骤:
[0052] 步骤1.终端设备01向网络设备发送invite请求,该invite请求负责启动会话。
[0053] 步骤2.网络设备立即向终端设备01发送100 trying响应消息,以停止invite请求的重传。
[0054] 步骤3.网络设备在位置服务器中搜索终端设备02的地址,并在获得地址之后,向终端设备02转发该invite请求。
[0055] 步骤4.网络设备向终端设备01发送183 trying消息,用于指示会话进度。
[0056] 步骤5.终端设备01向网络设备发送PRACK请求,该PRACK请求是对收到183消息或180消息的确认。
[0057] 步骤6.网络设备向终端设备01发送ACK响应消息,以对PRACK请求进行确认。
[0058] 步骤7.终端设备01向网络设备发送UPDATA请求,以请求进行终端设备01的能力等信息更新。
[0059] 步骤8.网络设备即向终端设备01发送ACK响应消息,用于对UPDATA请求进行确认。
[0060] 步骤9.由终端设备02产生的180响铃(临时响应)被返回至终端设备01,从而终端设备01播放回铃音。
[0061] 步骤10.终端设备02在用户接听电话后,立即生成200 OK响应。
[0062] 步骤11.在终端设备01收到200 OK后,终端设备02接收来自终端设备01的确认(ACK)消息。
[0063] 步骤12.终端设备01和终端设备02会话建立,并且实时传输协议(real‑time transport protocol,RTP)分组开始从两端传输。
[0064] 步骤13.在对话之后,终端设备01或终端设备02可以发送结束(BYE)请求以终止会话。
[0065] 步骤14.BYE请求从终端设备01发送到终端设备02。
[0066] 步骤15.终端设备02发送200 OK响应以确认BYE请求并且会话终止。
[0067] 需要说明的是,上述步骤1至步骤15仅为示例性说明,其并不对本申请实施例形成限定。在实际实现时,可以根据实际需求仅执行这些步骤中的部分步骤,比如仅执行步骤1至步骤4,以及步骤步骤9至步骤15。
[0068] 在上述呼叫流程中,如果终端设备01接收到来自网络设备的180 trying响应消息,那么终端设备01会振铃,以提示用户。然而,基于某些原因会出现振铃前电话被挂断的问题。下面提供几种电话被立即挂断的场景:
[0069] 场景1、终端设备设置有双电信卡,且双电信卡在IMS正常注册。当双电信卡的副卡发起主叫时,在终端设备振铃之前,通过副卡接收到网络设备发送的错误码或原因值。如果副卡没有重拨机制,那么电话会被立即挂断。
[0070] 场景2、终端设备设置有双电信卡,且双电信卡的主卡在IMS正常注册,双电信卡的副卡的IMS服务状态异常。当副卡发起主叫时,副卡检测到IMS服务状态异常,且没有重拨机制,那么电话会被立即挂断。
[0071] 场景3、终端设备设置有双卡,双卡中的一张卡是广电卡,且广电卡在IMS正常注册。当广电卡发起主叫时,在终端设备振铃之前,通过广电卡接收到网络设备发送的错误码或原因值。如果广电卡没有重拨机制,那么电话会被立即挂断。其中,广电卡与电信卡所支持的网络制式不同。
[0072] 场景4、终端设备设置有双卡,双卡中的一张卡是广电卡,且广电卡的IMS服务状态异常。当广电卡发起主叫时,广电卡检测到IMS服务状态异常,且没有重拨机制,那么电话会被立即挂断。
[0073] 场景5、终端设备设置有双卡,且双卡在IMS正常注册。当双卡中的任意一张卡拨打电话时,在终端设备振铃之前,通过该卡接收到网络设备发送的错误码或原因值。如果该卡没有重拨机制,且没有语音提示,那么电话会被立即挂断。
[0074] 场景6、终端设备设置有双卡,当双卡中的任意一张卡拨打电话时,由于该卡欠费,且没有语音提示,那么电话会被立即挂断。
[0075] 基于上述几种场景,在振铃前电话被挂断的原因可以被分为两类:一类是在振铃前收到网络错误码或原因值,另一类是IMS服务状态异常。为了解决由于这些原因导致电话被挂断,从而影响用户正常通话的问题,本申请实施例提供一种重拨方法及终端设备:针对设置有多个SIM卡的终端设备,当由于振铃前收到网络错误码或IMS服务状态异常等原因,导致在一张SIM卡主叫被快速挂断时,终端设备会在另一张SIM卡上自动发起拨号,从而使得用户可以通过另一张SIM卡与被叫设备通话,保证了正常通话,提高了主叫成功率,并提升了用户的通话体验。
[0076] 在本申请实施例中,发起主叫的终端设备和被叫的终端设备可以为任意一种能够承载SIM卡的电子设备,比如手机、平板电脑、个人电脑、工作站设备、可穿戴设备、车载设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、大屏设备、掌上游戏机、家用游戏机、用户驻地设备、上网本、个人数字助理(personal digital assistant,PDA)或用户设备(user equipment)等,本申请实施例不作限定。
[0077] 以发起主叫的终端设备为手机为例,图4示出了本申请实施例提供的手机的结构示意图。
[0078] 如图4所示,手机可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,以及骨传导传感器180M等。
[0079] 可以理解的是,本申请实施例示意的结构并不构成对手机的具体限定。在本申请另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0080] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器,调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器(baseband processor,BP),和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0081] 其中,控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0082] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0083] 在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter‑integrated circuit,I2C)接口,集成电路内置音频(inter‑integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general‑purpose input/output,GPIO)接口,SIM接口,和/或USB接口等。
[0084] 手机的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0085] 天线1和天线2用于发射和接收电磁波信号。图4中的天线1和天线2的结构仅为一种示例。手机中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0086] 移动通信模块150可以提供应用在手机上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0087] 调制解调处理器可以包括一个或多个调制解调器(modem),并且每个modem关联一个SIM卡。modem可以对关联的SIM卡的语音呼叫等进行处理,例如:接听或挂断,并且还可以用于从SIM卡中读取所需数据,例如SIM卡的号码等。每个调制解调器包括一个调制器和一个解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
[0088] 无线通信模块160可以提供应用在手机上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi‑Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0089] 在一些实施例中,手机的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括:全球移动通信(global system for mobile communications,GSM)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、时分码分多址(time‑division code division multiple access,TD‑SCDMA)、通用分组无线业务(general packet radio service,GPRS)、长期演进(long term evolution,LTE)、LTE频分双工(frequency division duplex,FDD)、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)、第五代(5th generation,5G)、新空口(new radio,NR),GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi‑zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
[0090] 手机通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0091] 显示屏194用于显示图像,视频等。显示屏194包括显示面板,显示面板可以用于显示拨号界面、正在通话界面、来电界面和通讯录界面等。在一些实施例中,手机可以包括1个或N个显示屏194,N为大于1的正整数。
[0092] 数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当手机在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0093] 外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将通话录音、通话视频等文件保存在外部存储卡中。
[0094] 内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能)等。存储数据区可存储手机使用过程中所创建的数据(比如音频数据,通讯录等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0095] 手机可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如通话音频播放,回铃音播放等。
[0096] 音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
[0097] 扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。手机可以通过扬声器170A收听免提通话。
[0098] 受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当手机接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
[0099] 麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。手机可以设置至少一个麦克风170C。
[0100] 耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
[0101] 指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
[0102] SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和手机的接触和分离。手机可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。手机通过SIM卡和网络交互,实现通话以及数据通信等功能。
[0103] 在本申请实施例中,手机可以插入多张SIM卡,当一张SIM卡无法提供正常通话服务时,手机可以在另一张SIM卡上自动发起主叫。需要说明的是,下述实施例是以发起主叫的终端设备设置有第一SIM卡(SIM卡1)与第二SIM卡(SIM卡2)为例进行说明,应理解,本申请实施例提供的重拨方法同样可适用于设置有三个SIM卡及三卡以上的终端设备。
[0104] 另外,终端设备中设置有多个SIM卡与多个modem,一个modem与一个SIM卡对应或关联。需要说明的是,本申请一些实施例是以一个SIM卡与一个modem关联为例进行说明的。在另一些实施例中,多个SIM卡也可以关联至同一个modem,即多个SIM卡使用同一个modem收发数据。
[0105] 在一些实施例中,SIM卡1和SIM卡2可以为移动SIM卡、联通SIM卡、电信SIM卡或广电SIM卡,本申请对此不作限定。应理解,不同通信运营商提供的SIM卡,可能支持相同的网络制式,也可能支持不同的网络制式,本申请实施例不作限定。
[0106] 在一些实施例中,SIM卡1和SIM卡2可以为具备物理实体的SIM卡,比如嵌入式SIM卡(即小卡)和卡片式SIM卡(即大卡),在SIM卡插入手机的卡槽后,可以实现通话以及数据通信等功能。在另一些实施例中,SIM卡也可以为不具备物理实体的SIM卡,比如eSIM卡是将传统SIM卡转变为“电子版本”嵌入到手机的芯片上。
[0107] 在一些实施例中,SIM卡1和SIM卡2可以采用下述任意一种网络制式,例如:GSM、CDMA、WCDMA、TD‑SCDMA、GPRS、LTE、FDD、TDD、UMTS、WiMAX、NR或其他可能的网络制式等,本申请实施例不作限定。
[0108] 图5为本申请实施例提供的终端设备的软件结构示意图。如图5所示,终端设备可以采用分层架构,将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将软件结构的软件层从上至下依次划分为:应用程序层、框架层和硬件抽象层。另外,为了更清楚地示意由终端设备发起的主叫流程(即拨号流程),图5还示出了位于硬件层中的SIM卡1、SIM卡2、与SIM卡1关联的modem1、以及与SIM卡1关联的modem2。
[0109] 应用程序(application,AP)层,简称为应用层,可以包括一系列应用程序包,比如拨号(dialer)应用、电信(telephony)应用、电话(telecomm)应用和拨号界面(incallUI)应用等。当这些应用程序包被运行时,可以通过应用编程接口(application programming interface,API)访问应用程序框架层提供的各个服务模块,并且执行相应的智能化业务。
[0110] 框架层(framework,FW)用于支持应用程序层中的各个应用程序的运行。比如,框架层可以包括电信框架模块(telephony)和电话框架模块(telecom fw),其中,电信框架模块(telephony)可以包括RIL.java,即RILJ。
[0111] 硬件抽象层(HAL)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,为了保护硬件厂商的知识产权,它隐藏了特定平台的硬件接口细节。比如,硬件抽象层可以包括音频接口层模块(radio interface layer demon,RILD)。RILD是modem与android系统通讯的桥梁。
[0112] 硬件层,可以包括位于BP中的modem1,modem2,SIM卡1和SIM卡2。modem1和modem2用于负责实际的无线通信能力的处理。用户可以在SIM卡1或SIM卡2上发起主叫。
[0113] 通话过程是一个多进程交互的过程,主要进程有dialer进程、phone进程、telecom进程、incallui进程和音频(audio)进程。通常,拨号应用运行在dialer进程中,电信应用运行在常驻进程phone进程中,电话应用运行在phone(system)进程中,拨号界面应用运行在incallui进程中。其中,dialer进程负责拨号;phone进程负责通话逻辑,如实际向音频接口层(radio interface layer,RIL)拨号、挂电话及电话状态(如拨号、振铃和接通等)的变更;telecom进程负责逻辑控制,是沟通各个进程交互的桥梁;incallui进程负责通话界面显示;audio进程负责通话声音的传输。
[0114] 拨号是由dialer进程和phone进程调用TelecomManager的方法,最后由位于telecom进程的TelecomService来实现。在分层结构中,拨号流程是按照自上而下的顺序实现的。当终端设备在SIM卡1和SIM卡2中的任意一张SIM卡上发起主叫时,终端设备均可以按照如图2和图3所示的流程进行拨号:当用户对APP的拨号界面进行操作后,拨号应用通过TelecomManager的接口拨号,telecom进程一边向phone进程请求拨号,一边通知incallui进程显示拨号界面。然后,从电话(telecomm)应用到RILJ,再到RILD,之后到modem,从而实现了拨号。
[0115] 需要说明的是,图5示出的软件结构中的层以及各层中包含的部件,并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
[0116] 以终端设备01向终端设备02发起主叫为例进行说明,作为主叫设备的终端设备01可以支持设置两张及两张以上的SIM卡。终端设备01可以开启“智能切换拨号卡”功能。
[0117] 示例性地,图6为本申请实施例提供的一种双卡管理界面的示意图。当用户想要开启终端设备01的双卡管理功能时,用户可以点击设置选项,触发终端设备01显示如图6所示的双卡管理界面61。在SIM卡1和SIM卡2均处于开启状态的情况下,用户可以通过对虚线框62中的圆形控件进行左右拖动操作,触发终端设备01开启“智能切换拨号卡”功能,即,当一张拨号卡无法使用时,允许终端设备自动暂时切换至另一张拨号卡发起主叫。
[0118] 在终端设备01开启“智能切换拨号卡”功能的情况下,如果由于振铃前收到网络错误码或IMS服务状态异常等原因,导致在一张SIM卡主叫被快速挂断时,终端设备01会在另一张SIM卡上自动发起拨号,从而使得用户可以通过另一张SIM卡与被叫设备通话。下面以实施例1描述的在振铃前收到网络错误码场景和实施例2描述的IMS服务状态异常场景为例,介绍本申请实施例提供的重拨方法的流程示意图。
[0119] 实施例1
[0120] 针对终端设备01在一张卡发起主叫后,在振铃前收到网络错误码导致主叫失败的场景,在终端设备01收到网络设备发送的错误码或原因值后,终端设备01先检查是否满足重拨条件,如果满足重拨条件,则在终端设备01的另一张卡发起主叫。
[0121] 示例性地,图7示出了一种重拨方法的流程示意图。如图7所示,终端设备01为主叫设备,终端设备02为被叫设备,网络设备为IMS系统中的任意一个或多个网络设备。其中,终端设备01设置有SIM卡1和SIM卡2,SIM卡1与modem1关联,SIM卡2与modem2关联。该方法可以包括下述的S71至S78。
[0122] S71.在终端设备01的AP检测到用户对拨号键盘的操作之后,向与SIM卡1关联的modem1下发拨号指令ATD1。
[0123] 其中,拨号指令ATD1用来设置通话、数据或传真呼叫等。拨号指令ATD1可以包括终端设备02的SIM卡的号码,比如拨号指令ATD1的格式可以为ATD134********。
[0124] 在一些实施例中,终端设备01的AP向与SIM卡1关联的modem1下发拨号指令ATD1的流程可以如图5所示。当用户对APP的拨号界面进行操作后,拨号(dialer)应用通过TelecomManager的接口拨号,telecom进程一边向phone进程请求拨号,一边通知incallui进程显示拨号界面。然后,从电话(telecomm)应用到RILJ,再到RILD,之后到modem1,从而实现了拨号。
[0125] S72.在SIM卡1的IMS服务状态处于正常状态的情况下,modem1响应于拨号指令ATD1,向网络设备发送invite请求消息,该invite请求消息可以用于请求与终端设备02建立通话。
[0126] 其中,invite请求消息可以包括终端设备02的SIM卡的号码。
[0127] 在一些实施例中,invite请求消息可以是一条SIP消息。该SIP消息至少可以包含如下头域:TO头域,FROM头域,Cseq头域,Call‑ID头域,Max‑Forwards头域以及Via头域。其中,TO头域可以用于指示接收地址,FROM头域可以用于指示来源地址,Cseq头域可以用于区分事务的顺序,Call‑ID头域是区分一组消息的唯一标志,Max‑Forwards头域可以用于限制请求到他的目的地中间的跳转,Via头域可以用于标志事务传输的传输设备和应答送回的地址。
[0128] S73.modem1接收网络设备返回的取消(cancel)消息,该cancel消息可以用于指示取消invite请求,即在SIM卡1上发起的主叫失败。
[0129] S74.modem1将cancel消息上报至终端设备01的AP。
[0130] 如图3所示,在终端设备01正常注册至IMS系统的情况下,如果终端设备01向网络设备发送invite请求消息,网络设备将invite请求消息转发至终端设备02,那么网络设备先后向终端设备01返回了100 trying响应消息,183 trying响应消息,ACK响应消息,以及180 trying响应消息等,从而终端设备01振铃。但是,如果在终端设备01向网络设备发送invite请求消息后,发生错误,那么网络设备可能无法向终端设备01返回180 trying响应消息等,而向modem1返回一个cancel消息,从而modem1将cancel消息上报至终端设备01的AP。
[0131] 需要说明的是,上述cancel消息可以在下述任意一个时间节点返回:100 trying响应消息的发送时间节点,183 trying响应消息的发送时间节点,ACK响应消息的发送时间节点,以及180 trying响应消息的发送时间节点。即,cancel消息可以用于替换这些时间节点中的任意一个时间节点的响应消息。
[0132] 在一些实施例中,网络设备可以为IMS系统中的任意一个网络设备,比如代理服务器。相应地,cancel消息可以为任意一个网络设备生成的,或由终端设备02生成的,可以根据实际使用需求进行确定,本申请实施不作限定。
[0133] 比如,上述cancel消息可以为由某个网络设备生成并返回至终端设备01的,比如,当网络设备发生网关错误时,网络设备会返回一个用于指示网关错误的错误码“502”。
[0134] 再比如,上述cancel消息可以为由终端设备02生成,并经过网络设备返回至终端设备01的,比如当终端设备02正在与其他终端设备处于通话中时,会经过网络设备向终端设备01返回一个用于指示电话正忙的错误码“486”。
[0135] 在一些实施例中,cancel消息可能携带原因(reason)头域,reason头域可以用于指示错误的原因值或者错误码。
[0136] 示例性地,reason头域可以为sip code原因头域,Q850原因头域,以及RELEASE_CAUSE原因头域中的至少一类,其中,在每类reason头域中可以包含一个原因值或错误码。
[0137] 在另一些实施例中,cancel消息也可能不携带reason头域,即不携带原因值或错误码。
[0138] 应理解,当cancel消息携带reason头域时,由于携带的原因可能并不在预先定义的集合内,因此,终端设备01的AP需要检测cancel消息携带的原因值是否在预先定义的集合内,即执行下述S75a。当cancel消息不携带reason头域时,终端设备01的AP将其默认为cancel消息携带的原因值在预先定义的集合内,即无需执行下述S75a,而直接执行下述S75b。
[0139] S75.终端设备01的AP检测是否满足换卡重拨条件。
[0140] 在一些实施例中,上述换卡重拨条件可以包括下述至少一项:
[0141] ①cancel消息携带的原因值在预先定义的集合内;
[0142] ②终端设备01没有输出呼叫失败的语音提示;
[0143] ③SIM卡1不存在重拨机制。
[0144] 若换卡重拨条件包括的所有条件中的任意一项条件不满足,则终端设备01的AP确定不符合本次换卡重拨优化场景,结束流程。
[0145] 若换卡重拨条件包括的所有条件均满足,则终端设备01的AP确定符合本次换卡重拨优化场景,在终端设备01的SIM卡2上发起拨号。
[0146] 下面以换卡重拨条件包括上述①‑③为例,上述S75具体可以包括S75a‑ S75c:
[0147] S75a.终端设备01的AP检测cancel消息携带的原因值是否则预先定义的集合内。若cancel消息携带的原因值在预先定义的集合内,则执行下述S75b。否则,终端设备01的AP确定不符合本次换卡重拨优化场景,结束流程。
[0148] 下面对sip code原因头域,Q850原因头域,以及RELEASE_CAUSE原因头域这三类reason头域进行详细说明。
[0149] (1)sip code原因头域
[0150] 根据SIP协议(RFC 3261协议),状态编码(status‑code)是一个由3位数字组成的结果编码(result code),3位数字中的第一个数字用于表示应答类型。status‑code允许6类应答:
[0151] 1xx:临时应答‑‑请求已经接收,正在处理这个请求。
[0152] 2xx:成功处理‑‑请求已经成功接收,并且正确处理了这个请求。
[0153] 3xx:重定向‑‑还需要附加的操作才能完成这个请求,本请求转发到其他的服务器上处理。
[0154] 4xx:客户端错误‑‑请求包含错误的格式或者不能在这个服务器上完成。
[0155] 5xx:服务器错误‑‑服务器不能正确的处理这个显然合法的请求。
[0156] 6xx:全局错误‑‑请求不能被任何服务器处理。
[0157] 在本申请实施例中,如果cancel消息携带的status‑code在4xx、5xx和6xx定义的集合内,即,携带下述任意一个错误码,那么将执行下述S75b。
[0158] 4xx对应的客户端错误有28个:
[0159] Client‑Error =
[0160]                  / "400" ; Bad Request //非法请求
[0161]                  / "401" ; Unauthorized //无用户权限
[0162]                  / "402" ; Payment Required //需要付款
[0163]                  / "403" ; Forbidden //禁止
[0164]                  / "404" ; Not Found //未发现
[0165]                  / "405" ; Method Not Allowed //方法不被允许
[0166]                  / "406" ; Not Acceptable //未被接收
[0167]                  / "407" ; Proxy Authentication Required //代理服务器需要认证
[0168]                  / "408" ; Request Timeout //请求超时
[0169]                  / "410" ; Gone //请求失效
[0170]                  / "413" ; Request Entity Too Large //请求实体过大[0171]                  / "414" ; Request‑URI Too Large // URI的长度过长[0172]                  / "415" ; Unsupported Media Type //不支持的媒体类型[0173]                  / "416" ; Unsupported URI Scheme //不支持Request‑URI中的URI
[0174]                  / "420" ; Bad Extension //错误扩展
[0175]                  / "421" ; Extension Required //需要扩展
[0176]                  / "423" ; Interval Too Brief //间隔过短
[0177]                  / "480" ; Temporarily not available //临时失效
[0178]                  / "481" ; Call Leg/Transaction Does Not Exist //呼叫/事务不存在
[0179]                  / "482" ; Loop Detected //发现环路
[0180]                  / "483" ; Too Many Hops //跳数过多
[0181]                  / "484" ; Address Incomplete //地址不完整
[0182]                  / "485" ; Ambiguous //不明确
[0183]                  / "486" ; Busy Here //电话正忙
[0184]                  / "487" ; Request Terminated //请求终止
[0185]                  / "488" ; Not Acceptable Here //此处不可接受
[0186]                  / "491" ; Request Pending //未决请求
[0187]                  / "493" ; Undecipherable //不可辨识
[0188] 5xx对应的服务器错误有7个:
[0189] Server‑Error =
[0190]                  "500" ; Internal Server Error //服务器内部错误
[0191]                  / "501" ; Not Implemented //不可执行
[0192]                  / "502" ; Bad Gateway //坏网关
[0193]                  / "503" ; Service Unavailable //服务无效
[0194]                  / "504" ; Server Time‑out //服务器超时
[0195]                  / "505" ; SIP Version not supported //版本不支持[0196]                  / "513" ; Message Too Large // 消息太大
[0197] 6xx对应的全局错误有4个:
[0198] Global‑Failure =
[0199]                  "600" ; Busy Everywhere //全忙
[0200]                  / "603" ; Decline //丢弃
[0201]                  / "604" ; Does not exist anywhere //不存在
[0202]                  / "606" ; Not Acceptable //不可接受
[0203] (2)Q850原因头域
[0204] 根据Q850协议,与Q850原因头域对应的原因值可以包括74个:
[0205] 1 Q850 Cause: Unallocated number //未分配的号码(空号)
[0206] 2 Q850 Cause: No route to specified transit network //无路由到达规定的转换网络
[0207] 3 Q850 Cause: No route to destination //无至目的地的路由
[0208] 4 Q850 Cause: send special information tone //发送特殊信息音
[0209] 5 Q850 Cause: misdialed trunk prefix //拨错号码的树干前缀
[0210] 6 Q850 Cause: channel unacceptable //不可接受的信道
[0211] 7 Q850 Cause: call awarded. being delivered in an established channel //呼叫已给出并正在已建立的通路上递交
[0212] 8 Q850 Cause: preemption //抢占
[0213] 9 Q850 Cause: preemption ‑ circuit reserved for reuse //呼叫正在被预先占有
[0214] 16 Q850 Cause: normal call clearing //正常清除
[0215] 17 Q850 Cause: user busy //用户正忙
[0216] 18 Q850 Cause: no user responding //无用户响应
[0217] 19 Q850 Cause: no answer from user (user alerted) //已有用户提醒,但无应答
[0218] 20 Q850 Cause: subscriber absent //用户缺席
[0219] 21 Q850 Cause: call rejected //呼叫拒绝
[0220] 22 Q850 Cause: number changed //号码改变
[0221] 23 Q850 Cause: Reverse charging rejected //反转计费被拒
[0222] 24 Q850 Cause: call rejected due to feature at the destination //由于目的地的功能呼叫被拒绝
[0223] 25 Q850 Cause: pre‑emption //优先认购
[0224] 26 Q850 Cause: non‑selected user clearing //清除未选择的用户
[0225] 27 Q850 Cause: destination out of order //终点故障
[0226] 28 Q850 Cause: invalid number format (address incomplete) //拨打号码未完整
[0227] 29 Q850 Cause: facilities rejected //设施被拒绝
[0228] 30 Q850 Cause: response to STATUS INQUIRY //对状态查询的响应
[0229] 31 Q850 Cause: normal Unspecified //正常未指定
[0230] 34 Q850 Cause: no circuit/channel available //无电话/信号可用
[0231] 35 Q850 Cause: Call Queued //呼叫等候
[0232] 38 Q850 Cause: network out of order //网络故障
[0233] 39 Q850 Cause: permanent frame mode connection out‑of‑service //永久帧方式连接未开放业务
[0234] 40 Q850 Cause: permanent frame mode connection operational //永久帧方式连接可运营
[0235] 41 Q850 Cause: temporary failure //临时故障
[0236] 42 Q850 Cause: switching equipment congestion //交换设备拥塞
[0237] 43 Q850 Cause: access information discarded //接入信息被丢弃
[0238] 44 Q850 Cause: requested circuit/channel not available //请求的电路/信道不可用
[0239] 46 Q850 Cause: precedence call blocked //优先呼叫被阻止
[0240] 47 Q850 Cause: resource unavailable, unspecified //资源不可用,未规定[0241] 49 Q850 Cause: Quality of Service not available //服务质量不可用[0242] 50 Q850 Cause: requested facility not subscribed //未预订所请求的设施[0243] 52 Q850 Cause: outgoing calls barred //呼出受阻
[0244] 53 Q850 Cause: outgoing calls barred within CUG //CUG内呼入呼叫阻塞[0245] 54 Q850 Cause: incoming calls barred //呼入受阻
[0246] 55 Q850 Cause: incoming calls barred within CUG //CUG 内呼出呼叫阻塞[0247] 57 Q850 Cause: bearer capability not authorized //承载能力未认可[0248] 58 Q850 Cause: bearer capability not presently available ///承载能力目前不可用
[0249] 62 Q850 Cause: inconsistency in outgoing information element //分配的呼出接入信息与用户级别不一致
[0250] 63 Q850 Cause: service or option not available. unspecified //无适用的业务或任选项目,未规定
[0251] 65 Q850 Cause: bearer capability not implemented //承载业务不能实现[0252] 66 Q850 Cause: channel type not implemented //通路类型未实施
[0253] 69 Q850 Cause: requested facility not implemented //所请求的设施不能实现
[0254] 70 Q850 Cause: only restricted digital information bearer capability is available //仅能获得受限数字信息承载能力
[0255] 79 Q850 Cause: service or option not implemented unspecified //业务不能实现,未规定
[0256] 81 Q850 Cause: invalid call reference value //无效处理识别码
[0257] 82 Q850 Cause: identified channel does not exist //所标识的通路不存在[0258] 83 Q850 Cause: a suspended call exists, but this call identify does not //存在暂停的呼叫,但无所有的呼叫身份
[0259] 84 Q850 Cause: call identity in use //呼叫身份正在使用
[0260] 85 Q850 Cause: no call suspended //无呼叫暂停
[0261] 86 Q850 Cause: call having the requested call identity has been cleared //具有所请求的呼叫身份的呼叫已被清除
[0262] 87 Q850 Cause: user not a member of CUG //用户不是CUG成员
[0263] 88 Q850 Cause: incompatible destination //非兼容目的地址
[0264] 90 Q850 Cause: non‑existent CUG // CUG不存在
[0265] 91 Q850 Cause: invalid transit network selection //无效过渡网选择[0266] 95 Q850 Cause: invalid message, unspecified //无效消息,未规定
[0267] 96 Q850 Cause: mandatory information element is missing //未选消息单元差错
[0268] 97 Q850 Cause: message type non‑existent or not implemented //消息类型不存在或不能实现
[0269] 98 Q850 Cause: message not compatible with call state or message type non‑existent or not implemented //消息与控制状态不兼容,消息类型不存在或不能实现
[0270] 99 Q850 Cause: Information element / parameter non‑existent or not implemented //信息单元不存在或不能实现
[0271] 100 Q850 Cause: Invalid information element contents //无效信息单元内容
[0272] 101 Q850 Cause: message not compatible with call state //消息与呼叫状态不兼容
[0273] 102 Q850 Cause: recovery on timer expiry //定时器超时恢复
[0274] 103 Q850 Cause: parameter non‑existent or not implemented ‑ passed on //参数不存在或未实施,通过
[0275] 110 Q850 Cause: message with unrecognized parameter discarded //带不可识别的参数的消息,丢弃
[0276] 111 Q850 Cause: protocol error, unspecified //协议差错,未规定
[0277] 127 Q850 Cause: Intel‑working, unspecified //互通,未规定
[0278] (3)RELEASE_CAUSE原因头域
[0279] 根据3GPP24.229协议,与RELEASE_CAUSE原因头域对应的原因值可以包括7个:
[0280] Reason: RELEASE_CAUSE; cause=1;text="User ends call" //用户结束通话[0281] Reason: RELEASE_CAUSE; cause=3;text="Media bearer loss" //媒体承载丢失
[0282] Reason: RELEASE_CAUSE; cause=4;text="SIP timeout ‑ no ACK" // SIP超时‑无响应
[0283] Reason: RELEASE_CAUSE; cause=5;text="SIP response time‑out" // SIP响应超时
[0284] Reason: RELEASE_CAUSE; cause=6;text="Call‑setup time‑out" //呼叫接续时长超时
[0285] Reason: RELEASE_CAUSE; cause=7;text="Redirection Failure" //重定向失败
[0286] S75b.终端设备01的AP检测终端设备01是否输出呼叫失败的语音提示。若终端设备01没有输出呼叫失败的语音提示,则执行下述S75c。否则,终端设备01的AP确定不符合本次换卡重拨优化场景。
[0287] 在一些实施例中,语音提示可以为网络放音或本地放音。
[0288] 示例性地,网络设备可以向终端设备01返回183消息。如果183消息携带早媒体信息,比如彩铃,那么终端设备01的modme1通知AP播放由与早媒体信息对应的音频,即播放网络携带的音频。如果183消息未携带早媒体信息,那么终端设备01的modme1通知AP,由AP决定是否由终端设备本地放音。无论采用网络放音还是本地放音,终端设备01都会创建一个音频播放进程,用来播放声音提示。AP可以通过监控是否创建或运行用于语音提示的音频播放进程,来确定是否输出呼叫失败的语音提示。
[0289] 如果AP在预设时长内,监控到创建或运行用于语音提示的音频播放进程,那么AP可以确认有输出呼叫失败的语音提示,比如,终端设备01可以通过扬声器170A、受话器170B或与耳机接口170D连接的耳机输出“当前呼叫失败”的语音提示。然后,用户可以感知到采用SIM卡1发起的呼叫失败,之后在SIM卡1上尝试重拨,或手动切换到SIM卡2上发起呼叫。
[0290] 如果AP在达到预设时长后,仍未监控到创建音频播放进程,那么确认没有输出呼叫失败的语音提示,为了使得用户能够正常通话,则执行下述S75c。
[0291] S75c.终端设备01的AP检测SIM卡1是否存在重拨机制。若SIM卡1不存在重拨机制,则执行下述S76。否则,终端设备01的AP确定不符合本次换卡重拨优化场景,并在IMS上尝试重拨或在CS上尝试重拨。
[0292] 其中,上述重拨机制是指在SIM卡1上向终端设备02的SIM卡发起拨号失败后,自动在SIM卡1上再次向终端设备02的在SIM卡重新发起拨号。
[0293] 当终端设备01的AP检测到SIM卡1存在重拨机制时,终端设备01的AP可以采用下述任意一种重播方式:一种方式为,终端设备01的AP向SIM卡1发送指令,用以指示继续在IMS上尝试重拨;另一种方式为,终端设备01的AP向SIM卡1发送指令,用以指示切换至在CS域尝试重拨。应理解,当SIM卡1存在重拨机制时,无论SIM卡1采用何种播放机制,均不符合本次换卡重拨优化场景。而当SIM卡1不存在重拨机制时,可以切换至SIM卡2上进行重拨,符合本次换卡重拨优化场景。
[0294] 需要说明的是,上述实施例是按照S75a、S75b和S75c依次执行的顺序进行描述的,其并不对本申请实施例进行限定,在实际实现时,可以对S75a、S75b和S75c的执行顺序进行调整,比如先执行S75a,再执行S75c,最后执行S75b。
[0295] S76.终端设备01的AP查询SIM卡2的服务状态。
[0296] 在终端设备01开机时,或在终端设备01的移动网络功能开启时,SIM卡1和SIM卡2会向各自的代理服务器发起IMS注册申请,并记录IMS注册结果。或者,当某个SIM卡的IMS网络状态更新时,SIM卡会记录IMS更新结果。因此,终端设备01的AP可以从每个SIM卡获知该卡的网络服务状态。比如,当终端设备01的AP检测到满足换卡重拨条件时,AP向SIM卡2发送查询消息,并从SIM卡2获知该卡的网络服务状态。
[0297] SIM卡2的服务状态可以为正常服务(normal service)状态或非正常服务(innormal service)状态。当SIM卡2处于正常服务状态时,IMS系统允许为SIM卡2提供通话服务和数据服务等。当SIM卡2处于非正常服务状态时,IMS系统无法为SIM卡2提供通话服务和数据服务等。
[0298] S77.如果SIM卡2的服务状态为正常服务状态,那么终端设备01的AP向与SIM卡2关联的modem2下发拨号指令ATD2。其中,拨号指令ATD2用来设置通话、数据或传真呼叫等。其中,拨号指令ATD2可以包括终端设备02的SIM卡的号码。
[0299] S78.modem2向网络设备发送invite请求消息,invite请求消息用于请求与终端设备02建立通话。
[0300] 对于S77和S78的具体实现方式,可以参照上述S71和S72的描述,此处不再赘述。
[0301] 应理解,当终端设备在一张卡发起主叫后,如果振铃前收到网络错误码导致主叫失败,且满足重拨条件,那么可以在终端设备的另一张卡发起主叫,从而保证用户与其他用户的正常通话,提高了主叫成功率,并提升了用户的通话体验。
[0302] 实施例2
[0303] 针对终端设备01的一张卡注册异常,或IMS服务状态处于非正常状态导致主叫失败的场景,当用户使用该卡拨号时,终端设备01的AP查询该卡的IMS服务状态,如果该卡处于非正常状态,那么在终端设备01的另一张卡发起主叫。
[0304] 示例性地,图8示出了另一种重拨方法的流程示意图。如图8所示,终端设备01为主叫设备,终端设备02为被叫设备,网络设备为IMS系统中的任意一个或多个网络设备。其中,终端设备01设置有SIM卡1和SIM卡2,SIM卡1与modem1关联,SIM卡2与modem2关联。该方法可以包括下述的S81至S86。
[0305] S81.在终端设备01的AP检测到用户对拨号键盘的操作之后,向与SIM卡1关联的modem1下发拨号指令ATD1。
[0306] 其中,拨号指令ATD1用来设置通话、数据或传真呼叫等。拨号指令ATD1可以包括终端设备02的SIM卡的号码,比如拨号指令ATD1的格式可以为ATD134********。
[0307] S82.在确定SIM卡1的IMS服务状态处于非正常状态的情况下,modem1向AP返回响应消息。其中,该响应消息可以用于指示SIM卡1的IMS服务状态处于非正常状态,即SIM卡1无法提供IMS服务。
[0308] S83.终端设备01的AP检测是否满足换卡重拨条件。
[0309] 在一些实施例中,上述换卡重拨条件可以包括下述至少一项:
[0310] ①终端设备01没有输出呼叫失败的语音提示;
[0311] ②SIM卡1不存在重拨机制。
[0312] 若换卡重拨条件包括的所有条件中的任意一项条件不满足,则终端设备01的AP确定不符合本次换卡重拨优化场景,结束流程。
[0313] 若换卡重拨条件包括的所有条件均满足,则终端设备01的AP确定符合本次换卡重拨优化场景,在终端设备01的SIM卡2上发起拨号。
[0314] 下面以换卡重拨条件包括上述①和②为例,上述S83具体可以包括S83a‑ S83b:
[0315] S83a.终端设备01的AP检测终端设备01是否输出呼叫失败的语音提示。若终端设备01没有输出呼叫失败的语音提示,则执行下述S83b。否则,终端设备01的AP确定不符合本次换卡重拨优化场景,并输出语音提示。
[0316] S83b.终端设备01的AP检测SIM卡1是否存在重拨机制。若SIM卡1不存在重拨机制,则执行下述S84。否则,终端设备01的AP确定不符合本次换卡重拨优化场景,并在IMS上尝试重拨,或在CS上尝试重拨。
[0317] 其中,上述重拨机制是指在SIM卡1上向终端设备02的SIM卡发起拨号失败后,自动在SIM卡1上再次向终端设备02的在SIM卡重新发起拨号。
[0318] 需要说明的是,上述实施例是按照S83a和S83b依次执行的顺序进行描述的,其并不对本申请实施例进行限定,在实际实现时,也可以先执行S83b,再执行S83a。
[0319] S84.终端设备01的AP查询SIM卡2的服务状态。
[0320] 在终端设备01开机时,或在终端设备01的移动网络功能开启时,SIM卡1和SIM卡2会向各自的代理服务器发起IMS注册申请,并记录IMS注册结果。或者,当某个SIM卡的IMS网络状态更新时,SIM卡会记录IMS更新结果。因此,终端设备01的AP可以从每个SIM卡获知该卡的网络服务状态。比如,当终端设备01的AP检测到满足换卡重拨条件时,AP向SIM卡2发送查询消息,并从SIM卡2获知该卡的网络服务状态。
[0321] SIM卡2的服务状态可以为正常服务(normal service)状态或非正常服务(innormal service)状态。当SIM卡2处于正常服务状态时,IMS系统允许为SIM卡2提供通话服务和数据服务等。当SIM卡2处于非正常服务状态时,IMS系统无法为SIM卡2提供通话服务和数据服务等。
[0322] S85.如果SIM卡2的服务状态为正常服务状态,那么终端设备01的AP向与SIM卡2关联的modem2下发拨号指令ATD2。其中,拨号指令ATD2用来设置通话、数据或传真呼叫等。拨号指令ATD2可以包括终端设备02的SIM卡的号码。
[0323] S86.modem2向网络设备发送invite请求消息,invite请求消息用于请求与终端设备02建立通话。
[0324] 对于S83至S86的具体实现方式,可以参照上述S75至S78的描述,此处不再赘述。
[0325] 应理解,当终端设备在一张卡发起主叫后,如果查询到该卡的IMS服务状态为异常状态,那么会在终端设备的另一张卡发起主叫,从而保证用户与其他用户的正常通话,提升了用户的通话体验。
[0326] 需要说明的是,在上述实施例1和实施例2中,在modem2向网络设备发送invite请求消息后,如果网络设备返回cancel消息,且终端设备01设置有SIM卡3,那么可以参照上述实施例的方法,在SIM卡3上向终端设备02发送呼叫请求;或者,终端设备01没有设置有SIM卡3,那么可以再次在SIM卡1上向终端设备02发送呼叫请求,或结束呼叫流程。
[0327] 上述实施例1和实施例2分别介绍了在振铃前收到网络错误码场景和IMS服务状态异常场景下,如果在SIM卡1上发起主叫失败,那么自动在SIM卡2上发起主叫的流程。由于本申请实施例的终端设备01可以设置默认拨号卡(即主卡),也可以不设置默认拨号卡,因此下面结合图9至图12,对这两种情况下的SIM卡进行介绍。
[0328] 情况一、终端设备01设置了默认拨号卡
[0329] 示例性地,图9示出了在双卡管理界面中设置默认拨号卡的示意图。如图9所示,在终端设备01的双卡管理界面中,SIM卡1和SIM卡2均处于开启状态,用户可以通过对虚线框91中的圆形控件进行左右拖动操作,触发终端设备01开启“智能切换拨号卡”功能。此外,用户可以通过对虚线框92中的“卡1”控件或“卡2”控件的选择操作,触发终端设备01设置默认拨号卡。
[0330] 如果用户选择了“卡1”控件,那么终端设备将SIM卡1设置为主卡,将SIM卡2设置为副卡,如此,终端设备01每次会在SIM卡1上发起主叫。如图10中的(a)所示,在用户利用拨号键盘输入被叫用户的电话号码后,如果用户点击“呼叫控件”,那么终端设备01可以向与SIM卡1关联的modem1下发拨号指令,即自动在SIM卡1发起主叫,同时终端设备01显示如图10中的(b)所示的卡1正在呼叫界面。
[0331] 在一种场景中,如图7中的S71至S78所示,如果终端设备01在振铃前收到网络错误码导致主叫失败,那么终端设备01可以先检查是否满足重拨条件,如果满足重拨条件,则在SIM卡2上自动发起主叫。
[0332] 在另一种场景中,如图8中的S81至S86所示,如果终端设备01的SIM卡1注册异常,或IMS服务状态处于非正常状态导致主叫失败,那么终端设备01的AP查询SIM卡2的IMS服务状态,如果该卡处于正常服务状态,那么在SIM卡2上自动发起主叫。
[0333] 情况二、终端设备01不设置默认拨号卡
[0334] 示例性地,图11示出了在双卡管理界面中不设置默认拨号卡的示意图。如图11所示,在终端设备01的双卡管理界面中,SIM卡1和SIM卡2均处于开启状态,用户可以通过对虚线框11中的圆形控件进行左右拖动操作,触发终端设备01开启“智能切换拨号卡”功能。此外,用户可以通过对虚线框12中的“不设置”选项的操作,触发终端设备01不设置默认拨号卡。
[0335] 由于用户没有设置默认拨号卡,因此终端设备01会在每次发起呼叫前,提示用户选择用于拨号的SIM卡。如图12中的(a)所示,在用户利用拨号键盘输入被叫用户的电话号码后,如果用户点击“呼叫控件”,那么终端设备01可以显示如图12中的(b)所示的“SIM卡1”选项和“SIM卡2”选项。如果用户点击“SIM卡1”选项,那么终端设备01可以向与SIM卡1关联的modem1下发拨号指令,即,终端设备01响应于用户操作,在SIM卡1发起主叫,同时,终端设备01显示如图12中的(c)所示的卡1正在呼叫界面。
[0336] 在一种场景中,如图7中的S71至S78所示,如果终端设备01在振铃前收到网络错误码导致主叫失败,那么终端设备01可以先检查是否满足重拨条件,如果满足重拨条件,则在SIM卡2上自动发起主叫。
[0337] 在另一种场景中,如图8中的S81至S86所示,如果终端设备01的SIM卡1注册异常,或IMS服务状态处于非正常状态导致主叫失败,那么终端设备01的AP查询SIM卡2的IMS服务状态,如果该卡处于正常服务状态,那么在SIM卡2上自动发起主叫。
[0338] 应理解,作为另外一种实现方式,如果用户点击如图12中的(b)所示的“SIM卡2”选项,那么终端设备01可以向与SIM卡2关联的modem2下发拨号指令,即响应于用户操作,在SIM卡2发起主叫,同时终端设备01显示的卡2正在呼叫界面。进一步地,如果SIM卡2主叫失败,那么可以在SIM卡1上自动发起主叫。
[0339] 在本申请实施例中,在SIM卡1上发起主叫失败后,终端设备01可以在SIM卡2上自动发起主叫。由于整个重拨过程是由终端设备01自动执行的,用户无需用户手动介入,因此为了使得用户可以感知到已经换卡重拨,终端设备01可以通过界面显示、语音输出、机械振动或灯光闪烁等方式对用户进行已经自动换卡重拨的提示。
[0340] 示例性地,图13为本申请实施例提供的换卡重拨的界面图。在终端设备01响应于用户操作,在SIM卡1上发起主叫后,同时终端设备01显示如图13中的(a)所示的卡1正在呼叫界面,该界面包括一个“187XXXXXXXX卡1正在呼叫的”提示标识31。如果由于振铃前收到网络错误码或者IMS服务状态异常等原因导致SIM卡1发起的主叫失败,那么终端设备可以按照如图7中的S71至S78所示的步骤,或如图8中的S81至S86所示的步骤,在SIM卡2上自动发起主叫。在SIM卡2上自动发起主叫的过程中,终端设备01显示如图13中的(b)所示的卡2正在呼叫界面,该界面包括一个“187XXXXXXXX卡2正在呼叫的”提示标识32。
[0341] 由于如图13中的(a)所示的卡1正在呼叫界面与如图13中的(b)所示的卡2正在呼叫界面的界面内容较为接近,用户可能无法轻易察觉到区别,从而无法及时获知已经换卡重拨。为了避免类似问题,如图13中的(b)所示,卡2正在呼叫界面还可以包括一个提示框33,该提示框33包括提示内容“由于网络原因电话正在卡2上尝试”。其中,提示框33的尺寸可以大于或等于预设尺寸;或者,提示框33可以在界面的预设位置(比如中心位置)显示;或者,显示框33的背景颜色和字体颜色可以为预设颜色,比如背景颜色为黑色,字体颜色为黄色。应理解,与提示标识32相比,提示框33的显示方式更为明显,用户可以更容易察觉到已经自动换卡重拨。
[0342] 上述主要从终端设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,终端设备为了实现上述功能,其包含了执行每一个功能相应的硬件结构或软件模块,或两者结合。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0343] 本申请实施例可以根据上述方法示例对终端设备进行功能模块的划分,例如,可以对应每一个功能划分每一个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应每一个功能划分每一个功能模块为例进行说明。
[0344] 图14为本申请实施例提供的一种重拨装置的结构示意图。如图14所示,该重拨装置40可以包括接收模块41、主叫模块42、确定模块43和显示模块44。该重拨装置可对应上述实施例中的终端设备01,即第一终端。
[0345] 接收模块41,可以用于接收用户的拨号操作。主叫模块42,可以用于响应于用户的拨号操作,在第一SIM卡上向第二终端发起主叫。确定模块43,可以用于确定第一SIM卡向第二终端发起的主叫失败。主叫模块42,还可以用于在满足换卡重拨条件的情况下,在第二SIM卡上向第二终端发起主叫。
[0346] 在一种可能的实现方式中,确定模块43,具体可以用于在接收到来自网络设备的取消消息的情况下,确定第一SIM卡向第二终端发起的主叫失败,该取消消息用于指示第一SIM卡主叫失败;或者,在应用程序层接收到来自与第一SIM卡关联的调制解调器的响应消息的情况下,确定第一SIM卡向第二终端发起的主叫失败,该响应消息用于指示第一SIM卡的IMS服务状态处于非正常状态。
[0347] 在一种可能的实现方式中,若接收到来自网络设备的取消消息,则换卡重拨条件包括1至3中的至少一项:
[0348] 1、若取消消息携带原因值或错误码,则原因值或错误码在预先定义的集合内。
[0349] 2、没有输出第一SIM卡主叫失败的语音提示。
[0350] 3、第一SIM卡不存在重拨机制。其中,该重拨机制是指在第一SIM卡主叫失败的情况下,在第一SIM卡上再次向第二终端发起主叫。
[0351] 在一种可能的实现方式中,若应用程序层接收到来自与第一SIM卡关联的调制解调器的响应消息,则换卡重拨条件包括1和2中的至少一项:
[0352] 1、没有输出第一SIM卡主叫失败的语音提示。
[0353] 2、第一SIM卡不存在重拨机制。其中,重拨机制是指在第一SIM卡主叫失败的情况下,在第一SIM卡上再次向第二终端发起主叫。
[0354] 在一种可能的实现方式中,主叫模块42,还可以用于在第一SIM卡存在重拨机制的情况下,通过第一SIM卡,在IMS上或在电路域上,重新向第二终端发起主叫。
[0355] 在一种可能的实现方式中,主叫模块42,具体用于在将第一SIM卡设置为默认拨号卡的情况下,在第一SIM卡上向第二终端发起主叫;或者,在未设置为默认拨号卡的情况下,响应于用户对第一SIM卡的选择操作,在第一SIM卡上向第二终端发起主叫。
[0356] 在一种可能的实现方式中,显示模块44,可以用于在第二SIM卡上向第二终端发起主叫之后,在与第二SIM卡对应的主叫界面上,显示提示信息。其中,该提示信息可以用于指示正在通过第二SIM卡向第二终端发起主叫。
[0357] 在一种可能的实现方式中,确定模块43,还可以用于在第二SIM卡上向第二终端发起主叫之前确定第二SIM卡的IMS服务状态处于正常状态。
[0358] 应理解,图4所示的手机可对应于图14所示的重拨装置。其中,图4所示的手机中的传感器模块180,可以对应于图14中的重拨装置中的接收模块41;图4所示的手机中的处理器110,可以对应于图14中的重拨装置中的主叫模块42和确定模块43;图4所示的手机中的显示屏194,可以对应于图14中的重拨装置中的显示模块44。
[0359] 本申请实施例还提供了一种终端设备,包括处理器,处理器与存储器耦合,处理器用于执行存储器中存储的计算机程序或指令,以使得终端设备实现上述各实施例中的方法。
[0360] 本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令;当该计算机可读存储介质在终端设备上运行时,使得该终端设备执行如上所示的方法。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘或磁带),光介质或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
[0361] 本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
[0362] 本申请实施例还提供了一种芯片,该芯片与存储器耦合,该芯片用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。该芯片可以为通用处理器,也可以为专用处理器。在一些实施例中,该芯片包括处理器、收发器和存储介质。其中,处理器用于支持终端设备执行如上所示的技术方案。收发器用于接受处理器的控制,用于支持终端设备执行如上所示的技术方案。
[0363] 需要说明的是,该芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
[0364] 上述本申请实施例提供的终端设备、重拨装置、计算机可读存储介质、计算机程序产品以及芯片均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
[0365] 应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述检测方法的各个实施例中某些步骤可以是不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。
[0366] 还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
[0367] 还应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0368] 还应理解,本申请实施例中,“预先设定”、“预先定义”可以通过在设备(例如,包括终端设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。
[0369] 还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。
[0370] 还应理解,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
[0371] 最后应说明的是:以上描述内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。