VoNR & VoLTE : Ultra HD Voice (HD+) EVS SWB & FB let’s go to 128k & 20khz !

FMU
12 min readOct 19, 2021

--

#SnapdragonInsider #Oneplus #Xiaomi #Asus & All Android Phones

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Mise a jour : Mars 2024 — MAJ SPECIALE POUR XIAOMI APRES 1 AN SANS EVOLUTION

Tous les derniers @Xiaomi 2023 (13, 13 Pro, Ultra) même paramétré en overide FB 128 (Config constructeur), se limitent en SWB 128. C’est clairement une limitation volontaire de XIAOMI dans le code source. Car les modèles 12, 11, 10 fonctionnent très bien en FB 128 ! Pour des modèles haut de gamme c’est inadmissible.

Ex : OS1.0.4.0.UMBEUXM — On remarque que la configuration par defaut est bonne.

[QIPCALL:EVS_0]

*BitRate = 4095
*Bandwidth = 6

Voir analyse des trames lors des échanges UE1 > IMS > UE2 > IMS > UE1

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Préambule :

EVS doit tout d’abord être autorisé par votre opérateur. Quoi que vous fassiez sur votre téléphone pour l’activer si le Codec EVS n’est pas autorisé sur les serveurs d’échanges de votre opérateur vous ne pourrez pas l’avoir.

Vous pouvez trouver par exemple, en France, chez l’opérateur Free Mobile une page dédié au recensement des téléphones compatibles, HD, HD+, et plus encore : https://assistance-1.free.fr/mobile/terminaux/

Pour manipuler ou vérifier les codecs, et leurs paramètres, dans votre téléphone vous devez passer dans la partition EFS.

Dans le cas où votre constructeur de téléphone n’a pas activé le codec EVS sur votre smartphone ou que vous souhaitez l’améliorer, vous pouvez le faire manuellement sans avoir à rooter votre téléphone pour certains constructeurs comme OnePlus, et le passage par le “root” est obligatoire pour d’autres comme Xiaomi.

Ce sera toute fois une manipulation à l’aveugle car pour vérifier par la suite si votre appel est en EVS ou en AMR il faudra passer par le “root” et utiliser “Network Signal Guru”. Cependant depuis 2023, le logo “HD+” semble se diffuser chez certaines marques. Nous le verrons plus bas mais le logo “HD+” ne signifie par forcément que vous êtes au maximum des possibilités de terme de voix HD.

Ce tutorial est pour tous les téléphones à base de puces Qualcomm (Snapdragon), MediaTek, Hisilicon, Exynos. Toute fois les paramètres de configuration restent les mêmes pour les autres puces.

Une fois l’activation physique et soft du codec EVS sur votre téléphone, il faudra que votre opérateur active de son coté (IMS, … ) sur un appel VoLTE, VoNR

/!\ Le codec EVS ne fonctionnent qu’entre deux devices (Téléphones, Tablettes, … ) en EVS et sur le même opérateur uniquement.

/!\ Les téléphones de milieu de gamme ou dit “light” peuvent ne pas avoir le codec EVS de disponible au niveau hardware.

Codecs :

En 3G :

AMR

En VoLTE / VoWIFI :

AMR-NB (Narrow Band)

AMR-WB (Wide Band)

EVS-WB (Wide Band)

EVS-SWB (Super Wide Band)

EVS-FB (Full Band)

Qualité de l’appel :

Suivant le spectre que vous paramétrez, plus il sera important plus l’échantionnage (Sampling rates) (en Hertz) sera important. Avec le codec EVS, il est en 4 parties :

  • NB — Narrow Band : de 5,9 à 24.4 : HD avec 16khz
  • WB — Wide Band : de 5,9 à 128 : HD avec 16khz
  • SWB — Super Wide Band : de 9,6 à 128 : HD+ avec 32khz
  • FB — Full Band : de 16.4 à 128 : HD+ 48k Hertz

Le ressenti (Plusieurs études sur internet sur le “MOS”):

Divisé en 2 gaps très importants et mesurés :

  • (3G) AMR > (VoLTE) AMR_WB / EVS_NB
  • (VoLTE) AMR_WB / EVS_NB > (VoLTE) EVS_FB
