VoLTE手机拨打固话不通分析案例
VoLTE手机拨打固话不通的分析案例【摘要】VoLTE全员测试中发现,使用高通芯片的VoLTE手机在拨打部分固话时,接入失败,而使用海思芯片的VoLTE手机可正常接入。通过各网元节点跟踪抓包分析,端到端分析VOLTE呼叫流程,最终定位为核心网QCI1专用承载未及时建立的问题。核心网PCRF在第一次收到SBC发送的AAR后未能及时建立QCI1的专用承载,高通芯片的VoLTE手机收到183消息后没有向IMS发送了PRACK消息,导致接入失败,而海思芯片的VoLTE手机可正常发送PRACK消息。修改PCRF承载建立配置参数后解决问题。关键字:PRACK 专用承载 未接通 AAR Precondition【故障现象】:VoLTE全员测试反馈三星、中兴等VoLTE手机拨打部分固话不通,部分固话可接通,而华为VoLTE手机拨打固话均可正常接通,三星、中兴、华为VoLTE手机互打正常。【处理过程】:(1) 鼎利软件测试分析使用三星S7拨打固话0559-2536597,测试显示未接通,主叫处于呼叫状态无任何应答,最后终端向IMS发起CANCEL;三星S7拨打86118114测试截图由上图可以看到,网络侧收到INVITE消息后,下发了100 trying信令,之后下发了183消息,终端在收到183消息后向IMS发送了PRACK消息,但未收到网络侧发来的200 OK消息,呼叫建立;三星S7拨打86118114测试截图随后当终端向网络侧发起CANCEL后,终端才收到网络侧IMS下发的多个183消息协商请求,从鼎力测试软件看到终端没有收到IMS发送的200 OK消息,导致呼叫未建立。(2) 基站侧跟踪分析通过U2000跟踪信令流程,发现网络侧收到INVITE消息后,下发了100 trying信令,之后也下发了183消息,但未向EPC上传PRACK消息,由于正常的呼叫流程U2000跟踪也只显示上传PRACK消息,而不显示收到UE侧上行的PRAC消息,因此不能证明基站是否收到UEPRACK消息但未转发给EPC,导致SIP流程未走通,呼叫失败。(3) 测试LOG底层信令分析查看三星S7终端测试底层LOG,发现终端在应用层生成了PRACK,但并未真正发出去,终端底层LOG未发现相关消息。1)终端收到183 SESSION后,应用层生成了SIP PRACK2)但在该消息之后终端的PDCP/RLC没有任何数据发出去:3)正常流程如下图所示,可以看到产生了PRACK后,有上行的RLC PDU发到网络侧:至此分析得出是三星VoLTE终端没有发PRACK消息,导致呼叫流程中断,部分固话可以接通的原因是,这部分固话有彩铃,PRACK消息可由彩铃网关发给被叫,呼叫流程可继续走完。同时测试中兴等其他使用高通芯片的VoLTE手机结果相同。(4) 核心网抓包分析通过核心网对三星S7(异常呼叫)进行信令跟踪,在核心网侧跟踪GTP消息中,按照流程正常通话PGW要向SBC发送” Update Bearer Response”消息,然后PGW向MME发送 “ Create Bearer Request ”确认消息,并建立激活“Activate dedicated EPS bearer context request”即QCI 1的专用承载。 华为P10正常呼叫跟踪截图三星S7异常呼叫跟踪截图而异常呼叫跟踪信令中,MME未收到来自PGW发送的“ Create Bearer Request ”确认消息,QCI 1的专用承载未建立成功。从核心网跟踪的情况对比分析看,是VOLTE业务的QCI 1专用承载未激活。(5) QCI1专用承载建立分析通过分析初步判断是因为QCI1专用承载未建立激活,导致了SIP协议信令流程出现异常问题,重点进一步分析VOLTE业务QCI 1专用承载建立流程是否存在问题。VOLTE主叫业务呼叫流程图按照VOLTE主叫业务呼叫流程,QCI 1专用承载的建立激活,需要SBC的P-CSCF向核心网的PCRF发送AAR指令后,PCRF向PGW发送RAR请求消息,PGW向PCRF发送RAA响应消息后,PGW/SGW向MME发送”Create Bearer Request”后,MME向UE分配建立QCI 1专用承载;所以根据上述流程,需要明确以下两点: SBC的P-CSCF是否有向PCRF发送AAR指令? PCRF向PGW发送RAR请求消息中,请求建立的QCI业务承载是什么? 下图为SBC抓包Rx接口信令消息,接口协议类型为diameter协议:SBC在Rx接口抓包截图从Rx接口信令抓包分析看,P-CSCF确认向PCRF发送了AAR请求消息,PCRF也向P-CSCF发送了RAA响应消息,此节点间信令正常。 下图为核心网PGW/SGW抓包收到PCRF发送的RAR消息截图:从上图可以看到,在起呼时PCRF收到SBC的第一个AAR消息后,PCRF下发给PGWRAR消息中激活的QCI为5的默认承载,并非创建QCI为1的专用承载;导致QCI为1的专用承载未建立。【解决方法】:检查PCRF配置为第一次收到AAR消息建QCI5的承载,第二次收到AAR消息建QCI1的承载。对PCRF建立QCI承载的配置进行修改,PCRF在收到SBC的第一个AAR消息后就建立QCI为1的专用承载。参数修改后复测从下图可以看到,修改后在起呼时PCRF收到SBC的第一个AAR消息后,PCRF下发给PGWRAR消息中激活的QCI为1的专用承载;修改后三星拨打固话可正常响应183消息,向网络侧上报PRACK消息,接入正常,其他高通芯片VOLTE终端拨打测试均能呼叫成功。 华为P10、Mate9、Mate10等使用海思芯片的VoLTE手机在QCI1的专用承载未建立的情况下,仍然可以向被叫发送PRACK,走完VoLTE呼叫流程,与海思芯片对呼叫流程处理有关。三星VoLTE手机互打时,SBC在收到INVITE后,第一次发AAR给PCRF后,QCI1的专用承载未建立,但是被叫回的183消息中带有SDP,SBC会第二次发AAR给PCRF,根据PCRF配置第二次收AAR就建QCI1的专用承载,而没有彩铃的固话会的183消息中是不含SDP的,因此三星VoLTE手机拨打没有彩铃的固话不通,而三星VoLTE手机互打能通。【经验教训】:Precondition 机制使用 INVITE/183 进行 SDP 协商,从而可以提前建立 QCI1 承载。而非Precondition 的呼叫流程,则是先振铃,再建立好QCI1的专用承载。在QCI1专用承载未建立的情况下,使用高通芯片的VoLTE手机,不能进行后续的呼叫流程,而使用海思芯片的VoLTE手机可以走先通呼叫流程,而后通过200 OK的SDP建立QCI1专用承载。不同的终端对流程的处理不尽相同,多部门协同,端到端的信令跟踪分析非常重要。