Training / Course 02
Stand up voice on top of the 5G core: a full P/I/S-CSCF call-session chain, an HSS, and a media relay. Drive an IMS-AKA REGISTER, place a VoNR call between two UEs, and decode the SIP and Diameter (Cx: UAR/MAR/SAR/LIR) side by side so the SIP dialog and the subscriber lookups line up. Every step proven with real packet evidence — never "it rang, so it works".
Aims — what you can do after
- Explain why 5G needs IMS for voice, and the role of every IMS element.
- Map the IMS reference points (Gm, Mw, Cx, Rx, Mb) onto real processes and captures.
- Provision a subscriber end-to-end: the 5G side and the IMS side.
- Execute and read an IMS-AKA registration: REGISTER → 401 → REGISTER → 200 OK, with the Cx exchanges behind it.
- Place a VoNR call and read the INVITE / SDP / ACK / BYE ladder.
- Decode SIP and Diameter from captures, and read the logs like a call flow.
- Verify the media plane and voice quality, and compute voice KPIs.
- Diagnose the classic IMS failure modes with evidence.
The cast — one Kamailio, three roles
P/I/S-CSCF route; the HSS holds the subscriber and mints the auth vectors; a media relay carries the audio. The UE knows one address — the P-CSCF; everything past it is discovered.
Flow — IMS-AKA registration ⭐
UE P-CSCF I-CSCF S-CSCF HSS | | | | | |--REGISTER->|--REGISTER-->| | | no credentials yet | | |----Cx: UAR-------------> | may this user register? | | |<---Cx: UAA-------------- | assign an S-CSCF | | |--REGISTER-->| | | | | |---Cx: MAR--->| give me an AKA vector | | | |<--Cx: MAA----| RAND AUTN XRES CK IK |<------------- 401 Unauthorized --------| | challenge: RAND + AUTN # the client verifies the network, then answers the challenge |--REGISTER (response)---->|--REGISTER-->| | | | | |---Cx: SAR--->| I serve this user | | | |<--Cx: SAA----| profile + service triggers |<-------------- 200 OK -----------------| | registered.
The centerpiece: IMS-AKA registration. 401 is step two of the protocol, not an error.
Flow — a VoNR call
UE-A IMS core UE-B | | | |--INVITE (SDP offer)----->|--------INVITE----------->| |<--100 Trying-------------| | |<--180 Ringing----------------------------------- -| the phone rings |<--200 OK (SDP answer)------------------------------| answered |--ACK--------------------->|--------ACK------------->| |====== RTP media (via the relay) ==================| the actual audio |--BYE--------------------->|--------BYE------------->| # signalling can be perfect while media is silent — that fork opens every voice ticket
A voice call: signalling and media are separate planes.
Module breakdown
What mastery of the voice layer looks like
- Read a registration and know that 401 is the protocol working, not failing.
- Follow one call across seven witnesses, correlated by Call-ID.
- Split every voice fault into signalling vs media before touching anything.