Most/Docs

most-cli calls hangup

End a call, or stop one still ringing (POST /v3/calls/{call_id}/hangup).

Invocation#

sh
most-cli calls hangup <call_id> [--text]

Purpose#

End a call, or stop one still ringing (POST /v3/calls/{call_id}/hangup).

Calls `POST /v3/calls/{call_id}/hangup` on the service `MOST_BASE_URL` names with the bearer `MOST_AGENT_API_TOKEN`. This command has no MCP tool: a phone call is an operator's decision, not an agent's.

Inputs and options#

  • `<call_id>` (required, the first word): the Most call id, a UUID.
  • `--text`, anywhere on the line: print the answer as `key: value` lines for a person.

Output and state effect#

Mutating on the service and outside it: the provider dials, answers, speaks or hangs up on a real phone call, and Most records the call and every line said. Prints the call as the server answers it and exits 0. The client writes nothing.

Refusals#

  • `reading the command line: calls has no subcommand {verb}; it lists calls with [--status <status>] [--limit <n>], or acts with one of: {verbs}` — exit 2. Fix: run `most-cli calls` to list calls, or one of `most-cli calls {verbs}` as `most-cli --help` shows (cause `most.agent.calls.verb-unknown`).
  • `reading the arguments of calls {verb}: calls {verb} requires {subject}` — exit 2. Fix: give it as `{usage}` (cause `most.agent.calls.subject-missing`).
  • `reading the arguments of calls {verb}: calls {verb} requires --say <text>, the words the other side hears` — exit 2. Fix: give the text as `{usage}` (cause `most.agent.calls.text-missing`).
  • `reading the arguments of calls {verb}: calls {verb}: unexpected argument {word}, after {subject} {first}` — exit 2. Fix: give one {subject}, as `{usage}` (cause `most.agent.calls.argument-unexpected`).
  • `reading the arguments of calls {verb}: calls {verb}: unknown option --{option}; {takes}` — exit 2. Fix: use only the options `{usage}` shows (cause `most.agent.calls.option-unknown`).
  • `reading the arguments of calls {verb}: calls {verb}: --{option} needs a value` — exit 2. Fix: give the value after --{option}, as `{usage}` shows (cause `most.agent.calls.option-value-missing`).
  • `calls {verb}: the call failed: the provider did not take it` — exit 1. Fix: read `most-cli call {call}` for the recorded call and `most-cli calls-readiness` for whether this service can make calls, then fix what they name (cause `most.agent.calls.call-failed`).
  • `calls {verb}: the service answered with a body that is not a JSON call, so whether the provider took the call is unknown` — exit 1. Fix: run the most-cli built from the revision `most-cli health` reports for the service, and read `most-cli calls` for the call's state (cause `most.agent.calls.answer-unreadable`).
  • `finding the Most service: MOST_BASE_URL is not set, and no origin is assumed in its place` — exit 1. Fix: set MOST_BASE_URL to the origin of the Most service, its scheme, host and port; `stado service directory connect most --consumer <consumer>` prints the one its placement answers at (cause `most.agent.service.origin-unset`).
  • `finding the Most service: MOST_BASE_URL is not UTF-8 text, so it names no URL` — exit 1. Fix: set MOST_BASE_URL to the origin of the Most service, its scheme, host and port; `stado service directory connect most --consumer <consumer>` prints the one its placement answers at (cause `most.agent.service.origin-not-text`).
  • `finding the Most service: MOST_BASE_URL is set but holds nothing besides whitespace and slashes` — exit 1. Fix: set MOST_BASE_URL to the origin of the Most service, its scheme, host and port; `stado service directory connect most --consumer <consumer>` prints the one its placement answers at (cause `most.agent.service.origin-empty`).
  • `finding the Most service: MOST_BASE_URL is not an absolute http or https URL` — exit 1. Fix: set MOST_BASE_URL to the origin of the Most service, its scheme, host and port; `stado service directory connect most --consumer <consumer>` prints the one its placement answers at (cause `most.agent.service.origin-not-url`).
  • `reading the bearer for {url}: MOST_AGENT_API_TOKEN is set but is not UTF-8 text, so it cannot travel as a bearer; nothing was sent without it` — exit 1. Fix: set MOST_AGENT_API_TOKEN to the bearer the Most service accepts, or unset it for a read that needs none, such as `most-cli health` (cause `most.agent.service.token-not-text`).
  • `reading the bearer for {url}: a mutation is sent only with the service bearer, and MOST_AGENT_API_TOKEN holds none; nothing was sent` — exit 1. Fix: set MOST_AGENT_API_TOKEN to the bearer the Most service accepts: the token in the file its MOST_API_TOKEN_FILE names, or the workload capability it is configured with (cause `most.agent.service.token-unset`).
  • `starting the HTTP client for {url}: the HTTP client could not load its TLS configuration, so no request could be made` — exit 1. Fix: repair the TLS or proxy setting the observed error names on this machine, then run the command again (cause `most.agent.service.client-unavailable`).
  • `connecting to the Most service at {url}: nothing accepted the connection at that origin` — exit 69, and sending it again can help. Fix: start the Most service MOST_BASE_URL names, or point MOST_BASE_URL at the origin it answers at; `most-cli health` shows when it answers (cause `most.agent.service.unreachable`).
  • `sending the request to {url}: the connection broke before the service answered` — exit 69, and sending it again can help. Fix: run the command again; when it keeps breaking, read the Most service's log for the request it was handling (cause `most.agent.service.unsent`).
  • `reading the answer from {url}: the service answered HTTP {status}, and its body broke off before it was read whole` — exit 69, and sending it again can help. Fix: run the command again; when it keeps breaking, read the Most service's log for the request it was answering (cause `most.agent.service.answer-unreadable`).
  • `{method} {url}: the service did not accept the bearer the request carried` — exit 1. Fix: set MOST_AGENT_API_TOKEN to the bearer the Most service accepts: the token in the file its MOST_API_TOKEN_FILE names, or the workload capability it is configured with (cause `most.agent.service.refused-auth`).
  • `{method} {url}: what the request names does not exist on the service` — exit 1. Fix: name one that exists: the list reads (`most-cli calls`, `most-cli accounts`, `most-cli webhook-outbox`) show what the service holds (cause `most.agent.service.refused-absent`).
  • `{method} {url}: the service refused the request for what it asked` — exit 1. Fix: change what the answer names and send it again; `most-cli --help` lists each command's arguments (cause `most.agent.service.refused-request`).
  • `{method} {url}: the service is not set up to do what the request asked` — exit 1. Fix: declare what the answer names on the Most service's host (its MOST_* settings and composition, see the operations page), then send it again (cause `most.agent.service.refused-unconfigured`).
  • `{method} {url}: the service or a dependency of it is limiting how often it is asked` — exit 69, and sending it again can help. Fix: send it again later (cause `most.agent.service.throttled`).
  • `{method} {url}: the service or a dependency of it did not answer in time` — exit 69, and sending it again can help. Fix: send it again; when it keeps timing out, read the Most service's log for the dependency it waited on (cause `most.agent.service.timed-out`).
  • `{method} {url}: a dependency of the service is down` — exit 69, and sending it again can help. Fix: send it again; when it stays down, read the Most service's log, which names the dependency and its cause (cause `most.agent.service.unavailable`).