Autocommutateur de la téléphonie Navin : PJSIP derrière Kamailio, plan de numérotation, files d'attente, messagerie vocale, ConfBridge, enregistrements MixMonitor, ARI, AMI, événements CDR et CEL et métriques Prometheus. Un nœud, ou un pool de nœuds indépendants derrière le dispatcher de Kamailio. Les tenants, extensions, trunks, SVI et files sont livrés par Navin Enterprise par l'AMI, jamais par le Manager.
Généré depuis catalog/services/asterisk.yaml : ne pas modifier à la main.
Résumé
| |
|---|
| Version | 20.6.0 |
| Usage | installer et configurer |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Réseau |
| Méthodes d'installation | package |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| |
|---|
| Identifiant SPDX | GPL-2.0-only WITH Asterisk-linking-protocols-exception |
| Politique de licence | exception de licence |
| Exception de licence | LEX-024 (en attente de la décision du client) |
| Exceptions de licence de ses dépendances | LEX-027 (en attente de la décision du client), LEX-028 (en attente de la décision du client) |
| Remarque de licence | GPL-2.0-only avec l'exception de liaison et de protocoles d'Asterisk (LICENSE d'Asterisk 20.6.0 : liaison avec OpenSSL permise, les applications AMI, AGI et ARI n'ont pas à être sous GPL) : un programme séparé utilisé par ses interfaces réseau (SIP, AMI, ARI) ; aucun code d'Asterisk n'est lié à Navin. Le bundle hors ligne redistribue les paquets Ubuntu avec leurs notices et leurs sources. |
| Composant de la plateforme | asterisk |
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.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|
package | famille Debian (apt) | x86_64, aarch64 (non restreintes par le descripteur) |
- Pas de méthode
package sur la famille RHEL (dnf) : Aucun paquet maintenu d'Asterisk LTS n'existe pour RHEL : EPEL 8 et EPEL 9 fournissent Asterisk 18.26.4, dont le support amont a pris fin le 2025-10-20, et EPEL 10 n'en fournit aucun. Placer les nœuds PBX sur Ubuntu 24.04 (universe : Asterisk 20.6.0).
- Méthode
package de la famille Debian (apt) limitée à Ubuntu 24.04 : Debian 12 et 13 n'ont aucun paquet asterisk et Ubuntu 22.04 n'a que la 18.10, hors support amont depuis le 2025-10-20.
Unités de la distribution masquées par la méthode package : asterisk.service. Le postinst des paquets les démarre avec la configuration d'origine : juste après l'installation, l'agent les arrête, les désactive et les masque (tâche systemd.mask, seulement si leur fichier d'unité appartient à un paquet installé), et le composant tourne dans sa propre unité navin-<service>-<component>.service. La désinstallation les démasque seulement.
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 1024 Mo de mémoire (bloquant,
memory).
- au moins 5120 Mo libres pour
/var/lib/navin (avertissement, disk).
- une horloge synchronisée (avertissement,
time_sync).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|
asterisk | sip_udp | 5070/udp | oui |
asterisk | sip_tcp | 5070/tcp | oui |
asterisk | sip_tls | 5072/tcp | oui |
asterisk | ari_http | 8088/tcp | oui |
asterisk | ari_http_local | 8088/tcp | non |
asterisk | ari_tls | 8089/tcp | oui |
asterisk | ami | 5038/tcp | oui |
asterisk | ami_local | 5038/tcp | non |
asterisk | ami_tls | 5039/tcp | oui |
asterisk | rtp | 10000-19999/udp | oui |
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 |
|---|
package | oui | les paquets système du descripteur, installés par le gestionnaire de paquets de l'hôte |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|
Nœud Asterisk (asterisk) | maître | package | 5070/udp, 5070/tcp, 5072/tcp, 8088/tcp, 8088/tcp, 8089/tcp, 5038/tcp, 5038/tcp, 5039/tcp, 10000-19999/udp |
Nœud unique (single) (par défaut)
Un seul nœud Asterisk.
Ce que le mode déploie :
| Composant | Placement |
|---|
asterisk | min 1, max 1 |
Pool derrière Kamailio (pool)
Deux nœuds Asterisk indépendants ou plus, chacun destination du dispatcher de Kamailio ; Navin Enterprise livre la configuration d'un tenant à chaque nœud de son pool.
Ce que le mode déploie :
| Composant | Placement |
|---|
asterisk | 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 PBX Asterisk. La carte affiche la licence GPL-2.0-only WITH Asterisk-linking-protocols-exception 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), pool. 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 (cdr_db) 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é
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 | Un nœud : sa perte arrête tous les appels jusqu'à sa restauration. |
pool | ha (ha) | actif-actif (active-active) | - | 2 | Nœuds indépendants derrière le dispatcher de Kamailio : les nouveaux appels vont aux autres nœuds dès que la sonde OPTIONS du dispatcher déclare un nœud hors service ; les appels en cours d'un nœud perdu sont perdus. |
Remarques
- Aucun état d'appel n'est partagé entre les nœuds d'un pool : les appels en cours d'un nœud perdu sont perdus, seuls les nouveaux appels sont routés vers les autres nœuds.
- Navin Enterprise livre la configuration de chaque tenant à chaque nœud de son pool par l'AMI (CreateConfig, UpdateConfig) et l'active par les commandes de rechargement. Les fichiers *_navin.conf ne sont pas des fichiers du descripteur : prepare.sh les crée vides s'ils sont absents à chaque démarrage, une application de configuration ne les écrit donc jamais.
- Paquet : Ubuntu 24.04 universe, Asterisk 20.6.0. Asterisk 20 LTS ne reçoit plus que des correctifs de sécurité depuis le 2026-10-19 et arrive en fin de vie le 2027-10-19 (docs.asterisk.org, Asterisk Versions) : prévoir avant le passage à Asterisk 22 LTS (fin de vie le 2029-10-16). Les mises à jour de sécurité des paquets universe viennent avec Ubuntu Pro (ESM Apps). Debian 12 et 13 ne fournissent aucun paquet Asterisk ; Ubuntu 22.04 fournit Asterisk 18, hors support : le planificateur refuse ces nœuds (packages_releases) et l'épinglage de version fait refuser l'installation par apt.
- Le paquet Ubuntu active et démarre asterisk.service avec /etc/asterisk : l'agent la désactive et la masque après l'installation des paquets (distribution_units), et prepare.sh refuse encore de démarrer le nœud du Manager tant que cette unité tourne.
- Le serveur HTTP d'Asterisk n'a pas de filtre de source : l'ARI et /metrics sont protégés par l'adresse d'administration privée (une adresse publique est refusée au démarrage), le pare-feu d'hôte de l'installation durcie, le mot de passe ARI et TLS ; l'AMI filtre aussi ses sources (permit de admin_networks). /metrics ne demande pas de mot de passe.
- Modules non chargés (modules.conf) : chan_sip et les autres pilotes de canal sauf PJSIP, app_system et func_shell (shell depuis le plan de numérotation), pbx_spool (fichiers d'appel), les moteurs realtime et ODBC, les autres moteurs CDR et CEL, res_http_post, le provisionnement des téléphones, SNMP, HEP, STIR/SHAKEN.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Port SIP (sip_port) | port | 5070 | - | non | non | oui | Port SIP (UDP et TCP) du réseau de signalisation interne, joint depuis Kamailio uniquement (ADR-0173). |
Port SIP TLS (sip_tls_port) | port | 5072 | - | non | non | oui | Port SIP sur TLS, ouvert seulement quand TLS est activé. |
Adresse SIP (sip_address) | string | (vide) | - | non | non | oui | Adresse du réseau de signalisation interne sur laquelle écoutent les transports SIP ; vide : l'adresse de l'hôte. |
Adresse d'administration (admin_address) | string | (vide) | - | non | non | oui | Adresse du réseau d'administration sur laquelle écoutent l'AMI, l'ARI et /metrics ; vide : l'adresse de l'hôte. Jamais une adresse publique. |
Port HTTP (http_port) | port | 8088 | - | non | non | oui | Port HTTP de l'ARI et de /metrics sur l'adresse d'administration ; sur la boucle locale seulement quand TLS est activé. |
Port HTTPS (https_port) | port | 8089 | - | non | non | oui | Port HTTPS de l'ARI et de /metrics sur l'adresse d'administration (TLS activé). |
Port AMI (ami_port) | port | 5038 | - | non | non | oui | Port de l'Asterisk Manager Interface sur l'adresse d'administration ; sur la boucle locale seulement quand TLS est activé. |
Port AMI TLS (ami_tls_port) | port | 5039 | - | non | non | oui | Port de l'AMI sur TLS sur l'adresse d'administration (TLS activé). |
Média
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Premier port RTP (rtp_start) | int | 10000 | min 1024, max 19000 | non | non | oui | Premier port UDP de la plage RTP, SRTP et DTLS-SRTP ; la plage se termine à 19999 (ADR-0173). |
Adresse média externe (external_media_address) | string | (vide) | - | non | non | non | Adresse publique annoncée dans le SDP quand l'hôte est derrière une NAT (external_media_address des transports) ; vide : aucune. (avancé) |
Serveur STUN (stun_server) | string | (vide) | - | non | non | non | Serveur STUN (hôte:port) utilisé pour collecter les candidats ICE des appels WebRTC ; vide : candidats de l'hôte seulement. (avancé) |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Réseaux sources SIP (sip_networks) | list | ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] | - | non | non | non | Réseaux autorisés à envoyer du SIP à Asterisk (acl PJSIP) : les hôtes Kamailio et LiveKit SIP. Toute autre source est refusée. |
Réseaux sources d'administration (admin_networks) | list | ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"] | - | non | non | non | Réseaux autorisés à se connecter à l'AMI (permit de manager.conf, la boucle locale est toujours autorisée). |
TLS (tls_enabled) | bool | false | - | non | non | oui | Servir le SIP sur TLS, l'ARI et /metrics en HTTPS et l'AMI sur TLS avec le certificat de l'autorité du Manager ; les écoutes HTTP et AMI en clair restent alors sur la boucle locale de l'hôte. Le SRTP (res_srtp) est toujours disponible. |
Utilisateur ARI (ari_username) | string | navin | ^[a-z][a-z0-9_-]{2,31}$ | non | non | non | Utilisateur ARI de Navin Enterprise (ari.conf). |
Mot de passe ARI (ari_password) | password | généré | - | non | oui | non | Mot de passe de l'utilisateur ARI, généré, jamais affiché. |
Utilisateur AMI (ami_username) | string | navin | ^[a-z][a-z0-9_-]{2,31}$ | non | non | non | Utilisateur AMI de Navin Enterprise (manager.conf), classes config, command, system, call, reporting, originate, agent et dialplan. |
Secret AMI (ami_secret) | password | généré | - | non | oui | non | Secret de l'utilisateur AMI, généré, jamais affiché. |
Enregistrements d'appels
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
CDR et CEL dans PostgreSQL (cdr_database) | bool | false | - | non | non | oui | Écrire aussi chaque enregistrement CDR et CEL dans la base PostgreSQL de la liaison cdr_db (cdr_pgsql, cel_pgsql), une copie durable propre à l'infrastructure. Les événements AMI (cdr_manager, cel_manager) restent actifs. |
Réglages
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Appels maximaux (max_calls) | int | 0 | min 0, max 100000 | non | non | non | Nombre maximal de canaux simultanés du nœud (maxcalls), 0 pour aucune limite ; les quotas par tenant sont appliqués par Kamailio et Navin Enterprise. |
Pays des tonalités (tone_country) | enum | fr | fr, be, ch, de, uk, us | non | non | non | Tonalités de progression d'appel jouées par défaut (indications.conf). |
Langue par défaut (default_language) | string | en | ^[a-z]{2}(_[A-Z]{2})?$ | non | non | non | Langue des messages quand un canal n'en fixe aucune (les sons de base en anglais sont installés). |
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 |
|---|
cdr_db | postgresql | postgresql | sql | oui | reste non liée (facultative) | Base PostgreSQL facultative qui reçoit une copie durable des enregistrements CDR et CEL (cdr_pgsql, cel_pgsql) quand cdr_database est activé. |
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 |
|---|
ari | http | asterisk | 8088 (http_port) | /ari | - | username | password | - |
ari_tls | https | asterisk | 8089 (https_port) | /ari | tls_enabled | username | password | - |
ami | ami | asterisk | 5038 (ami_port) | - | - | username | secret | - |
ami_tls | ami+tls | asterisk | 5039 (ami_tls_port) | - | tls_enabled | username | secret | - |
sip | sip | asterisk | 5070 (sip_port) | - | - | transports | - | - |
sip_tls | sips | asterisk | 5072 (sip_tls_port) | - | tls_enabled | transports | - | - |
Commandes
| Commande | Composant | Cible | Description |
|---|
État du nœud (status) | asterisk | tous les hôtes | Version, durée de fonctionnement, canaux et appels actifs de chaque nœud. |
Contacts PJSIP (pjsip_contacts) | asterisk | tous les hôtes | Contacts enregistrés et leur état de qualification sur chaque nœud. |
Points de terminaison PJSIP (pjsip_endpoints) | asterisk | tous les hôtes | Points de terminaison chargés sur chaque nœud (livrés par Navin Enterprise). |
Canaux actifs (channels) | asterisk | hôte choisi | Canaux actifs d'un nœud. |
Recharger la configuration (reload) | asterisk | tous les hôtes | Recharge la configuration de chaque nœud sans couper les appels (core reload). |
Redémarrage en douceur (graceful_restart) | asterisk | hôte choisi | Redémarre un nœud quand son dernier appel est terminé, en refusant les nouveaux appels entre temps (core restart gracefully). Drainer d'abord le nœud dans le dispatcher de Kamailio. (demande une confirmation) |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|
asterisk | TCP {{ config.sip_address or host.ip or '127.0.0.1' }}:{{ config.sip_port }} | 60 tentatives ; intervalle 2 s ; délai 3 s |
asterisk | HTTP http://{{ config.admin_address or host.ip or '127.0.0.1' }}:{{ config.http_port }}/metrics | Attendu 200 ; Attendu asterisk_core_uptime_seconds ; 30 tentatives ; intervalle 2 s ; délai 5 s |
asterisk | HTTP https://{{ host.fqdn }}:{{ config.https_port }}/metrics | Attendu 200 ; Attendu asterisk_core_uptime_seconds ; 30 tentatives ; intervalle 2 s ; délai 5 s |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|
{{ paths.etc }}/check.sh | 10 tentatives ; intervalle 3 s ; délai 60 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|
memory | memory_mb {"min": 1024} | au moins 1024 Mo de mémoire | bloquant | tous les composants |
disk | disk_free_mb {"path": "/var/lib/navin", "min": 5120} | au moins 5120 Mo libres pour /var/lib/navin | avertissement | tous les composants |
sip_port_free | port_free {"param": "sip_port"} | port 5070 libre sur l'hôte | bloquant | tous les composants |
ami_port_free | port_free {"param": "ami_port"} | port 5038 libre sur l'hôte | bloquant | tous les composants |
http_port_free | port_free {"param": "http_port"} | port 8088 libre sur l'hôte | bloquant | tous les composants |
time_sync | time_sync {} | une horloge synchronisée | avertissement | tous les composants |
Sauvegarde et restauration
Archive du répertoire de configuration (fichiers système et fichiers *_navin.conf de Navin Enterprise), de la base astdb, des clés et de la messagerie vocale du premier nœud. Les enregistrements ne sont pas conservés : Navin Enterprise les déplace vers SeaweedFS.
| |
|---|
| Format | asterisk-files |
| Composant | asterisk |
| Fichiers | {{ backup.dir }}/asterisk.tar.gz |
| Test de restauration | oui |
| Instances arrêtées pendant la restauration | oui |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Documentation amont