I’ve been digging through the Conversations API docs for the last hour and I can’t find a clean way to drop a single participant from an active conference call. The use case is pretty standard for our custom agent desktop. We have a three-way call with the agent, the customer, and a supervisor. The agent needs a button to disconnect the supervisor without hanging up the main customer leg.
I tried hitting DELETE /api/v2/conversations/voice/{conversationId} but that obviously kills the whole conversation. Not what we want. I also looked at POST /api/v2/conversations/voice/{conversationId}/participants/{participantId} with a disconnect action in the body, but the endpoint doesn’t seem to exist or I’m getting 404s. Wait, actually, the docs mention PUT /api/v2/conversations/voice/{conversationId}/participants/{participantId} for updating participant properties, but I don’t see a disconnect flag in the schema.
Here’s the payload I’ve been experimenting with:
{
"id": "participant-id-123",
"address": {
"id": "supervisor-phone-number"
}
}
If I just delete the participant ID from the array in a hypothetical update, does the API support that? Or do I need to use the disconnect action type? I found an old forum post from 2021 suggesting POST /api/v2/conversations/voice/{conversationId}/participants/{participantId}/disconnect but that returns 404 now.
Is there a specific action field I’m missing in the participant update body? Something like:
{
"action": "disconnect"
}
I’m using the Python SDK, so if there’s a method like disconnect_participant I’m totally missing it. The conversation_api object has delete_participant but that seems to remove the participant from the conversation history entirely, which might not be the same as a live disconnect. I need to know the exact HTTP verb and endpoint to cleanly drop a leg. Thanks.