5G/NR - VoNR                                           Home : www.sharetechnote.com

 

 

 

 

 

VoNR  (Voice Over NR)

 

VoNR is very similar to VoLTE. They are all based on Voice call over IMS. The main difference is that the IMS is established by and go through 5G Core network in VoNR whereas it is established by and go through 4G core network. Even in terms of 3GPP, the details of VoNR procedure is described in 23.228 which is mainly for IMS for LTE and 5G specific details are provided as an appendix (Annex Y). So if you are already familiar with VoLTE, you would catch up VoNR very quickly and most of the contents listed in my IMS notes would applies to VoNR as well. In this page, I would mostly focus on the differences in VoNR.

 

 

 

Overall Call Flow

 

Following is the overall call flow of NR. You would see a little bit of differences in terms of signaling message name comparing to VoLTE setup, but those differences are due to signaling difference between LTE and NR, not specifically due to IMS side difference. I wouldn't put all the details of NR signaling procedure here. I would only put those steps related to VoNR.

 

Step

Direction

Message

Memo

1

UE <- NW

SIB1

SIB1 should indicate that the NW supports IMS

(ims-EmergencySupport,eCallOverIMS-Support) and it is not barred(uac-BarringInfo).

2

UE <-> NW

N/A

All the necessary UAC condition should be met for allowing IMS call.

3

UE -> NW

Registration Request

Usage setting = voice centric, GMM capability S1 mode = true

....

4

UE <- NW

UE Capability Enquiry

 

5

UE -> NW

UE Capability Information

UE should notify the IMS related capabilities (IMS-Parameters)

6

UE <- NW

Registration Accept

 

7

UE -> NW

Registration Complete

 

8

UE -> NW

PDU Session Establishment Request

internet DNN, 5QI = (Usually) 6

9

UE <- NW

PDU Session Establishment Accept

 

10

UE -> NW

PDU Session Establishment Request

ims DNN

11

UE <- NW

PDU Session Establishment Accept

5QI = 5 (mainly for SIP signaling)

12

UE <-> NW

SIP Registration

 

13

UE

Initiate Voice Call

 

14

UE <-> NW

SIP Setup before Voice Traffic

 

15

UE <- NW

PDU Session Modification Command

Add QoS Flow for SIP traffic, 5QI = 1

16

UE -> NW

PDU Session Modification Complete

 

17

UE <-> NW

SIP Traffic

 

 

NOTE : S1 mode capability at step 3 indicates whether UE support EPS Fallback or not. So it may not be set when the voice call is expected purely through VoNR

 

 

PDU session establishment request (Log shared by Amarisoft)

This is the message from UE that initiate setting up the configuration which are required to do IMS registration. I would like you to note that this message is requesting a PDU setup with DNN="ims" and requesting the IP address for P-CSCF.  If you are familiar with VoLTE process, you would notice that the role of this message is similar to PDN Connectivity Request in VoLTE.

    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x2 (Integrity protected and ciphered)
    Auth code = 0xff096300
    Sequence number = 0x02
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x0 (Plain 5GS NAS message, not security protected)
    Message type = 0x67 (UL NAS transport)
    Payload container type = 1 (N1 SM information)
    Payload container:
      Protocol discriminator = 0x2e (5GS Session Management)
      PDU session identity = 5
      Procedure transaction identity = 9
      Message type = 0xc1 (PDU session establishment request)
      Integrity protection maximum data data:
        Maximum data rate per UE for user-plane integrity protection for uplink 
                        = 0xff (Full data rate)
        Maximum data rate per UE for user-plane integrity protection for downlink 
                        = 0xff (Full data rate)
      PDU session type = 0x3 (IPv4v6)
      SSC mode = 0x1 (1)
      Extended protocol configuration options:
        Ext = 1
        Configuration protocol = 0
        Protocol ID = 0x000a (IP address allocation via NAS signalling)
        Data =
        Protocol ID = 0x0002 (IM CN Subsystem Signaling Flag)
        Data =
        Protocol ID = 0x0001 (P-CSCF IPv6 Address Request)
        Data =
        Protocol ID = 0x000c (P-CSCF IPv4 Address Request)
        Data =
        Protocol ID = 0x0003 (DNS Server IPv6 Address Request)
        Data =
        Protocol ID = 0x000d (DNS Server IPv4 Address Request)
        Data =
    PDU session ID = 5
    Request type = 0x1 (initial request)
    DNN = "ims"

 

 

PDU session establishment accept  (Log shared by Amarisoft).

 

