IMS注册

IMS总结

本文档主要介绍了IMS流程,主要包括IMS的结构和MO/MT流程,以及补充业务和紧急呼叫等,其中也附带对应的LOG分析和其他协议测试的关键点。主体部分是基于高通平台的,其他平台可能略有不同。

  • IMS的架构

1)下图是IMS的系统结构:

1

2)对应的IMS协议栈:

1

VoLTE 信令和业务是在不同的EPS bearers 传输,区别是:

Default bearer is used for signaling (non-GBR, QCI = 5)

Dedicated bearer is used for media (GBR, QCI = 1)

Signaling

UE和P-CSCF通过SIP传输,主要是IMS注册和MO/MT

Media

UE通过RTP和其他UE传输Audio/Video

3)对应的高通IMS软件结构如下: 

1

  • IMS注册

1

上图是IMS的注册流程图,测试用例在34.229的第八章,具体的代码过程如下:

  1. IMS协议栈在boot-up时候被初始化:

ims_agent.cpp 2219 checkIsDPLInstanceUp : Instance --> 1 , state :1

  1. IMS的支持情况

//Attach Request

19:40:54.290 [EF] 0xB0ED LTE NAS EMM Plain OTA Outgoing Message -- Attach request Msg

pdn_connectivity_req

pdn_type = 3 (0x3) (Ipv4v6)

container_id = 1 (0x1) (P-CSCF IPv6 Address Request) 

container_id = 12 (0xc) (P-CSCF IPv4 Address Request)

UE_usage_setting = 0 (0x0) (Voice centric) //NV 65777

voice_domain_pref_for_EUTRAN = 3 (0x3) (IMS PS Voice preferred, CS Voice as secondary)         //NV 66048

是否上报ESM information是在esm_info_trans_flag = 1 (0x1)设置

Attach时候使用哪个profile是在/data/ds_dsd_attach_profile设置

//Attach accept for default APN

19:40:58.150 [83] 0xB0EC LTE NAS EMM Plain OTA Incoming Message -- Attach accept Msg

msg_type = 193 (0xc1) (Activate default EPS bearer context request)

access_point

pdn_addr

pdn_type = 3 (0x3) (IPv4v6)

ipv6_interface_id = 0x18f8559b6ac3bde0 (18f8:559b:6ac3:bde0)

ipv4_addr = 170816254 (0xa2e72fe) (10.46.114.254)

container_id = 12 (0xc) (P-CSCF IPv4 Address)

container_id = 1 (0x1) (P-CSCF IPV6 Address)

IMSVoPS = 1 (0x1) (IMS Vo PS Session in S1 Mode supported)

  1. CM and DS inform IMS DPL regarding service availability.

qpDcm.c 04311 qpDplProcessDSSysEvent: DS Sys Info pref_tech=0, so_mask=1000, pref_rat_value=3 // DS rat_value = 3(LTE), 1(WCDMA), 5(IWLAN)

  1. Device portability layer (DPL) informs all IMS registered clients about the availability of Radio access technology (RAT) (Register Manager (RM), Policy manager(PM), QIPcall, and so on) and RM decides if RAT is valid for IMS registration.

PDPManager.cpp 1395 EventChangeRat -Current RAT 0 New Rat 10 ProceedIfRatsSame 1, ServiceOnRatMask = 0x0000644e, new RAT mask = 0x00000400

PDPManager.cpp 1421 EventChangeRat - New RAT is 10 and is valid: 1

// new rat = 10 (LTE), 3 (WCDMA), 9 (eHRPD), 6 (IWLAN)

// New RAT is Valid:1表示IMS可以再这个RAT注册,否则不能注册  

// RAT mask in NV 73835 (AllowedRATMask)

0x400- LTE,

0x50- WLAN +IWLAN,

0x450- LTE+WLAN+IWLAN

  1. PM/RM informs DPL about the APN to be used.

//RM get policy manager APN config for RAT = 10

qpIMSPolicyManager.cpp 00652 QPConfigurationHandler::GetIMSAPNPriority n_pInputParam = 10 iRAT = 10

qpIMSPolicyManager.cpp 00657 QPConfigurationHandler::GetIMSAPNPriority eAPNType[0] = 1

// NV 71527 rat_apn_fb_info[x].iRATAPNFallback: gives APN type to be used for IMS

//RM get the allowed services configured for RAT = 10

qpIMSPolicyManager.cpp 01103 QPConfigurationHandler::GetIMSAllowedServices RAT = 10 APNType = 1 // 1= IMS

qpIMSPolicyManager.cpp 01104 QPConfigurationHandler::GetIMSAllowedServices ServiceMask for above APN & RAT= 7// Allowed service = 7 = VoLTE, VT and SMS

// NV 71527 ims_rat_apn_info[y].iIMSServiceInfo: gives services supported on RAT and APN

