VOWIFI 基本原理及注册机
制
目录
1 目的 ............................................................................................................................................................1
2 WFC 架构 ....................................................................................................................................................1
3
VOWIFI 基本原理....................................................................................................................................... 1
3.1 原理介绍.................................................................................................................................................. 1
3.2 接入方案介绍 .......................................................................................................................................... 2
3.3 非可信 WIFI 接入介绍 ............................................................................................................................. 3
4 WFC/VOLTE 注册机制................................................................................................................................4
4.1
4.2
4.3
SETUP IMS PDN.......................................................................................................................................... 4
IMS SIP REGISTER........................................................................................................................................ 6
QMI COMMANDS......................................................................................................................................... 6
5 WIFI CALLING SIP 信令流程 ........................................................................................................................9
5.1
5.2
MO CALL 流程 .......................................................................................................................................... 9
MT CALL 流程 ......................................................................................................................................... 10
6
VOWIFI NV 列表....................................................................................................................................... 11
7 参考资料 .................................................................................................................................................. 11
I
1 目的
本文档介绍了 WFC 的架构、基本原理介绍、IMS PDN 激活流程、IMS SIP Register 及相关 LOG 分析,
旨在帮助初学者对 VOWFI、IMS PDN 的激活、通话业务等有所了解。
2 WFC 架构
3 VOWIFI 基本原理
3.1 原理介绍
WiFi Calling 技术是基于 3GPP R10 标准开发出来的,对终端用户来说,在室内 WiFi 接入区域
就可以使用智能手机自带的拨号功能进行基于 WiFi 的语音呼叫和接听,与 VoLTE 的话音进行无缝切
换。WiFi Calling 需要终端用户首先在运营商 IMS 系统上完成注册,然后才能使用该功能,所以它
是一种基于 WiFi 接入而受运营商控制的话音接入手段。WiFi Calling 技术可以极大地帮助运营商
解决 LTE 时代的 4G 话音覆盖盲点的问题,同时扩大运营商对用户提供的可选择智能手机的范围。
IMS 被广泛认为是一种未来支持全类型接入的技术架构,是固定网和移动网走向融合的技术基
础。作为一种开放式的控制架构,IMS 在通信史上第一次具备了通过统一平台向所有类型的接入网
提供统一业务的能力。3GPP 在制定标准时,已经把包括 WiFi 在内的多种接入技术考虑在 3GPP 的接
入架构之中。
第 1页
在 3GPP 的规范中,WiFi 接入被认为是一种非 3GPP 的无线接入种类,根据不同的网络形式,3GPP
引入了两个新的网元 ePDG(演进分组数据网关)和 TWAG(可信任无线接入网关)。3GPP 的规范主要解
决了三个问题:用户终端的安全接入可以通过设置 AAA 服务器,结合 HSS 对终端进行鉴权完成;业务
流的安全传输由 WiFi 终端到 ePDG 或 AP 到 TWAG 之间采用加密协议和隧道等安全技术完成;而网络切
换时的业务连续性通过 PGW 向用户终端统一分配 IP 地址的方式实现。
对于具体的 VoWiFi 接入方式主要有两种,即可信任接入和不可信任接入。所谓不可信任接入是指用
户通过非运营商提供的 WiFi 网络进行的接入。这种情况下用户终端发出的数据需要通过网络新增的
ePDG 接入核心网,终端和 ePDG 之间通过 IPSec 隧道传输数据,使得不可信网络的网元无法感知数
据传输,从而保证数据传输的安全性。此时,认证是基于 SIM 卡完成的,使外界入侵者无法访问到
ePDG 和核心网。另外一种被称为可信任接入的方式是在运营商的 WiFi 网络下完成的,这种情况下,
用户的终端不需要与网络建立 IPSec 隧道,而直接通过 PDN GW(分组数据网关)就能接入到移动核心
网。
3.2 接入方案介绍
VoWiFi 的应用已有多年, 3GPP 对于 Wi-Fi Calling 的定义逐渐发展并完善,目前标准中定义
的方案有以下 5 种:
VoWiFi技术方案
方案关键特点
现状
方案1:UMA方案 UMA的全称是Unlicensed Mobile Access ,使
用一种名为 GANC (Generic Access Network
Controller)的设备,把通过WiFi接入的手机
终端虚拟成2G/3G手机,利用标准的A/Iu接口,
接入到传统CS网络,从而在Wi-Fi环境下实现
传统的移动CS域业务。
方案2:直接连接
IMS
通过WiFi网络直接接入IMS的方式,无法保证
WLAN-LTE切换前后UE地址一致,很难实现统一
认证和统一用户号码,切换流程对UE和IMS都
有要求,且漫游和互通的场景复杂。
方案3:非可信接
入
ePDG(EPC)/IMS
利用公共WLAN非可信接入3GPP网络(S2b接口)
P-GW作为WLAN-LTE切换的锚点要求UE支持
IPSec以及IKEV2鉴权3GPP R10已完成标准化。
UMA只在北美和部分欧洲国
家有商用,技术标准停止演进,
不支持LTE和IMS Core,基本上
已经被业界放弃。
缺少Native手机,用户需要下
载APP申请账号和口令。
终端成熟:iPhone 6/iOS8已经
全球发布,三星、SNOY、Nokia
均有商用终端支持。运营商已
经商用发布或者高度关注。
3GPP R10支持,技术标准完善。
第 2页
方案4:可信接入
EPC/IMS
运营商部署的WLAN可信接入3GPP网络(S2a接
口)P-GW作为WLAN-LTE切换的锚点。WiFi-LTE
切换方案3GPP还在讨论中。
方案5:OTT方案 需要下载app需要单独的用户名和口令登录不
支持Call waiting/Call forwarding等业务,
无法保持与VoLTE以及CS用户一致的业务体
验,且互通能力受限。
3GPP R12刚完成,目前无芯片
或手机终端支持。运营商需要
自建WiFi,无法直接利用现有
的第三方Wi-Fi资源。
缺少Native手机,需要下载
APP,同OTT方案,如SKYPE、
WhatsApp、微信。无法保持与
VoLTE以及CS用户一致的业务
体验,且互通能力受限。
综上所述,目前方案 3(非可信接入 ePDG(EPC)/IMS)是目前主流运营商采用最多的方案。
3.3 非可信 WiFi 接入介绍
非可信 Wi-Fi 接入的 VoWiFi:
ePDG (Evolved Packet Data Gateway)非可信 Wi-Fi 网络接入方式下的必备网元。
用户鉴权:
终端通过非可信 Wi-Fi 接入后 ePDG 后,通过 AAA 服务器和 HSS 完成终端身份鉴权。鉴权方式采
用基于基于 SIM 卡 (EAP-AKA/EAP-SIM)的鉴权,整个过程用户无感知。
网络安全:
WiFi 终端到 ePDG 之间建立 IPSec 通道,确保信息安全传输。
语音连续性:
用户终端可以在 Wi-Fi 与 LTE 基站之间做到无缝切换,确保语音连续性。
高清语音:
VoWiFi 与 VoLTE 共用核心网,使用相同的高清编解码,为用户提供高品质的音视频感受
Step 0: UE执行WLAN认证,WLAN网络给UE分配一个local IP。
Step 1: UE通过本地配置或者DNS机制获取ePDG地址,发起 IKEv2/EAP-AKA流程。
EAP-AKA 认证;
成功认证后,ePDG 从AAA获取UE 的签约数据。
Step 2:ePDG和PGW之间建立GTP隧道,PGW分配远端IP地址以及P-CSCF地址通过GTP消息带给ePDG。
第 3页
Step 3: IKEv2过程结束,ePDG将UE的远端IP地址发送给UE。
4 WFC/VOLTE 注册机制
4.1 Setup IMS PDN
IMS PDN 注册流程如下:
1685] Initiate PDN connectivity request
1725] PDN CONN REQ Seq Num sent
QM2801C VOWIFI PDN:
1.Modem 发起一个 PDN 连接请求(Data service initiates a PDN connection)
[Modem]
MSG 03:32:48.978 DS 3G Manager/High
MSG 03:32:48.978 DS 3G Manager/High
out is 2, subs_id:0
MSG 03:32:48.979 DS 3G Manager/High
2.Modem attach 初始化完成及向 AP 请求 IMS PDN 的连接(Initial attach is completed;
IMS requests an IMS PDN connection)
[Modem]
MSG 03:32:49.139 DS 3GPP/Medium [ds_3gpp_hdlr.c 6031] Attach complete flag for Subs Id(CM): 0 is 0
[QCRIL <- Modem]
MSG 03:33:11.925 Linux Data/High
received
[imsdaemon <- QCRIL]
775] rild[492] NET_PLATFORM_UP_EV
[ds3gmshif.c
1763] Call origination with SDF_ID 0
[ds3gmshif.c
[ds3gmshif.c
[dsi_netctrl_netmgr.c
第 4页
Linux Data/High
IMS DPL/High
842] imsdatadaemon[610]
103] imsdatadaemon[610]
03:33:12.276
IMS DPL/High
03:33:12.278
IMS DPL/High
03:33:11.930 Linux Data/High
300] | 610
331] | 610
333] | 610
843] L2S[pname:imsdatadaemon
03:33:11.943 Linux Data/High
[dsi_netctrl_netmgr.c
129] imsdatadaemon[610]
351] L2S[pname:imsdatadaemon
03:33:11.943 Linux Data/High
[dsi_netctrl_netmgr.c
03:33:11.943 Linux Data/High
[dsi_netctrl_netmgr.c
03:33:11.943 Linux Data/High
[dsi_netctrl_netmgr.c
351] imsdatadaemon[610] DSI call state
[IMS_DataD] qpdplCnERoutingNotifier.cpp
[IMS_DataD] qpdplCnERoutingNotifier.cpp
[IMS_DataD] qpdplCnERoutingNotifier.cpp
[dsi_netctrl_netmgr.c
MSG 03:33:11.930
logging: Handle 1, call state DSI_STATE_CALL_CONNECTED
MSG
[dsi_netctrl_netmgr.c
pid:610 tid:1074 type:ME fname:dsi_netmgr_store_event_data iface_id:1
msg:"DSI_STATE_CALL_CONNECTED"]
MSG
dsi_process_netmgr_ev posting event [1][NET_IS_CONN]
MSG
pid:610 tid:1074 type:ME fname:dsi_process_netmgr_ev iface_id:1 msg:"Posting NET_IS_CONN"]
MSG
dsi_netmgr_find_ip_family: ENTRY
MSG
dsi_netmgr_find_ip_family: addr=AF_INET6, ip_family=1
[CNE <- imsdaemon]
MSG
03:33:11.945
|qpdplSetupCNERoute...calling CreateCneNetworkRequest, using network [4] and Slot ID [1]
MSG
|qpdplSetupCNERoute...calling bringup for apn type 0
MSG
|qpdplSetupCNERoute..bringup returned 0
3.CnE 向 telephony 请求启动 PDN 连接(CnE requests bring-up of the PDN connection
to telephony)
[AP] [Telephony -> QCIL]
05-14 23:33:12.520 3258
SETUP_DATA_CALL,radioTechnology=18,isRoaming=false,allowRoaming=true,DataProfile=2/IMS/IPV4V6/
0///0/0/0/0/true/320/IPV6/0/0///false [SUB0]
[AP] [QCIL -> Telephony]
05-14 23:33:12.754 3258
retry=-1 cid=0 active=2 type=IPV4V6 ifname=rmnet_data1 mtu=1280
addresses=[2600:100b:1004:3675:a2b8:82cb:bdb6:678e/64] dnses=[2001:4888:0
[CNE <- imsdaemon]
MSG
03:33:12.899
|======= onNetConfigChange
MSG
|======= onNetConfigChange : DATAD_KPI : Connected for IMS apn . ConnSrvDB [0x8c7c6150], Netid:
442398067422, MTU 1280========
MSG
|======= onNetConfigChange : MTU of this PDN [1280], =======
4.Modem 的 IMS 堆栈从 IMSdataD 获取到 PDN 连接指示(IMS modem stack gets the
PDN connection indication from IMSdataD)
[imsdaemon -> Modem]
MSG
|ProcessCSIndication|Connection Event is eCS_ENETISCONN Instance Id 0
MSG
|ProcessCSIndication|Sending indication with IP Address
: [4184]< SETUP_DATA_CALL DataCallResponse: { status=0
[IMS_DataD] qpdplCnERoutingNotifier.cpp
[IMS_DataD] qpdplCnERoutingNotifier.cpp
[IMS_DataD] qpdplCnERoutingNotifier.cpp
IMS DPL/Error
[IMS_DataD] imsdatad.c
03:33:12.289
IMS DPL/Error
[IMS_DataD] imsdatad.c
2529] | 610
127] | 1827
134] | 1827
151] | 1827
IMS DPL/High
: NetConfig Called ========
03:33:12.289
2518] | 610
03:33:12.899
IMS DPL/High
03:33:12.901
IMS DPL/High
3564 D RILJ : [4184]>
3500 D RILJ
第 5页
2539] | 610
2548] | 610 |ProcessCSIndication|
2644] | 610 |ProcessCSIndication
[qpDcm.c
8345] qpDplDSSysEvCB - rat_value --> 0x0 |
03:32:50.672
03:33:12.289
03:33:12.290
IMS DPL/Error
03:33:12.289
IMS DPL/High
IMS DPL/Error
[IMS_DataD] imsdatad.c
[IMS_DataD] imsdatad.c
[IMS_DataD] imsdatad.c
MSG
|DATAD#>>#QCSI#2#QMI_IMS_DCM_PDP_ACTIVATE_IND_V01:eCS_ENETISCONN
MSG
Sending QMI_IMS_DCM_PDP_ACTIVATE_IND_V01
MSG
qmi_csi_send_ind success err : 0
5.通过 iWLAN 进行 IMS 注册的关键调试消息
MSG
Legacy/High
so_mask --> 0x800 | technology --> 0x0
MSG
Legacy/High
so_mask --> 0x400 | technology --> 0x0
MSG
Legacy/High
so_mask --> 0x400 | technology --> 0x0 (备注:如果注册的是 volte,这里的 rat_value 是 3)
MSG
MDN 15163068657 SIM MDN 15163068657
MSG
MDN 15163068657 SIM MDN 15163068657
MSG
MDN 15163068657 SIM MDN 15163068657
IMS REGMGR/High
IMS REGMGR/High
IMS REGMGR/High
03:32:34.812
03:32:51.975
03:33:19.826
03:32:56.433
03:33:50.541
[qpDcm.c
8345] qpDplDSSysEvCB - rat_value --> 0x5 |
[qpDcm.c
8345] qpDplDSSysEvCB - rat_value --> 0x5 |
[PDPManager.cpp
6203] IsVoWIFIServiceEnabled NV
[PDPManager.cpp
6203] IsVoWIFIServiceEnabled NV
[PDPManager.cpp
6203] IsVoWIFIServiceEnabled NV
4.2 IMS SIP Register
4.3 QMI Commands
[BF]
1、QMI_IMSA_REGISTRATION_STATUS_IND_V01 0x0023
通过此条消息报给 ap 的 ims 注册状态
2019 May 15 03:33:37.532
packetVersion = 2
MsgType = Indication
Counter = 10
ServiceId = 33
MajorRev = 1
0x1544 QMI_MCS_QCSI_PKT
第 6页