Once network recieves the PDU session establishment request message from UE, Network informs the UE of the requested information (P-CSCF) and creates a QoS pipe that is necessary for the traffic. This is similar to Activate default EPS bearer context request in VoLTE.

    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x2 (Integrity protected and ciphered)
    Auth code = 0x66f143b0
    Sequence number = 0x03
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x0 (Plain 5GS NAS message, not security protected)
    Message type = 0x68 (DL NAS transport)
    Payload container type = 1 (N1 SM information)
    Payload container:
      Protocol discriminator = 0x2e (5GS Session Management)
      PDU session identity = 5
      Procedure transaction identity = 9
      Message type = 0xc2 (PDU session establishment accept)
      Selected PDU session type = 0x3 (IPv4v6)
      Selected SSC mode = 0x1 (1)
      Authorized QoS rules:
        QoS rule 1:
          QoS rule identifier = 1
          Rule operation code = 1 (create new QoS rule)
          DQR = 1 (the QoS rule is the default QoS rule)
          Number of packet filters = 1
          Packet filter identifier = 15
            Packet filter direction = 3 (bidirectional)
            Match-all
          QoS rule precedence = 255
          QFI = 1
      Session AMBR:
        Session-AMBR for downlink = 3000000 kbps
        Session-AMBR for uplink = 1000000 kbps
      PDU address:
        PDU session type = 3 (IPv4v6)
        IPv6 = ::2001:468:3000:1
        IPv4 = 192.168.4.2
      Authorized QoS flow descriptions:
        QoS flow description 1:
          QFI = 1
          Operation code = 1 (create new QoS flow description)
          E = 1 (parameters list is included)
          Number of parameters = 1
          5QI = 5
      Extended protocol configuration options:
        Ext = 1
        Configuration protocol = 0
        Protocol ID = 0x000d (DNS Server IPv4 Address)
        Data = 8.8.8.8
        Protocol ID = 0x0003 (DNS Server IPv6 Address)
        Data = 2001:4860:4860:0:0:0:0:8888
        Protocol ID = 0x000c (P-CSCF IPv4 Address)
        Data = 192.168.4.1
        Protocol ID = 0x0001 (P-CSCF IPv6 Address)
        Data = 2001:468:3000:1:0:0:0:0
        Protocol ID = 0x0002 (IM CN Subsystem Signaling Flag)
        Data =
      DNN = "ims.mnc001.mcc001.gprs"
    PDU session ID = 5

 

 

PDU session modification command (Log shared by Amarisoft)

 

Once IMS registration is done and the user trigger IMS call, it would reach a certain point where another data pipe for IMS data traffic (i.e, Voice traffic). For setting up the data only traffic (not IMS signaling), usually NW sets up another data pipe (QoS flow) dedicated for the data traffic. This process is initiated by NW via PDU session modification command (NOTE : Even though this step is done in most of the real network implementation for IMS service, it is not mandatory in protocol point of view. In other words, you may implement the service in such a way that both IMS signaling and voice data go through the single data pipe). This is similar to Activate dedicated EPS bearer context request in VoLTE.

 

    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x2 (Integrity protected and ciphered)
    Auth code = 0x1a236417
    Sequence number = 0x05
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x0 (Plain 5GS NAS message, not security protected)
    Message type = 0x68 (DL NAS transport)
    Payload container type = 1 (N1 SM information)
    Payload container:
      Protocol discriminator = 0x2e (5GS Session Management)
      PDU session identity = 5
      Procedure transaction identity = 0
      Message type = 0xcb (PDU session modification command)
      Authorized QoS rules:
        QoS rule 1:
          QoS rule identifier = 2
          Rule operation code = 1 (create new QoS rule)
          DQR = 0 (the QoS rule is not the default QoS rule)
          Number of packet filters = 2
          Packet filter identifier = 0
            Packet filter direction = 3 (bidirectional)
            Packet filter component 0x20 = 0x20010468300000010000000000000000 ...
                                              ffffffffffffffffffffffffffffffff3011502710407918
          Packet filter identifier = 1
            Packet filter direction = 3 (bidirectional)
            Packet filter component 0x20 = 0x20010468300000010000000000000000 ...
                                              ffffffffffffffffffffffffffffffff3011502711407919
          QoS rule precedence = 0
          QFI = 2
      Authorized QoS flow descriptions:
        QoS flow description 1:
          QFI = 2
          Operation code = 1 (create new QoS flow description)
          E = 1 (parameters list is included)
          Number of parameters = 5
          5QI = 1
          GFBR uplink = 49 kbps
          GFBR downlink = 49 kbps
          MFBR uplink = 51 kbps
          MFBR downlink = 51 kbps
      Extended protocol configuration options:
        Ext = 1
        Configuration protocol = 0
        Protocol ID = 0x000d (DNS Server IPv4 Address)
        Data = 8.8.8.8
        Protocol ID = 0x0003 (DNS Server IPv6 Address)
        Data = 2001:4860:4860:0:0:0:0:8888
        Protocol ID = 0x000c (P-CSCF IPv4 Address)
        Data = 192.168.4.1
        Protocol ID = 0x0001 (P-CSCF IPv6 Address)
        Data = 2001:468:3000:1:0:0:0:0
        Protocol ID = 0x0002 (IM CN Subsystem Signaling Flag)
        Data =
    PDU session ID = 5

 

 

