# 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é). ### 2. Annuaire d'Entreprise & XML Téléphones IP (Yealink) - 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://:8080/phonebook.php?group=` (ou `?group=all`) - Génération conforme `` avec ``, ``, ``, ``, ``. ### 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 ```text 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 : ```bash 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.*