Aller au contenu

Checklist 5 minutes — un ticket arrive, où regarder

Ticket "ça marche pas" sans plus de précision : voici la séquence à dérouler en moins de 5 min pour identifier 80% des cas.

0. Cadrer (30s)

  • Qui ? (un user, un site, tous les sites)
  • Quoi ? (entrant, sortant, internes, voicemail, transfert)
  • Depuis quand ?
  • Reproductible maintenant ?

1. Le serveur respire ? (30s)

ssh admin-tnt@pbx-client.technotrement.com
systemctl is-active asterisk apache2 mariadb fail2ban
uptime              # load < 4 sur 4 vCPU
free -h             # mémoire libre raisonnable, swap pas full
df -h /             # < 90%

Si un service est down ou disk full → c'est ça. Restart + grep dans les logs récents pour comprendre la cause.

2. Les téléphones sont là ? (30s)

asterisk -rx 'pjsip show contacts' | head -30

Tableau Contact + Avail (ms ping OPTIONS).

  • Pas de Contact pour l'extension qui se plaint → elle ne s'enregistre pas. Aller voir côté téléphone (LAN, alimentation, conf provisioning).
  • Avail > 1000ms ou Unreachable → soit endpoint mort, soit problème réseau entre serveur et endpoint.

3. Les trunks tournent ? (30s)

asterisk -rx 'pjsip show registrations'
asterisk -rx 'pjsip show endpoints' | grep -i trunk

Trunk doit être Registered. Si Rejected ou pas de ligne → soit creds KO (mot de passe expiré, IP whitelist tombée), soit le SBC opérateur a un souci. pjsip set logger on + observation pour comprendre.

4. Un test live (1min)

Depuis un mobile externe, appeler un DID interne. En parallèle, sur le serveur :

asterisk -rvvvv
core set verbose 5
pjsip set logger on

Observer en live. À la fin de l'appel : Ctrl+D ou quit pour sortir de la console.

Cherchez dans le trace : - L'INVITE arrive-t-il ? - À quelle extension/contexte est-il routé ? - Est-ce que le téléphone destinataire reçoit le INVITE ? - 200 OK final présent ? - BYE en fin propre ?

5. Audio ou pas ? (1min)

Si signal OK mais ticket dit "pas d'audio" :

asterisk -rx 'rtp set debug on'
# refaire l'appel test
asterisk -rx 'rtp set debug off'
grep RTP /var/log/asterisk/full | tail -50
  • Si paquets RTP partent mais reviennent pas → côté distant ne sait pas où nous envoyer (NAT distant, ou mauvais SDP).
  • Si paquets RTP ne partent pas du tout → côté local : codec incompatible, port RTP bloqué, external_media_address mauvais.

6. Logs qui valent le coup d'œil (30s)

sudo tail -50 /var/log/asterisk/full
sudo tail -50 /var/log/apache2/error.log    # si UI bug
sudo tail -50 /var/log/auth.log              # ssh / sudo
sudo journalctl -u asterisk --since '15 min ago' --no-pager
sudo fail2ban-client status sshd             # IP banniées récentes

7. Sécurité — IP banniée par fail2ban ? (15s)

sudo fail2ban-client status sshd
sudo fail2ban-client status asterisk         # si jail asterisk active

Liste des IPs bannies. Si l'IP du téléphone qui se plaint est bannie, unban + comprendre pourquoi (mauvais password répété ? attaque externe ?).

sudo fail2ban-client unban <IP>

Si à 5 min on a rien

  • C'est probablement un cas plus subtil (NAT, codec, application).
  • Aller au chapitre Cas typiques.
  • Lancer un tcpdump ciblé en attendant la prochaine reproduction :
sudo tcpdump -i any -nn -s0 -w /tmp/diag-$(date +%H%M).pcap \
  '(port 5060 or port 5061 or port 3478 or portrange 10000-20000)'
  • Toujours noter ce qu'on a essayé dans un fichier.

La sortie du chapitre

Cette checklist n'est pas exhaustive — elle est calibrée pour éliminer rapidement les causes simples. Les cas qui survivent à ces 7 étapes méritent une session de diag dédiée avec capture pcap complète et analyse Wireshark.