概述
为何建立QCI =9 的默认承载
在Volte 的正常信令流程中,需要建立QCI5的专用承载(走CMNET APN,承载SIP 信令)与QCI=1的专用承载(走IMS APN 承载VoLTE 语音)。QCI =9的默认承载(走CMNET APN)一般用于承载普通的数据业务。
开关飞行模式可以看到QCI=9的默认承载建立,拆除
做volte 呼叫/开关VOlTE 开关可以看到QCI=5的默认承载的建立/释放,接通/挂断后可以看到QCI=1的默认承载的建立/释放
VoLTE MT call SIP signaling
1, NW发送SIP invite 给被叫终端。里面包含了呼叫类似是video call还是audio call(这里发起的是audio call)以及UE的一些参数等。
2, UE发给NW一个100 trying告诉发端我已经收到了正在处理,发送端计时器停止,不需要重新发请求了
3, MT 发送183 Session progress表明MT的audio codec选择以及QOS状况
4, MO端发送PRACK表明收到MT的183消息。
5, MT端发送 200 ok消息,表明183请求已经处理成功。
6, MO发送update消息包含MO的Qos状况和codec状况
7, MT发送200 OK表明update请求已经处理成功。
8, MT端振铃后,网络向MO段发送180 ringing消息。
9, MT发送200 OK表明invite消息已经处理成功。
10, MO发送ACK表明自己已经知道MT端invite请求处理成功。发完后,通话已经建立。相应的audio RTP包开始收发。
11, MT 发送bye 消息,表明终止会话
12, 收到MO 发送200 OK表明确认bye 请求,终止会话
以上信令中还有两条SIP信令:
08:26:03.071[0x1830]IMS VoLTE Session Setup 已经接通,双方通话进行中
Version = 1Version 1 {Dialled String Length = 66Dialled String = sip:460079152683570@[2409:8809:88b3:1be3:671d:8394:dcd4:5e40]:8901Direction = MT //被叫Call Id Length = 47Call Id = drwztzvpd3ywsvdisxurteep7i7pwrri@10.188.179.164Type = 0Originating Uri Length = 66Originating Uri = tel:13326607766;phone-context=+86;noa=subscriber;srvattri=nationalTerminating Uri Length = 54Terminating Uri = sip:+8618802535184@[2409:8019:8830:4700::6];user=phoneResult = OKCall Setup Delay = 0}
08:26:08.729[0x1831]IMS VoLTE Session End 双方通话终止
Version = 1Version 1 {Dialled String Length = 66Dialled String = sip:460079152683570@[2409:8809:88b3:1be3:671d:8394:dcd4:5e40]:8901Direction = MTCall Id Length = 47Call Id = drwztzvpd3ywsvdisxurteep7i7pwrri@10.188.179.164Type = 0Originating Uri Length = 66Originating Uri = tel:13326607766;phone-context=+86;noa=subscriber;srvattri=nationalTerminating Uri Length = 54Terminating Uri = sip:+8618802535184@[2409:8019:8830:4700::6];user=phoneEnd Cause = MO initiated 由MO 侧发起挂断Call Setup Delay = 0}
QXDM 中信令以及代码片段
1.reboot 开机attach and pdn connect setup(data call setup)
1,2,3 条信令:请求进行联合附着(combined EPS/IMSI attach),接受,完成的过程,完成了这个过程UE 既在LTE 核心网侧进行了注册,也在UMTS 网络核心侧进行了注册,2/3/4G核心网相关网元知道了UE 的相关信息以及UE 的capability,为网络进行2/3/4G 互操作(切换,重选,csfb,srvcc等)奠定了条件。
第4条信令:请求建立IMS PDN context,qci=9默认承载建立请求附带在Attach 请求的esm_msg_container容器里,整个过程包括attach request、attach accept、attach complete 三次信令交互(如下具体)
0xB0ED LTE NAS EMM Plain OTA Outgoing Message -- Attach request Msg
msg_type = 65 (0x41) (Attach request)lte_emm_msg emm requestemm_attach_requesttsc = 0 (0x0) (cached sec context)nas_key_set_id = 7 (0x7)att_type = 2 (0x2) (combined EPS/IMSI attach)esm_msg_container 因为打开了volte 开关,要注册IMS,需建立PDN 连接,故附带了esm request msgeps_bearer_id_or_skip_id = 0 (0x0)prot_disc = 2 (0x2) (EPS session management messages)trans_id = 1 (0x1)msg_type = 208 (0xd0) (PDN connectivity request)lte_esm_msgpdn_connectivity_reqpdn_type = 3 (0x3) (Ipv4v6)req_type = 1 (0x1) (initial request)ms_netwk_caplength = 3 (0x3)r99 = 1 (0x1)GEA1 bitsGEA/1 = 1 (0x1)UE_usage_setting = 0 (0x0) (Voice centric)voice_domain_pref_for_EUTRAN = 3 (0x3) (IMS PS Voice preferred, CS Voice as secondary)
0xB0EC LTE NAS EMM Plain OTA Incoming Message -- Attach accept Msg
msg_type = 66 (0x42) (Attach accept)lte_emm_msgemm_attach_acceptattach_result = 2 (0x2) (comb EPS/IMSI attach)esm_msg_containereps_bearer_id_or_skip_id = 5 (0x5)prot_disc = 2 (0x2) (EPS session management messages)trans_id = 1 (0x1)msg_type = 193 (0xc1) (Activate default EPS bearer context request) 激活qci=9的默认承载,走cmnet,用于承载数据lte_esm_msgact_def_eps_bearer_context_req attach sucess,need DRB,请求建立pdn contexteps_qosqci = 9 (0x9) (QC9) 数据承载qci =9,语音是qci=5和qci=1,若数据开关是关闭的这里qci=5access_pointnum_acc_pt_val = 25 (0x19)acc_pt_name_val[0] = 5 (0x5) (length)acc_pt_name_val[1] = 99 (0x63) (c)acc_pt_name_val[2] = 109 (0x6d) (m)acc_pt_name_val[3] = 110 (0x6e) (n)acc_pt_name_val[4] = 101 (0x65) (e)acc_pt_name_val[5] = 116 (0x74) (t)pdn_addrpdn_addr_len = 13 (0xd)pdn_type = 3 (0x3) (IPv4v6)ipv6_interface_id = 0xaa36888e7f1ee546 (aa36:888e:7f1e:e546)ipv4_addr = 170134474 (0xa240bca) (10.36.11.202) 网关分配给UE 的ip…
0xB0ED LTE NAS EMM Plain OTA Outgoing Message --
msg_type = 67 (0x43) (Attach complete)lte_emm_msgemm_attach_completeesm_msg_containereps_bearer_id_or_skip_id = 5 (0x5)prot_disc = 2 (0x2) (EPS session management messages)trans_id = 0 (0x0)msg_type = 194 (0xc2) (Activate default EPS bearer context accept)lte_esm_msgact_def_eps_bearer_context_acceptprot_config_incl = 0 (0x0)ext_prot_config_incl = 0 (0x0)
0xB0E3 LTE NAS ESM Plain OTA Outgoing Message -- PDN connectivity request Msg
msg_type = 208 (0xd0) (PDN connectivity request) 这条消息是BS->MS,是对请求建立(attach accept消息中有携带的act_def_eps_bearer_context_req)pdn context 消息的confirmlte_esm_msgpdn_connectivity_reqpdn_type = 3 (0x3) (Ipv4v6)req_type = 1 (0x1) (initial request)info_trans_flag_incl = 0 (0x0)access_pt_name_incl = 1 (0x1)access_pt_name_num_acc_pt_val = 4 (0x4)acc_pt_name_val[0] = 3 (0x3) (length)acc_pt_name_val[1] = 73 (0x49) (I)acc_pt_name_val[2] = 77 (0x4d) (M)acc_pt_name_val[3] = 83 (0x53) (S)prot_config_incl = 1 (0x1)prot_config
2. NAS,CM & DS informs DPL that LTE service is available, rsrp is -96 ,4g signal good
IMS/High [qpDcm.c 9423] qpDplProcessSSInfoEvent: Blindly update.MainStack PrevRSRP=-96 NewRSRP=-95IMS/High [qpDcm.c 9435] qpDplProcessSSInfoEvent: Blindly update.MainStack PrevRSRQ=-7 NewRSRQ=-7Call Manager/High [cm.c 26574] =CM= cm_get_operator_info() asubs_id=0,operator=1IMS/High [ qpDcm.c 8052] qpDcmGetServingSystem: Iterating DS Sys Info, rat_value = 3, so_mask = 2000IMS/Medium [qpDcm.c 8213] qpDcmGetServingSystem: sPrefSysInfo[0].ePrefRAT is 10IMS/High [qpdpl.c 6556] qpDplGetAccessType | returning ACCTYPE_3GPP_E_UTRAN_TDDIMS/High [qpdpl.c 6596] DPL_M#>>#IMS_APP#0#qpDplGetAccessType-AccessType=21;ServStatus=2
3. MT call sip related message received & response sent
IMS/Medium [ qpdpl.c 7386] imsSignalHandler - Event:54520, Valid:1IMS/High [ qpdplnet.c 7253] qpDplNetRecvBuff: Connection Profile a0221ec0!IMS SIP/High [ qpSipDispatcher.cp 2176] QpSipDispatcher::setPriorityInfo| Req Rcvd = INVITEIMS SIP/High [ sipConnection.cpp 3832] EVENT_SIP_RESPONSE_SEND: SIP/2.0 183 Session ProgressIMS SIP/High [ qpSipDispatcher.cp 2176] QpSipDispatcher::setPriorityInfo| Req Rcvd = PRACKIMS SIP/High [ sipConnection.cpp 3832] EVENT_SIP_RESPONSE_SEND: SIP/2.0 200 OKIMS SIP/High [ qpSipDispatcher.cp 2176] QpSipDispatcher::setPriorityInfo| Req Rcvd = UPDATEIMS SIP/High [ sipConnection.cpp 3832] EVENT_SIP_RESPONSE_SEND: SIP/2.0 200 OKIMS SIP/High [ sipConnection.cpp 3832] EVENT_SIP_RESPONSE_SEND: SIP/2.0 180 RingingIMS SIP/High [ sipConnection.cpp 3832] EVENT_SIP_RESPONSE_SEND: SIP/2.0 200 OKIMS SIP/High [ qpSipDispatcher.cp 2176] QpSipDispatcher::setPriorityInfo| Req Rcvd = ACKIMS SIP/High [ sipConnection.cpp 3849] EVENT_SIP_REQUEST_SEND: BYE sip:[2409:8019:8830:4700::6]:5062;TRC=ffffffff-ffffffff;Dpt=edaa-200 SIP/2
4. IMS reported MT_RING_CNF to cmipcall,确认振铃
Call Manager/High [ cmipapp.c 3577] =CM= RPT name 602Call Manager/High [cmtask.c 10838] =CM= RPT RXD: IP cmd=602Call Manager/Low [cmipcall.c 1912] =CM= START cmipcall_rpt_proc, cmd=602Call Manager/High [cmipcall.c 2177] =CM= IP RXD: MT_RING_CNF, id=12, sys_mode=512, as_id=1
5. report codec info to client(such as CM)
IMS/High [qpDplCallCtrl.c 7391] qpDplCallCtrlReportInd: eRptNameType = 617/* To pass the audio codec info to Apps for Audio** management and UI indication.** payload:cmipapp_audio_codec_s_type** cmll.h file*/Call Manager/High [cmipapp.c 3577] =CM= RPT name 617
6. Answer the volte call and MT call accepted
Call Manager/High [ cm.c 4345] =CM= CALL_CMD_ANSWER pi value 0Call Manager/High [ cmdbg.c 3600] =CM= >>CM callcmd 1: 17Call Manager/Medium [ cmipapp.c 4833] =CM= CM->IMS: CMIPAPP: Sending ANSWER, call_id 12, cause -1, is_accept 1IMS/High [ qipcall_cmd_mgr.c 297] [qipcallcmd_try] Incoming call being accepted IMS/High [ qipcall_cmd_mgr.c 341] [qipcallcmd_try] go ahead and process the call answer
7. Connection setup means Volte session setup, also AUDIO CODEC INFO notify to CM
IMS/High [ qipcalldialog.c 5246] [process_send_response] [response: 200]IMS/High [ qipcallh.c 12996] qipcallh_config_rtp_remote_addr:AMR-NB CMR = 15 neg_codec_modes 128IMS/High [ qipcallcodec.c 3286] qipcallcodec_media_get_active_codec [codec: 117]IMS/High [ qipcallcodec.c 770] [qipcallcodec_media_acquire] [success]IMS/High [ qipcallh.c 5467] call AUDIO CODEC INFO eCALL_IND_AUDIO_CODEC_INFO Call Id=12, codec = 6 sample rate 8000Call Manager/High [ cmtask.c 10838] =CM= RPT RXD: IP cmd=617Call Manager/High [ cmph.c 39082] =CM= cmph_ip_rpt_proc, cmd=617IMS/High [ qipcallrtp.c 1794] [qipcallrtp_resume_rtp_stream] [qvp_rtp_resume_stream success]IMS/High [qvp_sdp_media_info.c 1489] [QVP_SDP]add_media_codec_to_media_description : media type = audio and no. of channels - 1IMS/High [ qpaudio_svs.c 675] Posting CVD Command 110feIMS/High [ qipcallh.c 5990] connect rpt ind for call_type = 1 eVideoAttrib = 0 eAudioAttrib = 3Call Manager/High [ cmtask.c 10838] =CM= RPT RXD: IP cmd=604IMS/High [ qipcallh.c 4866] qipcall_rpt_ind ret from qfDplCallCtrlReportInd = 1Call Manager/High [ cmipcall.c 2479] =CM= DS: SUB 2 IP RXD: CONNECTED, id=12, as_id=1IMS/High [ qipcallh.c 3194] Stop QIPCALL Ringing or Ringback timer id 12
8. make RTP configure
IMS/Medium [ qipcallh.c 29701] qipcallh_process_rtcp_reporting: rtcp xr interval is 0, use 5s as default valueIMS/Medium [ qpaudio_svs.c 3443] dplaudio_process_apr_cb: Waking up to do workIMS/Medium [ qpaudio_svs.c 2999] apr_msg_len 23IMS/High [ qipcallh.c 29852] qipcallh_process_rtcp_monitoring | qvp_rtcp_link_alive_timer_start start success : MediaIndex:[0], Stream[7]IMS/High [ qipcallrtp.c 1605] qipcallrtp_configure_rtp_monitoringIMS/High [ qipcall.c 1667] qipcall_process_rtp_msg: QIPCALL_RTP_CONFIGURE_DONEIMS/High [ qipcallh.c 19305] RTP Config Done (i=0)(st=14)
9. notify CVD to do audio pre-processing,从这里开始应该看内核audio部份了
IMS/Medium [ qpaudio_svs.c 3443] dplaudio_process_apr_cb: Waking up to do workIMS/Medium [ qpaudio_svs.c 664] Entering dplaudio_send_command..IMS/High [ qpaudio_svs.c 693] dplaudio_cmd_send g_cmd_sent = 3 g_cmd_rsp = 2 g_cmd_ack = 2IMS/High [ qpaudio_svs.c 3485] g_cmd_sent=3 g_cmd_rsp=2 g_cmd_ack=3IMS/High [ qpaudio_svs.c 675] Posting CVD Command 11334IMS/Medium [ qpaudio_svs.c 2093] Received VSS_IMEMORY_RSP_MAP
10. codec initializing
IMS/High [ qpaudio_svs.c 2543] Posting Codec ChangedIMS/High [ qipcallmedia.c 554] qipcallmedia_rtp_media_evt_cbIMS/High [ qipcall.c 1703] qipcall_process_rtp_msg: QIPCALL_RTP_MEDIA_EVENTIMS/High [ qipcallcodec.c 2155] qipcallcodec_process_txrx_codec_config_event: success: media state QIPCALLCODEC_MEDIA_STATE_INITIALIZINGIMS/High [ qipcallcodec.c 1000] [qipcallcodec_media_start_txrx] [tx_state: 1] [rx_state: 1]
11. audio codec pkt frame posted to QDJ Queue buf & will be consumed
IMS/Medium [ qpaudio_svs.c 2861] Received response for VSS_ISTREAM_CMD_SET_PACKET_EXCHANGE_MODEIMS/Error [ qpaudio_svs.c 4654] posting command VSS_IMVM_CMD_MODEM_START_VOICEIMS/High [ qpaudio_svs.c 3354] Received VSS_ISTREAM_EVT_READY setting qvp_rtp_cvd_state to READYIMS/High [ qpDplQdj.c 2852] ENQUEUE sn=24901 len=31 rtp_T=2981940096 cur_blen=20 flt_blen=20 num_uflow=0 num_rcvd=2 result=0IMS/Medium [ qpaudio_svs.c 4871] qpAudioPlayFrame: Enqueued pkt to QDJ ts=2981940096, seq=24901, len=31IMS/High [ qpDplQdj.c 2852] ENQUEUE sn=24902 len=31 rtp_T=2981940256 cur_blen=20 flt_blen=20 num_uflow=0 num_rcvd=3 result=0IMS/High [ qpDplQdj.c 3260] Queue Count =3…..IMS/High [ qpaudio_svs.c 1092] Posting CVD Command VSS_ISTREAM_EVT_OOB_NOTIFY_ENC_BUFFER_CONSUMEDIMS/Medium [ qpDplQdj.c 2479] IN SN=37805 TS=2981982336IMS/Medium [ qpDplQdj.c 2488] OUT SN=25165 TS=2981982336IMS/High [ qpDplQdj.c 2508] QDJ tot_qdj_frame_cnt = 266IMS/High [ qpDplQdj.c 2512] QDJ tot_pkt_cnt = 266
//发送数据包的过程(涉及到的模块APR,DS ,RTP, IMS,ADSP(QDSP6)…)
[0x14D0] LOG 08:26:03.515 APR Modem 046F3704|0000030048248293|<040A-0040><0315-0000>{00000003}
[0001136C],32;VSS_ISTREAM_EVT_OOB_NOTIFY_ENC_BUFFER_READY[5016/0001] MSG 08:26:03.515 DS Real Time Transport Protocol/Medium[ qvp_rtp_codec_svs.c 298] qvp_rtp_codec_audio_cb: Received Audio Message 1 in state = 7 Handoff in state - 0[0x1568] LOG 08:26:03.515 IMS RTP SN and Payload Length: 0069[5016/0002] MSG 08:26:03.515 DS Real Time Transport Protocol/High[ qvp_rtp_nw_ds.c 2281] NW send called for len = 44, and pri = 0[5000/0001] MSG 08:26:03.515 Data Services/Medium [ DSS_dsapi.cpp 3215] dss_sendto(): socket:1020, buffer:-1606664092[5000/0001] MSG 08:26:03.515 Data Services/Medium [ ps_socket_cmd.cpp 163] ps_socket_cmd_send(): Posting cmd 5 sock 1648[0051/0002] MSG 08:26:03.515 IMS/High [ qpaudio_svs.c 1092] Posting CVD Command VSS_ISTREAM_EVT_OOB_NOTIFY_ENC_BUFFER_CONSUMED[0x14D0] LOG 08:26:03.515 APR Modem 03001C01|0000030048248582|<0315-0000><040A-0040>{00000000}[0001136D],32;VSS_ISTREAM_EVT_OOB_NOTIFY_ENC_BUFFER_CONSUMED[0x14D0] LOG 08:26:03.515 APR Modem 046F3903|0000030048248691|<040A-0040><0315-0000>{00000000}[000100BE],36;VSS_ISTREAM_EVT_OOB_NOTIFY_ENC_BUFFER_CONSUMED/APRV2_IBASIC_EVT_ACCEPTED;0001136D[5018/0001] MSG 08:26:03.515 DS ROHC/Medium [ ps_rohc.c 2953] rohc_compress(): Orig hdr 60 octets, compressed hdr 64 octets[5018/0001] MSG 08:26:03.516 DS ROHC/Medium [ ps_rohc_dc.c 470] decomp_parse_packet_type(): returns DC_FORWARD_TRAFFIC[5016/0002] MSG 08:26:03.517 DS Real Time Transport Protocol/High[ qvp_rtp_packet.c 641] qvp_rtp_unpack Rxed payload type 104 configured ctx->rx_payload_type 104. tx_payload_type: 104[5016/0002] MSG 08:26:03.517 DS Real Time Transport Protocol/High[ qvp_rtcp.c 2937] voice_call: seq = 37545 Jcurrent[0] = 3952272956 and Jcurrent[1]=4294967295[8500/0001] MSG 08:20:48.265 QDSP6/Medium [ voice_delivery.cpp 675] VCP: VDS delivery handler begin, token 1000003, instance(0)[0x1805] LOG 08:20:48.265 ADSP Core Voice Driver Stream RxLength: 0096[8500/0002] MSG 08:20:48.265 QDSP6/High [ VoiceSvc.cpp 400] VCP: VSM apr_packet_ptr(b0650ec8): src_addr(40a) src_port(41) dst_port(100) op_code(0x11050) token(0x0) size(0)[8500/0002] MSG 08:20:48.265 QDSP6/High [ VoiceSvc.cpp 582] VCP: VSM received VSM_EVT_OOB_DEC_BUF_READY[0x14D0] LOG 08:26:03.526 APR Modem 046F3804|0000030048260653|<040A-0040><0315-0000>{00000006}[0001136E],32;VSS_ISTREAM_EVT_OOB_NOTIFY_DEC_BUFFER_REQUEST[0051/0001] MSG 08:26:03.526 IMS/Medium [ qpDplQdj.c 3767] DEQUEUE sn=24902 len=31 twf=100 tdelay=60 fdelay=63 ntp=24903 q_cnt=3 state=7[0x156C] LOG 08:26:03.526 IMS QDJ Dequeue Length: 0044[0051/0002] MSG 08:26:03.526 IMS/High [ qpDplQdj.c 3970] QDJservice pSesnType->THREADSAFE.tot_qdj_frame_cnt=6 rtp_seq:37542 last_played_rtp_seq:37541[0051/0002] MSG 08:26:03.526 IMS/High [ qpDplQdj.c 3977] QDJservice frame received[0051/0002] MSG 08:26:03.526 IMS/High [ qpDplQdj.c 4011] QDJservice (speech packet) last_played_rtp_seq = 37542[0051/0002] MSG 08:26:03.526 IMS/High [ qpDplQdj.c 4079] CRD:qdj_get_current_rtp_ts: RTP_TS 2981940256[0051/0002] MSG 08:26:03.526 IMS/High [ qpaudio_svs.c 1684] Posting CVD Command VSS_ISTREAM_EVT_OOB_NOTIFY_DEC_BUFFER_READY[0x14D0] LOG 08:26:03.526 APR Modem 046F3E03|0000030048260900|<040A-0040><0315-0000>{00000000}[000100BE],36;VSS_ISTREAM_EVT_OOB_NOTIFY_DEC_BUFFER_READY/APRV2_IBASIC_EVT_ACCEPTED;0001136F[8500/0001] MSG 08:20:48.269 QDSP6/Medium [ VoiceMixerSvc.cpp 703] VCP: VMX #2 o/p port 0 sending buffer #5 buf 0xB082FC20 downstream[8500/0001] MSG 08:20:48.270 QDSP6/Medium [ VoiceCmnUtils.cpp 1330] VCP: Client queued request to VDS, session(100), client token(1000002), Client Id(3), apr handle ptr(b077aaa0), apr pkt ptr(b0646398)[8500/0002] MSG 08:20:48.270 QDSP6/High [ voice_delivery.cpp 555] VCP: VDS queue request begin, token 1000002 instance(0)[8500/0001] MSG 08:20:48.271 QDSP6/Medium [ vdec_svc.cpp 824] VCP: vdec_vfr_decode_handler begin session(100)[8500/0002] MSG 08:20:48.271 QDSP6/High [ vdec_svc.cpp 2713] VCP: OOB Dec pkt size received (32), session(100)
[0x1804] LOG 08:20:48.273 ADSP Core Voice Driver Stream TxLength: 0096
12. IP call end
Call Manager/High [ cmdbg.c 3459] =CM= CMD alloc u=30053, tsk=qmi_mmodeCall Manager/High [ cmdbg.c 3600] =CM= >>CM callcmd 2: 17Call Manager/High [ cmipcall.c 4168] =CM= IP CALLCMD: cmd=2, as_id=-1, lte as_id 1Call Manager/High [ cmipapp.c 4971] =CM= CM->IMS: Sending IP END EXT, call_id 12, app_id 1, as_id 1 end_cause 0
总结
VOLTE 呼叫是承载在IMS 域上的,终端必须先在IMS 核心网注册并建立QCI=5的IMS 信令承载,使得网络和终端之间的能进行正常的IMS信令交互(见上面的sip signaling截图),被叫侧接听之后,还需要建立QCI=1的语音数据承载,用于传输IMS高清语音数据,网络和终端之间的语音数据是通过rtp协议控制传输的,呼叫连接建立和结束分别能看到一条IMS VoLTE Session Setup 和IMS VoLTE Session End 的log打印,基于此能确定通话开始和结束时间,前后一点就是开始和结束时间,时间点确定了能很快定位相关模块的动作,将这些模块的动作前后连接,呼叫流程的相关细节就比较清楚了。
以上Log分析中步骤1~步骤12是VOLTE 高清语音被叫的大致过程,每一步骤都有不少实现细节以及3GPP 协议对应,工程师应该在有兴趣的技术点扩展开去,比如上面的ims codec相关 、IMS RTP相关、ADSP 音频流处理都是核心技术研发方向,可以深入研究的。
最后
以上就是清脆盼望为你收集整理的volte信令流程详解_4G 高清语音(VOLTE)被叫(MT)流程为何建立QCI =9 的默认承载VoLTE MT call SIP signaling以上信令中还有两条SIP信令:QXDM 中信令以及代码片段1.reboot 开机attach and pdn connect setup(data call setup)0xB0ED LTE NAS EMM Plain OTA Outgoing Message -- Attach request Msg0xB0EC LTE NAS EMM Pl的全部内容,希望文章能够帮你解决volte信令流程详解_4G 高清语音(VOLTE)被叫(MT)流程为何建立QCI =9 的默认承载VoLTE MT call SIP signaling以上信令中还有两条SIP信令:QXDM 中信令以及代码片段1.reboot 开机attach and pdn connect setup(data call setup)0xB0ED LTE NAS EMM Plain OTA Outgoing Message -- Attach request Msg0xB0EC LTE NAS EMM Pl所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复