qpIMSPolicyManager.cpp 00743 QPConfigurationHandler::GetIMSAPNParams IP Addr Type = 2 iIPType = 2 // IPv6

qpIMSPolicyManager.cpp 00759 QPConfigurationHandler::GetIMSAPNParams iAPNIndex = 1

/local/mnt/workspa 00767 767|QPConfigurationHandler::GetIMSAPNParams APN Name = ims

IMS PM NV items are configured in the NV 71527 IMS registration configuration database. The

database is located at/nv/item_files/ims/qp_ims_reg_config_db.

  1. IMS clients request to create DCM profile with DPL (3GPP/ 3GPP2)

[qpDcm.c 3437] qpDcmCreateProfile - New profile[b7d74c10] -> RAT:10 -> APN:1 shareable:1

[qpDcm.c 4037] SearchDSProfiles: pApnName=ims

// NV 71527 ims_apn_name_db[0].cAPNName: gives APN name to be brought up

[qpDcm.c 4199] SearchDSProfiles: Got a matching profile 4 with PCSCF bit NOT SET

// DPL searches DS profiles configured in the UE; PCSCF bit set indicates PCO support

[PDPHandler.cpp 231] CPDPHandler::CreateProfile - Profile created

[PDPRATHandlerVoLTE.cpp 876] InitPDP - DCM create Profile Succeeded

// DCM profile created successfully. Required APNs are defined

  1. RM decides if registration is needed.

[RegisterManager.cpp 5612] CheckRegistrationNeeded: RegType[0]

[RegisterManager.cpp 5558] CheckValidSim: RegType[0]

[RegistrationHandlerVoLTE.cpp 1872] IsRegParametersReady Called: RegType[0]

[RegisterManager.cpp 5784] CheckRegistrationNeeded - Active:1, Valid Rat:1

[RegistrationHandlerVoLTE.cpp 896]ISIM present // checks if SIM is configured properly

  1. RM asks DPL for establishing PDP connection if pdp is not active

[PDPRATHandlerVoLTE.cpp 2530] PdpActivate enter, pdp state:0 RegType[0]

[PDPRATHandlerVoLTE 2236] UpdateHOSysPrefInfo Comparing APN Name ims against ims

[qpIMSPolicyManager 1281] GetIMSAPNParams APN Name = ims

[qpDcm.c 7526] qpDcmEstablishPDPConnection - 3GPP ProfileNumber --> 2 | 3GPP2 ProfileNumber --> -1 | IPType --> 2

[qpDcm.c 7524] qpDcmEstablishPDPConnection - APNName --> ims, Resolved APN -->

[qpDcm.c 7501] qpDcmEstablishPDPConnection | pDcmProfile=b7d39cf0 dsAppID=369

[qpDcm.c 7533] DPL_M#$$#0#qpDcmEstablishPDPConnection - DS_EWOULDBLOCK on dsnet_start

a. If IMS APN is the additional PDN, it is requested from NAS.

[0xB0E3] LTE NAS ESM Plain OTA Outgoing Message -- PDN connectivity request Msg

pdn_type = 3 (0x3) (Ipv4v6)

access_pt_name_

[0xB0E2] LTE NAS ESM Plain OTA Incoming Message -- Activate default EPS bearer context request Msg

pdn_type = 3 (0x3) (IPv4v6)

b. If Hybrid enabled (NV 70287), PDP activation is requested on APPs.

[IMS_DataD] imsdatad.c 01014 | 345 |QCSI#>>#DATAD#6# QMI_IMS_DCM_PDP_ACTIVATE_REQ_V01

[IMS_DataD] imsdatad.c 01026 | 345 |ims_qmi_dcm_pdp_activate_handler | Valid IP Address Family Type.

[IMS_DataD] imsdatad.c 01043 | 345 |DATAD#>>#QCSI#1# QMI_IMS_DCM_PDP_ACTIVATE_RSP_V01: QMI_RESULT_SUCCESS_V01 

[IMS_DataD] I msdatad.c 01056 | 345 |ims-dcm-daemon |ims_qmi_dcm_pdp_activate_handler | qmi_csi_send_resp success QMI_IMS_DCM_PDP_ACTIVATE_RSP_V01 err : 0

qpdpl_qmi_handler.c 01553 qpDplProcessQcciEvent | QMI_IMS_DCM_PDP_ACTIVATE_IND_V01

qpDcm.c 10527 qpDcmProcessQCCIPdpActIndEvent - HYBRID IP Address=2002:c023:9c17:ba3c: a34c:6ae0:a9ea:3ce0

// APPS DPL informs Modem DPL of PDP activation and IP address to use

DPL_M#>>#IMS_APP#1#qpDcmProcessQCCIPdpActIndEvent-DS_ENETISCONN HYBRID event for AppId (368)

