ims_volte_sip
TRANSCRIPT
IMS- VOLTE- SIP - Kiran Koona
Topics
• IMS• VOLTE• SIP• Log Verification
Acronyms IMS:- IP Multimedia Subsystem SIP:-Session Initiation Protocol SDP:- Session Description Protocol CSCF:- Call Session Control Function HSS:- Home Subscriber Server AS:- Application Server VOLTE:- Voice Over LTE P-CSCF:- Proxy CSCF I-CSCF:- Interrogating CSCF S-CSCF:- Serving CSCF AKA:- Authentication and Key Agreement AM:- Acknowledged Mode UM:- Unacknowledged Mode TM:- Transparent Mode EMM:- EPS Mobility Management ESM:- EPS Session Management EPC:- Evolved Packet Core IMPU:- IP Multimedia Public Identity PCRF:- Policy and Charging Rules Function PRACK:- Provisional Response ACK RoHC:- Robust Header Compression URI:- Uniform Resource Identifier
IMS IMS:- IP Multimedia Subsystem Def:- it is a framework for delivering Multimedia services over an IP network Services VOLTE Video Telephony Presence Chat Push Messages Messaging Video Sharing Supplementary Services Emergency Calling
IMS is RAT agnostic IMS is all about convergence of multiple networks All IP Architecture
IMS Services Converging different services RAT Agnostic
LTE Architecture (EPS) EPS
VOLTE VOLTE is a specific IMS profile Voice over LTE VOLTE Specification is IR.92, “IMS Profile for Voice and SMS” Scope of IR-92:- IMS related:- Registration, Call establishment, Release, SS Media:- Codecs (AMR), RTP and RTCP RAN and EPC features:- ROHC, LTE radio bearers, DRX Common Functionalities:- IP version, Emergency calls, Roaming
Pre requisite for VOLTE UE obtains an IP through IP CAN session from PDN gateway UE tries to connect to P-CSCF using pre configured IP/Dynamic/ISIM
VOLTE Architecture
VOLTE VOLTE requires end to end QOS GBR:- Guaranteed bit rate Min and Max bearer bit rates ARP:- Allocation and Retention priority Priority in bearer establishment QCI:- QOS Class ID Preconfigured QOS Parameteres
VOLTE demands for Guaranteed Bit rate (12.2 Kbps) VOLTE needs QCI=1 for voice and QCI=5 for Signaling VOLTE voice traffic used RLC UM mode, signaling uses AM
VOLTE- QoS VOLTE requires end to end QOS GBR:- Guaranteed bit rate Min and Max bearer bit rates ARP:- Allocation and Retention priority Priority in bearer establishment QCI:- QOS Class ID Preconfigured QOS Parameteres
VOLTE demands for Guaranteed Bit rate VOLTE needs QCI=1 for voice and QCI=5 for Signaling VOLTE voice traffic used RLC UM mode, signaling uses AM
Bearer Mapping
VOLTE SS Supplementary Services support Call forward Unconditional Busy No reply Not reachable
Identification CLIR, CLIP
Barring All incoming All outgoing Outgoing international calls Incoming calls-When Roaming
Call Hold Call waiting Conference
VOLTE Call flow UE sends SIP register req to P-CSCF P-CSCF finds I-CSCF, Pre configured I-CSCF queries HSS to find S-CSCF S-CSCF initiates Auth challenge
VOLTE Callflow UE responds to Auth challenge SCSCF sends IMS reg’n ACK
VOLTE Identifiers IMPU: IMS Public Identity Used for communicating with other users IMPI: IMS Private Identity Used as a username during authentication, registration and deregistration SIP URI: SIP Uniform Resource ID SIP Phone number
VOLTE SS Ut Interface, XML over HTTP (XCAP) AS controls the setup and management of SS Data stored on the AS in the XML format UE acts as an XCAP client able to read, write Modify application data stored on AS
Diameter Double of Radius
VOLTE Protocol stack AM -> Acknowledge Mode
SIPSIP:- Session Initiation Protocol Used to create Modify and terminate a multimedia session SDP:- Session Description Protocol Carries the information
RFC 3261RFC 2543
SIP RequestsINVITE -> Invite for SIP callCANCEL -> Cancel the pending requestACK -> acknowledge the responseMODIFY -> Modify the properties of the previous request UPDATE -> Update the previous session properties with out mofNOTIFY -> Status change updatesREGISTER -> Register to SIP ServerMESSAGE -> MessagingBYE -> Disconnection RequestPRACK -> response to 1XX responses
SIP Response TypesGenerated by SIP server or UAC1XX:- Provisional -> working on the request2XX:- Success -> accepted3XX:- Redirection -> retry at other Server with the guidance given by this server4XX:- Client Error -> Syntax error5XX:- Server Error -> This server failed to server an apparently valid request6XX:- Global Error -> Can’t be severed at any Server
1XX responses are not acked except using PRACK for 180-Ringing1XX responses are used to minimize the retransmissions of INVITE
SIP Response Examples100 -> Trying, trying to connect the call180 -> Ringing, alerting is taking place181 -> Call is being forwarded182 -> Call queued183 -> Session in progress
200 OK -> Accepting the INVITE, will contain the media properties of the UAS response to OPTIONS will indicate the capabilities of the server 202 Accepted -> Server received the request, understood and working on it
400 -> Bad request, Syntax error401 -> Unauthorized, Authentication is needed402 -> Payment required486 -> busy here487 -> request terminated,
SIP Call Flow (Eg)
SIP Message (Eg)
INVITE
Logs Registration:- D/RILJ ( 986): [0139]> RIL_REQUEST_IMS_REGISTRATION_STATED/RILC ( 262): RIL onRequestComplete: Command channel closedD/RILJ ( 986): [0139]< RIL_REQUEST_IMS_REGISTRATION_STATE {1, 2}D/RIL_ImsSms( 986): IMS is registered!
MO SMS
D/RIL_ImsSms( 986): sendTextD/CDMA ( 986): sendSms: isIms()=true mRetryCount=0 mImsRetry=0 mMessageRef=0 SS=0D/RILJ ( 986): [0266]> RIL_REQUEST_IMS_SEND_SMSD/RILC ( 262): dispatchImsSmsD/RILC ( 262): dispatchImsCdmaSms: retry=0, messageRef=0D/RILC ( 262): RIL onRequestComplete: Command channel closedD/RILJ ( 986): [0266]< RIL_REQUEST_IMS_SEND_SMS { messageRef = 6, errorCode = -1, ackPdu = null}
MT SMSWill collect the Logs and update
Logs MO Call
05-24 15:46:47.226 1108 1108 D IMSCallTracker: dialphone is Handler (com.qualcomm.ims.ImsPhone) {41ed15f8}call details 3 2 05-24 15:46:47.856 1108 1108 D IMSCallTracker: [ dc ] number:22222 index: 1 incoming: false state: DIALINGcallDetails 3 2 05-24 15:46:47.856 1108 1108 D IMSCallTracker: [ImsCallTracker] poll: conn[i=0]=null, dc=id=1,DIALING,toa=129,norm,mo,0,nonvoc,noevp,,cli=1,,0Call Details = 3 2
MT Call
D/RILJ ( 986): [UNSL]< UNSOL_RESPONSE_CALL_STATE_CHANGEDD/RILJ ( 986): [0275]> GET_CURRENT_CALLSD/RILJ ( 986): [0275]< GET_CURRENT_CALLS [id=1,INCOMING,toa=129,norm,mt,0,voc,noevp,,cli=1,,0] D/RILJ ( 986): [0277]> ANSWERD/RILJ ( 986): [0277]< ANSWERD/RILJ ( 986): [0278]> GET_CURRENT_CALLSD/RILJ ( 986): [0279]< GET_CURRENT_CALLS [id=1,ACTIVE,toa=129,norm,mt,0,voc,noevp,,cli=1,,0] D/RILJ ( 986): [0280]> HANGUP_FOREGROUND_RESUME_BACKGROUNDD/RILJ ( 986): [0280]< HANGUP_FOREGROUND_RESUME_BACKGROUND
UE configuration for VOLTE Set the NV items as per go/atel http://
qwiki.qualcomm.com/qct-mst-ims/E2E_IMS_Setup/VoLTE_Device_Config/8960WTR_Lab_testing
adb shell setprop persist.radio.calls.on.ims true adb shell setprop persist.radio.vrte_logic 1 adb shell setprop persist.radio.jbims 1
Add an IMS account by following the instructions below. Click on phone icon and then press the menu button on the phone. Select the setting menu and then scroll to the bottom of the screen to find the IMS Account menu. Set the type of call (voice). Set the check box "Use IMS Always" to tell Android to always place an IMS call Hit save button or back button to save the settings.
IMS servers with APT Agilent IMS server ICE HCL SER Radvision
Reference RFC 3261 VOLTE Doc GSMA IR-92