Aller au contenu principal

PBX Asterisk (asterisk)

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

Version20.6.0
Usageinstaller et configurer
Couchefonctionnelle (catalogue IA)
CatégorieRéseau
Méthodes d'installationpackage
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXGPL-2.0-only WITH Asterisk-linking-protocols-exception
Politique de licenceexception de licence
Exception de licenceLEX-024 (en attente de la décision du client)
Exceptions de licence de ses dépendancesLEX-027 (en attente de la décision du client), LEX-028 (en attente de la décision du client)
Remarque de licenceGPL-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 plateformeasterisk

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
paquet systèmeasteriskversion du dépôt configuréGPL-2.0-only WITH Asterisk-linking-protocols-exceptionfamille Debian (apt)
paquet systèmeasterisk-modulesversion du dépôt configuréGPL-2.0-only WITH Asterisk-linking-protocols-exceptionfamille Debian (apt)
paquet systèmeasterisk-configversion du dépôt configuréGPL-2.0-only WITH Asterisk-linking-protocols-exceptionfamille Debian (apt)
paquet systèmeasterisk-core-sounds-enversion du dépôt configuréCC-BY-SA-3.0famille Debian (apt)
paquet systèmeasterisk-moh-opsound-gsmversion du dépôt configuréCC-BY-SA-3.0famille Debian (apt)
paquet systèmepostgresql-clientversion du dépôt configuréPostgreSQLfamille Debian (apt)
paquet systèmesqlite3version du dépôt configuréblessingfamille Debian (apt)

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
packagefamille 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​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
asterisksip_udp5070/udpoui
asterisksip_tcp5070/tcpoui
asterisksip_tls5072/tcpoui
asteriskari_http8088/tcpoui
asteriskari_http_local8088/tcpnon
asteriskari_tls8089/tcpoui
asteriskami5038/tcpoui
asteriskami_local5038/tcpnon
asteriskami_tls5039/tcpoui
asteriskrtp10000-19999/udpoui

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
packageouiles paquets système du descripteur, installés par le gestionnaire de paquets de l'hôte

Composants​

ComposantTypeMéthodes d'installationPorts
Nœud Asterisk (asterisk)maîtrepackage5070/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 :

ComposantPlacement
asteriskmin 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 :

ComposantPlacement
asteriskmin 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 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.

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

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

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

Clusteraucun (none)
Haute disponibilitéredondance (redundancy)
Basculerépartiteur (load-balancer)
Réplicationaucun (none)
Quorumaucun (none)
Découvertestatique (static)
Point d'entréerépartiteur (load-balancer)
Documentation officiellehttps://docs.asterisk.org/Fundamentals/Asterisk-Architecture/
Référenceshttps://www.kamailio.org/docs/modules/stable/modules/dispatcher.html, https://docs.asterisk.org/About-the-Project/Asterisk-Versions/
Paramètre TLS entre pairstls_enabled
Authentification entre pairsAucun trafic entre les nœuds ; Kamailio joint chaque nœud sur le réseau de signalisation interne (acl PJSIP de sip_networks), Navin Enterprise se connecte à l'AMI et à l'ARI avec les identifiants générés.
Commande d'état du clusterstatus

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
singleautonome (standalone)unique (single)-1Un nœud : sa perte arrête tous les appels jusqu'à sa restauration.
poolha (ha)actif-actif (active-active)-2Nœ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ètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port SIP (sip_port)port5070-nonnonouiPort SIP (UDP et TCP) du réseau de signalisation interne, joint depuis Kamailio uniquement (ADR-0173).
Port SIP TLS (sip_tls_port)port5072-nonnonouiPort SIP sur TLS, ouvert seulement quand TLS est activé.
Adresse SIP (sip_address)string(vide)-nonnonouiAdresse 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)-nonnonouiAdresse 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)port8088-nonnonouiPort 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)port8089-nonnonouiPort HTTPS de l'ARI et de /metrics sur l'adresse d'administration (TLS activé).
Port AMI (ami_port)port5038-nonnonouiPort 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)port5039-nonnonouiPort de l'AMI sur TLS sur l'adresse d'administration (TLS activé).

Média​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Premier port RTP (rtp_start)int10000min 1024, max 19000nonnonouiPremier 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)-nonnonnonAdresse 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)-nonnonnonServeur STUN (hôte:port) utilisé pour collecter les candidats ICE des appels WebRTC ; vide : candidats de l'hôte seulement. (avancé)