[PDPRATHandler.cpp 378] PDPStateUpdate new state (2): RegType[0] bRetVal[0]

[RegisterManager.cpp 2595] EventPdpActivated: RegType[0]

[RegisterManager.cpp 2652] EventPdpActivated: call EventPdpSuccess for RegType[0]

// RM informed of successful PDP activation

  1. RM decides the PCSCF address to be used for Registration

[PCSCFListHandler.cpp 258] Init

[PCSCFListHandler.cpp 278] Init - P-CSCF remote port:5060: RegType[0] 

[PCSCFListHandler.cpp 1451] ReadPriorityPCSCF

// Priority list set from NV 71527: (iACSPriority, iISIMPriority, iNVPriority, iPCOPriority): 0 never

[PCSCFListHandler.cpp 1479] ReadPriorityPCSCF eACS

[PCSCFListHandler.cpp 1576] ReadPriorityPCSCF ePCO

[PCSCFListHandler.cpp 980] SetPcoIePcscfAddressinList: RegType[0]

[PCSCFListHandler.c 657] SetDplPcscfAddress - Using IP address: 2002:c023:9c17:c03d:b6b5:2fff: febf:b3d6

[PCSCFListHandler.cpp 658] SetDplPcscfAddress - Using IP port: 5060: RegType[0]

  1. Qipcall takes info from CM, RM to decide on feature tags to be added

[ISMPMQueryManager.cpp 316] ISMPmQueryManager::queryPM(): PM services: 15 for rat 10 and apn 1

[ ISMVoiceService.cpp 140] allowedByPm : retvalue[1]

[ ISMService.cpp 334] allowedByPdnState : retvalue[1] PDP status[1]

[ ISMVoiceService.cpp 289] allowedByDomain: retvalue[1]

[ ISMSMSService.cpp 841] IsSMSOnlyWithoutVoice 0

[ ISMSMSService.cpp 578] allowedByConfig : retvalue[1]

[ ISMService.cpp 334] allowedByPdnState : retvalue[1] PDP status[1]

[ ISMSMSService.cpp 535] allowedByDomain : retvalue[1]

[ ISMSMSService.cpp 630] prev sms state[0] current sms state [1] reg status [1]

[ ISMRMAdapter.cpp 267] SendRequestToRegManager() : AddService for

"+g.3gpp.smsip";"+g.3gpp.icsi-ref="urn:urn-7:3gpp-service.i

[qpRegistrationMonitor.cpp 1650] AddService Entered - Registration 1

[qpRegistrationMonitor.cpp 1697] AddService Add Service0"+g.3gpp.smsip";"+g.3gpp.icsi-ref=

//Adding Feature Tags

[ ISMFeatureTag.cpp 263] [SetState] [FT type 0 FT state is changed from 1 to 2]

//FT state 1 = featured tags to be added ; FT state 2 = registration in progress

//FT type 0 = SMS ; 1 = ICSI ; 2 = voice ; 3 = video ; 9 = USSD

[qimfif_cbs.cpp 05345]ProcessRequest() : DOMAIN SMS & VOIP.

[qimfif_cbs.cpp 05366 ]SendRequestToRegManager 

[qpIMSPolicyManager 04030]AddService for "+g.3gpp.smsip";"+g.3gp…

  1. RM gets the parameters needed for registration.

[RegistrationHandlerVoLTE.cpp 1872] IsRegParametersReady Called: RegType[0]

[RegistrationHandlerVoLTE.cpp 2045] CheckRegistrationNeeded - opermode5 RegType[0]

[RegistrationHandlerVoLTE.cpp 2744] SetImsPriorityConfig ATT mode. Retrieving RCS IMS config

// Operator mode NV 69673: 0 (VzW), 1(KDDI), 2(IR92), 3(LGU), 4(MPCS), 5(ATT), 6 (SKT), 7 (KT), 8(RIL), 9 (TMO), 10(DCM)

[RegisterManager.cpp 5784] CheckRegistrationNeeded - Active:1, Valid Rat:1

[RegistrationHandler.cpp 879] CRegistrationHandler ReadPriorityIMPU

[RegistrationHandle 4977] GetPublicUserId - Found:sip:+11234567890@one.att.net

[RegistrationHandle 4983] GetPublicUserId - Valid msisdn based sip uri:sip:+11234567890@one.att.net

[RegistrationHandler.cpp 1033] CRegistrationHandler ReadPriorityHomeDomain

[ qpIsim.c 13027] qpDplGetPrivateUID | pIMPI - 11234567890@one.att.nett

[RegistrationHandlerVoLTE.cpp 1850] UpdateRegistrationStatusToSettings - regHandlerState[1]

m_eRegistrationRegType[0] sendRegStatus[1] iImsRegNtwk[10] iImsRegStatus[1] iImsRegisterFailureErrorCode[0]

  1. SIP Signaling opens the UDP and TCP ports