Etude Rohde-Schwarz

Logo HD / HD+:

Sous Android dès la VoLTE, VoNR (AMR-WB ou EVS (NB à WB)) activée, vous aurez un logo “HD”.

Pour l’EVS SWB et FB, en full HD (ou Ultra HD), le logo “HD+” ou “UHD” devrait s’afficher, sauf (Juillet 2023) pour les modèles sous Android ≤12 , pourtant ces derniers fonctionnent bien en Full HD, juste un bug de logo sous Android :

VoIP : AMR-WB > “HD”
VoIP : EVS-NB > “HD”
VoIP : EVS-WB > “HD”
VoIP : EVS-SWB > “HD+”
VoIP : EVS-FB > “HD+”

Android 11 : logo HD uniquement
Android 12 : logo HD uniquement
Android 13 : Logo HD+

Android 14 : Logo HD+

/!\ Mars 2024 : Tous les @Xiaomi 13 Pro, 13 Ultra, 13, 12, etc… même sous la dernière ROM HyperOS, il n’y a pas de Logo HD+ même si vous êtes en SWB 128 ou FB 128

Largeur de bande :

De 300hz a 20000Hz suivant les 4 groupes de bandes

https://www.aes.org/technical/documentDownloads.cfm?docID=548
https://www.aes.org/technical/documentDownloads.cfm?docID=548
https://www.aes.org/technical/documentDownloads.cfm?docID=548

Préparation pour activer le codec EVS sur votre téléphone :

a) Téléchargez “platform-tools” : https://developer.android.com/studio/releases/platform-tools

Démarrez dans l’invite de commande en “Administrateur” -> “CMD”

C:\platform-tools>adb.exe shell
* daemon not running; starting now at tcp:5037
* daemon started successfully
NomDuTelephone:

Vous devrez voir le code de votre appareil. Sinon pensez à installer les drivers USB pour votre téléphone (derniers drivers Qualcomm : https://band.radio/qud.win.1.1_installer_10061.1.zip)

b) Activez Diag, QPST , EFS voir tuto : https://band.radio/diag

c) Sur certains modèles une fois l’étape b) effectuée votre “gestionnaire de périphériques” affichera de nouveaux périphériques sans driver. Il vous suffit à ce moment là d’installer l’exécutable suivant : https://band.radio/qud.win.1.1_installer_10061.1.zip

Après l’installation tous vos périphériques auront trouvés leurs drivers (Surtout valable pour le “Asus_I007 Snapdragon Insider”)

d) Téléchargez et installez “QPST” : https://qpsttool.com/category/download

Une fois lancé : QPST > Onglet “port” :

QPST > Start Clients > EFS Explorer :

Sélectionnez le bon port COM précédemment ajouté. Puis validez.

La connexion est très longue, plusieurs minutes pour certains modèles. Le logiciel ne montre pas non plus de signe de chargement. C’est normal, patientez.

Vous devriez arriver par la suite à l’intégrité des répertoires et fichiers.

Overideconfig — VoLTE EVS en 24.4k avec un AS=50:

3GPP TS 26.114 V13.4.0

Allez dans le répertoire : efsprofiles

(Si il n’existe pas, créez le, et l’écrire exactement de la même façon)

Backup : Sauvegardez le fichier sur votre PC situé dans : efsprofiles/overideconfig

Supprimez les fichiers.

Sur votre PC éditez ou créez un fichier “overideconfig” sans extension.

/!\ “overideconfig” avec 1 seul “r”

videz votre fichier et ajoutez tout le texte ci-dessous :

#################################################
#
# FMU (02.11.21) : >>>> VoIP EVS NB-SWB 24.4K <<<<
#
# 2G/3G : Voice HD : Compatible avec AMR
# VoLTE : Voice HD : AMR_WB up to 23.85
# VoNR / VoLTE /VoWIFI : Voice HD+ : EVS 24k
#
#################################################
[DPL:Common]
ParamSrc = 4
[QIPCALL:ImsMediaProfileConfig]
*AudioProfile1 = "EVS_0_125;AMR_1_104;AMR_0_102"

