Перейти до змісту

10.4 Що ще треба навколо Kamailio

[!IMPORTANT] Kamailio — це сигнальна плоскість CSCF, і нічого більше. Він реєструє користувачів, маршрутизує SIP і запитує Diameter-peer'и. Він не зберігає абонентів, не вирішує політику, не тарифікує виклики і не торкається RTP. Робочий IMS — це Kamailio плюс системи навколо, описані нижче.

Межа

Kamailio (CSCF) робить Kamailio не робить
SIP-реєстрацію і маршрутизацію (P/I/S-CSCF) Зберігає базу абонентів
Челендж автентифікації (на векторах HSS) Генерує auth-вектори
Тригерить сервіси через iFC/ISC Сам є application-сервером
Просить QoS/медіа-політику (Rx) Вирішує чи енфорсить політику
Просить білінг (Ro/Rf) Тарифікує чи виставляє рахунок
Релеїть чи транскодить медіа (RTP)

Усе в правій колонці — окрема система.

Компоненти навколо

flowchart TB
    subgraph SIG["Сигналізація — Kamailio"]
        P[P-CSCF]
        I[I-CSCF]
        S[S-CSCF]
    end
    subgraph SUB["Абонент і політика"]
        HSS[(HSS)]
        PCRF[(PCRF / PCF)]
        OCS[(OCS / CHF)]
        DRA{{DRA / SLF}}
    end
    subgraph MEDIA["Медіа і доступ"]
        RTP[rtpengine]
        CORE[EPC / 5GC<br/>SMF · UPF]
        DNS[DNS<br/>ENUM/NAPTR/SRV]
        DB[(БД<br/>MariaDB / Valkey)]
    end

    P --- I --- S
    I -.Cx.-> DRA -.-> HSS
    S -.Cx.-> DRA
    P -.Rx.-> PCRF
    S -.Ro/Rf.-> OCS
    S --- DB
    P --- RTP
    CORE --- P
    P --- DNS

    classDef cscf fill:#1f6feb,stroke:#1f6feb,color:#fff
    classDef sub fill:#bf8700,stroke:#bf8700,color:#fff
    classDef media fill:#238636,stroke:#238636,color:#fff
    class P,I,S cscf
    class HSS,PCRF,OCS,DRA sub
    class RTP,CORE,DNS,DB media

HSS — Home Subscriber Server. База абонентів і генератор auth-векторів. Kamailio говорить із ним по Cx. Опенсорс-вибір, що працює: open5gs (його HSS-функція).

PCRF / PCF — політика. Вирішує, чи медіа-потік дозволений і який QoS отримає, і каже ядру підняти виділений bearer. P-CSCF говорить із ним по Rx. Знову open5gs.

OCS / CHF — білінг. Онлайн-білінг (prepaid-баланс, резервування кредиту) і офлайн (генерація CDR). S-CSCF говорить по Ro/Rf. Опенсорс-вибір: CGRateS — потужний real-time rating-движок із Diameter-агентом.

DRA / SLF — Diameter-маршрутизація. У будь-чому складнішому за single-HSS-лаб ви ставите Diameter Routing Agent між CSCF та HSS/PCRF/OCS, щоб CSCF мав один Diameter-peer замість N. Опенсорс-вибір: freeDiameter як relay/DRA.

rtpengine — медіа. Релеїть (і опційно транскодить/шифрує) RTP і робить ICE/SRTP для WebRTC-доступу. Kamailio керує нею через модуль rtpengine, але сам медіа не несе.

DNS. IMS-маршрутизація сильно спирається на DNS: NAPTR/SRV для пошуку CSCF, ENUM для перетворення tel:-номерів у SIP-URI. Поламаний резолвер ламає маршрутизацію викликів так, що це виглядає як баги CSCF. CoreDNS — чистий вибір (і він уже дефолт у Kubernetes).

БД. Стан реєстрації S-CSCF потребує персистентності, щоб пережити рестарти. MariaDB/MySQL — тестований шлях для ims_usrloc_scscf (захардкоджений SQL — див. 10.2); Valkey/Redis легший і саме його хоче rtpengine для HA, але потребує обробки схеми на боці Kamailio.

EPC / 5GC-ядро. Пристрою потрібен IP-bearer і маршрут до P-CSCF, перш ніж усе вищесказане застосовне. Це пакетне ядро — SMF/UPF у 5G, PGW у 4G — яке також виявляє адресу P-CSCF і (разом із PCRF) піднімає виділений голосовий bearer. open5gs покриває і це.

Моніторинг. І Diameter, і SIP падають тихо; вам потрібні Prometheus/Grafana для метрик і Loki-подібна агрегація логів із першого дня, плюс packet capture (sip || diameter || gtpv2) для неминучого дебагу flow'ів.

Мінімальний повний стек

Kamailio (P/I/S-CSCF) + open5gs (HSS, PCRF, SMF, UPF) + CGRateS (OCS) + freeDiameter (DRA) + rtpengine (медіа) + CoreDNS + БД + Prometheus/Grafana/Loki + тестовий UE.

Це список компонентів, зібраний у стенді з 10.5.


← Зміст · ← 10.3 Сторона Diameter · Далі: 10.5 Софтовий IMS-стенд →