[ qpSipDispatcher.cpp 4216] QpSipDispatcher::CheckNOpenReqPort|UDP open on 5060 port success

[ qpdplnet.c 1923] qpDplNetOpen: Net Open called for Connection Profile PDPID=11, Profile=b7f91ba0

[ qpSipDispatcher.cpp 4316] QpSipDispatcher::CheckNOpenReqPort|TCP open on 5060 port success

[ qpdplnet.c 1923] qpDplNetOpen: Net Open called for Connection Profile PDPID=0, Profile=b7f97220]

  1. Register packet generated

19:30:12.580 /local/mnt/workspa 00718 718|CRegistrationHandlerVoLTERegister - Public:sip:+11234567890@one.att.net,

19:30:12.580 /local/mnt/workspa 00721 721|CRegistrationHandlerVoLTERegister - Domain:one.att.net, Pwd:

19:30:12.586 /local/mnt/workspa 03315 3315|Retrieved IP address: 2600:380:5de0:532f:0:32:f701:f201

19:30:12.587 /local/mnt/workspa 00992 992|Connector::qpSipDetermineConnectionType | setup Uri :sip:+11234567890@one.att.net

19:30:12.623 qpRegisterService.cpp 05362 RegisterService state is 0

19:30:12.645 /local/mnt/workspa 04765 |qpSipAddHdrValueinListHead:sip:+11234567890@[2600:380:5de0:532f:0:32:f701:f201]:5060>;

19:30:12.645 qpdpl.c 03599 qpDplGetAccessType | ENTER - eRatInfo=10 pServingStatus=a4181ef

19:30:12.645 qpdpl.c 03773 qpDplGetAccessType | returning ACCTYPE_3GPP_E_UTRAN_FDD

19:30:12.645 /local/mnt/workspa 04765 4765|qpSipAddHdrValueinListHead: 3GPP-E-UTRAN-FDD; utran-cell-id- 3gpp=310410411C335CB84

19:30:12.645 /local/mnt/workspa 04765 4765|qpSipAddHdrValueinListHead: Digest

uri="sip:one.att.net",username="310410655549182@private.att.ne

19:30:12.645 /local/mnt/workspa 01075 1075|qpSortfeatureTagStrings | calling qpSortSinglefeatureTags: +g.3gpp.icsi-ref="urn:urn-7:3gpp

19:30:12.645 /local/mnt/workspa 01075 1075|qpSortfeatureTagStrings | calling qpSortSinglefeatureTags: +g.3gpp.smsip

19:30:12.645 /local/mnt/workspa 01075 1075|qpSortfeatureTagStrings | calling qpSortSinglefeatureTags: video

19:30:12.645 qpRegisterService.cpp 07607 RegisterService::EncSecClientHdr | IPSecIntegAlgos = 3 IPSecEncryption = 7

19:30:12.645 /local/mnt/workspa 04561 4561|qpSipAddHdrValueinListHead: ipsec-3gpp;

alg=hmac-sha-1-96; ealg=null; spi-c=1114209611; spi-s=777

// for IPSec

19:30:12.647 qpRegisterService.cpp 05505 RegisterService state is 0

  1. Register packet is sent.

[RegistrationHandlerVoLTE.cpp 1657] Register - set pcscf server port 5060: RegType[0]

[sipClientConnectio 1957] SipClientConnection::qpSipInitRequest() METHOD REGISTER

[sipconnectionnotifier.cpp 3720] SCN::GetPCSCFServerPort | m_iPCSCFServerPort: 5060

[sipConnection.cpp 3528] SipConnection::qpSipSend() | Register Call_Id -

11234567890_3086578700@2002:c023:9c17:ba3c:a34c:6ae0:a9e

[qimfsiplib.cpp 4874] QimfSipActiveObj::qpSipAddCallIdToList:: New Entry Call -Id Count 1

[qpSipUtils.cpp 481] ParseViaHeaderToHeader: sip:[2002:c023:9c17:ba3c:a34c:6ae0:a9ea:3ce0]:5060;rport;keep;branch=z9hG4bK12

[sipConnection.cpp 3242] EVENT_SIP_REG_REQ_SENT: 43 Code = 0 RAT = 10

[qpSipUtils.cpp 3407] EVENT_SIP_REQUEST_SEND: REGISTER sip:one.att.net SIP/2.0

[qpdplnet.c 01108] qpDplProcessSockEvent: WRITE_EVENT Event for socket [98]

[qpdplnet.c 04930] SocketWrite | Packet was sent successfully! - bytesent: 1491, packet len: 1491

  1. Registration is challenged.

[ qpSipUtils.cpp 3407] EVENT_SIP_RESPONSE_RECV: SIP/2.0 401 Unauthorized

