LiveKit SIP (livekit-sip)
Passerelle SIP qui fait entrer les appels téléphoniques dans les salles LiveKit (INVITE entrant, appel sortant CreateSIPParticipant, transfert TransferSIPParticipant par SIP REFER). Elle ne parle au serveur LiveKit que par Redis ; Navin Enterprise crée ses trunks et ses règles de dispatch par l'API LiveKit.
Généré depuis catalog/services/livekit-sip.yaml : ne pas modifier à la main.
Résumé
| |
|---|
| Version | 1.22.0 |
| Usage | installer et configurer |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Inférence IA |
| Méthodes d'installation | podman |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| |
|---|
| Identifiant SPDX | Apache-2.0 |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | livekit-sip |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|
| image de conteneur | docker.io/livekit/sip | v1.22.0 | Apache-2.0 | clé d'image sip, utilisée par livekit-sip, condensé sha256:ccca91b38e57b0565d965ee8e7db698f0d7fd1a44a4018c4cacae14eb95bed10 |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 2 CPU (avertissement,
cpu).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|
livekit-sip | sip | 5090/udp | oui |
livekit-sip | sip-tcp | 5090/tcp | oui |
livekit-sip | rtp | 20000-29999/udp | oui |
livekit-sip | health | 8590/tcp | non |
livekit-sip | metrics | 6790/tcp | oui |
Paramètres du noyau
| Paramètre | Valeur |
|---|
net.core.rmem_max | 5000000 |
net.core.wmem_max | 5000000 |
Services et connexions nécessaires
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|
podman | oui | les images de conteneur du descripteur, exécutées par Podman sous systemd |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|
LiveKit SIP (livekit-sip) | travailleur | podman | 5090/udp, 5090/tcp, 20000-29999/udp, 8590/tcp, 6790/tcp |
Instance unique (single) (par défaut)
Une seule passerelle SIP.
Ce que le mode déploie :
| Composant | Placement |
|---|
livekit-sip | min 1, max 1 |
Redondant (redundant)
Plusieurs passerelles SIP sur le même Redis, Kamailio répartit les appels entre elles.
Ce que le mode déploie :
| Composant | Placement |
|---|
livekit-sip | min 2, recommandé 2 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez LiveKit SIP. La carte affiche la licence Apache-2.0 et les dépendances dont l'installation a besoin.
-
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : single (par défaut), redundant. Chaque mode déploie les composants listés dans Méthodes et modes d'installation.
-
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (livekit, redis) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
Prérequis
| Prérequis | Doit être hautement disponible | Modes | Description |
|---|
redis | oui | redundant | Redis hautement disponible partagé avec le serveur LiveKit. |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|
single | autonome (standalone) | unique (single) | - | 1 | Une passerelle, sans tolérance aux pannes. |
redundant | ha (ha) | actif-actif (active-active) | - | 2 | Plusieurs passerelles inscrites sur le bus Redis ; Kamailio envoie chaque nouvel appel à une passerelle que sa sonde OPTIONS voit en service. |
Remarques
- Un appel vit sur une passerelle : la perte de cette passerelle coupe ses appels en cours ; les nouveaux appels vont aux autres passerelles.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Port SIP (sip_port) | port | 5090 | - | non | non | oui | Port de signalisation SIP, UDP et TCP (joint par Kamailio et Asterisk). |
Premier port RTP (rtp_port_start) | port | 20000 | - | non | non | oui | Début de la plage UDP des médias. |
Dernier port RTP (rtp_port_end) | port | 29999 | - | non | non | oui | Fin de la plage UDP des médias (gardez la règle du pare-feu alignée). |
Port de santé (health_port) | port | 8590 | - | non | non | non | Point de santé HTTP (200 prêt, 429 chargé, 503 hors service), local à l'hôte. |
Port des métriques (metrics_port) | port | 6790 | - | non | non | non | Port Prometheus. |
Adresse externe NAT (external_ip) | string | (vide) | ^$|^[0-9]{1,3}(\.[0-9]{1,3}){3}$ | non | non | oui | Adresse IPv4 publique annoncée en SIP et en SDP quand l'hôte est derrière une NAT un pour un (nat_1_to_1_ip) ; vide : l'adresse de l'hôte. |
URL LiveKit (livekit_url) | string | (vide) | - | non | non | non | URL ws:// ou wss:// du serveur LiveKit (son répartiteur en mode distribué) ; vide : le premier serveur de la liaison livekit. |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Masquer aux scanners (hide_inbound_port) | bool | true | - | non | non | non | Ignorer un INVITE qu'aucun trunk ni règle de dispatch n'accepte au lieu d'y répondre. |
Capacité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Appels par instance (max_active_calls) | int | 0 | min 0, max 100000 | non | non | non | Appels qu'une instance accepte avant de se déclarer chargée ; 0 : CPU seul (max_cpu_utilization 0,9). |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|
livekit | livekit | - | signal | non | livekit est ajouté à l'installation | Serveur LiveKit des salles : paire de clés d'API et URL WebSocket (son redis_bus doit être activé). |
redis | redis | redis | redis | non | redis est ajouté à l'installation | Le Redis du serveur LiveKit : bus de messages et état des sessions SIP. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|
sip | sip | livekit-sip | 5090 (sip_port) | - | - | - | - | - |
Commandes
| Commande | Composant | Cible | Description |
|---|
Santé (health) | livekit-sip | tous les hôtes | Santé de chaque passerelle (prête, chargée ou hors service). |
Journaux récents (logs) | livekit-sip | hôte choisi | Dernières lignes du journal de la passerelle. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|
livekit-sip | HTTP http://127.0.0.1:{{ config.health_port }}/ | Attendu 200, 429 ; 30 tentatives ; intervalle 2 s ; délai 3 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|
sip_port_free | port_free {"param": "sip_port"} | port 5090 libre sur l'hôte | bloquant | tous les composants |
cpu | cpu_count {"min": 2} | au moins 2 CPU | avertissement | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.log }}.
Liens rapides
- Métriques :
http://{{ host.fqdn }}:{{ config.metrics_port }}/metrics
Documentation amont