Voice

Dial Result

The outbound SIP leg was never answered (busy, no answer, rejected, failed). Ends a queued or ringing call with that status and adds ``call_completed`` (0 seconds, disposition ``sip_<code>``) to the timeline; the dial attempt keeps counting toward the calling frequency caps. Idempotent (``recorded: false`` once the call has ended); 409 for a call in progress. ``voicemail`` (RO-043): an answering machine picked up (also for a call in progress); ``message_left`` says whether the agent left its message (disposition ``voicemail_message_left`` or ``voicemail_hung_up``).

API key access

This route has its own authentication (or none); an API key is not used here.
POST/api/v1/calls/{call_id}/dial-result
AuthorizationBearer <token>

Per-call token issued when the call was created (job metadata api_token).

In: header

Path Parameters

call_idstring
Formatuuid

Header Parameters

X-Workspace-Id?string | null

Workspace of the call (must match the token).

lead_idstring
Formatuuid
statusDialStatus

How an unanswered outbound call ended (voicemail, RO-043: an answering machine picked up).

Value in"no_answer" | "busy" | "failed" | "voicemail"
sip_status?integer | null

The SIP final response code, e.g. 486 (busy) or 480 (unavailable).

Formatint32
Range100 <= value <= 699
message_left?boolean | null

RO-043, voicemail only: the agent left its pre-approved message.

Response Body

curl -X POST "http://localhost:8000/api/v1/calls/497f6eca-6276-4993-bfeb-53cbbbba6f08/dial-result" \  -H "X-Workspace-Id: string" \  -H "Content-Type: application/json" \  -d '{    "lead_id": "9bddab70-98e6-43a9-8f32-c9788b9de0c0",    "status": "no_answer"  }'
{
  "status": "queued",
  "recorded": true
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}