“Glissez déposez” en lieu et place de celui dans votre EFS de votre téléphone. (dans /efsprofiles/ )

Redémarrez le téléphone. C’est terminé votre téléphone est compatible au codec EVS en 24.4 de bitrate.

EVS 24.4k : Analyse des appels VoLTE :

Dans cette partie, les téléphones doivent être sur une puce Snapdragon et doivent être rooté.

Télécharger : https://play.google.com/store/apps/details?id=com.qtrun.QuickTest&hl=fr&gl=US

Dans la version gratuite vous aurez accès au menu principal au slide de “VxLTE Analysis”

Exemple sans communication établie :

FMU

Exemple avec un appel : VoLTE > 3G

FMU

Exemple avec un appel : VoLTE (AMR_WB) > VoLTE (AMR_WB)

FMU

Exemple avec un appel : VoLTE (EVS) > VoLTE (EVS)

FMU

Dans la version payante, vous avez accès au menu “Signaling” qui vous permettra de vous confirmer si votre téléphone est désormais bien capable d’établir une connexion en EVS.

Filtrez -> IMS -> sélectionné le message : IMS_SIP_INVITE

Sur la fin dans la partie :

a=rtpmap:106 EVS/16000/1
a=fmtp:106 br=5.9–24.4;bw=nb-swb;ch-aw-recv=2;max-red=0

a=rtpmap:104 AMR-WB/16000/1
a=fmtp:104 mode-change-capability=2;max-red=0
a=rtpmap:110 AMR-WB/16000/1
a=fmtp:110 octet-align=1;mode-change-capability=2;max-red=0
a=rtpmap:102 AMR/8000/1
a=fmtp:102 mode-change-capability=2;max-red=0
a=rtpmap:108 AMR/8000/1
a=fmtp:108 octet-align=1;mode-change-capability=2;max-red=0
a=rtpmap:96 telephone-event/16000
a=fmtp:96 0–15
a=rtpmap:97 telephone-event/8000
a=fmtp:97 0–15

Vous devriez voir apparaitre les deux lignes en gras.

🚀 EVS vers les 128K de bitrate avec AS de 153: 🚀

3GPP TS 26.114 V13.4.0

Vous souhaitez aller plus loin et monter votre bitrate à 128K sur le bande FB, c’est possible à deux conditions :

  • Votre opérateur n’a pas bridé son AS coté de l’IMS, et offre la possibilité de faire un AS=153
  • Le téléphone que vous appelez doit aussi avoir sa configuration EVS avec ses paramétrages en 128K.

Calcule du bitrate :

FMU

Exemples :

  • FB Only : 2048
  • NB-FB (5,9 à 128) : 2048+1024+512+256+128+64+32+16+8+4+2+1
  • SWB (9,6 à 128) : 2048+1024+512+256+128+64+32+16+8

Bandwidth :

#0 → BandWidth_NB
#1 → BandWidth_WB
#2 → BandWidth_SWB
#3 → BandWidth_FB
#4 → BandWidth_NB_WB
#5 → BandWidth_NB_SWB
#6 → BandWidth_NB_FB
#7 → BandWidth_MAX

[QIPCALL:EVS_Y] :

Y : ID de 0 à 4 que vous devez reporter dans “*AudioProfile”

“*AudioProfile1” :

EVS_Y_ZZZ : Y ID à reporter de votre config perso. Si pas de config perso mode par défaut. #Bandwidth = 5 *BitRate = 127

ZZZ : ID à retrouver dans les trames SDP. Voir la norme <96 et >96

Quelques exemples :

#################################################
#
# FMU (02.11.21) : >>>> VoIP EVS NB-FB 128 - LIGHT <<<<
#
# 2G/3G : Voice HD : Compatible avec AMR
# VoLTE : Voice HD : AMR_WB up to 23.85
# VoNR / VoLTE /VoWIFI : Voice HD+ : EVS up to FB 128 : Dynamic NB-FB
#
#################################################

*ParamSrc = 4

############ VOIP CODECS ############

