Skip to content
LIVE FEED

Blog01-iFC — Initial Filter Criteria

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ạiVí dụ
MethodINVITE, REGISTER, SUBSCRIBE
SIP HeaderP-Asserted-Identity, Request-URI
Session CaseOriginating, Terminating, Roaming
Request-URIsip:+84xxx@ims.vn
SDPLinecodec, 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 route
  • SESSION_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 SAA kè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

PlatformiFC support
KamailioCó — module ims_isc, đọc iFC từ DB
OpenIMS CoreCó — S-CSCF thực thi iFC chain
Open5GS IMSCó cơ bản — iFC qua Cx với HSS
AsteriskKhông — Asterisk là B2BUA, không phải S-CSCF
OpenSIPSCó 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
Contact
Facebook
TOP