Aller au contenu principal

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é​

Version1.22.0
Usageinstaller et configurer
Couchefonctionnelle (catalogue IA)
CatégorieInférence IA
Méthodes d'installationpodman
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXApache-2.0
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Composant de la plateformelivekit-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.

TypePaquetVersionLicenceDétails
image de conteneurdocker.io/livekit/sipv1.22.0Apache-2.0clé 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éthodeSystèmes d'exploitationArchitectures
podmanfamille 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​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
livekit-sipsip5090/udpoui
livekit-sipsip-tcp5090/tcpoui
livekit-siprtp20000-29999/udpoui
livekit-siphealth8590/tcpnon
livekit-sipmetrics6790/tcpoui

Paramètres du noyau​

ParamètreValeur
net.core.rmem_max5000000
net.core.wmem_max5000000

Services et connexions nécessaires​

Détail et résolution : voir Dépendances.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
podmanouiles images de conteneur du descripteur, exécutées par Podman sous systemd

Composants​

ComposantTypeMéthodes d'installationPorts
LiveKit SIP (livekit-sip)travailleurpodman5090/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 :

ComposantPlacement
livekit-sipmin 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 :

ComposantPlacement
livekit-sipmin 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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é​

Clusternatif (native)
Haute disponibilitéredondance (redundancy)
Basculecôté client (client)
Réplicationstockage partagé (shared-store)
Quorumaucun (none)
Découverteregistre (registry)
Point d'entréen'importe quel nœud (any-node)
Documentation officiellehttps://docs.livekit.io/transport/self-hosting/sip-server/
Référenceshttps://github.com/livekit/sip

Prérequis​

PrérequisDoit être hautement disponibleModesDescription
redisouiredundantRedis hautement disponible partagé avec le serveur LiveKit.

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
singleautonome (standalone)unique (single)-1Une passerelle, sans tolérance aux pannes.
redundantha (ha)actif-actif (active-active)-2Plusieurs 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ètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port SIP (sip_port)port5090-nonnonouiPort de signalisation SIP, UDP et TCP (joint par Kamailio et Asterisk).
Premier port RTP (rtp_port_start)port20000-nonnonouiDébut de la plage UDP des médias.
Dernier port RTP (rtp_port_end)port29999-nonnonouiFin de la plage UDP des médias (gardez la règle du pare-feu alignée).
Port de santé (health_port)port8590-nonnonnonPoint de santé HTTP (200 prêt, 429 chargé, 503 hors service), local à l'hôte.
Port des métriques (metrics_port)port6790-nonnonnonPort Prometheus.
Adresse externe NAT (external_ip)string(vide)^$|^[0-9]{1,3}(\.[0-9]{1,3}){3}$nonnonouiAdresse 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)-nonnonnonURL ws:// ou wss:// du serveur LiveKit (son répartiteur en mode distribué) ; vide : le premier serveur de la liaison livekit.

Sécurité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Masquer aux scanners (hide_inbound_port)booltrue-nonnonnonIgnorer un INVITE qu'aucun trunk ni règle de dispatch n'accepte au lieu d'y répondre.

Capacité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Appels par instance (max_active_calls)int0min 0, max 100000nonnonnonAppels 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é).

LiaisonFournie parType de connexionPoint d'accèsFacultativeQuand rien n'est liéDescription
livekitlivekit-signalnonlivekit est ajouté à l'installationServeur LiveKit des salles : paire de clés d'API et URL WebSocket (son redis_bus doit être activé).
redisredisredisredisnonredis est ajouté à l'installationLe Redis du serveur LiveKit : bus de messages et état des sessions SIP.

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
sipsiplivekit-sip5090 (sip_port)-----

Commandes​

CommandeComposantCibleDescription
Santé (health)livekit-siptous les hôtesSanté de chaque passerelle (prête, chargée ou hors service).
Journaux récents (logs)livekit-siphôte choisiDernières lignes du journal de la passerelle.

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
livekit-sipHTTP 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ôleTypeSignificationSévéritéComposants
sip_port_freeport_free {"param": "sip_port"}port 5090 libre sur l'hôtebloquanttous les composants
cpucpu_count {"min": 2}au moins 2 CPUavertissementtous 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​