123 lines
5.8 KiB
Markdown
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.*
|