好的,我们继续对TS 23.218的深度拆解。
这是系列文章的第三篇,我们将深入规范的第四章和第五章。第四章为后续复杂的流程提供了基础的架构视图,而第五章则是整部规范的“心脏”,它详细定义了构成IMS业务逻辑的各个网络实体的功能需求,特别是S-CSCF和AS之间精妙的“业务触发”机制。
深度解析 3GPP TS 23.218:第四、五章 IMS业务调度的“引擎”与“齿轮”
本文技术原理深度参考了3GPP TS 23.218 V18.0.0 (2024-03) Release 18规范中,作为规范核心功能定义的“Chapter 4 Architecture and information flows for IM multimedia session”和“Chapter 5 Functional requirements of network entities”。本文旨在为读者深入剖析IMS业务调度的“引擎”——业务交互机制(Service Interaction),并详细检视驱动这个引擎运转的精密“齿轮”——业务点触发器(SPT)和过滤规则(Filter Criteria)。
引言:从“交通规则”到“智能调度引擎”
在上一篇中,我们学习了IMS会话处理的“基石”,知道了S-CSCF是“智能交通枢纽”,iFC是“智能交通规则”。现在,我们要打开这个“交通枢纽”的引擎盖,看看它的“智能调度引擎”到底是如何根据这些“规则”,来指挥川流不息的信令“车流”的。
第四章和第五章,就是这份“引擎”的设计与制造说明书。
- 第四章 (Architecture and information flows): 提供了两个最基础的呼叫流程“示意图”(主叫和被叫),为我们理解信令的宏观走向提供了一个起点。
- 第五章 (Functional requirements of network entities): 则是这份引擎的核心技术白皮书。它详细定义了构成IMS业务生态的各个“零部件”(网络实体)的功能,并重点阐述了S-CSCF的**“过滤与触发”机制**,即整个调度引擎的核心算法。
今天,我们将扮演“引擎设计师”的角色,首先快速浏览基础的呼叫架构,然后重点拆解第五章中定义的业务交互“引擎”,看看它是如何通过SPT和Filter Criteria这两个精密“齿轮”的啮合,来实现IMS业务的灵活调度的。
1. 第四章 Architecture and information flows:IMS会话的“大动脉”
本章通过两个高度简化的场景,展示了一个基础的UE到UE会话的信令路径。
A basic UE-to-UE multimedia session is treated as the concatenation of a UE-originating multimedia session and a UE-terminating multimedia session. 4.1 Architecture for a UE-originating IP multimedia session 4.2 Architecture for a UE-terminating IP multimedia session
规范明确指出,这两个场景的详细定义在**TS 23.228(IMS总架构)**中,这里只是引用。
- 主叫流程 (UE-originating): 当美美呼叫小明时,信令的“大动脉”是:
美美UE -> P-CSCF -> S-CSCF (美美) -> ... -> S-CSCF (小明) -> P-CSCF -> 小明UE - 被叫流程 (UE-terminating): 对小明来说,信令的路径则是:
... -> I-CSCF (小明) -> S-CSCF (小明) -> P-CSCF -> 小明UE
关键点: 在这两个流程中,S-CSCF都处于信令路径的核心位置。对于主叫方,S-CSCF是业务逻辑的出口;对于被叫方,S-CSCF是业务逻辑的入口。这再次凸显了S-CSCF作为“智能交通枢纽”的核心地位。TS 23.218后续的所有内容,都是在详细阐述这个枢纽内部的运作机制。
2. 5.1 & 5.2 业务交互的“引擎”:过滤与触发机制
第五章的前两节,是整部规范的“灵魂”。它定义了S-CSCF是如何“思考”和“决策”的。
2.1 5.2.1 Service Point Triggers (SPTs) - “传感器”
Service Point Triggers (SPTs) are those points in the SIP signalling on which Filter Criteria can be set.
- 角色定位: SPT是S-CSCF调度引擎的**“传感器”。它定义了引擎需要“感知”**SIP信令的哪些特征点。
- SPT的“感知”维度:
any initial known or unknown SIP method: SIP方法。是INVITE(呼叫)?REGISTER(注册)?还是MESSAGE(消息)?registration type: 注册类型。是初次注册?刷新注册?还是去注册?presence or absence of ... header field: 头域存在性。信令中是否包含某个特定的头域,比如P-Asserted-Identity?content of ... header field or of the Request-URI: 内容匹配。某个头域或请求URI的内容,是否等于、包含或匹配某个正则表达式?direction of the request: 信令方向。这是主叫(UE-originating)?还是被叫(UE-terminating)?session description information: SDP内容。会话描述中,媒体类型是音频还是视频?编解码器是什么?
这些“传感器”极其强大,它们赋予了S-CSCF对SIP信令进行“像素级”感知的能力。
2.2 5.2.2 Filter Criteria (FC) - “规则引擎”
A Filter Criteria triggers one or more SPTs in order to send the related request to one specific application server.
- 角色定位: FC是调度引擎的**“规则库”和“执行逻辑”**。一份FC,就是一条完整的“IF-THEN”规则。
- FC的构成:
Trigger Point: 触发条件 (IF部分)。由一个或多个SPT通过逻辑运算(AND, OR, NOT)组合而成。Application Server address: 执行动作 (THEN部分)。如果条件满足,则将信令转发到这个指定的AS地址。Priority: 执行顺序。定义了这条规则在整个规则库中的检查优先级。Default handling: 异常处理。如果AS联系不上,是应该终止呼叫,还是继续执行后续的低优先级规则?
iFC (Initial Filter Criteria): 储存在HSS中的、与用户签约绑定的FC集合,就是iFC。
2.3 5.2.3 S-CSCF Filter Criteria processing - “引擎”的运作流程
本节详细描述了这个“引擎”在收到一个SIP请求后的完整“工作循环”。
On reception of any other request the S-CSCF shall:
- set up the list of filter criteria … according to their priority…
- parse the received request in order to find out the Service Point Triggers (SPTs) that are included in it;
- check whether the trigger points of the filter criteria with the next highest priority are matched by the SPTs of the request… b) if it matches the S-CSCF shall: … ii) forward the request via the ISC interface to the Application Server…
- repeat the above steps 2 and 3 for every filter criteria … until the last filter criteria has been checked;
- route the request based on normal SIP routing behaviour.
- 工作循环解读:
- 准备规则: S-CSCF收到请求后,首先从HSS下载或从本地缓存中,加载该用户的iFC列表,并按优先级排序。
- 解析请求: S-CSCF对收到的SIP请求进行“全身扫描”,提取出其中包含的所有SPT特征(如:这是一个INVITE请求,Request-URI是tel:12345,包含SDP,媒体是audio…)。
- 循环匹配: S-CSCF从优先级最高的iFC开始,逐条进行匹配。它用请求中提取出的SPT集合,去“碰撞”当前iFC的触发条件。
- 匹配成功与转发: 如果匹配成功,S-CSCF会暂停循环,并将请求通过ISC接口转发给该iFC指定的AS。
- AS返回与继续: AS处理完毕后,可能会将请求(可能已被修改)返回给S-CSCF。此时,S-CSCF会从刚才中断的地方,继续检查下一条低优先级的iFC。
- 匹配失败: 如果不匹配,则直接跳到下一条低优先级的iFC,继续循环。
- 循环结束与最终路由: 当所有iFC都检查完毕后,S-CSCF会执行默认的路由逻辑,即将呼叫发往被叫网络。
图示解读 (Figure 5.2.1: Application triggering architecture):
这张图完美地诠释了上述流程。一个SIP请求进入S-CSCF的Filter Criteria处理模块。该模块根据从HSS下载的iFC,可能会将请求通过ISC接口,依次送往Application Server(也可能通过sFC动态交互)。最终,在所有过滤规则执行完毕后,请求从S-CSCF的另一端(SIP)发出,前往下一个节点。
4. 架构的“增强包”:Transit Function与Border Control
第五章还定义了两个重要的“增强包”,以应对更复杂的网络场景。
4.1 5.2.4 & 5.2.5 Transit Function (转接功能)
A Transit Invocation Criteria triggers one or more SPTs in order to send the related request to one specific application server. The set of Transit Invocation Criteria is not user specific, but instead is based on e.g. the originating and terminating networks.
- 角色定位: Transit Function是一个类似于S-CSCF的“网络级”业务触发节点。
- 与S-CSCF的区别:
- S-CSCF: 处理用户签约的业务,其过滤规则(iFC)是用户特定的,从HSS下载。
- Transit Function: 处理网络的策略,例如,运营商可能规定“所有来自A网络的国际长途,都必须先经过一个‘国际信令翻译’AS进行处理”。它的过滤规则(
Transit Invocation Criteria)是本地配置在节点上的,与具体用户无关。
4.2 5.1.2A & 5.1.3 Border control concepts (边界控制)
An additional functionality called an ISC gateway function is defined… The functions of the ISC gateway function are as follows:
- network configuration hiding…
- screening of SIP signalling…
- 角色定位: ISC网关,可以看作是部署在S-CSCF和AS之间的**“防火墙”和“代理”**。
- 应用场景: 当AS由第三方服务提供商提供时,运营商可能不希望向其暴露自己核心网的内部拓扑和所有信令细节。此时,可以在ISC接口上插入一个ISC网关,来:
- 隐藏网络配置 (hiding): 隐藏S-CSCF的内部地址等信息。
- 信令筛选 (screening): 过滤掉一些敏感的或不必要的SIP头域。
FAQ环节
Q1:SPT(业务点触发器)和iFC(初始过滤规则)到底是什么关系? A1:是**“积木”和“模型”**的关系。
- SPT是最小的、不可再分的**“积木块”**。每一个SPT都代表一个原子性的、非真即假的判断条件(如“方法是否为INVITE?”)。
- iFC则是用这些“积木块”,通过逻辑胶水(AND, OR, NOT)搭建起来的**“模型”**。一个iFC定义了一个完整的、有具体业务含义的触发场景,并指向了一个明确的处理动作(转发给某个AS)。
Q2:S-CSCF的iFC处理流程,是“匹配一个就停”,还是“匹配所有”? A2:它是一个**“串行的、逐一匹配、可多次触发”的流程。S-CSCF会从高到低**遍历所有iFC。
- 如果遇到一个匹配的,它会暂停遍历,将请求发给对应的AS。
- 当请求从AS返回后,它会从刚才暂停的位置,继续向低优先级的iFC进行匹配。
- 这意味着,一个SIP请求,在离开S-CSCF之前,理论上可能被多个AS依次“接力”处理。这种“服务链(Service Chaining)”的能力,是IMS业务编排极其灵活的根源。
Q3:什么是“注册(REGISTER)”请求的特殊处理?
A3:REGISTER请求在iFC处理中非常特殊。规范在5.2.3节中指出,On reception of a REGISTER request, the S-CSCF shall send a third-party REGISTER request to each Application Server that matches the Filter Criteria...。
- 这意味着,对于
REGISTER请求,S-CSCF会一次性地找出所有匹配的iFC,并向所有相关的AS,并行地(或串行地)发送**第三方注册(third-party REGISTER)**请求。 - 这个动作,是为了让所有订阅了该用户注册状态的AS(如语音信箱AS、状态呈现AS),都能在第一时间得知“该用户已上线”,并获取其最新的联系地址。
Q4:如果一个AS处理失败或没有响应,会发生什么?
A4:iFC的Default handling(默认处理)参数会生效。
to continue verifying if the triggers of lower priority in the list match: S-CSCF会跳过这个失败的AS,继续检查下一条低优先级的iFC。to abandon verification ... and to release the dialogue: S-CSCF会终止整个呼叫流程,并向主叫方返回一个错误。 这个可配置的“熔断”机制,保证了单个AS的故障,不会轻易导致整个呼叫的雪崩。
Q5:这些复杂的过滤和触发机制,会不会导致呼叫建立的时延变得很长? A5:会增加时延,但3GPP对此进行了严格的性能要求和优化。
- 时延增加: 每经过一个AS,信令路径就增加了一个来回,时延必然会增加。一个复杂的业务链,可能会引入几十到上百毫秒的额外时延。
- 性能要求: 3GPP对S-CSCF和AS的处理能力、以及它们之间的ISC接口带宽,都有严格的性能指标要求,以确保这些额外的处理时延被控制在可接受的范围内。
- 优化: 运营商在设计iFC时,会进行精心的优化,将最常用、最耗时的业务,赋予最高的优先级,并尽量减少不必要的AS跳转。 这是一个在业务灵活性与呼叫性能之间的经典权衡。