[ sipConnection.cpp 4868] qpSipAddValTail: Digest

realm="one.att.net",nonce="AAAAAAAAAAAAAAAgdClxlyCkfOq8Q4AAHBIiJNonKJ0=", 

[ sipConnection.cpp 4868] qpSipAddValTail: ipsec-3gpp;q=0.2;prot=esp; mod=trans;alg=hmac-md5-96;ealg=null;spi-c=193590036;spi-s=1

[ sipConnection.cpp 3071] EVENT_SIP_REG_RESP_RCVD : 44 Code = 401 RAT = 10

// Registration challenged with IPSec

[qpSipRegisterService.cpp 2784] RegisterService::FillRegisterSummaryInfo| Resultcode: 401

[qpRegisterService.cpp 3396] RegisterService::NotifyResponse | Auth Challenge for Reg/ReReg

[qpRegisterService.cpp 6923] RegisterService::qpFillSADBfromSecurityServer | IPSecIntegAlgos = 3 IPSecEncryption = 7

[sipconnectionnotifier.cpp 3446] SCN::UpdateSharedConfigPorts | UE server port: 44064, PCSCF server port: 5070, UE client port: 42698

[qpRegisterService.cpp 7534] RegisterService::qpProcessAddSACallBack | Posting Event

QIMF_IPSEC_SA_ESTABLISHED to Disp

[ sipClientConnectio 1957] SipClientConnection::qpSipInitRequest() METHOD REGISTER 

[ sipConnection.cpp 3242] EVENT_SIP_REG_REQ_SENT: 43 Code = 0 RAT = 10

[ qpSipUtils.cpp 3407] EVENT_SIP_REQUEST_SEND: REGISTER sip:one.att.net SIP/2.0

[ qpSipRegisterServi 1387] EVENT_SIP_REGISTRATION_START:REGISTER sip:one.att.net SIP/2.0 f:

<sip:11234567890@one.att.net>;

  1. Registration is successful.

[qpSipUtils.cpp 3407] EVENT_SIP_RESPONSE_RECV: SIP/2.0 200 OK

[qpSipRegisterService.cpp 1809] EVENT_SIP_REGISTER_END:Response Code: 200

// 200OK indicates Registration Success

[qpSipUtils.cpp 3603]EVENT_SIP_REQUEST_SEND: SUBSCRIBE tel:+13126233047 SIP/2.0 f: 

[qpSipUtils.cpp 4593]EVENT_SIP_MESSAGE_RECV:SIP/2.0 200 OKVia: SIP/2.0/UDP

[qpSipUtils.cpp 4593]EVENT_SIP_MESSAGE_RECV:NOTIFY

[qpSipUtils.cpp 3586]EVENT_SIP_RESPONSE_SEND: SIP/2.0 200 OKVia: SIP/2.0/TCP

  1. Available services are updated to all clients.

[RegistrationHandlerVoLTE.cpp 8788] UpdateAvailableServiceToRegisteredClients: RegType[0]

[RegistrationHandlerVoLTE.cpp 1850] UpdateRegistrationStatusToSettings - regHandlerState[2]

m_eRegistrationRegType[0] sendRegStatus[1] iImsRegNtwk[10] iImsRegStatus[2] iImsRegisterFailureErrorCode[0]

[RegMonitorHandler. 267] UpdateRegisteredClients Service Available0##"+g.3gpp.icsi-ref ="urn:urn- 7:3gpp-service.ims.icsi.mmtel""

[ISMRegisterService 245] ISMRegisterServiceMonitor::ServiceAvailable() : Set of Feature Tags

"+g.3gpp.icsi-ref="urn:urn-7:3gpp-

[ISMFeatureTag.cpp 263] [SetState] [FT type 0 FT state is changed from 2 to 3]

[ISMFeatureTag.cpp 263] [SetState] [FT type 1 FT state is changed from 2 to 3]

[ISMFeatureTag.cpp 263] [SetState] [FT type 2 FT state is changed from 2 to 3]

[ISMFeatureTag.cpp 263] [SetState] [FT type 3 FT state is changed from 2 to 3]

[ISMFeatureTag.cpp 263] [SetState] [FT type 9 FT state is changed from 2 to 3]

//FT state 3 = FT of this type is registered

  • 注册相关关键字和LOG filter
  1. IMS log packets can be seen by filtering:

Log Packets > Common > signaling > IMS Registration

Example:

21:25:16.657 [0F] 0x156E IMS SIP Message --

IMS_SIP_REGISTER/INFORMAL_RESPONSE

Subscription ID = 1

Direction = UE_TO_NETWORK

Message ID = IMS_SIP_REGISTER

Sip Message = REGISTER sip:ims.vz.net SIP/2.0

CSeq: 358375636 REGISTER

Authorization: Digest

