statusDaemon overview
Health, licence state, active/max calls, trunk registration summary — one screen.
strowger-cli is a thin client: every command talks to
the running strowgerd daemon over its own HTTP API. It ships alongside the
daemon binary and is installed to /usr/local/bin/strowger-cli by
deploy/install.sh.
| Flag | Meaning |
|---|---|
-u, --url <URL> | Daemon URL. Default
http://127.0.0.1:7060, or read from
[daemon] http_host/http_port in the resolved config
file. |
-t, --token <KEY> | API key, sent as
X-API-Key. |
-c, --config <PATH> | Path to the daemon's config file. |
--json | Print the raw JSON response instead of a formatted table. |
Connection resolution: --config, or else the first of
/etc/strowger/config.toml / ./config.toml that exists. The URL
is --url if given, else built from that config's [daemon]
section, falling back to 127.0.0.1:7060. The token is
--token, else the STROWGER_API_KEY environment variable, else
an api-token file inside the config's data_dir (or
./data/api-token with no config found).
Health, licence state, active/max calls, trunk registration summary — one screen.
Enforcement mode, licence state and id, expiry, and the exact capacities the current licence grants.
Demo (light identification, keyless) or commercial (--key) —
one-time activation against the licence server.
List every call currently in progress, with direction, peer, trunk and duration.
Cancel a ringing call or send BYE to an answered one, by call id.
Every configured trunk with its registrar, registration state and active flag.
Activate or gracefully drain a trunk without touching the config file.
Print the resolved config with secrets masked, or validate it without starting the daemon.
Fetches /health and /stats and renders the daemon's
liveness, licence state, active/max call counts, rejection counters, and a
registration table by trunk.
strowger-cli status
strowger-cli status --json
--json returns a combined object:
{
"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 } ]
}
}
Reads the license block from /stats and prints
enforcement mode, licence id, customer, perpetual vs. temporary, expiry, days
remaining, and the granted capacities (max_concurrent_calls,
max_trunks, max_call_seconds — 0 means
unlimited). If the licence is in a degraded state, the reason and deadline are shown
too.
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
}
Calls POST /license/register on the daemon. Two forms:
# Demo — light identification, keyless
strowger-cli register --company "Acme SARL" --contact "Jane Doe" \
--email [email protected] --phone +33612345678
# Commercial licence issued in advance
strowger-cli register --key <activation-key>
If --company/--contact/--email/
--phone are omitted and the terminal is interactive, the CLI prompts for
each one (with basic email validation); in a non-interactive shell, a missing flag is a
hard error. On success it prints the licence id, customer, state, expiry and granted
capacities — the same shape as license above.
Lists active calls (GET /calls?state=active): call id, direction
(inbound/outbound), the peer (caller for inbound, destination for outbound), trunk,
duration, and state (ringing or answered).
strowger-cli calls
Sends DELETE /calls/<id>. Result is one of: the call was
cancelled (still ringing/queued), a BYE was sent (answered call), or it
had already finished. A 409 means the call is still being
established and there is no signalling driver yet to hang up.
strowger-cli hangup 6f2c1e9a-...
Lists every trunk (GET /trunks) with its name, registrar, registration
state, and whether it is currently active.
strowger-cli trunks
Activates or gracefully deactivates a trunk hot, without editing the config file —
under the hood this calls POST /endpoints/<name>/activate or
/deactivate.
strowger-cli trunk disable ovh-prod
strowger-cli trunk enable ovh-prod
Reads the resolved config file (--config, or
/etc/strowger/config.toml, or ./config.toml). Plain
config prints the TOML with every ${VAR} interpolated from
the environment — except known secret fields (password,
activation_key, api_key), which are always masked as
*** regardless of interpolation, so the output is always safe to paste
into a chat or a ticket. --validate instead loads the config through the
daemon's own parser and exits 0 (valid) or 1 (with the
parse/validation error), without starting anything.
strowger-cli config
strowger-cli config --validate