# 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 en 1 Clic - **Systèmes supportés** : Debian 12 (Bookworm), Debian 13 (Trixie), Ubuntu Server 22.04 / 24.04. - **Architecture** : x86_64 / amd64 ou arm64. ### ⚡ Installation Automatique (Recommandée) Sur votre serveur Debian/Ubuntu fraîchement installé, exécutez simplement cette commande en tant que **root** : ```bash bash <(curl -sSL https://git.sorcier-research.com/sorcier/NexusPBX/raw/branch/main/install.sh) ``` ### 📦 Méthode Alternative (Clonage Manuel) ```bash git clone https://git.sorcier-research.com/sorcier/NexusPBX.git /var/www/nexus-pbx cd /var/www/nexus-pbx sudo bash install.sh ``` --- ## 🔑 Première Connexion & Administration Une fois l'installation terminée, la bannière console s'affiche sur votre terminal avec l'adresse IP détectée. Ouvrez votre navigateur web sur : - **HTTP** : `http://` - **HTTPS** : `https://:8443` **Identifiants d'administration par défaut :** - **Nom d'utilisateur** : `admin` - **Mot de passe** : `admin123` *(Il vous est fortement recommandé de changer le mot de passe dès votre première connexion).* --- ## 🔒 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.*