api/java/telnyx-voice-conferencing-java/SKILL.md
Create and manage conference calls, queues, and multi-party sessions. Use when building call centers or conferencing applications. This skill provides Java SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-voice-conferencing-javaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
// See https://github.com/team-telnyx/telnyx-java for Maven/Gradle setup
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
All examples below assume client is already initialized as shown above.
Put the call in a queue.
POST /calls/{call_control_id}/actions/enqueue — Required: queue_name
import com.telnyx.sdk.models.calls.actions.ActionEnqueueParams;
import com.telnyx.sdk.models.calls.actions.ActionEnqueueResponse;
ActionEnqueueParams params = ActionEnqueueParams.builder()
.callControlId("call_control_id")
.queueName("support")
.build();
ActionEnqueueResponse response = client.calls().actions().enqueue(params);
Removes the call from a queue.
POST /calls/{call_control_id}/actions/leave_queue
import com.telnyx.sdk.models.calls.actions.ActionLeaveQueueParams;
import com.telnyx.sdk.models.calls.actions.ActionLeaveQueueResponse;
ActionLeaveQueueResponse response = client.calls().actions().leaveQueue("call_control_id");
Lists conferences.
GET /conferences
import com.telnyx.sdk.models.conferences.ConferenceListPage;
import com.telnyx.sdk.models.conferences.ConferenceListParams;
ConferenceListPage page = client.conferences().list();
Create a conference from an existing call leg using a call_control_id and a conference name.
POST /conferences — Required: call_control_id, name
import com.telnyx.sdk.models.conferences.ConferenceCreateParams;
import com.telnyx.sdk.models.conferences.ConferenceCreateResponse;
ConferenceCreateParams params = ConferenceCreateParams.builder()
.callControlId("v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg")
.name("Business")
.build();
ConferenceCreateResponse conference = client.conferences().create(params);
Retrieve an existing conference
GET /conferences/{id}
import com.telnyx.sdk.models.conferences.ConferenceRetrieveParams;
import com.telnyx.sdk.models.conferences.ConferenceRetrieveResponse;
ConferenceRetrieveResponse conference = client.conferences().retrieve("id");
Hold a list of participants in a conference call
POST /conferences/{id}/actions/hold
import com.telnyx.sdk.models.conferences.actions.ActionHoldParams;
import com.telnyx.sdk.models.conferences.actions.ActionHoldResponse;
ActionHoldResponse response = client.conferences().actions().hold("id");
Join an existing call leg to a conference.
POST /conferences/{id}/actions/join — Required: call_control_id
import com.telnyx.sdk.models.conferences.actions.ActionJoinParams;
import com.telnyx.sdk.models.conferences.actions.ActionJoinResponse;
ActionJoinParams params = ActionJoinParams.builder()
.id("id")
.callControlId("v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg")
.build();
ActionJoinResponse response = client.conferences().actions().join(params);
Removes a call leg from a conference and moves it back to parked state.
POST /conferences/{id}/actions/leave — Required: call_control_id
import com.telnyx.sdk.models.conferences.actions.ActionLeaveParams;
import com.telnyx.sdk.models.conferences.actions.ActionLeaveResponse;
ActionLeaveParams params = ActionLeaveParams.builder()
.id("id")
.callControlId("c46e06d7-b78f-4b13-96b6-c576af9640ff")
.build();
ActionLeaveResponse response = client.conferences().actions().leave(params);
Mute a list of participants in a conference call
POST /conferences/{id}/actions/mute
import com.telnyx.sdk.models.conferences.actions.ActionMuteParams;
import com.telnyx.sdk.models.conferences.actions.ActionMuteResponse;
ActionMuteResponse response = client.conferences().actions().mute("id");
Play audio to all or some participants on a conference call.
POST /conferences/{id}/actions/play
import com.telnyx.sdk.models.conferences.actions.ActionPlayParams;
import com.telnyx.sdk.models.conferences.actions.ActionPlayResponse;
ActionPlayResponse response = client.conferences().actions().play("id");
Pause conference recording.
POST /conferences/{id}/actions/record_pause
import com.telnyx.sdk.models.conferences.actions.ActionRecordPauseParams;
import com.telnyx.sdk.models.conferences.actions.ActionRecordPauseResponse;
ActionRecordPauseResponse response = client.conferences().actions().recordPause("id");
Resume conference recording.
POST /conferences/{id}/actions/record_resume
import com.telnyx.sdk.models.conferences.actions.ActionRecordResumeParams;
import com.telnyx.sdk.models.conferences.actions.ActionRecordResumeResponse;
ActionRecordResumeResponse response = client.conferences().actions().recordResume("id");
Start recording the conference.
POST /conferences/{id}/actions/record_start — Required: format
import com.telnyx.sdk.models.conferences.actions.ActionRecordStartParams;
import com.telnyx.sdk.models.conferences.actions.ActionRecordStartResponse;
ActionRecordStartParams params = ActionRecordStartParams.builder()
.id("id")
.format(ActionRecordStartParams.Format.WAV)
.build();
ActionRecordStartResponse response = client.conferences().actions().recordStart(params);
Stop recording the conference.
POST /conferences/{id}/actions/record_stop
import com.telnyx.sdk.models.conferences.actions.ActionRecordStopParams;
import com.telnyx.sdk.models.conferences.actions.ActionRecordStopResponse;
ActionRecordStopResponse response = client.conferences().actions().recordStop("id");
Convert text to speech and play it to all or some participants.
POST /conferences/{id}/actions/speak — Required: payload, voice
import com.telnyx.sdk.models.conferences.actions.ActionSpeakParams;
import com.telnyx.sdk.models.conferences.actions.ActionSpeakResponse;
ActionSpeakParams params = ActionSpeakParams.builder()
.id("id")
.payload("Say this to participants")
.voice("female")
.build();
ActionSpeakResponse response = client.conferences().actions().speak(params);
Stop audio being played to all or some participants on a conference call.
POST /conferences/{id}/actions/stop
import com.telnyx.sdk.models.conferences.actions.ActionStopParams;
import com.telnyx.sdk.models.conferences.actions.ActionStopResponse;
ActionStopResponse response = client.conferences().actions().stop("id");
Unhold a list of participants in a conference call
POST /conferences/{id}/actions/unhold — Required: call_control_ids
import com.telnyx.sdk.models.conferences.actions.ActionUnholdParams;
import com.telnyx.sdk.models.conferences.actions.ActionUnholdResponse;
ActionUnholdParams params = ActionUnholdParams.builder()
.id("id")
.addCallControlId("v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg")
.build();
ActionUnholdResponse response = client.conferences().actions().unhold(params);
Unmute a list of participants in a conference call
POST /conferences/{id}/actions/unmute
import com.telnyx.sdk.models.conferences.actions.ActionUnmuteParams;
import com.telnyx.sdk.models.conferences.actions.ActionUnmuteResponse;
ActionUnmuteResponse response = client.conferences().actions().unmute("id");
Update conference participant supervisor_role
POST /conferences/{id}/actions/update — Required: call_control_id, supervisor_role
import com.telnyx.sdk.models.conferences.actions.ActionUpdateParams;
import com.telnyx.sdk.models.conferences.actions.ActionUpdateResponse;
import com.telnyx.sdk.models.conferences.actions.UpdateConference;
ActionUpdateParams params = ActionUpdateParams.builder()
.id("id")
.updateConference(UpdateConference.builder()
.callControlId("v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg")
.supervisorRole(UpdateConference.SupervisorRole.WHISPER)
.build())
.build();
ActionUpdateResponse action = client.conferences().actions().update(params);
Lists conference participants
GET /conferences/{conference_id}/participants
import com.telnyx.sdk.models.conferences.ConferenceListParticipantsPage;
import com.telnyx.sdk.models.conferences.ConferenceListParticipantsParams;
ConferenceListParticipantsPage page = client.conferences().listParticipants("conference_id");
The following webhook events are sent to your configured webhook URL.
All webhooks include telnyx-timestamp and telnyx-signature-ed25519 headers for verification (Standard Webhooks compatible).
| Event | Description |
|-------|-------------|
| callEnqueued | Call Enqueued |
| callLeftQueue | Call Left Queue |
| conferenceCreated | Conference Created |
| conferenceEnded | Conference Ended |
| conferenceFloorChanged | Conference Floor Changed |
| conferenceParticipantJoined | Conference Participant Joined |
| conferenceParticipantLeft | Conference Participant Left |
| conferenceParticipantPlaybackEnded | Conference Participant Playback Ended |
| conferenceParticipantPlaybackStarted | Conference Participant Playback Started |
| conferenceParticipantSpeakEnded | Conference Participant Speak Ended |
| conferenceParticipantSpeakStarted | Conference Participant Speak Started |
| conferencePlaybackEnded | Conference Playback Ended |
| conferencePlaybackStarted | Conference Playback Started |
| conferenceRecordingSaved | Conference Recording Saved |
| conferenceSpeakEnded | Conference Speak Ended |
| conferenceSpeakStarted | Conference Speak Started |
tools
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
tools
Build browser-based VoIP calling apps using Telnyx WebRTC JavaScript SDK. Covers authentication, voice calls, events, debugging, call quality metrics, and AI Agent integration. Use for web-based real-time communication.
tools
Build VoIP calling apps on iOS using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, CallKit integration, PushKit/APNS push notifications, call quality metrics, and AI Agent integration. Use when implementing real-time voice communication on iOS.
tools
Build cross-platform VoIP calling apps with Flutter using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, push notifications (FCM + APNS), call quality metrics, and AI Agent integration. Works on Android, iOS, and Web.