5G核心网学习平台
精华问答 #Q53

如何从log消息里区分5G离线计费和在线计费?

来自知识星球

如何从log消息⾥区分5G离线计费和在线计费?

这个问题其实是星友提问,但回复有字数和图片数量限制。

因此单独发文说明一下。

Q1: 为啥看流程图经常分不清在线计费和离线计费?

A1:因为咱们很多文档中的计费流程采用的是32.290计费架构里定义的流程。

在计费架构流程里,在线计费和离线计费都采用

Charging Data Request Initial/Update/Termination消息。

如下面两个图。

图1:在线计费5.3.2.3 Session based charging

图2:离线计费5.1.2.2.2 Session based charging

由于看文档时,两个都是用的CDR-initial消息。那就很容易搞糊涂。

但是。。。

你在wireshark log里看到的可不是CDR消息,log里看到的是HTTP的方法。

也就是需要把计费架构里的CDR消息映射到CHF的服务。

Q2:怎么把计费架构消息CDR映射到CHF的服务?

A2:CHF服务在32291里定义。

在线(融合)计费采用Nchf_ConvergedCharging service。

而离线计费同样也可以采用Nchf_ConvergedCharging service。

都是采用POST/201组合。

也就是说,无论是在线还是离线的CDR消息,在wireshak里看到的都是post/201组合。

这就意味着根据http方法和响应码是无法区分在线和离线的。

不论在线计费、离线计费的log都如下图所示:

Q3:那在log里如何区分在线和离线计费消息呢?

A3:所以靠消息是区分不出来的,只能靠参数。

可以根据两个参数来区分。

区分方法1:根据Requested Unit参数区分。

这个参数只有在融合计费中存在,离线计费不适用。

简单说如果在log中看到了该参数,就是融合计费,没有就是离线计费。

该参数用于请求quota。

这个规范的依据是32255的6.1.1.2 Charging Data Request message

这一节是专门讲CDR消息的,既可用于在线,也可用于离线计费。

然后该节有个表Table 6.1.1.2.1: Charging Data Request message contents。

详细说明了哪些参数用于在线、哪些参数用于离线。

第2列是用于在线(融合)计费的参数、第3列是用于离线计费的参数。

可以看到Requested Unit第2列取值是Oc,代表条件必选参数。而第3列取值是-代表不适用。

因此,就是说这个参数就是在线计费专用的。具体参数定义在32290。

这里,放一个log,关于融合计费的Requested Unit参数,长啥样?如下图所示。

和quota相关的参数还有:

当用户采用离线计费时,与在线计费即有配额管理的消息中携带的信元差异如下:

- Nchf_ConvergedCharging_Create Request消息中不包含requestedUnit等配额管理相关信元。

- Nchf_ConvergedCharging_Create Response消息中不包含grantedUnit、timeQuotaThreshold、

volumeQuotaThreshold、unitQuotaThreshold等配额管理相关信元,triggerType不包含配额管理相关

Trigger(比如QUOTA_THRESHOLD和QUOTA_EXHAUSTED)。

- PFCP Session Modification Request消息中的Create URR不包含Volume Quota、Time Quota、Event

Quota等配额管理相关信元。

区分方法2:根据"chargingCharacteristics即CC参数区分。

CC值来区分。运营商规范有明确定义,哪个CC是离线计费,哪个CC是在线计费。

具体看运营商规划。CC值log如下:

如图所示,通常取值是0X00。这个X就看运营商规划。

等于某数时是在线计费,等于另外一个数是是离线计费。

涵盖了5G核心网、IMS绝大多数知识点。

返回精华问答列表