Aller au contenu

CLI Asterisk — les 30 commandes à connaître

Asterisk a une console interactive très riche. La maîtriser c'est gagner des heures. Toutes les commandes ci-dessous se lancent soit en interactif (asterisk -rvvvv) soit one-shot (asterisk -rx '<commande>').

Entrer/sortir

sudo asterisk -rvvvv      # mode interactif, verbose niveau 4
# Ctrl+D ou 'exit' pour sortir

sudo asterisk -rx 'core show version'   # one-shot

Vue système

core show version           # version Asterisk + uptime
core show uptime            # uptime seul
core show settings          # config core (channel limits, codecs autorisés)
core show channels          # appels en cours, format tableau
core show channels concise  # idem mais machine-readable
core show channeltypes      # technologies dispo (PJSIP, IAX2, …)
core show calls             # nombre d'appels actifs

Modules

module show                 # tous les modules + état (Running/Not Running)
module show like pjsip      # filtrer
module reload chan_pjsip    # recharge un module sans restart full
module load <name>          # charge à la volée
module unload <name>        # décharge

PJSIP — la stack SIP moderne

Vue d'ensemble

pjsip list endpoints           # liste compacte
pjsip show endpoints           # avec contexts
pjsip show endpoint <name>     # tout le détail (codecs, transport, AOR, auth)

Registrations (trunks sortants)

pjsip show registrations       # vue trunks register
pjsip send register <name>     # force register d'un trunk

Contacts (téléphones inscrits)

pjsip show contacts            # téléphones IP qui sont REGISTERed
pjsip show aor <name>          # détail AOR (qualify_frequency, max_contacts)
pjsip send qualify <endpoint>  # OPTIONS keepalive immédiat

Transports

pjsip show transports          # UDP/TCP/TLS/WSS configurés
pjsip show settings            # global PJSIP settings

Identifies (auth par IP)

pjsip show identifies          # règles d'identification par IP source

Logger SIP

pjsip set logger on            # log les messages SIP dans /var/log/asterisk/full
pjsip set logger off
pjsip set logger host <ip>     # filtrer un IP source
pjsip set logger pcap <file>   # capturer en pcap

Channels (appels actifs)

core show channels             # vue de tous les canaux
core show channel <name>       # détail d'un canal (codec, bridge, vars)
soft hangup <channel>          # raccrocher proprement un canal
core hangup all                # raccroche tout (urgence !)

Bridges

core show bridges              # ponts actifs (typiquement 2 channels par appel)
core show bridge <id>          # qui parle à qui

Dialplan (extensions, contexts)

dialplan show                                  # tout le dialplan (long !)
dialplan show <ext>@<context>                  # une extension précise
dialplan show <context>                        # un context entier
dialplan reload                                # recharge sans Asterisk restart
core show globals                              # variables globales

RTP

rtp set debug on               # log RTP packets
rtp set debug off
rtp show stats                 # stats jitter/loss agrégées

Voicemail

voicemail show users           # boîtes vocales configurées
voicemail show users for default # filtré

Fichiers et sons

file convert <src> <dst>       # convertit un audio (.wav ↔ .gsm ↔ .sln)
core show file formats         # formats supportés
moh show classes               # musique d'attente disponible

Verbose et logs

core set verbose 5             # niveau 0-10 (5 = bon compromis diag)
core set debug 3               # debug, plus low-level encore
logger reload                  # recharge logger.conf

Database (AstDB — clé-valeur interne)

database show                  # toutes les clés
database show <famille>        # un namespace
database get <famille> <key>
database put <famille> <key> <value>
database del <famille> <key>

Utile pour les CFwd, DND, BLF — FreePBX y stocke beaucoup de state.

Les 10 que vous taperez le plus

Commande Quand
core show channels Voir si des appels sont en cours
pjsip show contacts Quels téléphones sont enregistrés
pjsip show registrations Trunks SIP OK ou KO
pjsip set logger on Avant un appel test
core set verbose 5 Pour voir le dialplan trace
dialplan show <ext>@from-internal Vérifier qu'une extension existe
pjsip send qualify <ext> Réveiller un endpoint flaky
module reload chan_pjsip Après modif pjsip.conf
rtp set debug on Pour debug audio
core hangup all Quand tout est en vrac, dernier recours

L'autocomplétion

Dans la console interactive, Tab complète. Toujours essayer.

asterisk*CLI> pjsip show <Tab>
auth        contacts    endpoint    transport
aor         endpoints   identifies  transports
channels    history     settings    registrations

Le mode silencieux pour les scripts

asterisk -rx 'pjsip show contacts' 2>&1 | grep -v "^$" | tail

Pour récupérer du JSON (Asterisk 16+) :

manager show command <action>     # voir les actions AMI dispo

(L'AMI — Asterisk Manager Interface — est un protocole TCP texte qu'on utilise pour piloter Asterisk depuis un script. Voir chapitre dédié.)

En cas de freeze CLI

Asterisk peut refuser d'accepter Ctrl+C si très chargé :

core stop now           # stop propre, attend les appels en cours
core stop gracefully    # stop quand tous les appels finissent
core stop when convenient
core restart now        # restart immédiat

Si même ça bloque : kill -9 du processus + systemctl start asterisk. À éviter, peut corrompre la AstDB.

Suivant : Logs Asterisk