Référence CLI

strowger-cli — l'outil d'administration locale.

strowger-cli est un client léger : chaque commande communique avec le démon strowgerd en cours d'exécution via sa propre API HTTP. Il est livré avec le binaire du démon et installé dans /usr/local/bin/strowger-cli par deploy/install.sh.

Options globales
OptionSignification
-u, --url <URL>URL du démon. Par défaut http://127.0.0.1:7060, ou lue depuis [daemon] http_host/http_port dans le fichier de configuration résolu.
-t, --token <KEY>Clé API, envoyée en tant que X-API-Key.
-c, --config <PATH>Chemin vers le fichier de configuration du démon.
--jsonAffiche la réponse JSON brute au lieu d'un tableau formaté.

Résolution de la connexion : --config, sinon le premier fichier existant parmi /etc/strowger/config.toml / ./config.toml. L'URL est --url si spécifiée, sinon construite à partir de la section [daemon] de cette configuration, avec un repli sur 127.0.0.1:7060. Le jeton est --token, sinon la variable d'environnement STROWGER_API_KEY, sinon un fichier api-token dans le data_dir de la configuration (ou ./data/api-token si aucune configuration n'est trouvée).

Commandes

statusVue d'ensemble du démon

État de santé, état de la licence, appels actifs/max, résumé de l'enregistrement des trunks — sur un seul écran.

licenseDétails de la licence

Mode d'application, état et identifiant de la licence, expiration et capacités exactes accordées par la licence actuelle.

registerActiver une licence

Démo (identification légère, sans clé) ou commerciale (--key) — activation unique auprès du serveur de licences.

callsAppels actifs

Liste tous les appels en cours, avec la direction, le correspondant, le trunk et la durée.

hangupTerminer un appel

Annule un appel qui sonne ou envoie un BYE à un appel décroché, par identifiant d'appel.

trunksÉtat des trunks

Chaque trunk configuré avec son registrar, son état d'enregistrement et son indicateur d'activité.

trunk enable/disableContrôle des trunks à chaud

Active ou désactive progressivement un trunk sans toucher au fichier de configuration.

configInspecter la configuration

Affiche la configuration résolue avec les secrets masqués, ou la valide sans démarrer le démon.

status

Récupère /health et /stats et affiche la disponibilité du démon, l'état de la licence, le nombre d'appels actifs/max, les compteurs de rejet et un tableau d'enregistrement par trunk.

strowger-cli status
strowger-cli status --json

--json renvoie un objet combiné :

{
  "health": {
    "version": "1.0.0-rc1",
    "license": { "state": "ok", "license_id": "…", "customer": "…",
                 "days_remaining": 27, "deadline": null, "reason": null },
    "trunks": [ { "name": "ovh-prod", "state": "registered" } ]
  },
  "stats": {
    "calls": { "active": 0, "max_concurrent": 1, "concurrency_rejections": 0 },
    "license": { "rejections": 0 },
    "registrations": { "registered": 1, "rejected": 0, "connecting": 0, "none": 0 },
    "endpoints": [ { "name": "ovh-prod", "host": "sip-domain.io", "active": true } ]
  }
}
license

Lit le bloc license de /stats et affiche le mode d'application, l'identifiant de licence, le client, le type (perpétuel ou temporaire), l'expiration, les jours restants et les capacités accordées (max_concurrent_calls, max_trunks, max_call_seconds0 signifie illimité). Si la licence est dans un état dégradé, la raison et l'échéance sont également affichées.

strowger-cli license --json
{
  "enforced": true,
  "state": "ok",
  "license_id": "…",
  "customer": "Acme SARL",
  "perpetual": false,
  "expires_at": 1783000000,
  "days_remaining": 27,
  "max_concurrent_calls": 1,
  "max_trunks": 1,
  "max_call_seconds": 60
}
register

Appelle POST /license/register sur le démon. Deux formes :

# Démo — identification légère, sans clé
strowger-cli register --company "Acme SARL" --contact "Jane Doe" \
  --email [email protected] --phone +33612345678

# Licence commerciale émise à l'avance
strowger-cli register --key <activation-key>

Si --company/--contact/--email/ --phone sont omis et que le terminal est interactif, le CLI demande chaque information (avec une validation d'e-mail basique) ; dans un shell non interactif, une option manquante entraîne une erreur critique. En cas de succès, il affiche l'identifiant de licence, le client, l'état, l'expiration et les capacités accordées — le même format que license ci-dessus.

calls

Liste les appels actifs (GET /calls?state=active) : identifiant d'appel, direction (entrant/sortant), le correspondant (appelant pour l'entrant, destination pour le sortant), le trunk, la durée et l'état (ringing ou answered).

strowger-cli calls
hangup

Envoie DELETE /calls/<id>. Le résultat est l'un des suivants : l'appel a été annulé (toujours en cours de sonnerie/file d'attente), un BYE a été envoyé (appel décroché), ou il était déjà terminé. Un code 409 signifie que l'appel est toujours en cours d'établissement et qu'il n'y a pas encore de pilote de signalisation pour raccrocher.

strowger-cli hangup 6f2c1e9a-...
trunks

Liste chaque trunk (GET /trunks) avec son nom, son registrar, son état d'enregistrement, et s'il est actuellement actif.

strowger-cli trunks
trunk enable / disable

Active ou désactive à chaud un trunk, sans modifier le fichier de configuration — en arrière-plan, cela appelle POST /endpoints/<name>/activate ou /deactivate.

strowger-cli trunk disable ovh-prod
strowger-cli trunk enable ovh-prod
config

Lit le fichier de configuration résolu (--config, ou /etc/strowger/config.toml, ou ./config.toml). La commande config seule affiche le TOML avec chaque ${VAR} interpolée depuis l'environnement — sauf les champs secrets connus (password, activation_key, api_key), qui sont toujours masqués par *** quelle que soit l'interpolation, afin que la sortie puisse toujours être collée en toute sécurité dans un chat ou un ticket. --validate charge à la place la configuration via le propre analyseur du démon et renvoie 0 (valide) ou 1 (avec l'erreur d'analyse/validation), sans rien démarrer.

strowger-cli config
strowger-cli config --validate