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é).
  • 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

nexus-pbx/
├── install.sh              # Script d'installation automatisé tout-en-un (Debian 12 / 13)
├── 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/             # Logo, Favicon, JS (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 Disaster Recovery & sauvegardes
│   ├── CdrManager.php      # Moteur Journal d'appels & CDR
│   ├── CertificateManager.php # Gestionnaire SSL & Certbot ACME
│   ├── ConfigGenerator.php # Générateur dynamique de conf Asterisk (pjsip, extensions)
│   ├── Database.php        # Connexion PDO SQLite
│   ├── FirewallManager.php # Moteur Pare-feu Fail2ban & 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
│   ├── update.sh           # Script de mise à jour OTA (nexus-update)
│   ├── nexus-firewall      # Outil CLI Pare-feu & Fail2ban
│   ├── nexus-banner.sh     # Bannière d'accueil interactive SSH/Console
│   ├── nexus_autobackup.php# Cronjob de sauvegarde automatique
│   └── voicemail_pass_sync.php # Synchronisation code PIN messagerie vocale
└── storage/                # Données persistantes (exclues du Git)
    ├── database.sqlite     # Base de données applicative
    ├── system_backups/     # Archives de sauvegarde Disaster Recovery
    └── 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 <(curl -sSL https://git.sorcier-research.com/sorcier/NexusPBX/raw/branch/main/install.sh)

📦 Méthode Alternative (Clonage Manuel)

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.

S
Description
Système de gestion de l'IPBX Asterisk
Readme
3.7 MiB
0 Stars 1 Watchers 0 Forks
Languages
PHP 70%
JavaScript 26.3%
Shell 3.7%