uri="sip:ims.vz.net",username="310008989511203@ims.vz.net",response="",real

m="ims.vz.net",nonce="",algorithm=AKAv1-MD5

v: SIP/2.0/TCP

[2002:c023:9c17:45d3:5ed3:ec8c:a7c6:434]:5060;branch=z9hG4bK2080430552;keep

Expires: 600000

m: <sip:342de30c-8532-4743-ae12-

85c810d804c7@[2002:c023:9c17:45d3:5ed3:ec8c:a7c6:434]:5060>;mobility="mobil

e";+g.3gpp.iari-ref="urn%3Aurn-7%3A3gpp

application.ims.iari.rcs.geopush";+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp

service.ims.icsi.oma.cpm.filetransfer,urn%3Aurn-7%3A3gpp

service.ims.icsi.oma.cpm.largemsg,urn%3Aurn-7%3A3gpp

service.ims.icsi.oma.cpm.msg,urn%3Aurn-7%3A3gpp

service.ims.icsi.oma.cpm.session,urn%3Aurn-7%3A3gpp-IMS Registration Call Flows…

IMS Registration Details 

service.ims.icsi.mmtel";+g.3gpp.nw-init

ussi;+g.3gpp.smsip;audio;video;+g.3gpp.accesstype="cellular2"

P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-

3gpp=310000001013f800

21:25:17.046 [44] 0x1832 IMS Registration

Subscription ID = 1

Registration Type = Initial

Call Id = 358375636_1307788268@2002:c023:9c17:45d3:5ed3:ec8c:a7c6:434

To = <sip:310008989511203@ims.vz.net>

Result = Unauthorized //result

21:25:17.788 [6F] 0x1832 IMS Registration

Subscription ID = 1

Registration Type = Initial

Call Id = 358375636_1307788268@2002:c023:9c17:45d3:5ed3:ec8c:a7c6:434

To = <sip:310008989511203@ims.vz.net>

Result = OK //result

  1. QMI logs can be seen by filtering:

Log packets > Common > QMI

成功注册:

21:25:17.800 [36] 0x1544 QMI_MCS_QCSI_PKT

MsgType = Indication

