Tutorial
Prerequisites
Before working with conferences, you need:
An authentication token. Obtain one via
POST /auth/loginor use an access key fromGET /accesskeys.(Optional) A flow ID (UUID) for
pre_actionsorpost_actions. Create one viaPOST /flowsor obtain fromGET /flows.(Optional) To add participants, you need an active call. Create one via
POST /callsor obtain fromGET /calls.
Note
AI Implementation Hint
Conferences are created with POST /conferences and begin in starting status, quickly transitioning to progressing. Participants do not join via the conference API directly – they join through flow actions (conference_join). To remove a participant, use DELETE /conferencecalls/{conferencecall_id}. To terminate the entire conference, use DELETE /conferences/{conference_id}.
Install channel: line
Example
$ curl --location --request POST 'https://api.voipbin.net/v1.0/conversations/setup?token=<YOUR_AUTH_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"reference_type": "line"
}'
Get list of conferences
Example
$ curl -k --location --request GET 'https://api.voipbin.net/v1.0/conferences?token=<YOUR_AUTH_TOKEN>'
{
"result": [
{
"id": "17039950-eab0-421d-a5f5-05acd1ac6801",
"user_id": 1,
"type": "conference",
"status": "",
"name": "",
"detail": "",
"conferencecall_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": null,
"tm_create": "2021-02-04 02:55:39.659316",
"tm_update": "2021-02-04 02:56:07.525985",
"tm_delete": ""
},
...
],
"next_page_token": "2021-02-03 09:33:58.077756"
}
Get detail of conference
Example
$ curl -k --location --request GET 'https://api.voipbin.net/v1.0/conferences/0e7112d7-6ddc-47ea-bba5-223a3a55ff79?token=<YOUR_AUTH_TOKEN>'
{
"id": "0e7112d7-6ddc-47ea-bba5-223a3a55ff79",
"user_id": 1,
"type": "conference",
"status": "",
"name": "",
"detail": "",
"conferencecall_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": [],
"tm_create": "2021-02-03 10:44:42.163464",
"tm_update": "2021-02-03 10:52:08.488301",
"tm_delete": ""
}
Create a new conference
Example
$ curl -k --location --request POST 'https://api.voipbin.net/v1.0/conferences?token=<YOUR_AUTH_TOKEN>' \
--data-raw '{
"type": "conference",
"name": "test conference",
"detail": "test conference for example"
}'
{
"id": "85252d7b-777b-4580-9420-4df8c6adfc30",
"user_id": 1,
"type": "conference",
"status": "",
"name": "test conference",
"detail": "test conference for example",
"conferencecall_ids": [],
"recording_id": "00000000-0000-0000-0000-000000000000",
"recording_ids": null,
"tm_create": "2021-02-04 03:05:57.710583",
"tm_update": "",
"tm_delete": ""
}
Kick the conferencecall from the conference
Note
AI Implementation Hint
You can only kick participants whose status is joining or joined. Attempting to delete a conferencecall in leaving or leaved status will fail. Obtain the conferencecall ID from the conference’s conferencecall_ids array (via GET /conferences/{id}) or from GET /conferencecalls.
Example
$ curl --location --request DELETE 'https://api.voipbin.net/v1.0/conferencecalls/4833755c-f5d0-4bf2-a101-7d3a7e5e586f?token=<YOUR_AUTH_TOKEN>'
{
"id": "4833755c-f5d0-4bf2-a101-7d3a7e5e586f", // Conferencecall ID (UUID)
"customer_id": "5e4a0680-804e-11ec-8477-2fea5968d85b", // Customer UUID
"conference_id": "99accfb7-c0dd-4a54-997d-dd18af7bc280", // Parent conference UUID
"reference_type": "call", // enum: call, line
"reference_id": "153c2866-ade0-4a55-a5a7-027e463d9207", // The call's UUID
"status": "leaving", // enum: joining, joined, leaving, leaved
"tm_create": "2022-08-09 03:53:49.142446", // ISO 8601 timestamp
"tm_update": "2022-08-09 03:54:10.035297",
"tm_delete": "9999-01-01 00:00:00.000000" // 9999-01-01 means not deleted
}
Regenerate direct conference hash
Regenerate the direct hash for a conference. This invalidates the previous SIP URI and creates a new one. If the conference has no existing direct hash, one is created automatically.
$ curl -k --location --request POST 'https://api.voipbin.net/v1.0/conferences/99accfb7-c0dd-4a54-997d-dd18af7bc280/direct-hash-regenerate?token=<YOUR_AUTH_TOKEN>'
{
"id": "99accfb7-c0dd-4a54-997d-dd18af7bc280",
"customer_id": "5e4a0680-804e-11ec-8477-2fea5968d85b",
"type": "conference",
"status": "progressing",
"name": "test conference",
"detail": "test conference for example.",
"direct_hash": "b3c4d5e6f7a8",
"tm_create": "2022-02-03 06:08:56.672025",
"tm_update": "2022-08-06 19:11:13.040418",
"tm_delete": "9999-01-01 00:00:00.000000"
}
Note
AI Implementation Hint
This endpoint requires no request body. The direct_hash in the response is the new hash — the previous hash is permanently invalidated. The direct SIP URI format is sip:direct.<hash>@sip.voipbin.net.
Troubleshooting
- 400 Bad Request:
Cause: Invalid conference creation parameters (e.g., missing
typefield).Fix: Ensure the request body includes
"type": "conference"and anamestring.
- 404 Not Found:
Cause: The conference UUID or conferencecall UUID does not exist or belongs to a different customer.
Fix: Verify the UUID was obtained from
GET /conferencesorGET /conferencecalls.
- 409 Conflict (kick participant):
Cause: Attempted to kick a participant whose status is
leavingorleaved.Fix: Check participant status via
GET /conferencecalls/{id}before attempting deletion. Onlyjoiningorjoinedparticipants can be kicked.
- Conference has no participants:
Cause: Participants join through flow actions (
conference_join), not through the conference API.Fix: Create a call with a flow containing a
conference_joinaction that references the conference ID.