Files
NexusPBX/README.md
T

100 lines
5.0 KiB
Markdown

# 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://<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
```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.*