Service_IMSA {

ServiceIMSAV1 {

imsa_registration_status {

imsa_registration_status_indTlvs[0] {

ims_registered {

ims_registered = true

imsa_registration_status_indTlvs[1] {

ims_reg_status {

ims_reg_status = IMSA_STATUS_REGISTERED

imsa_registration_status_indTlvs[2] {

registration_network {

registration_network = IMSA_WWAN

21:25:17.809 [7C] 0x1544 QMI_MCS_QCSI_PKT

MsgType = Indication

Service_IMSA {

ServiceIMSAV1 {

imsa_service_status {

imsa_service_status_indTlvs[0] {

sms_service_status {

sms_service_status = IMSA_FULL_SERVICE

imsa_service_status_indTlvs[1] {

voip_service_status {

voip_service_status = IMSA_FULL_SERVICE

imsa_service_status_indTlvs[2] {

vt_service_status {

vt_service_status = IMSA_FULL_SERVICE

imsa_service_status_indTlvs[3] {

sms_service_rat {

sms_service_rat = IMSA_WWAN

imsa_service_status_indTlvs[4] {

voip_service_rat {

voip_service_rat = IMSA_WWAN

imsa_service_status_indTlvs[5] {

vt_service_rat {

vt_service_rat = IMSA_WWAN

注册失败:

21:25:10.021 [A7] 0x1544 QMI_MCS_QCSI_PKT

MsgType = Indication

Service_IMSA {

ServiceIMSAV1 {

imsa_registration_status {

imsa_registration_status_indTlvs[0] {

ims_registered {

ims_registered = false

imsa_registration_status_indTlvs[1] {

ims_registration_failure_error_code {

ims_registration_failure_error_code = 0

imsa_registration_status_indTlvs[2] {

ims_reg_status {

ims_reg_status = IMSA_STATUS_NOT_REGISTERED

imsa_registration_status_indTlvs[3] {

registration_network {

registration_network = IMSA_WWAN

21:25:10.137 [B9] 0x1544 QMI_MCS_QCSI_PKT

MsgType = Indication

Service_IMSA {

ServiceIMSAV1 {

imsa_service_status {

imsa_service_status_indTlvs[0] {

sms_service_status {

sms_service_status = IMSA_NO_SERVICE

imsa_service_status_indTlvs[1] {

voip_service_status {

voip_service_status = IMSA_NO_SERVICE

imsa_service_status_indTlvs[2] {

vt_service_status {

vt_service_status = IMSA_NO_SERVICE

imsa_service_status_indTlvs[3] {

sms_service_rat {

sms_service_rat = IMSA_WWAN

imsa_service_status_indTlvs[4] {

voip_service_rat {

voip_service_rat = IMSA_WWAN

imsa_service_status_indTlvs[5] {

vt_service_rat {

vt_service_rat = IMSA_WWAN

关键字:

IMS registration

srv_stat|sys_mod|pdprat|pdp_|pcscf|establishpdp|releasepdp|dcmcreate|isconn|

nonet|regmanager|registermanager|registrationhandler|registerservice|

servicemonitor|event_sip|policy|serviceavailable|registerhandler|

registrationstatus|ds sys|new rat|IMS reg st|IMS_PREF|rxd\:|sipdispatcher|

cmipapp|RPT name

E911

event_sip|sipmess|processin|processout|emer|event_sip|checkreg|new rat|sos|

pdprat|Eventpdpfailure|ims_update|reg_status_update|new rat|update_ser|inter

RAT|pdprat|checkreg|DOM SEL|DOMSEL|call_type|srv_status|qipcall|srv_status|

Call_type|callcmd|handover_failed_event|rat_handover_status|srv_stat|sys_mod|

ds|=reg=|send mc orig|cm callcmd|srch state|qmi_voice|proc cdma|proc hdr|

irat_to_do|cmipapp|RPT name|acq_hdr|acq_cdma|acq_gw|iDelay|starttimer|

stoptimer|start timer|stop timer|rxd\:\|qipcalldan

OTA Messages

0xB0ED|0xB0EC|0xB0E2|0xB0E3|emm_attach_request|pdn_connectivity_req|pdn_type|

req_type|eps_bearer_id|t3412|acc_pt_name|apn|esm_cause|emm_cause|IMSVoPS|

eps_bearer_id|emm_attach|Voice centric|Data centric|cause_value|

emm_service_rej|att_type

  • 典型的注册失败问题
  1. SIM related failures

//Please check if SIM card has all ISIM and all required parameters

[0051/0003] IMS/Error [ImsRegManagerCardModule.cpp 187] IsCardReady()

returning QP_FALSE

[0051/0001] IMS/High [ RegisterManager.cpp 5654] CheckRegistrationNeeded

- ISIM not ok

  1. DCM profile creation failure

// DCM profile creation is initiated during bootup for normal REG and in

case of emergency call when call is initiated

[00051/02] IMS/High qpDcm.c 03437 qpDcmCreateProfile - New profile[fb40e860] -> RAT:12 -> APN:3 shareable: 0

[06052/02] IMS DPL/High qpDcm.c 04037 SearchDSProfiles: pApnName=

[00051/02] IMS/High qpDcm.c 04036 SearchDSProfiles: IMS eTechType=0, eIPAddrType=2, eAPNType=3, pProfileNumber=fb40e860

// Below error point out that valid emergency data profile is not

configured in the device. If you use MBN (wherever available), this error can be avoided.

[00051/03] IMS/Error qpDcm.c 03593 qpDcmCreateProfile - Valid 3GPP EMERGENCY profile not found

[00051/03] IMS/Error PDPRATHandlerVoLTE.cpp 00888 InitPDP - DCM create Profile failed

[00051/03] IMS/Error PDPManager.cpp 02029 CreateEmergencyProfile | emergency profile creation failed

[00051/02] IMS/High PDPRATHandlerVoLTE.cpp 2530 PdpActivate enter, pdp state:0 RegType[3]

[00051/02] IMS/High PDPRATHandlerVoLTE.cpp 2628 PdpActivate m_pDcmProfile NULL RegType[3]

  1. IMS PDN disconnection/failure

// IMS PDN failure from Data layer

[5000/0001] Data Services/Medium [ ds_Net_Network.cpp 768]

Network::GetLastNetDownReason(): Reason 720902, obj 0xB7EC11A8

[0051/0002] IMS/High [ qpDcm.c 5371] DPL_M#>>#IMS_APP#1#qpDcmProcessNetEvent-DS_ENETNONET event sent for

pDcmProfile (b788d3c0), eReason = 380

[0051/0002] IMS/High [PDPRATHandlerVoLTE.cpp 1433] PDPFailure state (1): RegType[0]

[0051/0002] IMS/High [ qpDcm.c 15390] GetMappingDCMFailureMsg - 720902 return 380

[0051/0002] IMS/High [PDPRATHandlerVoLTE.cpp 1450] EventPdpFailure: RegType[0]

检查NV71527 ims_apn_name_db[0].cAPNName是否和EFS Data Profile以及PCO一致,以及对比测试

  1. Error/no response for register message/re-register message

09:30:14.380 RegistrationHandlerVoLTE.cpp 11491 H Sub-ID:1 HandleRegFailureDefault - m_eFailureNotificationType 1

09:30:14.380 RegistrationHandlerVoLTE.cpp 6254 H Sub-ID:1 LogRegFailureOperation regFailureAction 0, intitalRegRequired 1 selectNextPCSCF 2, timer 0 sameloop 0, sameerroccurence 0

[0051/0002] | MSG | 13:11:49.621 | IMS/High | [RegistrationHandler.cpp 1547] HandleRegistrationFailureStatus err code 500: RegType[0] |

检查pcap文件查看错误是否是网络造成的

  1. No PCSCF from the network

19974 MSG [00051/03] IMS/Error 22:27:36.902 PCSCFListHandler.cpp 00725

DoDnsQuery - No Address to search

19979 MSG [00051/02] IMS/High 22:27:36.902 RegistrationHandlerVoLTE.cpp

07476 HandlePCSCFUnavailableCase: RegType[0] Oprt mode[2]

  1. Due to the network sending 200OK directly for REG even though IPSec is enabled.

[6054/0002] | MSG | 02:01:34.053 | IMS SIP/High | [sipConnection.cpp 12242] SipConnection::GetSplitSipHeaders | Header = Security-Server not present | |

[0051/0003] | MSG | 02:01:34.053 | IMS/Error | [qpRegisterService.cpp

3450] RegisterService::NotifyResponse | Security-Server validation failed. REG_FAILURE | |

这种情况网络网络应该返回421,如果没有一般是网络问题

  1. No VoPS in LTE attach

2017 Dec 9 07:06:03.722 [A4] 0xB0EC LTE NAS EMM Plain OTA Incoming

Message -- Attach accept Msg

pkt_version = 1 (0x1)

rel_number = 9 (0x9)

rel_version_major = 5 (0x5)

rel_version_minor = 0 (0x0)

security_header_or_skip_ind = 0 (0x0)

prot_disc = 7 (0x7) (EPS mobility management messages)

msg_type = 66 (0x42) (Attach accept)

IMSVoPS = 0 (0x0) (IMS Vo PS Session in S1 Mode not supported)

这个可能是网络不支持或者我们在PM的71527配置错误,可以参考kba-170601053950_2_ue_reject_to_activate_ims_eps_bearer_context_causing_ims_registration_failure

  1. PDN failures from the network

[0051/0002] | MSG | 23:31:41.620 | IMS/High | [qpDcm.c 7024] qpDcmGetLastNetDownReason - Call end reason: 720901 | 1 |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 电信IMS(IP Multimedia Subsystem)注册服务器是一种用于支持电信业务的服务器。IMS是一种开放的标准化架构,旨在提供多媒体服务,如语音通话、视频通话和消息传输。 IMS注册服务器是IMS网络中的关键组件,负责管理用户的注册和身份验证。当用户在终端设备上启动语音通话或其他多媒体服务时,终端设备会向IMS注册服务器发送注册请求。注册服务器会验证用户的身份,并分配给用户一个唯一的标识符,称为SIP URI(Session Initiation Protocol Uniform Resource Identifier)。 IMS注册服务器还负责维护用户的状态信息。例如,当用户在一个Wi-Fi网络注册时,如果他们移动到另一个Wi-Fi网络或切换到移动网络注册服务器将更新用户的网络位置信息。这确保了用户在移动过程中的无缝连接。 此外,IMS注册服务器还支持服务控制功能。它可以检查用户是否有权使用某种服务,以及用户的账户余额是否足够支付相应的费用。如果用户账户余额不足,注册服务器可能会阻止用户访问相应的服务。 总之,电信IMS注册服务器是一个关键的服务器,用于管理用户的注册和身份验证,维护用户的状态信息,并支持服务控制功能。它是电信业务顺利运行的重要组成部分。 ### 回答2: 电信IMS注册服务器是一种用于支持IP多媒体子系统(IMS)的关键设备。IMS是一种基于IP网络的多媒体通信架构,可提供语音、视频、消息和其他多媒体服务。IMS注册服务器是IMS核心网络中的一个重要组成部分。 IMS注册服务器的主要功能是管理用户在IMS网络中的注册、鉴权和鉴权功能。当用户手机或其他设备上线时,它首先要向IMS注册服务器发送注册请求。注册请求包含用户标识和身份验证信息。IMS注册服务器会对此进行验证,并回复一个注册成功的消息,使用户能够使用IMS网络中的各种多媒体服务。 IMS注册服务器还负责用户鉴权功能,对用户进行身份验证。用户在IMS注册服务器中注册后,每次进行通信时,都需要进行鉴权。鉴权的目的是确保只有经过身份验证的用户才能使用IMS网络提供的服务。 此外,IMS注册服务器还提供位置服务功能,可以追踪用户的位置信息,并根据用户的位置信息提供相应的服务。 总之,电信IMS注册服务器在电信网络中扮演着核心角色,负责用户的注册、鉴权和位置服务等重要功能,为用户提供了丰富多样的IP多媒体服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值