Sécurité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Réseaux sources SIP (sip_networks)list["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]-nonnonnonRé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"]-nonnonnonRéseaux autorisés à se connecter à l'AMI (permit de manager.conf, la boucle locale est toujours autorisée).
TLS (tls_enabled)boolfalse-nonnonouiServir 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)stringnavin^[a-z][a-z0-9_-]{2,31}$nonnonnonUtilisateur ARI de Navin Enterprise (ari.conf).
Mot de passe ARI (ari_password)passwordgénéré-nonouinonMot de passe de l'utilisateur ARI, généré, jamais affiché.
Utilisateur AMI (ami_username)stringnavin^[a-z][a-z0-9_-]{2,31}$nonnonnonUtilisateur AMI de Navin Enterprise (manager.conf), classes config, command, system, call, reporting, originate, agent et dialplan.
Secret AMI (ami_secret)passwordgénéré-nonouinonSecret de l'utilisateur AMI, généré, jamais affiché.

Enregistrements d'appels​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
CDR et CEL dans PostgreSQL (cdr_database)boolfalse-nonnonouiÉ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ètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Appels maximaux (max_calls)int0min 0, max 100000nonnonnonNombre 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)enumfrfr, be, ch, de, uk, usnonnonnonTonalités de progression d'appel jouées par défaut (indications.conf).
Langue par défaut (default_language)stringen^[a-z]{2}(_[A-Z]{2})?$nonnonnonLangue 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é).

LiaisonFournie parType de connexionPoint d'accèsFacultativeQuand rien n'est liéDescription
cdr_dbpostgresqlpostgresqlsqlouireste 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èsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
arihttpasterisk8088 (http_port)/ari-usernamepassword-
ari_tlshttpsasterisk8089 (https_port)/aritls_enabledusernamepassword-
amiamiasterisk5038 (ami_port)--usernamesecret-
ami_tlsami+tlsasterisk5039 (ami_tls_port)-tls_enabledusernamesecret-
sipsipasterisk5070 (sip_port)--transports--
sip_tlssipsasterisk5072 (sip_tls_port)-tls_enabledtransports--

Commandes​

CommandeComposantCibleDescription
État du nœud (status)asterisktous les hôtesVersion, durée de fonctionnement, canaux et appels actifs de chaque nœud.
Contacts PJSIP (pjsip_contacts)asterisktous les hôtesContacts enregistrés et leur état de qualification sur chaque nœud.
Points de terminaison PJSIP (pjsip_endpoints)asterisktous les hôtesPoints de terminaison chargés sur chaque nœud (livrés par Navin Enterprise).
Canaux actifs (channels)asteriskhôte choisiCanaux actifs d'un nœud.
Recharger la configuration (reload)asterisktous les hôtesRecharge la configuration de chaque nœud sans couper les appels (core reload).
Redémarrage en douceur (graceful_restart)asteriskhôte choisiRedé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)​

ComposantContrôleDétails
asteriskTCP {{ config.sip_address or host.ip or '127.0.0.1' }}:{{ config.sip_port }}60 tentatives ; intervalle 2 s ; délai 3 s
asteriskHTTP http://{{ config.admin_address or host.ip or '127.0.0.1' }}:{{ config.http_port }}/metricsAttendu 200 ; Attendu asterisk_core_uptime_seconds ; 30 tentatives ; intervalle 2 s ; délai 5 s
asteriskHTTP https://{{ host.fqdn }}:{{ config.https_port }}/metricsAttendu 200 ; Attendu asterisk_core_uptime_seconds ; 30 tentatives ; intervalle 2 s ; délai 5 s

Disponibilité (contrôle du service)​

ContrôleDétails
{{ paths.etc }}/check.sh10 tentatives ; intervalle 3 s ; délai 60 s

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 1024}au moins 1024 Mo de mémoirebloquanttous les composants
diskdisk_free_mb {"path": "/var/lib/navin", "min": 5120}au moins 5120 Mo libres pour /var/lib/navinavertissementtous les composants
sip_port_freeport_free {"param": "sip_port"}port 5070 libre sur l'hôtebloquanttous les composants
ami_port_freeport_free {"param": "ami_port"}port 5038 libre sur l'hôtebloquanttous les composants
http_port_freeport_free {"param": "http_port"}port 8088 libre sur l'hôtebloquanttous les composants
time_synctime_sync {}une horloge synchroniséeavertissementtous 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.

Formatasterisk-files
Composantasterisk
Fichiers{{ backup.dir }}/asterisk.tar.gz
Test de restaurationoui
Instances arrêtées pendant la restaurationoui

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.

Documentation amont​