Blog01-iFC — Initial Filter Criteria
Bố cục bài viết
Trang này
Ngày tạo
10/08/2026
Cập nhật
Lượt xem
6
Đọc
6m
01-iFC — Initial Filter Criteria
iFC là gì?
iFC (Initial Filter Criteria) là một tập hợp các rules/điều kiện lọc được lưu trong UDM/HSS, gắn với từng subscriber. S-CSCF tải iFC về khi UE đăng ký IMS (SIP REGISTER), sau đó dùng iFC để quyết định có cần forward SIP message tới Application Server (TAS) hay không.
Nói đơn giản: iFC là bảng routing rules của S-CSCF để gọi ra các dịch vụ bổ sung.
iFC nằm ở đâu trong luồng IMS?
UDM/HSS
|
| (Cx: SAR/SAA — S-CSCF tải iFC khi UE register)
|
S-CSCF <-- giữ iFC trong bộ nhớ suốt session
|
| Khi có SIP message (INVITE, SUBSCRIBE, MESSAGE...):
| S-CSCF chạy từng iFC rule theo Priority
|
|-- match? --> forward tới AS/TAS (qua ISC interface)
|-- no match? --> tiếp tục route bình thường
Cấu trúc của một iFC rule
Mỗi iFC rule gồm 3 phần chính:
+---------------------------+
| iFC Rule |
| |
| Priority : 1 | <-- số nhỏ = ưu tiên cao hơn
| Trigger Point: SPT list | <-- điều kiện match
| Application : AS URI | <-- forward tới đâu
| Default Handling: ... | <-- nếu AS không trả lời thì sao
+---------------------------+
Priority
- Số nguyên, càng nhỏ càng được chạy trước
- S-CSCF chạy từng rule theo thứ tự priority tăng dần
Service Point Triggers (SPT)
Điều kiện để rule được kích hoạt. Có thể kết hợp AND/OR:
| SPT loại | Ví dụ |
|---|---|
| Method | INVITE, REGISTER, SUBSCRIBE |
| SIP Header | P-Asserted-Identity, Request-URI |
| Session Case | Originating, Terminating, Roaming |
| Request-URI | sip:+84xxx@ims.vn |
| SDPLine | codec, media type trong SDP body |
Application Server URI
URI của TAS/AS sẽ nhận SIP message:
sip:tas.ims.operator.com
sip:voicemail.ims.operator.com
sip:barring.ims.operator.com
Default Handling
Hành động khi AS không phản hồi:
SESSION_CONTINUED— bỏ qua AS, tiếp tục routeSESSION_TERMINATED— hủy call (trả 500)
Ví dụ iFC rules thực tế
iFC 1 — Call Forwarding (Terminating)
Priority : 1
Session Case : Terminating
Method : INVITE
AS URI : sip:tas.ims.operator.com
Default Handle : SESSION_CONTINUED
→ Mọi INVITE tới UE đều bị TAS kiểm tra có CF không
iFC 2 — Call Barring (Originating)
Priority : 2
Session Case : Originating
Method : INVITE
AS URI : sip:barring.ims.operator.com
Default Handle : SESSION_TERMINATED
→ Mọi INVITE từ UE đều kiểm tra có bị chặn không
iFC 3 — Voicemail (Terminating, only if UE unreachable)
Priority : 5
Session Case : Terminating
Method : INVITE
SIP Header : Reason: SIP;cause=480
AS URI : sip:voicemail.ims.operator.com
Default Handle : SESSION_CONTINUED
→ Chỉ trigger khi UE trả 480 Temporarily Unavailable
iFC 4 — Originating Presence / RCS
Priority : 10
Session Case : Originating
Method : PUBLISH
AS URI : sip:presence.ims.operator.com
Default Handle : SESSION_CONTINUED
iFC và Session Case
Session Case xác định chiều của cuộc gọi:
+---------------------+------------------------------------------+
| Session Case | Ý nghĩa |
+---------------------+------------------------------------------+
| Originating | UE đang GỌI đi (MO) |
| Terminating | UE đang ĐƯỢC GỌI (MT) |
| Originating-Unregis | UE chưa đăng ký nhưng có originating call|
| Terminating-Unregis | UE chưa đăng ký nhưng có terminating call|
+---------------------+------------------------------------------+
Cùng một TAS nhưng iFC Originating và Terminating có thể khác nhau hoàn toàn.
Luồng iFC trong MO Call
UE S-CSCF TAS (iFC 1) TAS (iFC 2)
| | | |
|== SIP INVITE =====>| | |
| | | |
| | [chạy iFC theo priority] |
| | | |
| |-- iFC 1 match? --->| |
| | (Originating, | |
| | INVITE) | |
| | |-- xử lý CLIR/barring
| | |-- trả lời continue |
| |<-- 100 Trying -----| |
| | | |
| |-- iFC 2 match? ----|-------- ---------->|
| | (Originating, | |
| | INVITE) | |
| | | |-- xử lý ODB
| | | |-- trả continue
| |<------------------|<-------------------|
| | | |
| | [hết iFC chain → route INVITE tới MT] |
| | | |
Luồng iFC trong MT Call
Calling UE S-CSCF TAS Voicemail AS
| | | |
|== SIP INVITE =====>| | |
| | | |
| | [chạy iFC Terminating] |
| | | |
| |-- iFC 1: INVITE, Terminating --------->|
| | | |
| | | [TAS kiểm tra CF profile từ UDM]
| | | |
| | | CFU? → rewrite R-URI ngay
| | | CFB/CFNR? → attempt MT trước
| | | |
| | | CFNR: timer 15s expire
| | |-- rewrite R-URI -->|
| | | → voicemail |
| |<-- new INVITE -----| |
| | (to voicemail) | |
| |-- INVITE -------------------------------->
| | | |
iFC vs oDF vs tDF
Trong 3GPP có 3 loại Filter Criteria:
+------+---------------------+-----------------------------------+
| Tên | Viết đầy đủ | Dùng khi nào |
+------+---------------------+-----------------------------------+
| iFC | Initial FC | SIP initial request (INVITE mới) |
| sFC | Subsequent FC | SIP subsequent request (re-INVITE)|
| rFC | Registration FC | SIP REGISTER |
+------+---------------------+-----------------------------------+
Trong thực tế triển khai, iFC được dùng nhiều nhất. sFC và rFC ít phổ biến hơn.
iFC được lưu ở đâu và ai quản lý?
+-------------------+ +-------------------+
| UDM / HSS | | S-CSCF |
| | | |
| Subscriber DB | | iFC cache |
| +-------------+ | | (per UE, |
| | SUPI/IMPU | | Cx SAA | loaded at |
| | iFC rules |--+--------->| REGISTER) |
| | service | | | |
| | profile | | | |
| +-------------+ | +-------------------+
+-------------------+
- Lưu trữ: UDM (5G) hoặc HSS (4G/IMS legacy)
- Tải xuống: S-CSCF gửi
Cx SAR(Server Assignment Request), UDM trảCx SAAkèm toàn bộ service profile bao gồm iFC - Cập nhật: Khi operator thay đổi dịch vụ subscriber trên UDM, S-CSCF cần re-register hoặc UDM push update qua
Cx PPR(Push Profile Request)
iFC trong open-source IMS
| Platform | iFC support |
|---|---|
| Kamailio | Có — module ims_isc, đọc iFC từ DB |
| OpenIMS Core | Có — S-CSCF thực thi iFC chain |
| Open5GS IMS | Có cơ bản — iFC qua Cx với HSS |
| Asterisk | Không — Asterisk là B2BUA, không phải S-CSCF |
| OpenSIPS | Có module ims_registrar_scscf hỗ trợ iFC |
Tóm tắt
iFC = rule lọc SIP gắn với subscriber, lưu trong UDM/HSS
Khi S-CSCF nhận SIP message:
1. Lấy iFC của UE (đã cache từ lúc REGISTER)
2. Duyệt từng rule theo Priority tăng dần
3. Nếu SPT conditions match → fork SIP tới AS/TAS
4. AS xử lý (CF, barring, voicemail...) → trả về S-CSCF
5. S-CSCF tiếp tục chạy rule tiếp theo
6. Hết chain → route SIP bình thường
Không có iFC → không có supplementary services trong IMS
iFC là "dây nối" giữa S-CSCF và TAS