NexusPBX - Système de Téléphonie IP Moderne & Souverain

NexusPBX est une plateforme de communication d'entreprise tout-en-un, moderne, ultra-légère et hautement sécurisée, construite au-dessus d'Asterisk (PJSIP), Nginx, PHP 8.4 et SQLite 3.


🚀 Fonctionnalités Clés

1. Gestion Avancée des Postes (PJSIP)

  • Multi-profils de transport :
    • UDP Interne (Réseau local d'entreprise, faible latence).
    • TLS + SRTP Chiffré (Postes distants et nomades avec chiffrement de la signalisation et de la voix AES-128).
    • WebRTC WSS (Téléphonie navigateur temps réel).
  • Détection dynamique en temps réel : Analyse des contacts PJSIP en direct (transport actif négocié, User-Agent du téléphone, latence RTT, statut de joignabilité).
  • Synchronisation automatique en temps réel avec les extensions PBX (numéro, nom, email, groupe).
  • Prise en charge des contacts externes (fournisseurs, clients, partenaires).
  • Gestion des avatars et photos de contacts.
  • Endpoint XML Yealink officiel :
    • http://<PBX_IP>:8080/phonebook.php?group=<NomDuGroupe> (ou ?group=all)
    • Génération conforme <YealinkIPPhoneDirectory> avec <Name>, <Telephone>, <Email>, <Photo>, <Picture>.

3. Trunks SIP & Routage

  • Trunks SIP sortants (Orange Business, OVH Telecom, Free Pro, etc.).
  • Routes sortantes avec sélection de préfixes et restriction par groupes d'extensions (Sites / Agences).
  • Routes entrantes (DID / SDA) avec redirection intelligente vers Postes, Groupes de sonnerie ou SVI.

4. Serveur Vocal Interactif (SVI / IVR) & Groupes

  • Menu vocal interactif avec gestion des touches DTMF (0-9, *, #).
  • Gestion des musiques d'attente (MoH) et téléversement de fichiers audio.
  • Groupes de sonnerie simultanés ou séquentiels.

5. Sécurité Renforcée & Pare-feu PBX

  • Mode Strict Port 80 : Le port 80 standard est hermétiquement verrouillé et exclusivement réservé aux challenges ACME Let's Encrypt Certbot (retour 404 sur tout le reste).
  • Port d'administration HTTPS dédié (ex: port 8443) avec certificats SSL Let's Encrypt automatisés.
  • Fail2ban unifié : Jails Fail2ban actives pour les attaques SIP (PJSIP brute-force, scan SIPVicious) et attaques Web (recherche d'exploits HTTP).

6. Sauvegardes & Restauration

  • Sauvegardes complètes à chaud (Base de données, configurations Asterisk, fichiers sons, règles pare-feu).
  • Stockage local ou export automatique distant via SSH / SCP / SFTP.
  • Restauration en un clic.

📂 Architecture du Projet

nexus-pbx/
├── public/                 # Racine Web Nginx
│   ├── index.php           # Interface Web SPA moderne
│   ├── api.php             # API RESTful backend
│   ├── phonebook.php       # Générateur XML Yealink Remote Phonebook
│   ├── assets/             # JavaScript (app.js), styles Tailwind CSS
│   └── avatars/            # Photos des contacts de l'annuaire
├── src/                    # Classes PHP d'orchestration
│   ├── AmiClient.php       # Client Asterisk Manager Interface (AMI)
│   ├── Auth.php            # Authentification & sessions
│   ├── BackupManager.php   # Moteur de sauvegarde locale & distante SSH
│   ├── CertificateManager.php # Gestionnaire SSL & Certbot
│   ├── ConfigGenerator.php # Générateur dynamique de conf Asterisk (pjsip, extensions)
│   ├── Database.php        # Connexion PDO SQLite
│   ├── FirewallManager.php # Moteur Pare-feu & règles Nginx
│   ├── PhonebookManager.php # Moteur d'annuaire et export XML
│   ├── SystemChecker.php   # Diagnostic de santé système
│   └── SystemMetrics.php   # Monitoring CPU, RAM, Disque, Asterisk
├── scripts/                # Scripts CLI et daemons système
│   ├── setup-debian.sh     # Script d'installation automatisé Debian 12 / 13
│   ├── nexus-firewall      # Script de gestion iptables/nftables
│   └── nexus_autobackup.php# Cronjob de sauvegarde automatique
└── storage/                # Données persistantes (exclues du Git)
    ├── database.sqlite     # Base de données applicative
    ├── backups/            # Archives de sauvegarde
    └── sounds/             # Fichiers audio MoH et annonces

⚙️ Prérequis & Installation

  • Système d'exploitation : Debian 12 (Bookworm) ou Debian 13 (Trixie).
  • Paquets requis : Asterisk 20+, PHP 8.2+, Nginx, SQLite3, Fail2ban, Certbot.

Pour déployer sur une machine fraîche :

sudo bash scripts/setup-debian.sh

🔒 Confidentialité & Sécurité du Dépôt

Ce dépôt de code source exclut rigoureusement :

  • Les bases de données SQLite contenant les identifiants locaux.
  • Les clés privées et certificats SSL.
  • Les enregistrements vocaux et sauvegardes d'entreprise.

Développé pour les télécoms d'entreprise souveraines.

S
Description
Système de gestion de l'IPBX Asterisk
Readme
3.7 MiB
0 Stars 1 Watchers 0 Forks
Languages
PHP 70%
JavaScript 26.3%
Shell 3.7%