api/java/telnyx-video-java/SKILL.md
Create and manage video rooms for real-time video communication and conferencing. This skill provides Java SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-video-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.
GET /room_compositions
import com.telnyx.sdk.models.roomcompositions.RoomCompositionListPage;
import com.telnyx.sdk.models.roomcompositions.RoomCompositionListParams;
RoomCompositionListPage page = client.roomCompositions().list();
Asynchronously create a room composition.
POST /room_compositions
import com.telnyx.sdk.models.roomcompositions.RoomCompositionCreateParams;
import com.telnyx.sdk.models.roomcompositions.RoomCompositionCreateResponse;
RoomCompositionCreateResponse roomComposition = client.roomCompositions().create();
GET /room_compositions/{room_composition_id}
import com.telnyx.sdk.models.roomcompositions.RoomCompositionRetrieveParams;
import com.telnyx.sdk.models.roomcompositions.RoomCompositionRetrieveResponse;
RoomCompositionRetrieveResponse roomComposition = client.roomCompositions().retrieve("5219b3af-87c6-4c08-9b58-5a533d893e21");
Synchronously delete a room composition.
DELETE /room_compositions/{room_composition_id}
import com.telnyx.sdk.models.roomcompositions.RoomCompositionDeleteParams;
client.roomCompositions().delete("5219b3af-87c6-4c08-9b58-5a533d893e21");
GET /room_participants
import com.telnyx.sdk.models.roomparticipants.RoomParticipantListPage;
import com.telnyx.sdk.models.roomparticipants.RoomParticipantListParams;
RoomParticipantListPage page = client.roomParticipants().list();
GET /room_participants/{room_participant_id}
import com.telnyx.sdk.models.roomparticipants.RoomParticipantRetrieveParams;
import com.telnyx.sdk.models.roomparticipants.RoomParticipantRetrieveResponse;
RoomParticipantRetrieveResponse roomParticipant = client.roomParticipants().retrieve("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
GET /room_recordings
import com.telnyx.sdk.models.roomrecordings.RoomRecordingListPage;
import com.telnyx.sdk.models.roomrecordings.RoomRecordingListParams;
RoomRecordingListPage page = client.roomRecordings().list();
DELETE /room_recordings
import com.telnyx.sdk.models.roomrecordings.RoomRecordingDeleteBulkParams;
import com.telnyx.sdk.models.roomrecordings.RoomRecordingDeleteBulkResponse;
RoomRecordingDeleteBulkResponse response = client.roomRecordings().deleteBulk();
GET /room_recordings/{room_recording_id}
import com.telnyx.sdk.models.roomrecordings.RoomRecordingRetrieveParams;
import com.telnyx.sdk.models.roomrecordings.RoomRecordingRetrieveResponse;
RoomRecordingRetrieveResponse roomRecording = client.roomRecordings().retrieve("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Synchronously delete a Room Recording.
DELETE /room_recordings/{room_recording_id}
import com.telnyx.sdk.models.roomrecordings.RoomRecordingDeleteParams;
client.roomRecordings().delete("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
GET /room_sessions
import com.telnyx.sdk.models.rooms.sessions.SessionList0Page;
import com.telnyx.sdk.models.rooms.sessions.SessionList0Params;
SessionList0Page page = client.rooms().sessions().list0();
GET /room_sessions/{room_session_id}
import com.telnyx.sdk.models.rooms.sessions.SessionRetrieveParams;
import com.telnyx.sdk.models.rooms.sessions.SessionRetrieveResponse;
SessionRetrieveResponse session = client.rooms().sessions().retrieve("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Note: this will also kick all participants currently present in the room
POST /room_sessions/{room_session_id}/actions/end
import com.telnyx.sdk.models.rooms.sessions.actions.ActionEndParams;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionEndResponse;
ActionEndResponse response = client.rooms().sessions().actions().end("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
POST /room_sessions/{room_session_id}/actions/kick
import com.telnyx.sdk.models.rooms.sessions.actions.ActionKickParams;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionKickResponse;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionsParticipantsRequest;
ActionKickParams params = ActionKickParams.builder()
.roomSessionId("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0")
.actionsParticipantsRequest(ActionsParticipantsRequest.builder().build())
.build();
ActionKickResponse response = client.rooms().sessions().actions().kick(params);
POST /room_sessions/{room_session_id}/actions/mute
import com.telnyx.sdk.models.rooms.sessions.actions.ActionMuteParams;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionMuteResponse;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionsParticipantsRequest;
ActionMuteParams params = ActionMuteParams.builder()
.roomSessionId("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0")
.actionsParticipantsRequest(ActionsParticipantsRequest.builder().build())
.build();
ActionMuteResponse response = client.rooms().sessions().actions().mute(params);
POST /room_sessions/{room_session_id}/actions/unmute
import com.telnyx.sdk.models.rooms.sessions.actions.ActionUnmuteParams;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionUnmuteResponse;
import com.telnyx.sdk.models.rooms.sessions.actions.ActionsParticipantsRequest;
ActionUnmuteParams params = ActionUnmuteParams.builder()
.roomSessionId("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0")
.actionsParticipantsRequest(ActionsParticipantsRequest.builder().build())
.build();
ActionUnmuteResponse response = client.rooms().sessions().actions().unmute(params);
GET /room_sessions/{room_session_id}/participants
import com.telnyx.sdk.models.rooms.sessions.SessionRetrieveParticipantsPage;
import com.telnyx.sdk.models.rooms.sessions.SessionRetrieveParticipantsParams;
SessionRetrieveParticipantsPage page = client.rooms().sessions().retrieveParticipants("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
GET /rooms
import com.telnyx.sdk.models.rooms.RoomListPage;
import com.telnyx.sdk.models.rooms.RoomListParams;
RoomListPage page = client.rooms().list();
Synchronously create a Room.
POST /rooms
import com.telnyx.sdk.models.rooms.RoomCreateParams;
import com.telnyx.sdk.models.rooms.RoomCreateResponse;
RoomCreateResponse room = client.rooms().create();
GET /rooms/{room_id}
import com.telnyx.sdk.models.rooms.RoomRetrieveParams;
import com.telnyx.sdk.models.rooms.RoomRetrieveResponse;
RoomRetrieveResponse room = client.rooms().retrieve("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Synchronously update a Room.
PATCH /rooms/{room_id}
import com.telnyx.sdk.models.rooms.RoomUpdateParams;
import com.telnyx.sdk.models.rooms.RoomUpdateResponse;
RoomUpdateResponse room = client.rooms().update("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Synchronously delete a Room.
DELETE /rooms/{room_id}
import com.telnyx.sdk.models.rooms.RoomDeleteParams;
client.rooms().delete("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Synchronously create an Client Token to join a Room.
POST /rooms/{room_id}/actions/generate_join_client_token
import com.telnyx.sdk.models.rooms.actions.ActionGenerateJoinClientTokenParams;
import com.telnyx.sdk.models.rooms.actions.ActionGenerateJoinClientTokenResponse;
ActionGenerateJoinClientTokenResponse response = client.rooms().actions().generateJoinClientToken("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
Synchronously refresh an Client Token to join a Room.
POST /rooms/{room_id}/actions/refresh_client_token — Required: refresh_token
import com.telnyx.sdk.models.rooms.actions.ActionRefreshClientTokenParams;
import com.telnyx.sdk.models.rooms.actions.ActionRefreshClientTokenResponse;
ActionRefreshClientTokenParams params = ActionRefreshClientTokenParams.builder()
.roomId("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0")
.refreshToken("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ0ZWxueXhfdGVsZXBob255IiwiZXhwIjoxNTkwMDEwMTQzLCJpYXQiOjE1ODc1OTA5NDMsImlzcyI6InRlbG55eF90ZWxlcGhvbnkiLCJqdGkiOiJiOGM3NDgzNy1kODllLTRhNjUtOWNmMi0zNGM3YTZmYTYwYzgiLCJuYmYiOjE1ODc1OTA5NDIsInN1YiI6IjVjN2FjN2QwLWRiNjUtNGYxMS05OGUxLWVlYzBkMWQ1YzZhZSIsInRlbF90b2tlbiI6InJqX1pra1pVT1pNeFpPZk9tTHBFVUIzc2lVN3U2UmpaRmVNOXMtZ2JfeENSNTZXRktGQUppTXlGMlQ2Q0JSbWxoX1N5MGlfbGZ5VDlBSThzRWlmOE1USUlzenl6U2xfYURuRzQ4YU81MHlhSEd1UlNZYlViU1ltOVdJaVEwZz09IiwidHlwIjoiYWNjZXNzIn0.gNEwzTow5MLLPLQENytca7pUN79PmPj6FyqZWW06ZeEmesxYpwKh0xRtA0TzLh6CDYIRHrI8seofOO0YFGDhpQ")
.build();
ActionRefreshClientTokenResponse response = client.rooms().actions().refreshClientToken(params);
GET /rooms/{room_id}/sessions
import com.telnyx.sdk.models.rooms.sessions.SessionList1Page;
import com.telnyx.sdk.models.rooms.sessions.SessionList1Params;
SessionList1Page page = client.rooms().sessions().list1("0ccc7b54-4df3-4bca-a65a-3da1ecc777f0");
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.