基于Andriod平台在Voip通话中实现Volte业务呼入的方法

文档序号:9474285阅读:592来源:国知局
基于Andriod平台在Voip通话中实现Volte业务呼入的方法
【技术领域】
[0001]本发明涉及移动通讯技术领域,具体涉及一种基于Andr1d平台在Voip通话中实现Volte业务呼入的方法。
【背景技术】
[0002]第四代无线数据网络(Long Term Evolut1n,LTE)是目前国际主流的新一代宽带无线移动通信技术,其是面向分组域业务,不能像传统的2G/3G网络那样提供电路域业务,因此如何在LTE网络提供语音业务成为业界关注的一个问题。为此,第三代合作伙伴计划(The 3rd Generat1n Partnership Project, 3GPP)规范定义 LTE 和移动网络演进目标是采用互联网协议IP的多媒体子系统(IP Multimedia Subsystem, IMS)向用户提供多媒体语音业务,此时頂S作为业务控制层系统,LTE和演进的数据核心网(Evolved PacketCore, EPC)仅作为承载层。
[0003]3GPP针对基于LTE的语音(Voice over LTE, VOLTE)部署的问题,标准化了增强单一无线语音呼叫连续性(enhanced Single Rad1 Voice Call Continuty, enhancedSRVCC)、终呼接入域选择(Terminating-Access Domain Select1n, T-ADS)等解决方案或流程。而在这些方案中还不能够使Android用户在Voip通话中得到Volte的通话请求,以选择处理(接听或者拒接),从而使用户漏掉新呼入通话的信息。
[0004]Android原生对volte处理对象即4G通话的Phone对象ImsPhone的管理存在一些不足,目前,根据原生逻辑会创建多个ImsPhone对象来管理Volte,导致CallManager的RingingCalls list中存在多个ImsPhone的Ringcall对象,在有新的Volte来电时,会同时更新这些ImsPhone对象的Ringcall对象,导致RingingCalls list中存在超过I个的来电Ringcall对象,根据原生逻辑,不通知APP,直接挂断来电。且在这个过程中ImsPhone对象会被创建多次,浪费系统资源。另外,一个ImsPhone对象足够处理所有的Volte通话,多个对象反而引起管理混乱及系统消耗,导致对VOLTE的来电处理错误。

【发明内容】

[0005]有鉴于此,本申请提供一种基于Andr1d平台在Voip通话中实现Volte业务呼入的方法。该方法可以使Android用户在Voip通话中得到Volte的通话请求,用户可以选择接听或者拒接新的来电。
[0006]为解决以上技术问题,本发明提供的技术方案是基于Andr1d平台在Voip通话中实现Volte业务呼入的方法,包括步骤:ImsPhone对象的创建,以及ImsPhone对象的管理;
[0007]步骤ImsPhone对象的创建包括:
[0008]PhoneBase接收到IMS Service启动的广播后,遍历CallManager中管理Phone对象的列表,查找是否存在ImsPhone对象,如果存在则直接返回,不创建ImsPhone对象;如果不存在则创建ImsPhone对象,然后调用CallManager接口,把ImsPhone对象添加到CallManager 中统一管理;
[0009]步骤ImsPhone对象的管理包括:
[0010]当Voip来电时,首先创建SipPhone对象,把SipPhone的Ringcall对象添加到CallManager 的 RingingCalls list 中统一管理,并更新 RingingCalls list 中 SipPhone的Ringcall为当前实际的来电Ringcall对象,上报到APP处理新的来电。根据原生逻辑,在创建SipPhone对象的同时还会创建ImsPhone对象。但在本方案中,修改了 ImsPhone的创建条件,此处不会再创建新的ImsPhone对象;
[0011]APP接通Voip来电,Voip变为通话中状态,将把SipPhone对象的Ringcall对象更新为Frogrouncall对象,当前的Ringcall对象更新为空;
[0012]Volte 来电,把 CallManager 中的 RingingCalls list 中已经存在的 ImsPhone 的Ringcall对象都更新为当前的来电Ringcall对象,上报到APP处理新的来电;由于在Voip来电时,修改了 ImsPhone的创建条件,此时在CallManager中的RingingCalls list中只有一个ImsPhone对象。根据原生逻辑,此时RingingCalls list中只有I个的来电Ringcall对象,上层APP收到新来电的请求,用户选择接听或者拒接新的来电。
[0013]进一步地,所述步骤ImsPhone对象的创建还包括PhoneBase接收到IMS Service关闭的广播后,会调用CallManager接口,把当前ImsPhone移除CallManager管理,销毁ImsPhone 对象。
[0014]进一步地,所述步骤ImsPhone对象的管理还包括在手机开机后系统构建初始的RingingCalls list,其中默认存在 GSM 和 IMS 的 Ringcall 对象为 NULL。
[0015]进一步地,VOIP来电后上报到APP,APP接通来电,VOIP变为通话中状态,把SipPhone对象的Ringcall对象更新为Frogrouncall对象,当前的Ringcall对象更新为空。
[0016]与现有技术相比,本发明的有益效果如下:
[0017]本发明基于目前系统中原生的电话管理框架及逻辑,保证整个系统中只有一个ImsPhone对象,首先避免了 ImsPhone对象会被创建多次,浪费系统资源;其次一个ImsPhone对象足够处理所有的VOLTE通话,避免了多个对象反而引起管理混乱及系统消耗,导致对VOLTE的来电处理错误。
[0018]本发明使Android用户在VOIP通话中能够得到VOLTE的通话请求,用户可以选择接听或者拒接。实现用户在VOIP通话中至少能知道有新的VOLTE的通话请求,而不至于漏掉新呼入通话的信息。
【附图说明】
[0019]图1为本发明ImsPhone对象的创建流程图;
[0020]图2为本发明ImsPhone对象的管理流程图。
【具体实施方式】
[0021]为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
[0022]本发明的目的是Android用户在VOIP通话中能够得到VOLTE的通话请求,用户可以选择接听或者拒接,这样用户在VOIP通话中至少能知道有新的VOLTE的通话请求,让用户不至于漏掉新呼入通话的信息。
[0023]本发明所描述的是基于Andr1d平台在Voip通话中实现Volte业务呼入的方法,该方法包括ImsPhone对象的创建及管理,其具体步骤如下:
[0024]如图1所示,ImsPhone对象的创建具体步骤包括:
[0025]SlOU PhoneBase接收到頂S Service的广播,判断是否为启动的广播,如果是则执行步骤S102 ;如果是关闭的广播则执行步骤S104。
[0026]S102、在CallManager中查找是否存在ImsPhone对象,如果存在则直接返回,不创建ImsPhone对象;如果不存在则创建ImsPhone对象。
[0027]S103、调用 CallManager 接口,把 ImsPhone 对象添加到 CallManager 中统一管理。
[0028]S104、调用 CallManager 接口,把当前 ImsPhone 移除 CallManager 管理,销毁ImsPhone 对象。
[0029]本发明所述的方法在需要创建ImsPhone对象时,会先遍历CallManage中管理Phone对象的列表,检测当前是否已经存在了 ImsP
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1