IMS Design and Log Analysis: Reference Manual
IMS Design and Log Analysis: Reference Manual
Reference Manual
80-PP068-3 Rev. A
NO PUBLIC DISCLOSURE PERMITTED: Please report postings of this document on public servers or websites to
[email protected].
Restricted Distribution: Not to be distributed to anyone who is not an employee of either Qualcomm Technologies, Inc. or its affiliated
companies without the express approval of Qualcomm Configuration Management.
Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others without the express
written permission of Qualcomm Technologies, Inc.
All Qualcomm products mentioned herein are products of Qualcomm Technologies, Inc. and/or its subsidiaries.
Qualcomm is a trademark of Qualcomm Incorporated, registered in the United States and other countries. Other product and brand names
may be trademarks or registered trademarks of their respective owners.
This technical data may be subject to U.S. and international export, re-export, or transfer ("export") laws. Diversion contrary to U.S. and
international law is strictly prohibited.
© 2019 Qualcomm Technologies, Inc. and/or its subsidiaries. All rights reserved.
Revision history
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1 Introduction to IMS design and log analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Technical assistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 L+L IMS architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Call restrictions in L+L IMS networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Call concurrencies in L+L IMS networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Voice concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Data concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Emergency call support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Override configuration changes per SUB in L+L IMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Impact of IMS registration on a SUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Call flows for L+L IMS architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Log analysis for L+L IMS call scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.1 Log messages during IMS registration on both SUBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.2 Log messages during UT call flow on SUB1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6.3 Log messages during LTE to IWLAN handover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 RCS presence service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Presence service software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Presence publication responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Presence retrieval or capability polling responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Presence enabler call flows and log analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.1 IMS registration and presence publication call flow and log messages . . . . . . . . . . . . . . . . . . . . . . 34
3.4.2 Capability polling call flows and log messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4.3 Sequential capability polling call flows and log messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.4 Availability fetch and originate VoLTE or VT call call flows and log messages . . . . . . . . . . . . . . . . . 39
3.4.5 IMS reregistration and republication call flows and log messages . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.6 Toggle VoLTE ON/OFF call flows and log messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 2-1: Call restrictions on SUB1, for active CS/VoLTE/VoWiFi call on SUB2....................................................... 12
Table 2-2: IMS voice call concurrency handling scenarios....................................................................................... 13
Table 2-3: Data call concurrency.............................................................................................................................. 14
Table 3-1: Mapping between feature tags and service IDs...................................................................................... 50
Table 4-1: AMR narrowband and wideband bit rate................................................................................................64
Table 7-1: E911 service category............................................................................................................................153
Table 7-2: Transition of states on timer expiry.......................................................................................................163
Table B-1: UE behavior for dual-SIM L+L mode......................................................................................................168
1.1 Purpose
This document explains the call flows, design diagrams, and log snippets of LTE+LTE (L+L) IMS, and
VoLTE call scenarios, presence service, unstructured query (UT) interface and E911 service. The log
and call flows can be used to debug all modems other than 5G.
1.2 Conventions
Function declarations, function names, type declarations, attributes, and code samples appear in a
different font, for example, cp armcc armcpp.
Code variables appear in angle brackets, for example, <number>.
Commands to be entered appear in a different font, for example, copy a:*.* b:.
The L+L architecture supports dual IMS stack. IMS stack per subscription (SUB) is identified with an
IMS instance ID, which is mapped to a SUB ID. Instance-ID-based design is present only within IMS
framework. External communication still occurs with SUB ID, for example, modem to application
processor.
SUB1 SUB2
VoWi-Fi call active ■ HLOS blocks any MO voice call, including VoLTE, VoWi-Fi, circuit-switched (CS) call
■ IMS or CM rejects MT VoLTE calls
■ IMS or CM rejects MT VoWi-Fi calls
■ If WCDMA or 1X is active, MMCP ignores CS voice page, but handles CS SMS
pages normally.
Table 2-1 Call restrictions on SUB1, for active CS/VoLTE/VoWiFi call on SUB2 (cont.)
SUB1 SUB2
■ If GSM is active, all CS pages are ignored
■ If LTE is active, MMCP ignores CS pages, but handles PS pages normally.
■ If DO is active, PS pages are handled normally
CS/VoLTE call ■ HLOS blocks any MO voice call, including VoLTE/VoWiFi/CS call
active ■ IMS or CM rejects MT VoWi-Fi calls
■ MT pages on WCDMA/GSGM/1X/DO/LTE on SUB2 cannot be decoded (no lower
layer resource)
Active call on Wi-Fi (VoWi-Fi) Receives IMS call (SIP INVITE) over Rejects call with 486 – busy here
Wi-Fi
Active call on Wi-Fi (VoWi-Fi) Receives IMS call (SIP INVITE) over Rejects call with 486 – busy here
LTE
Active call on Wi-Fi (VoWi-Fi) Receives SMS/MMS on either SUB1 SMS/MMS is accepted/received on
or SUB2 corresponding SUB
Active call on Wi-Fi (VoWi-Fi) Receives CSFB call over LTE on Drops CS page/call in LTE
either SUB1 or SUB2
Active call on Wi-Fi (VoWi-Fi) Receives CS call on GSM/WCDMA Drops CS page in GSM/WCDMA
on either SUB1 or SUB2
Active call on LTE (VoLTE) Receives IMS call (SIP INVITE) over Rejects call with 486 – busy here
Wi-Fi
SUB2 event
SUB1 event SMS over USSD over
SMS over IMS USSD over IMS UT (over IMS)
NAS NAS
1. IMS stacks read override configuration files when UIM starts or restarts (MCFG refresh case).
Override files are read per SUB, for example, overrideconfig (for SUB0) and overrideconfig_01 (for
SUB1).
□ IMS stack associated with sub0 always reads override values from/efsprofiles/
overideconfig.
□ IMS stack associated with sub1 always reads override values from/efsprofiles/
overideconfig_Subscription01.
If OEMs want to use MBN instead of EFS override (recommended method), OEMs must generate
SUB-specific MBNs that accommodate the respective override configuration.
2. EFS override file is read by each instance of IMS when that instance is created.
3. For an L+L set-up, each stack can move up or go down independently of the other IMS stack.
4. OEMs must provide the override file with its correct name, preferred values, and appropriate
timing.
Power down
Figure 2-8 Call flow when UE is in SRVCC call in one SUB and HO criteria met on other SUB
Subscription ID = 2
IMSVoPS = 1 (0x1) (IMS Vo PS Session in S1 Mode supported)
01:14:15.281 [75] 0xB0ED LTE NAS EMM Plain OTA Outgoing Message --
Attach complete Msg
Subscription ID = 2
:
01:14:16.020 PDPManager.cpp 1223 H EventChangeRat -
ServiceOnRatMask = 0x0080640e, new RAT mask = 0x00000400: Sub-ID:2
01:14:16.020 PDPManager.cpp 1224 H EventChangeRat - New RAT is
10 and is valid: 1 Sub-ID:2
d. PDP session is established
01:14:16.761 qpDcm.c 4259 H qpDcmSendMsgrEv:
eDCM_MSGR_RESP_VOLTE_STATE_INFO_CMD | Volte State --> 1 Sub-ID:2
01:14:16.024 qpDcm.c 8871 M
IMS_APP#>>#DPL_M#0#qpDcmEstablishPDPConnection Sub-ID:2
01:14:16.030 qpDcm.c 9008 H DPL_M#$
$#0#qpDcmEstablishPDPConnection - DS_EWOULDBLOCK on dsnet_start Sub-
ID:2
:
01:14:16.034 [9D] 0xB0E3 LTE NAS ESM Plain OTA Outgoing Message --
PDN connectivity request Msg
Subscription ID = 2
01:14:16.086 [28] 0xB0E2 LTE NAS ESM Plain OTA Incoming Message --
Activate default EPS bearer context request Msg
Subscription ID = 2
01:14:16.091 [FB] 0xB0E3 LTE NAS ESM Plain OTA Outgoing Message --
Activate default EPS bearer context accept Msg
Subscription ID = 2
e. IMS registration is triggered over LTE on SUB2 with IPSec established
3. Before triggering the HTTP request, the lower layer resources are acquired by the TRM
23:09:56.575,qpDplTRM.c,58,H,GetMappingSysProcType - 57:,Sub-ID:0,
23:09:56.575,qpDplTRM.c,281,H,IMS acquires TRM priority[57],Sub-ID:0,
4. All the subsequent HTTP connection and GBA procedure are triggered as follows:
23:09:56.575,imsserviceconfigGBA.cpp,1130,M,IMSServiceConfigGBA::Send
HTTP,Sub-ID:0,
23:09:56.575,QimfHttp.cpp,258,M,HttpConnection::HttpConnection | this:
40deb2a0,Sub-ID:0,
23:09:56.648,QimfHttp.cpp,280,M,HttpConnection::~HttpConnection | this:
40deb2a0 m_bTCPConnected:1 m_bTLSConnected:0,Sub-
ID:0,23:09:56.679,QimfHttp.cpp,1121,H,HttpConnection::HttpsSendData| HTTP
message :PUT /simservs.ngn.etsi.org/users/sip:[email protected],Sub-ID:0
3. IP type manager module manages the IP type to be used for this SUB.
23:53:35.606,QpPDNIPTypeManager.cpp,339,H,qpPDNIPTypeEstablishPDPConnection
| This Instance Value[3], PrimaryInUse[0], SecondaryInUse[0],Sub-ID:1,
23:53:35.606,qpDcm.c,9200,H,qpDcmEstablishPDPConnection - 3GPP
ProfileNumber --> 2 | 3GPP2 ProfileNumber --> -1 | IPType --> 1,Sub-ID:1,
5. PDP activation is successful and indicated to application processor and other clients for knowing
the current activation status.
:23:53:36.701,PDPRATHandlerVoLTE.cpp,1176,H,GetClientIndication Current
Rat 10,Sub-ID:1,
:23:53:36.701,PDPRATHandlerVoLTE,1253,H,GetClientIndication Gen. Reg
Handle#PDP_SUCCESS_STATUS#10#1#1#0#8# ,Sub-ID:1,
8. ICS module that determines whether handover to Wi-Fi is possible based on the quality
measurement.
23:54:53.759,ICSCore.cpp,6857,H,ICSCore::is_handover_possible_based_on_qual
ity: LTE -> WIFI | HO possible 1,Sub-ID:1,
23:54:53.759,ICSCore.cpp,4087,M,ICSCore::is_wwan_iwlan_handover_required:
current system = 1, HO possible = 1, pref system 2 ,Sub-ID:1,
9. Handover criteria is entered and indicated to UI for the successful handover event.
23:54:57.509,ICSCore.cpp,5524,H,ICSCore::log_handover_criteria:
iHandOverCriteria Entered,Sub-ID:1,
23:54:57.509,ICSCore.cpp,8095,H,ICSCore::process_handover_success_event :
Indicate to UI, SRAT 2, TRAT 1 ,Sub-ID:1,
10. ICS module querying policy manager for all the preferred IMS RAT, voice call preference mode,
and WFC status.
23:54:57.511,ICSCore.cpp,1399,H,ICSCore::get_preferred_rat_for_ims_pdn: PM
returned Pref RAT 6, ims pref RAT 20 ,Sub-ID:1,
23:54:57.511,ICSCore.cpp,1658,H,ICSCore::get_preferred_rat_for_ims_pdn:
pref_rat 20, Voice pref 1 , WFC status 1,Sub-ID:1,
11. Based on the handover measurements, IMS registration over Wi-Fi is triggered. RAT = 6 indicates
WLAN RAT.
:23:54:57.512,PDPManager.cpp,1212,H,EventChangeRat -Current RAT 10 New Rat
6 ProceedIfRatsSame 0,Sub-ID:1,
:23:54:57.512,PDPManager.cpp,1237,H,EventChangeRat - ServiceOnRatMask =
0x00000440, new RAT mask = 0x00000040: ,Sub-ID:1,
:23:54:57.512,PDPManager.cpp,1238,H,EventChangeRat - New RAT is 6 and is
valid: 1,Sub-ID:1,
Presence service is a network service which accepts, stores and distributes information about the
online availability of the user. The presence service is accessed before a call is placed. Following are
the functions of the presence service:
■ Presence publication: Near-end user shares its presence with far-end peers through the IMS core
network (CN)
■ Presence retrieval or capability polling: Near-end user retrieves far-end peers’ presence from the
IMS CN
■ C
□ lib-imsrcs.so – native RCS
□ lib-imss.so – native RCS IMS setting service
■ IMS presence enabler performs a periodic republish based on expires configured in NV 67314,
iPublishTimer
□ Network may change the expires value in 200 OK (PUBLISH)
■ IMS presence enabler performs a PUBLISH retry upon failure as per operator policies.
OEM is responsible for the following:
■ Using the IQPresListener_PublishTriggering() method for listening to the PUBLISH trigger
indication and performing an initial PUBLISH after successful IMS registration with the network
■ Checking if VT or mobile data is enabled or disabled per user action; then, the OEM should
perform an initial PUBLISH
■ Presence parameters, such as the SourceThrottlePublish PST parameter, can be written using
RCS IMS settings APIs, which write to NV 67314.
■ Initiating a PUBLISH request using the QPresService_PublishMyCap() method of RCS AIDL API:
The QTI IMS stack generates a PUBLISH request and sends it OTA; the network response is
provided by an asynchronous indication.
■ Listening to the network response using the IQPresListener_SipResponseReceived() method of
RCS AIDL API. See RCS 5.1 User Capability Exchange AIDL API Interface Specification (80-
NE170-2) for more information about QTI APIs.
3.4.1 IMS registration and presence publication call flow and log messages
The IMS registration and presence publication call flow and log messages are as follows:
3.4.4 Availability fetch and originate VoLTE or VT call call flows and log messages
The availability fetch and originate VoLTE or VT call flows and log messages are as follows:
Figure 3-6 Call flow for availability fetch and originate VoLTE or VT call
1. Send SUBSCRIBE message to retrieve the availability of far-end peer.
IMS SIP/High 00:35:36.998 [IMS_AP] sipConnection.cpp 03376 | 3376 |
2093 |Sent SIP Message:SUBSCRIBE sip:[email protected]
IMS PRESENCE/High00:35:37.000 [IMS_AP] IMSPresenceEnabler.cpp 03719 |
3719 | 2093 |NotifyListener_CmdStatus: Cmd ID = [1]
IMS PRESENCE/High00:35:37.000 [IMS_AP] IMSPresenceEnabler.cpp 03725 |
3725 | 2093 | Notify PRES Listener CmdStatus[0x5d9709e0]
IMS SIP/Error 00:35:37.068 [IMS_AP] qimfsiplib.cpp 01451 | 1451 |
2093 |QimfSipActiveObj::ProcessMessage | Received Message is SIP/2.0 200 OK
IMS PRESENCE/High00:35:37.107 [IMS_AP] IMSPresenceEnabler.cpp 01302 |
1302 | 2093 |imspSipResponseHandler | sipResponseCode [6] statusCode [200]
3.4.5 IMS reregistration and republication call flows and log messages
The modem periodically performs IMS reregistration and IMS republication with IMS CN. There is no
OEM responsibility.
NOTE Capability polling and Availability Fetch were removed from this call flow for simplicity.
IMS registration and publication expiry are handled by separate and distinct timers
Modem performs the IMS reregistration. There is no OEM responsibility. OEM must invoke Perform
Presence Publication after receiving the trigger indication
■ The UI allows the end user to toggle VoLTE OFF. If the VoLTE setting is changed, OEM must use
the RCS IMS Settings API to inform the modem.
■ Modem performs the IMS reregistration. There is no OEM responsibility.
■ OEM must invoke Perform Presence Publication after receiving the trigger indication.
Modem performs the IMS reregistration. There is no OEM responsibility. OEM must invoke Perform
Presence Publication after receiving the trigger indication.
3.4.8 Mobile data network on/off call flows and log messages
When the user turns off mobile data from the UI, the process described in the following occurs:
NOTE Capability polling and Availability Fetch were removed from this call flow for simplicity.
3.4.9 L2e and e2L iRAT transitions call flows and log messages
eHRPD is a software solution that is used to pass LTE packets through existing CDMA towers, when
pure LTE towers are not available. The following figure and procedure describe the transitions from
LTE to evolved high rate packet data (eHRPD) and vice versa:
NOTE Capability polling and Availability Fetch were removed from this call flow for simplicity
NOTE Capability polling and Availability Fetch were removed from this call flow for simplicity.
1. Airplane mode is on
IMS UNKNOWN/High 01:09:03.035 [IMS_AP] IMSDevice.cpp 00662 | 662 |
2087 |<RCS STATUS> IMSDevice AirPlane - QPE_OPRT_MODE (6)
IMS UNKNOWN/High 01:09:03.035 [IMS_AP] IMSDevice.cpp 00672 | 672 |
2087 |<RCS STATUS> IMSDevice::imspOperMode - Old OperMode = 5 New OperMode
= 6
IMS PRESENCE/High 01:09:03.090 [IMS_AP] IMSPresenceEnabler.cpp 02351
| 2351 | 2087 |IMSPresenceEnabler Treating LPM as Air ON
NOTE Capability polling and Availability Fetch were removed from this call flow for simplicity.
1. Power off
IMS UNKNOWN/High 01:09:03.035 [IMS_AP] IMSDevice.cpp 00662 | 662 |
2087 |<RCS STATUS> IMSDevice AirPlane - QPE_OPRT_MODE (0)
IMS UNKNOWN/High 01:09:03.035 [IMS_AP] IMSDevice.cpp 00672 | 672 |
2087 |<RCS STATUS> IMSDevice::imspOperMode - Old OperMode = 5 New OperMode
= 0
NOTE Interfacing IMS components for SIP signaling are highlighted in yellow
Evolved node B (eNB) provides the following evolved universal terrestrial radio access (E-UTRAN)
protocol terminations toward the UE:
■ User planes (PDCP/RLC/MAC/PHY)
■ Control plane (RRC)
Serving gateway (SGW) and PDN gateway (PGW) are the user plane. Mobility management entity
(MME) is the control plane
■ Application server
□ Host and execute IMS-specific services, for example, VoLTE
■ Signaling
□ Call session control function (CSCF)
■ Media
□ Breakout gateway control function (BGCF)
– S-CSCF inserts BGCF into the signaling path, which in turn sends requests to media
gateway control function (MGCF)
□ Media gateway (MGW)/MGCF
– Calls delivered to another IP domain
– Calls delivered to PSTN
– Transcoding between two codecs (if there is a codec mismatch)
■ Signaling
□ UE↔P-CSCF
– SIP
• IMS registration/deregistration
• VoLTE call origination/termination
■ Media
□ UE1 ↔ E-UTRAN ↔ UE2
□ Audio packets over real time transport protocol (RTP)
VoLTE feature initialization procedures are required before a VoLTE session can be established. The
procedures are as follows:
VoLTE session procedures to establish a VoLTE session with a remote party is as follows:
When IMS services are no longer required, IMS deregistration with the network is performed.
1. User makes a call. CM notifies IMS. IMS creates and sends Invite message.
□ Reliable provisional responses (100 Rel)
□ SDP for audio codec support
2. When the LTE stack receives this message, it initiates a service request procedure. The RRC
layer performs the random access channel (RACH) procedure to get into RRC connected state
and transmits the message.
5. If the IMS client in UE2 supports at least one of the codecs proposed by IMS client1, it responds to
the Invite message with 180 Ringing response, since it is configured as a QoS-unaware client.
□ 180 Ringing message contains only one codec choice in the SDP.
□ 180 Ringing message reaches IMS client1 through the reverse path of the one followed by the
Invite message.
6. When the P-CSCF1 and P-CSCF2 receive the 180 Ringing message, they trigger the network-
initiated push of the dedicated bearers. The P-CSCF triggers the network-initiated dedicated EPS
bearer creation by creating a diameter session with the PCRF. The EPS bearer is created by
sending an AA-Request message that contains:
□ The IP address assigned to the UE by the IMS PDN.
□ Media component description, which specifies the codec and traffic flow template (TFT) from
the SDP in the 180 Ringing message.
7. In response to the AA-Request message in step 6, the PCRF identifies the IP connectivity access
network (IP-CAN) session using the IP address obtained from the P-CSCF. It uses the QoS policy
information downloaded from the HSS/subscriber profile repository (SPR) during IP-CAN session
establishment and the media-description message received from P-CSCF to determine the QoS
and filter information for the dedicated EPS bearer that carries the voice traffic. It performs an IP-
CAN session modification by sending the (diameter) RAR command with the QoS-Information and
flow-description fields.
□ QoS-Information specifies QCI, address resolution protocol (ARP), GBR/MBR parameters.
□ For GPRS tunneling protocol (GTP), this command reaches PGW.
8. For GTP, the PGW creates S5 EPS bearers by installing the packet filters based on the flow-
description field of the received RAR command. It sends a Create Bearer request messageto the
SGW. This message contains the EPS bearer QoS, S5/S8-Tunnel-ID, TFT, and LBI (EPS bearer-
ID of default bearer to which the dedicated bearer is linked).
9. The SGW sends a Create Bearer Request message to the MME that contains the EPS bearer
QoS, S1-Tunnel-ID, TFT, and LBI.
10. The MME selects an EPS bearer ID for the dedicated bearer. It creates a NAS message and an
Activate Dedicated EPS Bearer Context request message, and sends it to eNB in an MME
message called Bearer Setup request. The following are the important fields:
□ The Bearer Set up request, which contains the EPS bearer-ID, EPS QoS, S1-Tunnel-ID, and
the NAS message
□ The Activate Dedicated EPS Bearer Context Request message, a NAS message that
specifies the EPS bearer-ID, TFT, QoS parameters, and LBI.
11. eNB maps EPS bearer QoS to radio bearer QoS. It sends an RRC-Connection Reconfiguration
message, which contains a data radio bearer (DRB) linked to the EPS bearer-ID that can
guarantee the QoS at the radio level. The RRC-Connection Reconfiguration message also
contains the NAS message from the MME.
12. When the UE acknowledges the radio bearer activation using RRC Connection Reconfiguration
Complete message, eNB sends a Bearer Setup Response to the MME indicating that the EPS
bearer QoS could be allocated. This message contains the EPS bearer-ID and S1-Tunnel-ID.
□ If eNB does not have resources, it responds with a failure.
13. The NAS layer in the UE responds with a NAS message Activate Dedicated EPS Bearer Context
Accept in a UL Info Transfer message. Also, when the network-initiated dedicated bearer is
created, the LTE stack:
□ Uses the contents of the NAS message/RRC message to create a mapping between traffic
flows to the radio bearer.
□ The installed UL TFT should have a destination IP address/port in the SDP answer and DL
TFT with source IP/port advertised in the SDP offer.
14. eNB forwards the NAS message to the MME in a UL NAS transport.
15. The MME sends a Create Bearer Response message to the SGW.
16. The SGW sends a Create Bearer Response message to the PGW.
17. The PGW sends an RAR response message to the PCRF.
18. Upon receiving the RAR response message, the PCRF sends an AA-Answer command to the P-
CSCF indicating that dedicated bearer establishment has succeeded.
19. The IMS client in UE1 sends a provisional response acknowledgment (PRACK) SIP message.
This PRACK message reaches the IMS client on UE2 through the same set of nodes as in step 3.
20. The IMS client in UE2 responds with a 200 (OK) message upon receiving the PRACK. This
response acknowledges the PRACK and accepts the SDP-Offer.
□ The IMS client in UE2 alerts the user after receiving the PRACK that acknowledges the 180
Ringing message.
21. When the destination user answers the call, IMS client2 sends a 200 (OK) message to the source
IMS client1. This message serves as 200 (OK) to the initial Invite message.
22. IMS client1 acknowledges the 200 (OK) message with an ACK and the media streams are ready
to be established.
4. IMS creates an SDP offer based on the UE configuration and sends it to IMS CN in a SIP INVITE
request containing supported codec rates.
IMS/High 01:26:22.322 qipcallsdp.c 3221 Creating Offer | call_id: 2 Sub-
ID:1
IMS/High 01:26:22.322 qipcallsdp.c 3248 [is_offer: 1] Sub-ID:1
:
IMS/High 01:26:22.322 qipcall_sdp_audio.c 6945
qipcallsdp_initialize_m_line_AS_bandwidth: AMR WB modeset NV: 0, AMR
modeset NV:0 amr_wb_enabled 1 Sub-ID:1
IMS/High 01:26:22.322 qipcall_sdp_audio.c 470
qipcallsdp_add_payld_fmt:WB-Amr mode is 0 Octet align 0 Sub-ID:1
IMS/High 01:26:22.322 qipcall_sdp_audio.c 488
qipcallsdp_add_payld_fmt:Amr mode is 0 Octet align 0 Sub-ID:1
AMR bandwidth (that is, wideband or narrowband), payload type, mode (bandwidth efficient or
octet aligned), and mode-set can be configured through audio codec profiles (AudioProfile) under
[QIPCALL:ImsMediaProfileConfig] in OEM override configuration files. See Audio codec profile
configuration for more details. Mode set is configured by NV 73846 (amrModeSet) for AMR-NB
and NV 73846 (amrWbModeSet) for AMR-WB. It is a bitmask (1 << n) representation of the
preceding values. For example: 149 = 1001 0101 = 23.05 kbps, 15.85 kbps, 12.65 kbps, 6.60 kbps
Table 4-1 AMR narrowband and wideband bit rate
Invite request with SDP payload is sent to IMS CN. This is routed to the far-end peer to begin
VoLTE session establishment.
IMS/High 01:26:22.333 qpSipUtils.cpp 3393 EVENT_SIP_REQUEST_SEND: INVITE
sip:[email protected];user=phone SIP/2.0 Sub-ID:1
5. 100 Trying message is received, which indicates that the Invite request was received by the IMS
CN.
IMS/High 01:26:22.684 qpSipUtils.cpp 3393 EVENT_SIP_RESPONSE_RECV: SIP/2.0
100 Trying Sub-ID:1
a. 180 Ringing message is received from far-end UE.
IMS/High 01:26:22.775 qpSipUtils.cpp 3393 EVENT_SIP_RESPONSE_RECV:
SIP/2.0 180 Ringing Sub-ID:1
b. IMS waits for 200 OK response to the Invite request. This indicates that the far-end UE
answered the VoLTE call.
c. IMS starts the ringback timer once 180 Ringing message is received, and stops after receiving
200 OK message. The timer value is configurable through NV 73842 – ringBackTimer (in
milliseconds). It is the amount of time that the UE waits for a final (non-1xx provisional) SIP
response before sending Cancel message to end the MO VoLTE session establishment
attempt.
IMS/High 01:26:22.782 qipcallh.c 4176 Start QIPCALL Ringback timer
180000 call id 2 Sub-ID:1
d. IMS sends indication to CM, which is propagated to UI through QMI Voice. Ringback tone is
played to the user. A normal ringback indication is propagated to upper layers unless SIP
header alert-info is set (alert-info indicates call waiting)
IMS/Medium 01:26:22.782 qpDplCallCtrl.c 6869 qpDplCallCtrlReportInd:
eIndication = 4 Sub-ID:1
01:26:22.783 [A4] 0x1544 QMI_MCS_QCSI_PKT
MsgType = Indication
voice_all_call_status {
call_state = CALL_STATE_ALERTING
call_type = CALL_TYPE_VOICE_IP
direction = CALL_DIRECTION_MO
mode = CALL_MODE_LTE
6. IMS receives 200 OK (INVITE) response from IMS CN and sends ACK to IMS CN.
IMS/High 01:26:23.300 qpSipUtils.cpp 3393
EVENT_SIP_RESPONSE_RECV: SIP/2.0 200 OK Sub-
ID:1
IMS/High 01:26:23.305 qpSipSessionService.cpp 3776
EVENT_SIP_SESSION_ESTABLISHED:Response Code: 200 Sub-ID:1
:
IMS/High 01:26:23.306 qimfif_cbs.cpp 2942 qimfif_cbs_update: Received
event = 4 Sub-ID:1
IMS/High 01:26:23.310 qimfif_cbs.cpp 3092 qimfif_cbs_update: Outgoing
Established. 200 ok rcved for dialog_id 12 Sub-ID:1
:
IMS/High 01:26:23.316 qpSipUtils.cpp 3393 EVENT_SIP_REQUEST_SEND: ACK
sip:+12345678901@[fc01:abab:cdcd:6fee::1] SIP/2.0 Sub-ID:1
7. IMS activates the media part of the VoLTE call via the RTP component that was initiated based on
offer answer.
IMS/Medium 01:26:23.319 qpaudio.c 4436 qpAudioInitialize Start VSID
11C05000 MVM 11C05000
IMS/High 01:26:23.322 qipcallrtp.c 1909 [qipcallrtp_resume_rtp_stream]
[qvp_rtp_resume_stream success] Sub-ID:1
CM updates the state and passes on the information to the QMI layer
Call Manager/High 01:26:23.321 cmipapp.c 3997 =CM= RPT name
604
Call Manager/High 01:26:23.321 cmipcall.c 2882 =CM= DS: SUB
1 IP RXD: CONNECTED, id=2, as_id=0 Sub-ID:1
The QMI layer passes the call status to the AP side.
01:26:23.321 [EC] 0x1544 QMI_MCS_QCSI_PKT
MsgType = Indication
voice_all_call_status {
call_state = CALL_STATE_CONVERSATION
call_type = CALL_TYPE_VOICE_IP
direction = CALL_DIRECTION_MO
mode = CALL_MODE_LTE
3. After receiving SIP 183, QIPCALL registers for a QoS event with the data layer.
IMS/High 00:06:37.232 qipcalldialog.c 1262
qipcalldialog_process_incoming_session_progress_event: Call state = 12,
precondition enabled by remote = 1 Sub-ID:1
IMS/High 00:06:37.232 qipcallqos.c 564 qipcallqos_register_qos: QoS reg
status = 0, handle id = 0x1 Sub-ID:1
IMS/High 00:06:37.232 qipcallqos.c 597 qipcallqos_register_qos: Register
successfully for N/W init QoS event, Started QoS timer for VoLT Sub-ID:1
4. Network sets up the dedicated bearer for a media packet for VoLTE call.
00:06:37.412 [84] 0xB0E2 LTE NAS ESM Plain OTA Incoming Message --
Activate dedicated EPS bearer context request Msg
eps_bearer_id_or_skip_id = 6 (0x6)
msg_type = 197 (0xc5) (Activate dedicated EPS bearer context request)
00:06:37.415 [55] 0xB0E3 LTE NAS ESM Plain OTA Outgoing Message --
Activate dedicated EPS bearer context accept Msg
eps_bearer_id_or_skip_id = 6 (0x6)
5. After the dedicated bearer setup is accepted, the data layer informs IMS about QoS availability.
QIPCALL checks the bandwidth allocation details and sends SIP Update.
IMS/Error 00:06:37.415 qpDplQoS.c 894 qpDplProcessQoSEvent:
DPL_QOS_MSG_NW_INIT_AVAIL | Added Qos Instance Handle | QoS Instance
handle --> 0x43001c01 | Qos Handle --> 0x43001c01
IMS/High 00:06:37.415 qipcallqos.c 2411
qipcallqos_process_qos_available_event: Received QoS Handle = 0x1,
Instance Handle = 0x43001c01 Sub-ID:1
IMS/High 00:06:37.416 qipcalldialog.c 4879
qipcalldialog_update_qos_status Status = 0,processing Qos event Sub-
ID:1
IMS/High 00:06:37.416 qipcallqos.c 2158
[qipcallqos_is_mbr_met]QIPCALLQOS_QOS_AVAILABLE Handle = 1, media_index =
0 Sub-ID:1
IMS/High 00:06:37.416 qipcall_sdp_precondition.c 1566 H
qipcallsdp_update_local_precondition_state_to_met, media_index is 0 Sub-
ID:1
6. Network responds to SIP Update with SIP 200 OK with SDP answer.
IMS SIP/High 00:06:37.659 qpSipUtils.cpp 3393 EVENT_SIP_RESPONSE_RECV:
SIP/2.0 200 OK Sub-ID:1
Call-ID: 396490_4119997676@fc01:bbbb:cdcd:efe0:66fb:b688:d703:a94a
SIP/2.0 200 OK snippet from pcap log
m=audio 10000 RTP/AVP 104 96
b=AS:38
b=RS:600
b=RR:2000
a=curr:qos local sendrecv
a=curr:qos remote sendrecv // remote QoS reserved
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
8. Network sends SIP 200 OK final response for Invite. The call is established.
IMS SIP/High 00:06:38.595 qpSipUtils.cpp 3393 EVENT_SIP_RESPONSE_RECV: SIP/
2.0 200 OK Sub-ID:1
Call-ID: 396490_4119997676@fc01:bbbb:cdcd:efe0:66fb:b688:d703:a94a
2. As the network did not set up a necessary dedicated bearer for QoS in 8000 millisecond, the QoS
timer expires. Then, QIPCALL releases the MO call and sends SIP Cancel to the network.
IMS/Medium 06:35:09.398 qipcalltimer.cpp 218 QipcallTimer: Timer fired
0 Sub-ID:1
IMS/High 06:35:09.398 qipcallh.c 14194 qipcallh_handle_qos_timer_expiry
for call id = 2 Sub-ID:1
IMS/High 06:35:09.398 qipcall_sdp_precondition.c 2294
qipcallsdp_is_local_pre_condition_met: local precondition not met for
index = 0 Sub-ID:1
IMS/High 06:35:09.398 qipcallh.c 14457
qipcallh_wait_for_qos_reservation_timer_handler local precondition not
met, ending the call Sub-ID:1
IMS/High 06:35:09.398 qipcallh.c 8297 qipcallh_chg_state_to_null]
[call_id: 2] [state: 12] Sub-ID:1
IMS/Medium 06:35:09.406 qipcall_indication.c 470 qipcall_call_end_rpt_ind:
1. IMS receives INVITE request, responds with 100 trying, and processes internally the incoming
VoLTE call request.
IMS/High 01:10:36.440 qpSipUtils.cpp 3393 EVENT_SIP_REQUEST_RECV:
INVITE sip:280671d5-db66-4d6b-a3ae-
553be9838631@[fc01:bbbb:cdcd:efe0:3d9b:681a Sub-ID:1
IMS/High 01:10:36.450 qpSipUtils.cpp 3393
EVENT_SIP_RESPONSE_SEND: SIP/2.0 100 Trying Sub-ID:1
IMS ensures it is able to accept the incoming VoLTE call if the following conditions are met:
□ Current RAT is LTE.
□ CM domain selection has chosen IMS for Voice.
□ There is no active 1X voice call.
2. IMS stores and processes the dialog information (SIP headers and SDP).
IMS/High 01:10:36.452 qimfif_cbs.cpp 3097 qimfif_cbs_update: Rxed SIP
INCOMING Sub-ID:1
IMS/High 01:10:36.452 qipcalldialog.c 6169
[qipcalldialog_process_incoming_msg] [event: 4066] [status_code: 100]
[sdpBody_ptr: 0xbe11f5e0] Sub-ID:1
IMS/High 01:10:36.456 qipcalldialog.c 7022
qipcalldialog_update_precondition_enabled_flag :dialog_ptr-
>precondition_enabled = 0 Sub-ID:1
IMS parses SDP offer from far-end and reads the near-end NV configuration to formulate an SDP
answer with commonly supported media / attributes.
IMS/High 01:10:36.454 qipcalldialog.c 5812
[qipcalldialog_update_sdp_received] Sub-ID:1
IMS/High 01:10:36.456 qipcallsdp.c 3643
[qipcallsdp_extract_info_from_peer_container] Sub-ID:1
3. IMS opens an RTP stream to ensure that RTP resources are reserved for the incoming call. IMS
waits for RTP to be opened before proceeding to notify upper layers about the incoming call
request. The process to open RTP is as follows:
a. Allocate memory for audio stream
b. Allocate RTP timer (RTP/RTCP inactivity timers, RTP clock)
c. Configure or associate the audio stream with IMS internal call ID
IMS/High 01:10:36.457 qipcallh.c 12106 Call id 2 moving to WAIT FOR RTP
OPEN Sub-ID:1
IMS/High 01:10:36.458 qvp_rtp_api.c 684 API qvp_rtp_open2 entered with
appid 0 Sub-ID:1
IMS/High 01:10:36.467 qipcall.c 1815 qipcall_process_rtp_msg:
QIPCALL_RTP_OPEN_DONE Sub-ID:1
4. IMS notifies CM about the incoming VoLTE call. The user is not alerted for this notification. This
notification to upper layers is only performed to check if an incoming VoLTE call is allowed.
IMS/Medium 01:10:36.457 qipcall_indication.c 2053
qipcall_call_incoming_rpt_ind: call_id=2, type=1, eAudioAttrib=3,
eVideoAttrib=0, display_len=0, peer_PI=0 Sub-ID:1
:
IMS/Medium 01:10:36.457 qpDplCallCtrl.c 6869 qpDplCallCtrlReportInd:
eIndication = 0 Sub-ID:1
:
IMS/Medium 01:10:36.457 qpDplCallCtrl.c 6965 qpDplCallCtrlReportInd:
CallType = 1 Sub-ID:1
NOTE qpDplCallCtrlReportInd returns TRUE when upper layers are successfully notified
about the incoming VoLTE call
6. CM informs IMS that the VoLTE call is allowed. A 180 Ringing response is sent to inform the MO
UE that the MT UE is being notified about the incoming VoLTE call.
Invite cb
IMS/High 01:10:36.457 qipcallh.c 36119
qipcallh_process_call_request: eCallCbType = 2 Sub-ID:1
IMS checks if there are any active voice calls to set SIP header “Alert-Info” appropriately for
normal ringback tone or call waiting tone. An active voice call is a call with call type
CM_CALL_TYPE_VOICE in the Conversation state. If DPL can successfully query CM for the
current call list, the value TRUE is returned.
IMS/High 01:10:36.930 qipcallh.c 22865 qipcallh_set_alert_info:
qipcall_get_CM_call_list returned = 1, NumOfCalls =22 Sub-ID:1
NOTE is_alert_info_set is a flag used to indicate if there are any other active voice calls in
progress. The value 0 denotes false, while the value 1 denotes true.
7. IMS informs upper layers about the incoming VoLTE call to notify the MT UE user via the UI.
a. IMS starts the ringing timer. The ringing timer value is configurable through NV 73842 -
ringingTimer (in milliseconds). This value is the amount of time the MT UE waits for the user to
answer or reject the call before ending the VoLTE session establishment with 486 “Busy Here”
response to the MO UE.
IMS/High 01:10:36.937 qipcallh.c 4151 HStart QIPCALL Ringing timer
45000 call id 2 Sub-ID:1
b. Ringing event notification is propagated to upper layers
IMS/Medium 01:10:36.937 qipcall_indication.c 2144
qipcall_call_ring_cnf_ind: call id = 2, Encryption call enabled = 0 Sub-
ID:1
IMS/High 01:10:36.937 qpDplCallCtrl.c 7609 qpDplCallCtrlReportInd:
calling cmipapp_rpt_ind Sub-ID:1
c. Ringing
IMS/Medium 01:10:36.937 qpDplCallCtrl.c 6869 qpDplCallCtrlReportInd:
eIndication = 1 Sub-ID:1
d. Incoming call
Call Manager/High 01:10:36.937 cmdbg.c 3907 =CM= <<CM1 callevt=5
<2> Sub-ID:1
01:10:36.940 [83] 0x1544 QMI_MCS_QCSI_PKT
MsgType = Indication
voice_all_call_status {
call_state = CALL_STATE_INCOMING
call_type = CALL_TYPE_VOICE_IP
direction = CALL_DIRECTION_MT
e. If CM is successfully notified about this event, then TRUE value is returned in the DPL call
control report indication
IMS/High 01:10:36.937 qipcall_indication.c 206 qipcall_rpt_ind ret
from qfDplCallCtrlReportInd = 1 Sub-ID:1
IMS/High 01:10:36.937 qipcallh.c 8202 Call Id 2 state from 11 to
WAIT_FOR_ANSWER Sub-ID:1
8. The user answers the incoming VoLTE call. IMS creates an SDP answer and sends a 200 OK
(INVITE) response.
01:10:47.958 [BA] 0x1544 QMI_MCS_QCSI_PKT
MsgType = Request
voice_answer_call {
voice_answer_call_reqTlvs[0]
Call Manager/High 01:10:47.958 cmdbg.c 3639 >>CM callcmd 1,
tsk=qmi_mmode, client_type=17
Wait for answer (1 accept or 0 reject)
IMS/High 01:10:47.959 qipcallh.c 22457 Answer Cmd State 13 call id = 2,
bAccept = 1 Sub-ID:1
10. IMS activates the VoLTE (same as MO Call Setup steps 7 to 10)
IMS/Medium 01:10:47.963 qipcallh.c 7982 [ activating call id: 2 ] Sub-
ID:1
3. After sending SIP 183, QIPCALL registers for a QoS event with the data layer.
IMS/Medium 17:32:15.928 [ qipcallh.c 14656]
qipcallh_register_qos_for_call entering
IMS/High 17:32:15.928 [ qipcallqos.c 432]
qipcallqos_register_qos: Media Type = 0, port = 50048
4. Network sets up the dedicated bearer for a media packet for VoLTE call.
LTE NAS ESM Plain OTA Incoming Message 17:32:16.474 Activate dedicated EPS
bearer context request Msg
eps_bearer_id_or_skip_id = 6 (0x6)
LTE NAS ESM Plain OTA Outgoing Message 17:32:16.478 Activate dedicated EPS
bearer context accept Msg
eps_bearer_id_or_skip_id = 6 (0x6)
5. After the dedicated bearer setup is accepted, the data layer informs IMS about QoS availability.
QIPCALL checks the bandwidth allocation details and updates the precondition status.
IMS/High 17:32:16.478 [qipcallqos_wrapper.c 639]
qipcallqos_wrapper_update_qos_status filters: 0 1
IMS/High 17:32:16.478 [qipcallqos_wrapper.c 685]
qipcallqos_wrapper_update_qos_status TX count: 1 bIsMatch: 1 dialog:
0x6bd23d90
IMS/High 17:32:16.478 [ qipcallqos.c 2158]
[qipcallqos_is_mbr_met]QIPCALLQOS_QOS_AVAILABLE Handle = 1, media_index =
0
IMS/High 17:32:16.479 [qipcall_sdp_precondition.c 1566]
qipcallsdp_update_local_precondition_state_to_met, media_index is 0
IMS/High 17:32:16.479 [qipcall_sdp_precondition.c 2508]
qipcallsdp_is_local_pre_condition_met: [local precondition status] audio =
1 video = 0, for call id = 2
IMS/High 17:32:16.479 [qipcall_sdp_precondition.c 2569]
qipcallsdp_is_remote_pre_condition_met: Remote precondition audio not met
8. UE sends SIP 180 Ringing and indicates to the UI layer of the incoming call.
IMS SIP/High 17:32:16.738 [ qpSipUtils.cpp 3393]
EVENT_SIP_RESPONSE_SEND: SIP/2.0 180 Ringing
9. After the user accepts the incoming call, UE sends SIP 200 OK final response for INVITE. The call
is established.
IMS SIP/High 17:32:25.377 [ qpSipUtils.cpp 3393]
EVENT_SIP_RESPONSE_SEND: SIP/2.0 200 OK
10. UE receives SIP ACK for SIP 200 OK from the network.
IMS SIP/High 17:32:25.834 [ qpSipUtils.cpp 3393]
EVENT_SIP_REQUEST_RECV: ACK sip:da6d5fd1-45ca-4ef9-adbc-
eaa16e8beaff@[fc01:bbbb:cdcd:efe0:acb0:ad76:fe
1. After sending SIP 183, the QIPCALL registers for a QoS event with the data layer and starts the
QoS timer.
IMS/Medium 03:02:00.413 [ qipcallh.c 14613]
qipcallh_register_qos_for_call entering
IMS/High 03:02:00.413 [qipcallqos_wrapper.c 1039]
qipcallqos_wrapper_register_qos: Media Type = 0, port = 50028
IMS/Medium 03:02:00.413 [ qipcalltimer.cpp 251]
QipcallTimer::StartTimer - :d8b20614
IMS/Medium 03:02:00.413 [ qipcalltimer.cpp 265]
QipcallTimer::StartTimer - iDelay:8000 TimerID 0
IMS/High 03:02:00.413 [ qipcallqos.c 597]
qipcallqos_register_qos: Register successfully for N/W init QoS event,
Started QoS timer for VoLTE
2. As the network did not set up a necessary dedicated bearer for QoS in 2000 millisecond, the QoS
timer is expired. After that, QIPCALL releases the MT call and sends SIP 580 to the network.
IMS/High 03:02:08.414 [ qipcalltimer.cpp 286]
QipcallTimer::StopTimer 0 d8b20614
IMS/High 03:02:08.414 [ qipcallh.c 15031]
qipcallh_handle_qos_timer_expiry for call id = 2
IMS/High 03:02:08.414 [qipcall_sdp_precondition.c 2296]
qipcallsdp_is_local_pre_condition_met: local precondition not met for
index = 0
IMS/High 03:02:08.414 [ qipcallh.c 15277]
qipcallh_wait_for_qos_reservation_timer_handler local precondition not
met, ending the call
IMS/High 03:02:08.414 [ qipcallh.c 15290]
qipcallh_handle_local_precondition_not_met: sends SIP 580
IMS/High 03:02:08.415 [ qipcallh.c 8921]
qipcallh_chg_state_to_null: end_reason = 0, end_request_type = 1
IMS/High 03:02:08.415 [ qipcallh.c 8996]
qipcallh_chg_state_to_null: stopping media
MSG [00051/03] IMS/Error 00:22:17.885 /
local/mnt/workspa 03341 3341|EVENT_SIP_RESPONSE_SEND: SIP/2.0 580
Precondition Failure Call-ID: [email protected] Content
MsgType = Response
result = QMI_RESULT_SUCCESS
error = QMI_ERR_NONE
3. IMS performs VoLTE call cleanup and “end call” indication is propagated to QMI VOICE.
IMS/High 08:19:18.015 cmlog.c 2285 Sub-ID:2 =CM=
EVENT_CM_CALL_EVENT_END_2 - asubid 1
Data Services/Medium 08:19:18.016 ds_qmi_if.c 1653
Processing Call Event 0x3 from CM
08:19:18.016 [AC] 0x1544 QMI_MCS_QCSI_PKT
MsgType = Indication
voice_all_call_status {
voice_all_call_status_indTlvs[0] {
call_state = CALL_STATE_END
call_type = CALL_TYPE_VOICE_IP
2. QMI sends Hold Call request to the CM, CM sends the CM_CALL_SUPS_TYPE_HOLD_CALL
command to IMS to put call on hold.
Data Services/Medium 19:55:38.085 [ ds_qmi_if.c 2057] Call_event
4 received in qmi_if_call_event_cb
19:55:38.085 Call Manager/High [ cm.c 7071] =CM=
CM_CALL_CMD_SUPS client 17, sups_type 16, as_id 0
19:55:38.085 Call Manager/High [ cmdbg.c 3639] >>CM callcmd
3, tsk=qmi_mmode, client_type=17
3. Hold request callback posted to IMS from CM and IMS responds to CM with
CM_CALL_EVENT_SUPS.
19:55:38.085 IMS/High [ qipcallh.c 36119]
qipcallh_process_call_request: eCallCbType = 6
4. IMS sends invite with send-only attribute set to SIP. SIP forwards this invite to SIP server also
known as P-CSCF.
19:55:38.097 [0x156E] IMS SIP Message
a=sendonly
sups_type = VOIP_SUPS_TYPE_CALL_RESUME
}
10. IMS posts confirmation event to CM that call has been successfully retrieved
Call Manager/High 19:56:01.865 [ cmtask.c 10546] =CM= CM<< IP
cmd:609
Call Manager/High 19:56:01.865 [ cmipcall.c 3904] =CM= IP RXD:
SUPS_CONF, sups_type=17, num_part=0, participant=0x0 id=4, rpt asubs_id=0,
is_ims_cap_on_sub=1
cmd:604
Call Manager/High 00:03:19.845 [ cmipcall.c 2882] =CM= DS: SUB
1 IP RXD: CONNECTED, id=4, as_id=0
Call Manager/High 00:03:19.845 [ cmlog.c 2279] =CM=
EVENT_CM_CALL_EVENT_CONNECT_2 - asubid 0
2. IMS processes the call sending out a 180 Ringing message and indicates to CM that a call has
been received.
IMS/High 19:55:28.096 [ qipcallh.c 20271]
qipcallh_process_incoming_call : RAT type 10
5. UI holds the existing call first. See Call hold call flow and log analysis for details.
6. UI answers the waiting call. See Figure 4-11 for details.
7. The final state is one call, where the waiting call is active, while the original call is in held state.
19:55:38.676 [0x1544] MCS QCSI Payload Packet
QmiLength = 191
Service_VOICE {
voice_all_call_status {
num_of_instances = 2
call_id = 2
call_state = CALL_STATE_CONVERSATION
call_type = CALL_TYPE_VOICE_IP
direction = CALL_DIRECTION_MT
call_id = 1
call_state = CALL_STATE_HOLD
call_type = CALL_TYPE_VOICE_IP
direction = CALL_DIRECTION_MO
■ Precondition – UE1 has UE2 on hold and is in an active call with UE3.
a. When UE1 receives the request to start a conference, it puts the active call with UE3 on hold.
b. UE1 creates the conference via an INVITE message sent to the conference uniform resource
identifier (URI).
c. UE1 sends a REFER message to the conference server with the URI of the UE that is to be
added to the conference. In this case, it is UE2.
d. UE2 receives an INVITE message from the conference server and UE1 receives NOTIFY
indications for the 100 Trying and the 200 OK messages received on the conference server
from UE2.
e. UE1 ends the call with UE2 after receiving the Notify message that UE2 has accepted the call
with the conference server.
f. Repeat steps 3a through 5b of Figure 4-19 for adding UE3 into the conference call.
NOTE At the end of this setup process, each UE is in an independent point-to-point call with the
conference server that does the multiplexing of the media.
Precondition – VoIP call between UE1 and UE2 is on HOLD and there is an initiated VoIP call between
UE1 and UE3 in conversation.
00:03:19.845 [0x1544] MCS QCSI Payload Packet
Service_VOICE {
voice_all_call_status {
call_info {
call_id = 2
call_state = CALL_STATE_CONVERSATION
call_type = CALL_TYPE_VOICE_IP
call_id = 1
call_state = CALL_STATE_HOLD
call_type = CALL_TYPE_VOICE_IP
2. CM receives the request through QMI. CM informs IMS to put the call between UE1 and UE3 on
hold.
00:03:30.774 Call Manager/High [ cmipcall.c 4849] =CM= IP
CALLCMD: cmd=3, as_id=0, is_ims_cap_on_sub=1
00:03:30.774 Call Manager/High [ cmipapp.c 6247] =CM= CM->IMS:
CMIPAPP: Send cmd MPTY to app 1, as_id 0
00:03:30.774 IMS/High [ qipcallh.c 36118]
qipcallh_process_call_request: eCallCbType = 13
Once the SIP re-INVITE to put call with UE3 on hold succeeds, the
indication is sent to CM.
00:03:30.955 IMS/High [ qpDplCallCtrl.c 7599]
qpDplCallCtrlReportInd: eRptNameType = 606
00:03:30.955 Call Manager/High [ cmtask.c 10546] =CM= CM<< IP
cmd:606
00:03:30.955 Call Manager/High [ cmipcall.c 3544] =CM= IP RXD:
CALL_HOLD, id=4, as_id=0
5. IMS via the framework sends out the Invite message to connect to the conference server.
00:03:30.991 [0x156E] IMS SIP Message
Direction = UE_TO_NETWORK
Message ID = IMS_SIP_INVITE
00:03:31.499 [0x156E] IMS SIP Message
Direction = NETWORK_TO_UE
Response Code = OK (200)
6. The status of the conference call is indicated by CM to QMI to be sent to the UI.
00:03:31.503 IMS/High [ qipcall.c 1403]
qipcall_process_messages_from_qimfif: Rxed Connected - Incoming
Established
00:03:31.513 IMS/High [ qpDplCallCtrl.c 7609]
qpDplCallCtrlReportInd: calling cmipapp_rpt_ind
00:03:31.513 Call Manager/High [ cmipapp.c 3997] =CM= RPT name
617
call_state = CALL_STATE_HOLD
call_type = CALL_TYPE_VOICE_IP
call_id = 1
call_state = CALL_STATE_HOLD
call_type = CALL_TYPE_VOICE_IP
8. Once the call with conference server is established, the UE sends a Refer message to add UE2 to
the conference call.
00:03:31.684 [0x156E] IMS SIP Message
Message ID = IMS_SIP_REFER
r: <sip:[email protected];user=phone;method=INVITE?
Replaces=177060_2146267772%40fc01:bbbb:cdcd:efe0:6233:fd0:e986:1791%3Bto-
tag%3Dabc-InviteToTag1%3Bfrom-tag%3D177065>
Once UE1 terminates the call to UE2 via a BYE, a message sent via the SIP
stack.
00:03:33.044 [0x156E] IMS SIP Message
Message ID = IMS_SIP_BYE
t: <sip:[email protected];user=phone>;tag=abc-InviteToTag1
9. Call end status of UE1 to UE2 is indicated to QMI to be notified to the UI.
00:03:33.032 IMS/High [ qipcallh.c 8921]
qipcallh_chg_state_to_null: end_reason = 0, end_request_type = 2
10. The status of the UE1 to UE2 call is indicated to the UI via QMI.
00:03:33.066 [0x1544] MCS QCSI Payload Packet
Service_VOICE {
voice_all_call_status {
call_info {
call_id = 3
call_state = CALL_STATE_CONVERSATION
call_type = CALL_TYPE_VOICE_IP
call_id = 2
call_state = CALL_STATE_HOLD
call_type = CALL_TYPE_VOICE_IP
call_id = 1
call_state = CALL_STATE_END
call_type = CALL_TYPE_VOICE_IP
Replaces=199422_2146420908%40fc01:bbbb:cdcd:efe0:6233:fd0:e986:1791%3Bto-
tag%3Dabc-InviteToTag2%3Bfrom-tag%3D199434>
12. After UE3 is added to the conference, IMS sends a SIP BYE message to end the call with UE3.
00:03:34.170 [0x156E] IMS SIP Message
Message ID = IMS_SIP_BYE
t: <sip:[email protected];user=phone>;tag=abc-InviteToTag2
13. Call End status of UE1 to UE3 is indicated to QMI to be notified to the UI.
00:03:34.177 IMS/Medium [qipcall_indication.c 455]
qipcall_call_end_rpt_ind: call_id=4, state=1, cause=0, error code=-1, sip
error code=0
00:03:34.177 Call Manager/High [ cmipcall.c 3135] =CM= AS_ID 0,
IP RXD: CALL_END, end_cause=0, client_end_cause=-1, call_id=4,
call_state=3, is_lte_hard_failure=0
14. The status of the UE1 to UE3 call is indicated to the UI via QMI.
00:03:34.180 [0x1544] MCS QCSI Payload Packet
Service_VOICE {
voice_all_call_status {
call_info {
call_id = 3
call_state = CALL_STATE_CONVERSATION
call_type = CALL_TYPE_VOICE_IP
call_id = 2
call_state = CALL_STATE_END
call_type = CALL_TYPE_VOICE_IP
16. CM receives an indication of the conference call and sends to QMI to inform the UI.
00:03:34.179 Call Manager/High [ cmipcall.c 3904] =CM= IP RXD:
SUPS_CONF, sups_type=5, num_part=2, participant=0x7fedc9a0 id=5, rpt
asubs_id=0, is_ims_cap_on_sub=1
17. QMI indicates the result of the Manage Call to the UI.
00:03:34.180 [0x1544] MCS QCSI Payload Packet
voice_manage_ip_calls{
result = QMI_RESULT_SUCCESS
resp {
result = QMI_RESULT_SUCCESS
error = QMI_ERR_NONE
}
3. Digit is released.
02:36:00.517 [0x1544] MCS QCSI Payload Packet
MsgType = Request
Service_VOICE {
voice_stop_cont_dtmf {
IMS/High 02:36:00.517 [ qipcalldtmf.c 612] Stop DTMF event: 0x30,
duration = 200, call id = 6
IMS/High 02:36:00.517 [ qipcalldtmf.c 414]
qipcall_stop_dtmf_rpt_conf: Block call rpt ind 0. Call Id=6, State=14,
status =1
IMS/Medium 02:36:00.535 [ qipcalldtmf.c 886] -----> Sending dtmf
for digit = 48, duration = 220, end_bit = 1
IMS/Medium 02:36:00.555 [ qipcalldtmf.c 886] -----> Sending dtmf
for digit = 48, duration = 220, end_bit = 1
IMS/Medium 02:36:00.575 [ qipcalldtmf.c 886] -----> Sending dtmf
The UT interface in IMS is used for supplementary services like the following:
■ Storing call routing information on a network database (DB)
■ Call waiting
■ Originating identity presentation (OIP)
■ Originating identification restriction (OIR)
■ Terminating identity presentation (TIP)
■ Terminating identity restriction (TIR)
■ Incoming call barring (ICB)
■ Outgoing call barring (OCB)
■ Call forwarding unconditional (CFU)
Provisioning back-end (PBE) is the interface between the UT server and the DB.
PdpActivate state 1
MSG IMS DPL/High 15:08:55.613 /local/mnt/workspa 03837 3837|
qpDcmEstablishPDPConnection - APNName -->nxtgenphone
MSG IMS/High 15:08:55.623 PDPHandler.cpp 00195 CPDPHandler =====
PdpActivate PDPConnection established
NOTE The UE may not request UT PDN bring up if a PDN connection already exists with
the APN configured for UT.
MsgType = QMI_VOICE_GET_CALL_WAITING
2013 Mar 14 15:33:47.345 [00] 0x138F QMI Link 1 TX PDU
MsgType = QMI_VOICE_SUPS_IND
MSG IMS/Error 15:33:47.515 /local/mnt/workspa 00549 549|
HttpConnection::Send| HTTP message :GET /simservs.ngn.etsi.org/users/tel:
+15124210030/simservs.xm
Content-Langu
MSG IMS/High 16:02:16.110 QimfHttp.cpp 01064
HttpConnection::Process2xxMessage|Received 200 response.
.
2013 Mar 14 16:02:16.128 [00] 0x138F QMI Link 1 TX PDU
MsgType = QMI_VOICE_GET_CALL_FORWARDING
QmiResult = QMI_RESULT_SUCCESS
QmiError = QMI_ERROR_NONE
MsgType = QMI_VOICE_SUPS_IND
MSG IMS/Error 16:02:15.708 /local/mnt/workspa 00549 549|
HttpConnection::Send| HTTP message :GET /simservs.ngn.etsi.org/users/tel:
+15124210030/simservs.xm
1. User dials ##21# to deactivate CFU service and erase target number.
2013 Mar 14 16:15:58.900 [00] 0x138E QMI Link 1 RX PDU
SduCtlFlags = REQ
MsgType = QMI_VOICE_SET_SUPS_SERVICE
Supplementary Service Info {
Service = Erase
Reason = Fwd Conditional
}
}
2013 Mar 14 16:15:58.906 [00] 0x138F QMI Link 1 TX PDU
MsgType = QMI_VOICE_SUPS_IND
MSG IMS/Error 16:15:59.080 /local/mnt/workspa 00549 549|
HttpConnection::Send| HTTP message :PUT /simservs.ngn.etsi.org/users/tel:
+15124210030/simservs.xm
MSG IMS/Error 16:15:59.080 /local/mnt/workspa 00549
conditions><cp:actions><forward-to><target></target></forward-to></
cp:actions></cp:rule>
This chapter explains the handover between LTE to industrial wireless LAN (IWLAN) and vice versa. It
also covers the handover between the different states of the UE such as idle and connected.
Figure 6-1 IWLAN to LTE handover during idle state call flow
1. IMS registers with CNE for measurement reports.
20:01:21.603 qpDplHandOver.c 04695 qpDplWiFiMeasurementsSetParamEx:
Received START Command
20:01:21.603 qpDplHandOver.c 04628 DplHandOverSetCNEProfileForMetrics
- Profile Mask set by IMS --> 0x000000000000000f | DS mask -->
0x4f646e61486c704
2. CNE provides measurements when thresholds are reached that are cached in IMS.
The CNE event comes via DS Sys events.
20:01:31.604 qpDcm.c 11242 qpDplProcessCommonDSSysEvents:
CNE_PROFILE_MET Mask --> 0x0
HOAlgoFlavor represents the algorithm type that is in use.
1 – VzW
0 – Other
NOTE There are other places where IMS checks for the possibility of a handover, but those
other places are operator-specific and are outside the scope of this document.
□ A RAT change triggers IMS to check if a handover is required
□ If SRAT 0 => source RAT, it indicates that there is no RAT, that is, LTE signal is lost
20:03:04.463 qipcalliface_ho_mgr.c 03172
qipcalliface_is_wwan_iwlan_measurement_params_changed: HO params changed
SRAT 0, TRAT 6, PrefRAT = 10
20:03:04.464 qpDplHandOver.c 03641 IsHandOverPossible: current srat =
0 trat= 6 prefrat = 10
IMS determines if handover is possible and the preferred system to handover to, based on the
metrics.
□ If HO possible = 1, then handover is possible
□ pref system 2 => preferred system is iWLAN
20:03:04.465 qipcalliface_ho_mgr.c 02271
qipcalliface_is_wwan_iwlan_handover_required: current system = 1, HO
possible = 1, pref system 2
7. IMS initiates REGISTRATION with the PANI header set to Wi-Fi access.
20:03:07.741 sipConnection.cpp 03067 EVENT_SIP_REG_REQ_SENT: 43 Code =
0 RAT = 6
20:03:07.742 sipConnection.cpp 03823 EVENT_SIP_REQUEST_SEND: REGISTER
sip:test.3gpp.com SIP/2.0
f: <sip:[email protected]>;tag=41
P-Access-Network-Info: IEEE-802.11; i-wlan-node-id=000102030405 <= PANI
header from PCAP
20:03:07.855 qimfsiplib.cpp 04727 EVENT_SIP_MESSAGE_RECV:SIP/2.0 200
OK
Call-ID: 4150057853_1511000824@fc01:bbbb:cdcd:efe0:d867:adb
2. CNE provides measurements when thresholds are reached that are cached in IMS.
The CNE event comes via DS Sys events.
20:01:31.604 qpDcm.c 11242 qpDplProcessCommonDSSysEvents:
CNE_PROFILE_MET Mask --> 0x0
qipcalliface_perform_handover_management :
HO conditions changed. Initiate HO to sys 2
8. Handover to LTE takes place upon loss of Wi-Fi or poor Wi-Fi conditions.
□ Handover determination in this case is triggered by a RAT change.
□ SRAT 0 => source RAT indicates no RAT, which means Wi-Fi is lost
20:02:42.485 qipcalliface_ho_mgr.c 03171
qipcalliface_is_wwan_iwlan_measurement_params_changed: HO params
changed SRAT 0, TRAT 10, PrefRAT = 10
20:02:42.485 qipcalliface_ho_mgr.c 03416
qipcalliface_process_handover_measurement_cb: SRAT = 0, TRAT = 10,
pHOStatus->bIsHOPossible 1 ===>
20:02:42.486 qipcalliface_ho_mgr.c 02270
qipcalliface_is_wwan_iwlan_handover_required: current system = 3, HO
possible = 1, pref system 0
20:02:42.486 qipcalliface_ho_mgr.c 00373
qipcalliface_set_APN_pref_sys:
Handover requested to preffered sys 0
20:02:42.486 qipcalliface_ho_mgr.c 00919
qipcalliface_perform_handover_management : HO conditions
changed. Initiate HO to sys 0
□ RTP handover is initiated to RAT 10, which is LTE.
20:02:24.981 [IMS_AP] qvp_rtp_app_cmd.c 12363 | 1408 |
qvp_rtp_set_handoff_status_cmd rat_type = 10 HO_status: 1
20:02:24.981 [IMS_AP] qvp_rtp_app_cmd.c 12368 | 1408 |QVP_RTP_HO_INIT
in app cmd sending 1
20:02:24.981 [IMS_AP] qpDplVideo.c 03940 | 1408 |DPL
qpRTPVideoHandoverStatusInfo : 1
20:02:24.981 [IMS_AP] qpDplVideo.c 03945 | 1408 |DPL QVP_RTP_HO_INIT
□ RTP handover is successful
20:02:26.726 [IMS_AP] qpDplVideo.c 03940 | 1408 |DPL
qpRTPVideoHandoverStatusInfo : 2
20:02:26.727 [IMS_AP] qpDplVideo.c 03964 | 1408 |DPL
qpRTPVideoHandoverStatusInfo sent to qvpRTPIPCMessageToApp- SUCCESS
10. IMS initiates REGISTRATION with the PANI header set to LTE access.
20:02:44.432 sipConnection.cpp 03063 EVENT_SIP_REG_REQ_SENT: 43 Code =
0 RAT = 10
20:02:44.433 sipConnection.cpp 03823 EVENT_SIP_REQUEST_SEND: REGISTER
sip:test.3gpp.com SIP/2.0
f: <sip:[email protected]>;tag=16
P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-
id-3gpp=311480000B0038000 <= PANI from PCAP
20:02:44.541 qimfsiplib.cpp 04736 EVENT_SIP_MESSAGE_RECV:SIP/2.0 200
OK
Call-ID: 1644419514_2865829720@fc01:bbbb:cdcd:efe0:7ce8:750
E911 calls are emergency calls which override all other call scenarios. The following call flows and log
analysis can be used to debug various E911 call scenarios.
After IMS registration on Wi-Fi, IMS registers internally with CM for E911 calls over Wi-Fi
■ Exception:
□ If NV 73717 = 1, then E911 over Wi-Fi is disabled
■ The QXDM Pro F3 message:
IMS/High 02:46:54.653 qipcalliface.c 05426
qipcalliface_update_run_status_to_cm() :: eRUN_STATUS_ACTIVE:
emerg_wifi_call_disable is 1
CM routing decision to CS domain or IMS domain is outside the scope of this document. Henceforth,
this document assumes that all E911 calls are routed over IMS.
pdn_connectivity_req
pdn_type = 3 (0x3) (Ipv4v6)
req_type = 4 (0x4) (emergency)
2000 Jan 8 21:33:37.092 [00] 0xB0E2 LTE NAS ESM Plain OTA Incoming
Message -- Activate default EPS bearer context request Msg
2000 Jan 8 21:33:37.095 [00] 0xB0E3 LTE NAS ESM Plain OTA Outgoing
Message -- Activate default EPS bearer context accept Msg
7.3.1 Log messages during an E911 call originated with initial attach
The log messages during an E911 call originated with initial attach are as follows:
0x1391 QMI Link 2 TX PDU
MsgType = QMI_VOICE_ALL_CALL_STATUS_IND
MsgLength = 27
Service_Voc_V2 {
…
CallId = 1
CallState = ORIGINATION
CallType = EMERGENCY //E911 Call
Direction = MO: Mobile Originated Call
Mode = LTE
//Attach Request with Initial Attach
2013 Nov 19 19:43:32.911 [00] 0xB0ED LTE NAS EMM Plain OTA Outgoing
Message -- Attach request Msg
lte_emm_msg
emm_attach_request
att_type = 2 (0x2) (combined EPS/IMSI attach) //Initial Attach
id_type = 6 (0x6) (GUTI)
//RRC Connection
0xB0C0 LTE RRC OTA Packet -- UL_CCCH
value UL-CCCH-Message ::=
{
message c1 : rrcConnectionRequest :
{
establishmentCause emergency,
}
}
7.3.2 Log messages during an E911 call originated with emergency attach
The log messages during an E911 call originated with emergency attach are as follows:
//PDN Connectivity Request with Request Type = Emergency
0xB0E3 LTE NAS ESM Plain OTA Outgoing Message -- PDN connectivity request
Msg
msg_type = 208 (0xd0) (PDN connectivity request)
lte_esm_msg
pdn_type = 3 (0x3) (Ipv4v6)
req_type = 4 (0x4) (emergency)
access_pt_name_incl = 0 (0x0)
….
sm_container[0]
container_id = 13 (0xd) (DNS Server IPv4 Address Request)
sm_container[1]
container_id = 3 (0x3) (DNS Server IPv6 Address Request)
sm_container[2]
container_id = 1 (0x1) (P-CSCF IPv6 Address Request)
sm_container[3]
container_id = 12 (0xc) (P-CSCF IPv4 Address Request)
//E911 Call Origin, SIP Message flow – Emergency Call Origin procedure
sipConnection.cpp 03510 3510|EVENT_SIP_REQUEST_SEND: INVITE urn:service:sos
SIP/2.0f: "10138" <sip:[email protected]
qpSipSessionServic 01174 1174|EVENT_SIP_SESSION_START: INVITE
1. IMS registered on LTE, VoLTE call is in progress, and moves to eHRPD coverage
a. Power up the UE and activate Airplane mode.
b. Dial E911 call.
c. Call is initiated and RRC Connection is established with cause set to Emergency .
d. NAS sends Attach Request message with EPS type set to Initial.
e. NAS sends PDN Connectivity message with PDN Type set to IPv4v6, PCO for DNS and P-
CSCF, APN name not present, and ESM Information Transfer Flag set to 1.
f. UE sends the ESM Information Response with APN Name as IMS APN.
g. NAS sends Attach Accept message and IMS default bearer is established between the
network and the UE.
h. UE sends Attach Complete message.
i. NAS Attach procedure is completed.
j. UE sends PDN Connectivity message with PDN type set to IPv4v6, request type as
Emergency, PCO for DNS and P-CSCF, APN name not present.
k. Network establishes default and dedicated EPS bearers with RRC Reconfiguration Request
message.
l. UE responds with RRC Reconfiguration Complete message.
m. UE performs Emergency Registration with Emergency PDN.
n. Verify that UE sends SIP register with reg-type:sos
o. Network sends 401 challenge to the UE.
p. UE sends Register Response message to the P-CSCF.
q. P-CSCF sends 200 OK message to the UE.
r. IMS registered successfully with IMS CN.
2. IMS registered on LTE, E911 call is in progress, and moves to eHRPD coverage.
a. Verify that the UE sends an SIP INVITE urn:service:sos (SDP offer) message to the P-CSCF.
b. Verify SIP header contents.
c. P-CSCF sends180 Ringing message to the UE.
d. UE responds with PRACK (180) message to the P-CSCF.
e. P-CSCF sends 200 OK (PRACK) message to the UE.
f. P-CSCF responds with 200 OK (SDP Answer) message to the UE for the Invite.
g. E911 call is now connected.
h. User terminates the E911 call.
i. UE sends BYE message to the P-CSCF.
j. P-CSCF responds with a 200 OK message to the UE.
k. Emergency PDN is disconnected after the emergency registration timer expires.
lte_esm_msg
pdn_type = 3 (0x3) (Ipv4v6)
req_type = 4 (0x4) (emergency)
access_pt_name_incl = 0 (0x0)
….
sm_container[0]
container_id = 13 (0xd) (DNS Server IPv4 Address Requestt)
sm_container[1]
container_id = 3 (0x3) (DNS Server IPv6 Address Request)
sm_container[2]
container_id = 1 (0x1) (P-CSCF IPv6 Address Request)
sm_container[3]
container_id = 12 (0xc) (P-CSCF IPv4 Address Request)
//RRC Re-Configuration Request and Complete
0xB0C0 LTE RRC OTA Packet -- DL_DCCH
value DL-DCCH-Message ::=
{
message c1 : rrcConnectionReconfiguration :
0xB0C0 LTE RRC OTA Packet -- UL_DCCH
value UL-DCCH-Message ::=
{
message c1 : rrcConnectionReconfigurationComplete :
…
}
//Activate Default
0xB0E2 LTE NAS ESM Plain OTA Incoming Message -- Activate default EPS
bearer context request Msg
eps_bearer_id_or_skip_id = 7 (0x7)
msg_type = 193 (0xc1) (Activate default EPS bearer context request)
access_point
num_acc_pt_val = 28 (0x1c)
acc_pt_name_val[0] = 9 (0x9) (length)
acc_pt_name_val[1] = 101 (0x65) (e)
acc_pt_name_val[2] = 109 (0x6d) (m)
acc_pt_name_val[3] = 101 (0x65) (e)
acc_pt_name_val[4] = 114 (0x72) (r)
acc_pt_name_val[5] = 103 (0x67) (g)
acc_pt_name_val[6] = 101 (0x65) (e)
acc_pt_name_val[7] = 110 (0x6e) (n)
acc_pt_name_val[8] = 99 (0x63) (c)
acc_pt_name_val[9] = 121 (0x79) (y)
//Activate Dedicated bearer
0xB0E2 LTE NAS ESM Plain OTA Incoming Message -- Activate dedicated EPS
bearer context request Msg
eps_bearer_id_or_skip_id = 11 (0xb)
msg_type = 197 (0xc5) (Activate dedicated EPS bearer context request)
lte_esm_msg
act_dedicated_eps_bearer_context_req
eps_bearer_id = 7 (0x7) (EPS bearer identity value 7)
■ E911 call up
//Emergency Call Origin
0x1391 QMI Link 2 TX PDU
…
QmiType = VOICE
ClientId = 1
SduCtlFlags = IND
TxId = 0
MsgType = QMI_VOICE_ALL_CALL_STATUS_IND
….
CallId = 1
CallState = ORIGINATION
CallType = EMERGENCY
Direction = MO: Mobile Originated Call
…
}
//SIP Message flow – Emergency Call Origin
sipConnection.cpp 03510 3510|EVENT_SIP_REQUEST_SEND: INVITE
urn:service:sos SIP/2.0f: "10138" <sip:[email protected]
qpSipSessionServic 01174 1174|EVENT_SIP_SESSION_START: INVITE
urn:service:sos SIP/2.0f: "10138" <sip:[email protected]
qimfsiplib.cpp 04528 4528|EVENT_SIP_MESSAGE_RECV:SIP/2.0 100 TryingVia:
SIP/2.0/UDP [fd00:0:0:2::1]:5060;branch=z9hG4
sipConnection.cpp 03510 3510|EVENT_SIP_REQUEST_SEND: PRACK
sip:service:sos@[fd00:0:20:1::1:5]:5060 SIP/2.0To: <urn:service:s
qimfsiplib.cpp 04528 4528|EVENT_SIP_MESSAGE_RECV:SIP/2.0 200 OK Record-
Route: <sip:[fd00:0:20:1::1:5]:5060;lr>Via: S
qimfsiplib.cpp 04528 4528|EVENT_SIP_MESSAGE_RECV:SIP/2.0 200 OKRecord-
Route: <sip:[fd00:0:20:1::1:5]:5060;lr>Via: S
qpSipSessionServic 03439 3439|EVENT_SIP_SESSION_ESTABLISHED:CallId:
3773525069_1162039504@fd00:0:0:2::1
f. UE reattempts the E911 call by sending an RRC Connection Request with establishment
cause set to Emergency.
g. NAS sends ATTACH REQUEST with EPS Type set to Emergency.
g. Verify the UE sends a SIP INVITE urn:service:sos (SDP offer) message to the P-CSCF
– Verify SIP header contents
h. P-CSCF sends180 Ringing message to the UE.
i. UE responds with PRACK (180) message to the P-CSCF.
j. P-CSCF sends 200 OK (PRACK) message to the UE.
k. P-CSCF responds with 200 OK (SDP Answer) message to the UE for the INVITE.
l. E911 call is now connected.
m. User terminates the E911 call.
n. UE will send BYE message to the P-CSCF.
o. P-CSCF will respond with a 200 OK message to the UE.
p. Emergency PDN is disconnected after the Emergency Registration timer expires.
The log messages when E911 IMS registration is rejected are as follows:
3. E911 call up
a. Verify that the UE sends a SIP INVITE urn:service:sos (SDP Offer) message to the P-CSCF.
– Verify SIP header contents.
b. P-CSCF sends 180 ringing message to the UE.
c. UE responds with PRACK (180) message to the P-CSCF.
d. P-CSCF sends 200 OK (PRACK) message to the UE.
e. P-CSCF responds with 200 OK (SDP answer) message to the UE for the Invite.
f. E911 call is now connected.
g. User terminates the E911 call.
h. UE sends BYE message to the P-CSCF.
i. P-CSCF responds with a 200 OK message to the UE.
j. Emergency PDN is disconnected after the Emergency Registration timer expires.
The log messages when an emergency call is made without a SIM card is as follows:
0xB0E3 LTE NAS ESM Plain OTA Outgoing Message -- PDN connectivity
request Msg
msg_type = 208 (0xd0) (PDN connectivity request)
lte_esm_msg
pdn_type = 3 (0x3) (Ipv4v6)
req_type = 4 (0x4) (emergency)
access_pt_name_incl = 0 (0x0)
….
sm_container[0]
container_id = 13 (0xd) (DNS Server IPv4 Address Request)
sm_container[1]
container_id = 3 (0x3) (DNS Server IPv6 Address Request)
sm_container[2]
container_id = 1 (0x1) (P-CSCF IPv6 Address Request)
sm_container[3]
container_id = 12 (0xc) (P-CSCF IPv4 Address Request)
//RRC Re-Configuration Procedure and bearer activation procedure is same
as Call Flow 2
■ The emergency service category is specified through QMI VOICE through TLV “emer_cat”
■ If the emergency service category is not specified through QMI VOICE, then the CM looks up the
emergency service category from the phone book manager (PBM)
■ Sample Log analysis: The emergency service category is specified in QMI VOICE as
“ambulance”.
1980 Jan 17 19:34:11.677 [06] 0x138E QMI Link 1 RX PDU
MsgType = QMI_VOICE_DIAL_CALL_MSG
call_type = EMERGENCY
emer_cat = AMBULANCE_BIT
service_type = VOICE_DIAL_CALL_SRV_TYPE_AUTOMATIC
19:34:11.687 cm.c 02964 =CM= Emerg serv categ given = 1
■ Sample log analysis: The emergency service category is not specified in QMI VOICE; CM queries
PBM for this information.
1980 Jan 17 13:24:45.177 [06] 0x138E QMI Link 1 RX PDU
MsgType = QMI_VOICE_DIAL_CALL_MSG
call_type = EMERGENCY
service_type = VOICE_DIAL_CALL_SRV_TYPE_AUTOMATIC
13:24:45.186 cm.c 02964 =CM= Emerg serv categ given = 0
03:56:35.348 pbmlib.c 04706 Emergency number status 1 gw cat 15 1X cat 0
15 decimal = 0x0F = 0000 1111 service category bits
Multiple service category bits are set in this example in which “police” is selected.
NOTE Silent redial for the emergency call is performed over the IMS domain if LTE emergency
support is available and there is no emergency access barring.
Non-compliant network behavior with UE work around NV 67257 [VoIPConfigQoS] = 1 and the contact
header in 380 does not match to one of the supported emergency service categories.
Result: Emergency call silent redial on IMS domain or CS domain
2016 Jun 6 19:33:07.891 [8D] 0x156E IMS SIP Message --
IMS_SIP_REGISTER/OK
Message ID = IMS_SIP_REGISTER
Response Code = OK (200)
Path: <sip:[fd29:cc43:7fb9:0002:020c:29ff:fe66:b4c7];lr>
2016 Jun 6 19:33:07.989 [52] 0x156E IMS SIP Message -- IMS_SIP_INVITE/
ALTERNATIVE_SERVICE
P-Asserted-Identity: <sip:[fd29:cc43:7fb9:2:20c:29ff:fe66:b4c7];lr>
NOTE In this example, the contact header is not present in the 380 Alternative Service, this is
handled as a normal CS call.
7.8.3 Log messages during the switchover between IMS domain and CS domain
Whether emergency service is supported over IMS or CS is identified by the EMC_BS flag value
received in Attach Accept. The log is as follows:
2016 Jan 1 19:19:12.451 [4C] 0xB0EC LTE NAS EMM Plain OTA Incoming
Message -- Attach accept Msg
EMC_BS = 1 (0x1) (Emergency bearer services in S1 Mode supported)
1. WFC and VoWi-Fi must be enabled for E911 calls to be routed over Wi-Fi.
qipcalliface_ho_mgr.c 02533 qipcalliface_update_E911_capability WFC
status 1 and Wifi srv status =17
ims_settings_common.c 04304 ims_settings_get_ims_config: Enable VoWifi =1
a. IMS informs CM that VOICE is available on iWLAN for both regular and emergency calls.
qipcalliface.c 05426 qipcalliface_update_run_status_to_cm() ::
eRUN_STATUS_ACTIVE:
emerg_wifi_call_disable is 0
qipcalliface.c 05432 qipcalliface_update_run_status_to_cm
QIPCALL_IFACE_EPC is up, indicating CM about Active status
2. The P-Emergency Call Mode Preference header has the emergency call mode preference
(ECMP) indication that takes the following values:
□ 3GPP-CS
□ 3GPP-IMS
3. When the ECMP header is missing in 200 OK (REGISTER), the UE places the E911 call over the
CS domain by default.
\\ since ECMP is "3GPP" by default when ECMP is missing from 200 OK
( REGISTER )
\\ CM places the E911 call on CS domain
\\ ECMP 0 → CMIAPP_ECMP_3GPP
\\ ECMP 1→ CMIAPP_ECMP_IMS
3. E911 call up
a. Verify that the UE sends an SIP INVITE urn:service:sos (SDP Offer) message to the P-CSCF
b. Verify SIP header contents
c. P-CSCF sends180 ringing message to the UE
d. UE responds with PRACK (180) message to the P-CSCF
e. P-CSCF sends 200 OK (PRACK) message to the UE
f. P-CSCF responds with 200 OK (SDP answer) message to the UE for the Invite
g. E911 call is now connected
h. User terminates the E911 call
i. UE sends Bye message to the P-CSCF
j. P-CSCF responds with a 200 OK message to the UE
k. Emergency PDN is disconnected after the emergency registration timer expires
The log messages for an E911 call in ECBM Mode are as follows:
2. The E911 call timer expires 20 seconds after the E911 call is originated, and Cancel message is
sent
IMS/High 22:03:12.527 qipcallh.c 03612 emergency call timer expired
(St:11) release call id 3
IMS SIP/High 22:03:12.541 sipConnection.cpp 03792 EVENT_SIP_REQUEST_SEND:
CANCEL urn:service:sos SIP/2.0
3. Since the E911 call failed over IMS, the UE performs silent redial for E911 over CS domain
2016 Mar 2 22:03:13.376 [67] 0xB0ED LTE NAS EMM Plain OTA Outgoing Message
-- Extended service request Msg
service_type = 2 (0x2) (mobile originating CS fallback emergency call)
NOTE The unit for NV 67348 [E911_Call_Timer] is measured in milliseconds. In the above
example, NV 67348 [E911_Call_Timer] = 20000 ms.
T3402 EMM- At attach failure and the ATTACH REQUEST Initiation of the attach
DEREGISTERED attempt counter is equal to sent procedure or TAU
5 procedure
EMM- At tracking area updating TRACKING AREA
REGISTERED failure and the attempt UPDATE REQUEST
counter is equal to 5 sent
T3410 EMM- ATTACH REQUEST sent ATTACH ACCEPT Start T3411 or T3402
REGISTERED- received as described in
INITIATED subclause 5.5.1.2.6
ATTACH REJECT
received
T3411 EMM- At attach failure due to ATTACH REQUEST Retransmission of the
DEREGISTERED; lower layer failure, T3410 sent ATTACH REQUEST
ATTEMPTING-TO- timeout or attach rejected or TRACKING AREA
ATTACH with other EMM cause UPDATE REQUEST
values than those treated
in subclause 5.5.1.2.5
EMM- At tracking area updating TRACKING AREA
REGISTERED; failure due to lower layer UPDATE REQUEST
failure, T3430 timeout or sent
ATTEMPTING-TO-
TAU rejected with other
UPDATE
EMM cause values than
those treated in subclause
5.5.3.2.5
T3412 EMM- In EMM-REGISTERED, When entering state Initiation of the
REGISTERED when EMM-CONNECTED periodic TAU
EMM-
mode is left procedure if the UE is
DEREGISTERED or
not attached for
when entering
emergency bearer
EMM-CONNECTED services
mode
EMM-SERVICE- — —
REQUEST-
INITIATED
EMM- — —
REGISTERED
T3442 EMM- SERVICE REJECT TRACKING AREA None
REGISTERED received with EMM cause UPDATE REQUEST
#39 "CS domain sent
temporarily not available"
4. Under 1x/HDR Security tab, click Add Entry under Special Numbers section.
5. On Add Entry dialogue box, add 922 against the Number field, select E911, and then click OK.
The Add Entry dialog box closes.
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
CMCC + CMCC L/T/G (IMS/CSFB/ L/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) VoWiFi)
CMCC + CU L/T/G (IMS/CSFB/ L/W/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) VoWiFi)
CMCC + CT (IMS off) L/T/G (IMS/CSFB/ 1X (CS voice) L/W/G (CSFB) L/W/G (CSFB)
VoWiFi)
CMCC + CT (IMS on) L/T/G (IMS/CSFB/ LTE (IMS/VoWiFi)/1x L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) CS voice *
CT (IMS off) + CMCC SRLTE (CS voice) L/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi)
CT (IMS on) + CMCC hVoLTE (IMS/ L/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi/1X CS voice) VoWiFi)
CT (IMS off) + CU SRLTE (CS voice) L/W/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi)
CT (IMS on) + CU hVoLTE (IMS/ L/W/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi/1X CS voice) VoWiFi)
CT (IMS off) +CT(IMS off) SRLTE (CS voice) N/A (Power Save) L/W/G (CSFB) L/W/G (CSFB)
CT (IMS off) +CT(IMS on) SRLTE (CS voice) LTE only (IMS/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi)
CT (IMS on) +CT(IMS off) hVoLTE (IMS/ N/A (Power Save) L/W/G (CSFB) L/W/G (CSFB)
VoWiFi/1X CS voice)
CT (IMS on) +CT(IMS on) hVoLTE (IMS/ LTE only (IMS/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi/1X CS voice) VoWiFi)
CU + CMCC L/W/G (IMS/CSFB/ L/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) VoWiFi)
CU + CT (IMS off) L/W/G (IMS/CSFB/ 1X (CS voice) L/W/G (CSFB) L/W/G (CSFB)
VoWiFi)
CU + CT (IMS on) L/W/G (IMS/CSFB/ LTE (IMS/VoWiFi)/1X L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) CS voice
CU + CU L/W/G (IMS/CSFB/ L/W/G (IMS/CSFB/ L/W/G (CSFB) L/W/G (CSFB)
VoWiFi) VoWiFi)
g. Enter SSL: Master Secret and the following are displayed with the Master Key shown on
three lines:
92 cf 00 c0 0f e6 2a 26 04 36 97 71 0b c7 99 a3
0a f9 c9 28 a1 5c ba 82 88 1d f8 b7 83 66 ab 8e
44 98 2d e6 31 db 7c 67 07 6b f0 10 ea f5 a5 8e
3. Create a .txt file with the session ID and the master key as follows
RSA Session-ID:<Session ID Value><space>Master-Key:<Master Key value>
<newline>
<newline>
NOTE Two <newline> entries are required or Wireshark does not decode the TLS packets.
The following is an example .txt file using the values from Steps 1 and 2:
RSA Session-
ID:7615f6d8449b185379a1f75f324e85cd1d2e64caeb9d77afddbe146c998dece7 Master-
Key:92cf00c00fe62a26043697710bc799a30af9c928a15cba82881df8b78366ab8e44982de
631db7c67076bf010eaf5a58e
The following is an example of the Wireshark window after TLS packets are decoded.
The following is an example of three TLS sessions after performing the instructions three times:
Create a single .txt file including the session IDs for each TLS session. Two <newlines> are present at
the end of this .txt file.
Title Number