[QIPCALL:EVS_0]
# Dynamic : All bandes NB-FB & All bitrate 5.9–128
*Bandwidth = 6
*BitRate = 4095
*hf_only = 0

[QIPCALL:ImsMediaProfileConfig]
*AudioProfile1 = "EVS_0_126;AMR_0_104;AMR_1_102"


#################################################
#
# FMU (02.11.21) : >>>> VoIP EVS NB-FB 128 <<<<
#
# 2G/3G : Voice HD : Compatible avec AMR
# VoLTE : Voice HD/HD+ : AMR_WB up to 23.85
# VoNR / VoLTE /VoWIFI : Voice HD+ : EVS up to FB 128 : Dynamic NB-FB
#
# Mode Avion : Si Wifi activé VoWifi fonctionne
#
# Conférences : +Addons
#
# FMU (10.02.22) :
#
# Conférences : +Informe UE appelant, que l'UE appelé est déjà en appel.
# +Coupe l'appel si tous les participants sont partis.
# +Possibilité d'activer la confidentialité des conférences téléphoniques
#
# Fix : Quelques paramètres supprimés et ajouts
#
#
#################################################

[DPL:Common]
*ParamSrc = 4

############ VOIP CODECS ############

[QIPCALL:EVS_0]
# Mode All bandes NB-FB & All Mode 5.9–128
*Bandwidth = 6
*BitRate = 4095
*hf_only = 0

[QIPCALL:ImsMediaProfileConfig]
*AudioProfile1 = "EVS_0_126;AMR_0_104;AMR_1_102"

############ Registration Configs ############

[Registration:RegistrationTimers]
*wlanGaurdTimerMSIM = 7
*wwanGaurdTimerMSIM = 10
*wwanGaurdTimer = 7
*wlanGaurdTimer = 7
*networkInitiatedDeRegistrationTimer = 0

[Registration:RegistrationSettings]
*enableRegistrationInLPM = 2

[Registration:CoreServiceGenericConig]
ftConsolidationTimerForVolteAndVTSettingsChange = 0
reRegNeededforNR5GtoWWANTransition = 0
reRegNeededforEmergencyPDNHandoverFromWWANToWLAN = 0

############ Configurations VOIP ############

[SIPConfig:GeoLocation]
*iEnableCellInfoInPANI = 1

[QIPCALL:ImsVoiceConfig]
*displayTextPriority = 3
*emergCallCSOnly = 1
*enableAlternateSrvRspCheck = 0
*privacyType = 2
*uriType = QPE_IMS_URI_SIP
*enableSDPResponseWithModeSetForAMR = 1
*enableWlanPhoneContext = 1

[QIPCALL:ImsVoiceSuppsConfig]
*confEvtPakageEnabled = 1
*confEvtSubOutOfDialog = 0
*presentThirdCalltoUser = 1
*endConfCallUponNoParticipant = 1
*enablePrivacyInConferenceCall = 1

[QIPCALL:ImsVoWifiConfig]
*Handover_5g_wifi_connecting = 1
*AllowIMSAPNHOinRoam = 1
DisableIMSServicesinBadWifi = 0

[QIPCALL:ImsVoiceSrvccConfig]
*aSrvccEnabled = 1
*bSrvccEnabled = 1
*midcallSrvccEnabled = 1

Pensez toujours à redémarrer. Faire la même chose sur le téléphone à tester.

Vous devriez pouvoir passer des appels FB ou SWB en 128 si celui que vous appelez possède aussi ces configurations.

En novembre 2023 : Suite à un rapport Rohde-Schwarz le volume d’appels “HD+” en “FB 128” augmente très rapidement sur l’année 2023 en Europe. Particulièrement grâce aux constructeurs de téléphone qui mettent en place une configuration dynamique NB-FB 128 par défaut dans l’overideconfig via leur OTA : OnePlus, Xiaomi, …

Cependant pour un même constructeur on remarque que tous les modèles ne sont pas tous encore à la même enseigne.

Nov 2023, l’exemple de SAMSUNG : tous les modèles sont de base limité en NB-SWB 128 dans l’overideconfig.