PDU session modification complete  (Log shared by Amarisoft)
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x2 (Integrity protected and ciphered)
    Auth code = 0x81da3da5
    Sequence number = 0x04
    Protocol discriminator = 0x7e (5GS Mobility Management)
    Security header = 0x0 (Plain 5GS NAS message, not security protected)
    Message type = 0x67 (UL NAS transport)
    Payload container type = 1 (N1 SM information)
    Payload container:
      Protocol discriminator = 0x2e (5GS Session Management)
      PDU session identity = 5
      Procedure transaction identity = 0
      Message type = 0xcc (PDU session modification complete)
    PDU session ID = 5

 

 

 

QoS Flow

 

In VoNR, two different data flows get involved and in most case these two flows are mapped to two different types of QoS pipe. Following is a typical example of the two QoS pipe being used in VoNR based on the log shared by Amarisoft. If you are not familiar with 5G QoS Structure, it would be worth reading my notes on 5G QoS first.

 

The first QoS Pipe is involved mostly in setting up the data flow for IMS signaling message as shown in the following example. Usually, this QoS setup is triggered by UE via PDU Session Establishment Request and Network creates a core network side of the QoS flow via PDU Session Establishment Accept message. This core network side of QoS pipe (QoS Flow) is mapped to RAN(Radio Access Network) pipe through SDAP configuration in Rrc Message as shown below.

 

 

 

The second QoS Pipe is involved mostly in setting up the data flow for IMS traffic (Voice data) as shown in the following example. This QoS setup is triggered by Network via PDU Session Modification Command and Network creates another QoS pipe on core network side. This core network side of QoS pipe (QoS Flow) is mapped to RAN(Radio Access Network) pipe through SDAP configuration in Rrc Message as shown below.

 

 

 

 

S1 mode vs N1 mode

 

  • S1 mode :  indicates successful EPS Attach
  • N1 mode : indicates successful 5GC(5G Core) Attach

 

 

 

Key Informations in Signaling Message

 

There are many different types of message with various information elements related to VoNR service and I am trying to list up those messages and information elements in this section. But I wouldn't say all of these information elements are mandatory. Depending on Network implementation or UE protocol stack implementation it may work without some of these informations.

 

 

SIB1

 

SIB1 ::=        SEQUENCE {

    ...

    ims-EmergencySupport                ENUMERATED {true}             OPTIONAL,   -- Need R

    eCallOverIMS-Support                 ENUMERATED {true}             OPTIONAL,   -- Cond Absent

    ...

}

 

 

UE Capability Information

 

IMS-Parameters ::= SEQUENCE {

   ims-ParametersCommon                  IMS-ParametersCommon OPTIONAL,

   ims-ParametersFRX-Diff                  IMS-ParametersFRX-Diff OPTIONAL,

   ...

}

 

IMS-ParametersCommon ::= SEQUENCE {

   voiceOverEUTRA-5GC                     ENUMERATED {supported} OPTIONAL,

   ...,

   [[

      voiceOverSCG-BearerEUTRA-5GC   ENUMERATED {supported} OPTIONAL

   ]],

   [[

      voiceFallbackIndicationEPS-r16      ENUMERATED {supported} OPTIONAL

   ]]

   }

 

IMS-ParametersFRX-Diff ::= SEQUENCE {

   voiceOverNR                                 ENUMERATED {supported} OPTIONAL,

   ...

}

 

 

PDU session establishment request

  ...
  PDU session type = 0x3 (IPv4v6)
  SSC mode = 0x1 (1)
  Extended protocol configuration options:
    Ext = 1
    ...
    Protocol ID = 0x0001 (P-CSCF IPv6 Address Request)
    Data =
    Protocol ID = 0x000c (P-CSCF IPv4 Address Request)
    Data =
    ...
PDU session ID = 5
Request type = 0x1 (initial request)
DNN = "ims"

 

 

PDU session establishment accept
  Authorized QoS rules:
    QoS rule 1:
      QoS rule identifier = 1
      Rule operation code = 1 (create new QoS rule)
      DQR = 1 (the QoS rule is the default QoS rule)
      Number of packet filters = 1
      Packet filter identifier = 15
        Packet filter direction = 3 (bidirectional)
        Match-all
      QoS rule precedence = 255
      QFI = 1
  Session AMBR:
    Session-AMBR for downlink = 3000000 kbps
    Session-AMBR for uplink = 1000000 kbps
  PDU address:
    PDU session type = 3 (IPv4v6)
    IPv6 = ::2001:468:3000:1
    IPv4 = 192.168.4.2
  Authorized QoS flow descriptions:
    QoS flow description 1:
      QFI = 1
      Operation code = 1 (create new QoS flow description)
      E = 1 (parameters list is included)
      Number of parameters = 1
      5QI = 5
  Extended protocol configuration options:
    Ext = 1
    ...
    Protocol ID = 0x000c (P-CSCF IPv4 Address)
    Data = 192.168.4.1
    Protocol ID = 0x0001 (P-CSCF IPv6 Address)
    Data = 2001:468:3000:1:0:0:0:0
    ...
  DNN = "ims.mnc001.mcc001.gprs"
PDU session ID = 5

 

 

 

Reference