Take a call offered to you
POST/api/calls/:callId/transfer/accept
The target picks the call up (SES-1 F4). answered_by moves here and
only here, in one conditional UPDATE — two targets of a department
offer pressing at the same instant produce one winner, and the loser
gets 409 transfer_not_pending rather than a silently broken call.
The customer STAYS PARKED. The new agent's audio leg does not exist
yet; their client raises it (POST /api/calls/{callId}/webrtc, reason
takeover) and then resumes — one deliberate press, with the
microphone already live. Un-parking onto a leg that is not there would
be exactly the silence this phase exists to remove.
Authorized on view rather than reply: the thread still belongs to
the agent handing it over, so requiring reply would make every
hand-off to a non-supervisor impossible. The right to accept comes from
being ON the offer, and the offer only ever reached seats that passed
the permission test when it was made.
Request
Responses
- 200
- 401
- 403
- 404
- 409
The call is yours; the customer is still on hold.
Not authenticated. code: account_disabled means the member's seat was deactivated in this workspace: the session is over even though the token was not revoked (clients sign out and clean up).
not_transfer_target — this call was not offered to you.
Resource not found (or not visible to the current tenant).
transfer_not_pending (someone else took it, or it was withdrawn) or transfer_expired (the window closed — the call has gone back to the agent who offered it).