Hangup Call
Terminate an active or ringing call.
Hangup Call
End an in-progress or ringing call immediately.
Endpoint
DELETE https://api.tryvox.io/v1/voice/accounts/{auth_id}/calls/{call_uuid}Example request
curl -X DELETE \
-u $TRYVOX_AUTH_ID:$TRYVOX_AUTH_TOKEN \
https://api.tryvox.io/v1/voice/accounts/$TRYVOX_AUTH_ID/calls/550e8400-e29b-41d4-a716-446655440000Response
204 No Content. The call is torn down on the media server, and the configured hangup_url fires with the final CDR.
Behavior
- Both legs of the call are released. In-flight Play / Speak / DTMF / Recording actions are interrupted.
- The call's
hangup_causebecomesMANAGER_REQUESTin the CDR (the SIP layer marks it as a call-side hangup). - Active conferences keep running — hanging up a participant's call removes them from the room but does not end the conference. Use End Conference for that.
Errors
| Status | Code | Reason |
|---|---|---|
| 401 | INVALID_CREDENTIALS | Auth ID / Auth Token bad |
| 403 | FORBIDDEN | Auth ID in URL doesn't match the authenticated key |
| 404 | CALL_NOT_FOUND | No call with this UUID on this account |
| 409 | CALL_NOT_ACTIVE | The call has already ended (status completed, failed, or canceled) |
Error envelope:
{
"error": {
"code": "CALL_NOT_ACTIVE",
"message": "call has already ended"
}
}Use cases
- Cancel a ringing outbound — your retry logic decides the destination is wrong; hang up before answer to avoid billing.
- Force-hangup on max duration — your application enforces a per-call cap stricter than
time_limitand pulls the plug. - Operator override — an agent in the dashboard ends a customer call from outside the call leg.
Notes
- Hangup is final. There's no resume, no undo. The
request_uuidcannot be reused; place a new call if you need to redial. - Status webhooks still fire. The configured
hangup_url(and any subscribedcall.completedwebhook subscription) receives the final CDR. - In-progress recordings are still finalised after a hangup. The recording
callback_urlwill be invoked once the file uploads.