13 of 27 endings are actually stated.

Three ways into the same phone call, and they do not agree about how it ended. This is which surface can express which ending. It is computed by running the mappers on this request, not written down, so it cannot claim coverage the code does not have.

endingcalls-apigoal-runsmcp
answered_human
answered_machine
no_answer
busy
declined
unreachable
provider_failed
canceled
expired

Point at a cell and the mapper will say why it answered that way.

what the words mean

yes
The surface states it outright.
app
Only if the application declared its own field and extraction worked.
derived
Only by inference, never stated.
no
The surface cannot express it, so the reading stays unknown.
collapsed onto
The surface reports this ending as a different one.

The two rows worth sitting with are no_answer and busy. MCP states both. Goal Runs states one and reports the other as a provider fault. The Calls API can reach both, but only by reading a code nested on the attempt, in a different vocabulary from the failure code at the top of the same object. Pick the wrong surface and a busy line becomes an outage.