Files
NexusPBX/README.md
T

123 lines
5.8 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 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://<IP_DU_SERVEUR>`
- **HTTPS** : `https://<IP_DU_SERVEUR>: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.*