Différents cas spéciaux à comprendre :

1° UE1 NB-FB <> U2 NB-FB : Il est possible que le cœur de réseau voix de votre opérateur n’autorise pas dynamiquement un appel FB 128, et uniquement en statique (Voir ci-dessous)

2° UE1 FB <> UE AMR-WB : Si votre UE à une configuration statique du FB 128, il ne pourra pas contacter d’autres UE si ils ont en Volte AMR ou certaines configurations EVS. Une configuration statique FB 128 ressemble à cela :

[QIPCALL:EVS_1]
# Mode FullBande 128 Only
*Bandwidth = 3
*BitRate = 2048
*hf_only = 0

Voici les types d’erreurs remarqué dans les trames SDP : “Offre refused” et “exp_result_code=5021”

3° UE1 FB <> U2 FB : Dans le cas d’un double appel en FB 128 statique voici le résultat :

FMU

SIP INVITE : 2 modes FB Only 128 & NB-FB 128

FMU

SIP INVITE 183 : Acceptation de la 1ere proposition

FMU

Quelques informations supplémentaires :

Le fichier overideconfig :

# Pas plus de 4 conf EVS pris en compte.
# Pas plus de 2048k sur le poids du fichier pour certains modèles (comme pour le Xiaomi 11 Lite 5G )

Les normes :

3GPP TR 26.952 : EVS Performance characterization

version 17.0.0 Release 17 : https://www.etsi.org/deliver/etsi_tr/126900_126999/126952/17.00.00_60/tr_126952v170000p.pdf

version 16.1.0 Release 16 : https://www.etsi.org/deliver/etsi_tr/126900_126999/126952/16.01.00_60/tr_126952v160100p.pdf

version 15.0.0 Release 15 : https://www.etsi.org/deliver/etsi_tr/126900_126999/126952/15.00.00_60/tr_126952v150000p.pdf

3GPP TS 26.445 : EVS Detailed algorithmic description

version 17.0.0 Release 17 : https://www.etsi.org/deliver/etsi_ts/126400_126499/126445/17.00.00_60/ts_126445v170000p.pdf

Extrait

3GPP TS 26.441 : EVS General overview

version 17.0.0 Release 17 : https://www.etsi.org/deliver/etsi_ts/126400_126499/126441/12.00.00_60/ts_126441v120000p.pdf

Extrait

VoNR : Codec EVS FB 128 ou plus ?

La voix “Over NR” est la suite de la voix “Over LTE”.

Cela signifie qu’au lieu d’utiliser une bande LTE (4G) pour votre appel, vous utiliserez une bande NR (5G). Par contre, le cœur de réseau de votre opérateur doit être en SA (Stand Alone). Il y a des cas d’utilisation sur un réseau 5G NSA, pour un basculement en VoLTE.

2 termes utilisés : Vo5G et VoNR

Quelques exemples de logos sous Android :

Samsung Logo VoNR on Android Phone
Nothing OS on Android Phone

Les configurations de votre téléphone ne change pas. Si vous avez une conf EVS NB-FB 128 déjà présente elle sera pleinement compatible sur un appel NR.

Il n’y a pas d’amélioration du MOS en VoNR.

  • The main codecs supported for 5G voice (VoNR) and video (ViNR) services according to 3GPP standards:
  • Enhanced Voice Services (EVS) — This is the preferred codec for high-quality 5G voice. It supports various bandwidths from narrowband to fullband and provides enhanced audio quality compared to older codecs.
  • AMR-NB and AMR-WB — These legacy narrowband and wideband codecs are supported for backward compatibility with 3G/4G networks and devices that don’t support EVS.
  • H.264 video codec — Specifically the H.264 baseline profile is required for video over NR (ViNR) according to 3GPP specifications.
  • More advanced profiles like H.264 high efficiency video coding (HEVC) are also supported by some devices.
  • In addition, the 3GPP recommends that devices support the following video codecs for maximum interoperability according to GSMA requirements:
  • H.264 advanced video coding (AVC) or constrained high profile (CHP)
  • H.265 high efficiency video coding (HEVC) main profile

--

--