Dépannage
La plupart des incidents se traitent depuis le portail, page Diagnostic (voir Diagnostic), sans SSH : santé, appels en cours, capture SIP en direct, trace d’un appel, adresses bannies, rechargement et redémarrage de FreeSWITCH. Chaque action y est tracée au journal d’audit, et existe aussi dans l’API et le serveur MCP.
Incidents types
| Symptôme | Où regarder | Que faire |
|---|---|---|
| Un client n’a plus d’appels entrants ni sortants | Santé : son trunk n’est pas REGED, avec le dernier refus du fournisseur | 401/403 : corriger l’identifiant ou le mot de passe sur la fiche du trunk ; 404 : compte inconnu du fournisseur ; 408/503 ou FAIL_WAIT : le fournisseur ne répond pas (adresse, réseau). Puis Réenregistrer. |
| Tout un site n’a plus de téléphone, le portail répond | Adresses IP bannies : l’adresse du site, le compte visé et l’appareil fautif | Corriger l’appareil (mot de passe, domaine), puis Débannir ; une adresse qui ne doit jamais l’être va dans la liste blanche. |
| Un robot essaie des mots de passe | Capture en direct, Adresses IP bannies | Bannir une adresse à la main, pour la durée choisie. |
| « Mon appel n’a pas abouti », « ça a coupé » | Journal d’appels du client, puis Trace de l’appel | La trace montre les étapes suivies, la cause et le code SIP. Une erreur de parcours : Rejouer la publication sur la fiche du client. |
| Un téléphone ne s’enregistre pas, un appel échoue sans explication | Capture en direct | Les messages SIP du client, en texte, en diagramme en échelle ou en pcap pour Wireshark. |
| Un poste réglé pour enregistrer n’a aucun enregistrement | sudo centrex verifier (ligne « FusionPBX ») et le journal du service | Le modèle d’enregistrement de FusionPBX doit être lisible (CENTREX_MODELES_FUSIONPBX, par défaut sous /var/www/fusionpbx) ; le service l’ajoute aux clients qui ne l’ont pas à son redémarrage. Volume plein : voir Enregistrements. |
| Un appel reste bloqué | Appels en cours | Couper. |
| Rien ne va plus dans FreeSWITCH | Santé | Recharger la configuration, puis en dernier recours Redémarrer FreeSWITCH. |
Sur la VM
| Pour | Commande |
|---|---|
| Tout vérifier d’un coup | centrex verifier |
| État des services | systemctl status centrex freeswitch nginx postgresql |
| Journaux du centrex | journalctl -u centrex (niveau réglé par CENTREX_LOG) |
| Journaux de FreeSWITCH | /var/log/freeswitch/freeswitch.log |
| Premier démarrage de l’image | journalctl -u centrex-premier-demarrage |
| Actif/passif | centrex bascule etat, /var/log/centrex-bascule.log |
| Intégrité du journal d’audit | centrex audit verifier |
Les commandes centrex se lancent avec les réglages du service : voir Réglages du
serveur.
Comptes
- Mot de passe oublié : le lien « Mot de passe oublié » de la page de connexion, ou
Renvoyer l’invitation sur la fiche du client. Sans e-mails réglés :
centrex inviter --courriel …affiche le lien. - Téléphone du second facteur perdu : un administrateur le réinitialise dans le portail, ou
centrex reinitialiser-second-facteur --courriel …sur la VM. - Compte bloqué après 5 échecs : il se débloque seul au bout de 15 minutes.
Interface FusionPBX
Le centrex écrit dans FusionPBX, mais son interface est fermée : nginx ne la sert pas. Pour un dépannage, ouvrez-la en local, le temps de l’intervention. Ne modifiez rien depuis cette interface : le centrex n’y retrouverait pas ses réglages. Ses dialplans y paraissent incomplets, c’est normal.
-
Sur la VM, installer PHP-FPM et servir FusionPBX sur l’adresse locale seulement :
sudo apt install php8.4-fpm sudo tee /etc/nginx/sites-available/fusionpbx-local >/dev/null <<'NGINX' server { listen 127.0.0.1:8081; root /var/www/fusionpbx; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.4-fpm.sock; } location ~ /\. { deny all; } location ~ \.(db|sql|conf)$ { deny all; } } NGINX sudo ln -s ../sites-available/fusionpbx-local /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx -
Créer un compte superadmin de FusionPBX, comme le fait son installeur, dans le domaine par défaut, créé au premier démarrage au nom de la machine :
read -r -s -p "Mot de passe : " MDP; echo HASH=$(MDP="$MDP" php -r 'echo password_hash(getenv("MDP"), PASSWORD_DEFAULT);') sudo -u postgres psql -v ON_ERROR_STOP=1 -v hash="$HASH" -v domaine="$(hostname -f)" fusionpbx <<'SQL' with d as (select domain_uuid from v_domains where domain_name = :'domaine'), u as (insert into v_users (user_uuid, domain_uuid, username, password, salt, user_enabled) select gen_random_uuid(), domain_uuid, 'depannage', :'hash', '', 'true' from d returning user_uuid, domain_uuid) insert into v_user_groups (user_group_uuid, domain_uuid, group_name, group_uuid, user_uuid) select gen_random_uuid(), u.domain_uuid, 'superadmin', g.group_uuid, u.user_uuid from u, v_groups g where g.group_name = 'superadmin'; SQL -
Depuis votre poste, ouvrir un tunnel SSH, puis
http://127.0.0.1:8081dans le navigateur :ssh -L 8081:127.0.0.1:8081 debian@VMSe connecter avec
depannage@suivi du nom de la machine (hostname -f) : l’adresse127.0.0.1ne désigne aucun domaine, le nom après@le donne. -
Après l’intervention, refermer :
sudo rm /etc/nginx/sites-enabled/fusionpbx-local && sudo systemctl reload nginx sudo systemctl disable --now php8.4-fpm sudo -u postgres psql fusionpbx -c "update v_users set user_enabled = 'false' where username = 'depannage'"
Assistance de l’éditeur
Pour une intervention de l’éditeur, ouvrez-lui un accès limité dans le temps : portail, page
Diagnostic, section Accès de l’assistance, ou centrex acces-assistance ouvrir --heures 24.
Il est fermé par défaut, refermable à tout moment, et chacune de ses actions est au journal
d’audit.