{"id":"f9f73482-3a4d-4159-ab8e-19c165707de3","shortId":"4wJTAC","kind":"skill","title":"telnyx-voice-advanced-java","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Advanced - Java\n\n## Installation\n\n```text\n<!-- Maven -->\n<dependency>\n    <groupId>com.telnyx.sdk</groupId>\n    <artifactId>telnyx</artifactId>\n    <version>6.36.0</version>\n</dependency>\n\n// Gradle\nimplementation(\"com.telnyx.sdk:telnyx:6.36.0\")\n```\n\n## Setup\n\n```java\nimport com.telnyx.sdk.client.TelnyxClient;\nimport com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;\n\nTelnyxClient client = TelnyxOkHttpClient.fromEnv();\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```java\nimport com.telnyx.sdk.errors.TelnyxServiceException;\n\ntry {\n    var result = client.messages().send(params);\n} catch (TelnyxServiceException e) {\n    System.err.println(\"API error \" + e.statusCode() + \": \" + e.getMessage());\n    if (e.statusCode() == 422) {\n        System.err.println(\"Validation error — check required fields and formats\");\n    } else if (e.statusCode() == 429) {\n        // Rate limited — wait and retry with exponential backoff\n        Thread.sleep(1000);\n    }\n}\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Join AI Assistant Conversation\n\nAdd a participant to an existing AI assistant conversation. Use this command to bring an additional call leg into a running AI conversation.\n\n`POST /calls/{call_control_id}/actions/ai_assistant_join` — Required: `conversation_id`, `participant`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionJoinAiAssistantParams;\nimport com.telnyx.sdk.models.calls.actions.ActionJoinAiAssistantResponse;\n\nActionJoinAiAssistantParams params = ActionJoinAiAssistantParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .conversationId(\"v3:abc123\")\n    .participant(ActionJoinAiAssistantParams.Participant.builder()\n        .id(\"v3:abc123def456\")\n        .role(ActionJoinAiAssistantParams.Participant.Role.USER)\n        .build())\n    .build();\nActionJoinAiAssistantResponse response = client.calls().actions().joinAiAssistant(params);\n```\n\nReturns: `conversation_id` (uuid), `result` (string)\n\n## Update client state\n\nUpdates client state\n\n`PUT /calls/{call_control_id}/actions/client_state_update` — Required: `client_state`\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionUpdateClientStateParams;\nimport com.telnyx.sdk.models.calls.actions.ActionUpdateClientStateResponse;\n\nActionUpdateClientStateParams params = ActionUpdateClientStateParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .clientState(\"aGF2ZSBhIG5pY2UgZGF5ID1d\")\n    .build();\nActionUpdateClientStateResponse response = client.calls().actions().updateClientState(params);\n```\n\nReturns: `result` (string)\n\n## Send DTMF\n\nSends DTMF tones from this leg. DTMF tones will be heard by the other end of the call. **Expected Webhooks:**\n\nThere are no webhooks associated with this command.\n\n`POST /calls/{call_control_id}/actions/send_dtmf` — Required: `digits`\n\nOptional: `client_state` (string), `command_id` (string), `duration_millis` (int32)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionSendDtmfParams;\nimport com.telnyx.sdk.models.calls.actions.ActionSendDtmfResponse;\n\nActionSendDtmfParams params = ActionSendDtmfParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .digits(\"1www2WABCDw9\")\n    .build();\nActionSendDtmfResponse response = client.calls().actions().sendDtmf(params);\n```\n\nReturns: `result` (string)\n\n## SIPREC start\n\nStart siprec session to configured in SIPREC connector SRS. \n\n**Expected Webhooks:**\n\n- `siprec.started`\n- `siprec.stopped`\n- `siprec.failed`\n\n`POST /calls/{call_control_id}/actions/siprec_start`\n\nOptional: `client_state` (string), `connector_name` (string), `include_metadata_custom_headers` (boolean), `secure` (boolean), `session_timeout_secs` (integer), `sip_transport` (enum: udp, tcp, tls), `siprec_track` (enum: inbound_track, outbound_track, both_tracks)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStartSiprecParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStartSiprecResponse;\n\nActionStartSiprecResponse response = client.calls().actions().startSiprec(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## SIPREC stop\n\nStop SIPREC session. **Expected Webhooks:**\n\n- `siprec.stopped`\n\n`POST /calls/{call_control_id}/actions/siprec_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStopSiprecParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStopSiprecResponse;\n\nActionStopSiprecResponse response = client.calls().actions().stopSiprec(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Noise Suppression Start (BETA)\n\n`POST /calls/{call_control_id}/actions/suppression_start`\n\nOptional: `client_state` (string), `command_id` (string), `direction` (enum: inbound, outbound, both), `noise_suppression_engine` (enum: Denoiser, DeepFilterNet, Krisp, AiCoustics), `noise_suppression_engine_config` (object)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStartNoiseSuppressionParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStartNoiseSuppressionResponse;\n\nActionStartNoiseSuppressionResponse response = client.calls().actions().startNoiseSuppression(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Noise Suppression Stop (BETA)\n\n`POST /calls/{call_control_id}/actions/suppression_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStopNoiseSuppressionParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStopNoiseSuppressionResponse;\n\nActionStopNoiseSuppressionResponse response = client.calls().actions().stopNoiseSuppression(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Switch supervisor role\n\nSwitch the supervisor role for a bridged call. This allows switching between different supervisor modes during an active call\n\n`POST /calls/{call_control_id}/actions/switch_supervisor_role` — Required: `role`\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionSwitchSupervisorRoleParams;\nimport com.telnyx.sdk.models.calls.actions.ActionSwitchSupervisorRoleResponse;\n\nActionSwitchSupervisorRoleParams params = ActionSwitchSupervisorRoleParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .role(ActionSwitchSupervisorRoleParams.Role.BARGE)\n    .build();\nActionSwitchSupervisorRoleResponse response = client.calls().actions().switchSupervisorRole(params);\n```\n\nReturns: `result` (string)\n\n---\n\n## Webhooks\n\n### Webhook Verification\n\nTelnyx signs webhooks with Ed25519. Each request includes `telnyx-signature-ed25519`\nand `telnyx-timestamp` headers. Always verify signatures in production:\n\n```java\nimport com.telnyx.sdk.core.UnwrapWebhookParams;\nimport com.telnyx.sdk.core.http.Headers;\n\n// In your webhook handler (e.g., Spring — use raw body):\n@PostMapping(\"/webhooks\")\npublic ResponseEntity<String> handleWebhook(\n    @RequestBody String payload,\n    HttpServletRequest request) {\n  try {\n    Headers headers = Headers.builder()\n        .put(\"telnyx-signature-ed25519\", request.getHeader(\"telnyx-signature-ed25519\"))\n        .put(\"telnyx-timestamp\", request.getHeader(\"telnyx-timestamp\"))\n        .build();\n    var event = client.webhooks().unwrap(\n        UnwrapWebhookParams.builder()\n            .body(payload)\n            .headers(headers)\n            .build());\n    // Signature valid — process the event\n    System.out.println(\"Received webhook event\");\n    return ResponseEntity.ok(\"OK\");\n  } catch (Exception e) {\n    System.err.println(\"Webhook verification failed: \" + e.getMessage());\n    return ResponseEntity.badRequest().body(\"Invalid signature\");\n  }\n}\n```\n\nThe following webhook events are sent to your configured webhook URL.\nAll webhooks include `telnyx-timestamp` and `telnyx-signature-ed25519` headers for Ed25519 signature verification. Use `client.webhooks.unwrap()` to verify.\n\n| Event | Description |\n|-------|-------------|\n| `callConversationEnded` | Call Conversation Ended |\n| `callConversationInsightsGenerated` | Call Conversation Insights Generated |\n| `callDtmfReceived` | Call Dtmf Received |\n| `callMachineDetectionEnded` | Call Machine Detection Ended |\n| `callMachineGreetingEnded` | Call Machine Greeting Ended |\n| `callMachinePremiumDetectionEnded` | Call Machine Premium Detection Ended |\n| `callMachinePremiumGreetingEnded` | Call Machine Premium Greeting Ended |\n| `callReferCompleted` | Call Refer Completed |\n| `callReferFailed` | Call Refer Failed |\n| `callReferStarted` | Call Refer Started |\n| `callSiprecFailed` | Call Siprec Failed |\n| `callSiprecStarted` | Call Siprec Started |\n| `callSiprecStopped` | Call Siprec Stopped |\n\n### Webhook payload fields\n\n**`callConversationEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.conversation.ended | The type of event being delivered. |\n| `data.id` | uuid | Unique identifier for the event. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.created_at` | date-time | Timestamp when the event was created in the system. |\n| `data.payload.assistant_id` | string | Unique identifier of the assistant involved in the call. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call leg. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session (group of related call legs). |\n| `data.payload.client_state` | string | Base64-encoded state received from a command. |\n| `data.payload.calling_party_type` | enum: pstn, sip | The type of calling party connection. |\n| `data.payload.conversation_id` | string | ID unique to the conversation or insight group generated for the call. |\n| `data.payload.duration_sec` | integer | Duration of the conversation in seconds. |\n| `data.payload.from` | string | The caller's number or identifier. |\n| `data.payload.to` | string | The callee's number or SIP address. |\n| `data.payload.llm_model` | string | The large language model used during the conversation. |\n| `data.payload.stt_model` | string | The speech-to-text model used in the conversation. |\n| `data.payload.tts_provider` | string | The text-to-speech provider used in the call. |\n| `data.payload.tts_model_id` | string | The model ID used for text-to-speech synthesis. |\n| `data.payload.tts_voice_id` | string | Voice ID used for TTS. |\n\n**`callConversationInsightsGenerated`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.conversation_insights.generated | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.calling_party_type` | enum: pstn, sip | The type of calling party connection. |\n| `data.payload.insight_group_id` | string | ID that is unique to the insight group being generated for the call. |\n| `data.payload.results` | array[object] | Array of insight results being generated for the call. |\n\n**`callDtmfReceived`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.dtmf.received | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Identifies the type of resource. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.digit` | string | The received DTMF digit or symbol. |\n\n**`callMachineDetectionEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.detection.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: human, machine, not_sure | Answering machine detection result. |\n\n**`callMachineGreetingEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.greeting.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: beep_detected, ended, not_sure | Answering machine greeting ended result. |\n\n**`callMachinePremiumDetectionEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.premium.detection.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: human_residence, human_business, machine, silence, fax_detected, not_sure | Premium Answering Machine Detection result. |\n\n**`callMachinePremiumGreetingEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.premium.greeting.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: beep_detected, no_beep_detected | Premium Answering Machine Greeting Ended result. |\n\n**`callReferCompleted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.completed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callReferFailed`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.failed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callReferStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callSiprecFailed`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the resource. |\n| `data.event_type` | enum: siprec.failed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.failure_cause` | string | Q850 reason why siprec session failed. |\n\n**`callSiprecStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: siprec.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n\n**`callSiprecStopped`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: siprec.stopped | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.hangup_cause` | string | Q850 reason why the SIPREC session was stopped. |","tags":["telnyx","voice","advanced","java","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-advanced-java","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-java","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (24,861 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:50.807Z","embedding":null,"createdAt":"2026-04-18T22:08:14.634Z","updatedAt":"2026-04-22T00:54:50.807Z","lastSeenAt":"2026-04-22T00:54:50.807Z","tsv":"'/actions/ai_assistant_join':167 '/actions/client_state_update':231 '/actions/send_dtmf':299 '/actions/siprec_start':362 '/actions/siprec_stop':430 '/actions/suppression_start':468 '/actions/suppression_stop':524 '/actions/switch_supervisor_role':580 '/calls':163,227,295,358,426,464,520,576 '/webhooks':652 '1000':107 '1www2wabcdw9':330 '401':59,111 '403':115 '404':118 '41d4':192,248,325,410,452,508,546,596 '422':55,85,122 '429':52,97,128 '446655440000':194,250,327,412,454,510,548,598 '550e8400':189,245,322,407,449,505,543,593 '6.36.0':14,19 '8601':851,1103,1264,1404,1553,1704,1860,2012,2160,2308,2453,2582,2702 'a716':193,249,326,411,453,509,547,597 'abc123':198 'abc123def456':203 'action':211,258,335,404,446,502,540,606 'actionjoinaiassistantparam':184 'actionjoinaiassistantparams.builder':186 'actionjoinaiassistantparams.participant.builder':200 'actionjoinaiassistantparams.participant.role.user':205 'actionjoinaiassistantrespons':208 'actionsenddtmfparam':317 'actionsenddtmfparams.builder':319 'actionsenddtmfrespons':332 'actionstartnoisesuppressionrespons':499 'actionstartsiprecrespons':401 'actionstopnoisesuppressionrespons':537 'actionstopsiprecrespons':443 'actionswitchsupervisorroleparam':588 'actionswitchsupervisorroleparams.builder':590 'actionswitchsupervisorroleparams.role.barge':601 'actionswitchsupervisorrolerespons':603 'actionupdateclientstateparam':240 'actionupdateclientstateparams.builder':242 'actionupdateclientstaterespons':255 'activ':573 'add':139 'addit':154 'address':1005 'advanc':4,8 'agf2zsbhig5py2ugzgf5id1d':253 'ai':136,145,160 'aicoust':488 'allow':565 'alreadi':35 'alway':60,632 'answer':1512,1662,1819,1970 'api':43,79,113,897,1123,1284,1424,1573,1724,1880,2473,2602,2722 'app':903,1129,1430,1579,1730,1886,2073,2221,2369,2479,2608,2728 'array':1216,1218 'assist':137,146,879 'associ':290 'assum':32 'attempt':2112,2260,2408 'authent':57 'backoff':105,134 'base64':946 'base64-encoded':945 'beep':1657,1964,1967 'beta':462,518 'bodi':650,689,716 'boolean':374,376 'bridg':562 'bring':152 'build':206,207,254,331,602,683,693 'busi':1811 'call':44,155,164,228,283,296,359,427,465,521,563,574,577,753,757,762,766,771,776,782,788,792,796,800,804,808,883,888,895,901,912,923,935,940,962,979,1042,1114,1121,1127,1138,1149,1168,1195,1214,1226,1275,1282,1303,1322,1348,1358,1415,1422,1428,1439,1450,1469,1495,1505,1564,1571,1577,1588,1599,1618,1644,1654,1715,1722,1728,1739,1750,1769,1795,1805,1871,1878,1884,1895,1906,1925,1951,1961,2028,2039,2058,2071,2082,2099,2122,2176,2187,2206,2219,2230,2247,2270,2324,2335,2354,2367,2378,2395,2418,2464,2471,2477,2488,2499,2518,2593,2600,2606,2617,2628,2647,2713,2720,2726,2737,2748,2767 'call.conversation.ended':831 'call.conversation_insights.generated':1083 'call.dtmf.received':1244 'call.machine.detection.ended':1384 'call.machine.greeting.ended':1533 'call.machine.premium.detection.ended':1684 'call.machine.premium.greeting.ended':1840 'call.refer.completed':1992 'call.refer.failed':2140 'call.refer.started':2288 'callcontrolid':187,243,320,591 'callconversationend':752,814 'callconversationinsightsgener':756,1066 'calldtmfreceiv':761,1227 'calle':1000 'caller':992 'callmachinedetectionend':765,1367 'callmachinegreetingend':770,1516 'callmachinepremiumdetectionend':775,1667 'callmachinepremiumgreetingend':781,1823 'callrefercomplet':787,1975 'callreferfail':791,2123 'callreferstart':795,2271 'callsiprecfail':799,2419 'callsiprecstart':803,2545 'callsiprecstop':807,2665 'catch':75,706 'caus':2537,2786 'check':89,125 'client':27,33,173,221,224,233,303,364,432,470,526 'client.calls':210,257,334,403,445,501,539,605 'client.messages':72 'client.webhooks':686 'client.webhooks.unwrap':747 'clientstat':252 'code':65,110 'com.telnyx.sdk':12,17 'com.telnyx.sdk.client.okhttp.telnyxokhttpclient':25 'com.telnyx.sdk.client.telnyxclient':23 'com.telnyx.sdk.core.http.headers':641 'com.telnyx.sdk.core.unwrapwebhookparams':639 'com.telnyx.sdk.errors.telnyxserviceexception':68 'com.telnyx.sdk.models.calls.actions.actionjoinaiassistantparams':181 'com.telnyx.sdk.models.calls.actions.actionjoinaiassistantresponse':183 'com.telnyx.sdk.models.calls.actions.actionsenddtmfparams':314 'com.telnyx.sdk.models.calls.actions.actionsenddtmfresponse':316 'com.telnyx.sdk.models.calls.actions.actionstartnoisesuppressionparams':496 'com.telnyx.sdk.models.calls.actions.actionstartnoisesuppressionresponse':498 'com.telnyx.sdk.models.calls.actions.actionstartsiprecparams':398 'com.telnyx.sdk.models.calls.actions.actionstartsiprecresponse':400 'com.telnyx.sdk.models.calls.actions.actionstopnoisesuppressionparams':534 'com.telnyx.sdk.models.calls.actions.actionstopnoisesuppressionresponse':536 'com.telnyx.sdk.models.calls.actions.actionstopsiprecparams':440 'com.telnyx.sdk.models.calls.actions.actionstopsiprecresponse':442 'com.telnyx.sdk.models.calls.actions.actionswitchsupervisorroleparams':585 'com.telnyx.sdk.models.calls.actions.actionswitchsupervisorroleresponse':587 'com.telnyx.sdk.models.calls.actions.actionupdateclientstateparams':237 'com.telnyx.sdk.models.calls.actions.actionupdateclientstateresponse':239 'command':150,176,293,306,435,473,529,893,952,1119,1185,1280,1339,1420,1486,1569,1635,1720,1786,1876,1942,2090,2238,2386,2469,2535,2598,2664,2718,2784 'common':108 'complet':790 'config':492 'configur':347,727 'connect':907,964,1133,1197,1434,1583,1734,1890,2077,2225,2373,2483,2612,2732 'connector':350,367 'control':165,229,297,360,428,466,522,578,885,896,902,1111,1122,1128,1272,1283,1412,1423,1429,1561,1572,1578,1712,1723,1729,1868,1879,1885,2020,2026,2072,2168,2174,2220,2316,2322,2368,2461,2472,2478,2590,2601,2607,2710,2721,2727 'convers':138,147,161,169,215,754,758,972,986,1016,1029 'conversationid':196 'correl':1155,1175,1309,1329,1456,1476,1605,1625,1756,1776,1912,1932,2045,2065,2193,2213,2341,2361,2505,2525,2634,2654,2754,2774 'creat':868 'custom':372 'data.created':858 'data.event':828,1080,1241,1381,1530,1681,1837,1989,2137,2285,2430,2559,2679 'data.id':838,1090,1251,1391,1540,1691,1847,1999,2147,2295,2440,2569,2689 'data.occurred':845,1097,1258,1398,1547,1698,1854,2006,2154,2302,2447,2576,2696 'data.payload.assistant':872 'data.payload.call':884,913,925,1110,1139,1158,1271,1293,1312,1411,1440,1459,1560,1589,1608,1711,1740,1759,1867,1896,1915,2019,2029,2048,2167,2177,2196,2315,2325,2344,2460,2489,2508,2589,2618,2637,2709,2738,2757 'data.payload.calling':953,1186 'data.payload.client':942,1178,1332,1479,1628,1779,1935,2083,2231,2379,2528,2657,2777 'data.payload.connection':898,1124,1285,1425,1574,1725,1881,2068,2216,2364,2474,2603,2723 'data.payload.conversation':965 'data.payload.digit':1359 'data.payload.duration':980 'data.payload.failure':2536 'data.payload.from':989,1340,1487,1636,1787,1943,2091,2239,2387 'data.payload.hangup':2785 'data.payload.insight':1198 'data.payload.llm':1006 'data.payload.result':1506,1655,1806,1962 'data.payload.results':1215 'data.payload.sip':2100,2248,2396 'data.payload.stt':1017 'data.payload.to':997,1349,1496,1645,1796,1952,2113,2261,2409 'data.payload.tts':1030,1043,1057 'data.record':818,1070,1231,1371,1520,1671,1827,1979,2127,2275,2423,2549,2669 'date':848,861,1100,1261,1401,1550,1701,1857,2009,2157,2305,2450,2579,2699 'date-tim':847,860,1099,1260,1400,1549,1700,1856,2008,2156,2304,2449,2578,2698 'datetim':852,1104,1265,1405,1554,1705,1861,2013,2161,2309,2454,2583,2703 'deepfilternet':486 'deliv':837,1089,1250,1390,1539,1690,1846,1998,2146,2294,2439,2568,2688 'denois':485 'descript':751,817,1069,1230,1370,1519,1670,1826,1978,2126,2274,2422,2548,2668 'destin':1351,1498,1647,1798,1954,2115,2263,2411 'detect':768,779,1514,1658,1815,1821,1965,1968 'differ':568 'digit':301,329,1364 'direct':476 'dtmf':265,267,272,763,1363 'durat':309,983 'e':77,708 'e.g':646 'e.getmessage':82,713 'e.statuscode':81,84,96 'e29b':191,247,324,409,451,507,545,595 'e29b-41d4-a716':190,246,323,408,450,506,544,594 'ed25519':619,626,669,674,740,743 'els':94 'encod':947 'end':280,755,769,774,780,786,1659,1665,1973 'engin':483,491 'enum':383,389,477,484,820,830,956,1072,1082,1189,1233,1243,1373,1383,1507,1522,1532,1656,1673,1683,1807,1829,1839,1963,1981,1991,2129,2139,2277,2287,2425,2432,2551,2561,2671,2681 'error':40,49,54,58,62,80,88,109,124 'event':685,698,702,722,750,821,835,844,856,866,1073,1087,1108,1157,1177,1234,1248,1269,1311,1331,1374,1388,1409,1458,1478,1523,1537,1558,1607,1627,1674,1688,1709,1758,1778,1830,1844,1865,1914,1934,1982,1996,2017,2047,2067,2106,2130,2144,2165,2195,2215,2254,2278,2292,2313,2343,2363,2402,2426,2437,2458,2507,2527,2552,2566,2587,2636,2656,2672,2686,2707,2756,2776 'exampl':30 'except':707 'exist':144 'expect':284,352,422 'exponenti':104,133 'fail':46,712,794,802,2544 'fax':1814 'field':91,126,813,815,1067,1228,1368,1517,1668,1824,1976,2124,2272,2420,2546,2666 'follow':720 'format':93,127 'former':905,1131,1432,1581,1732,1888,2075,2223,2371,2481,2610,2730 'found':121 'generat':760,976,1211,1223 'gradl':15 'greet':773,785,1664,1972 'group':937,975,1199,1209 'gru1ogrkyq':195,251,328,413,455,511,549,599 'handl':41,61 'handler':645 'handlewebhook':655 'header':373,631,662,663,691,692,741 'headers.builder':664 'heard':276 'httpservletrequest':659 'human':1508,1808,1810 'id':166,170,177,201,216,230,298,307,361,429,436,467,474,523,530,579,873,886,889,899,904,908,915,917,927,929,966,968,1045,1049,1059,1062,1112,1115,1125,1130,1134,1141,1143,1160,1162,1200,1202,1273,1276,1286,1295,1297,1314,1316,1413,1416,1426,1431,1435,1442,1444,1461,1463,1562,1565,1575,1580,1584,1591,1593,1610,1612,1713,1716,1726,1731,1735,1742,1744,1761,1763,1869,1872,1882,1887,1891,1898,1900,1917,1919,2021,2024,2031,2033,2050,2052,2069,2074,2078,2169,2172,2179,2181,2198,2200,2217,2222,2226,2317,2320,2327,2329,2346,2348,2365,2370,2374,2462,2465,2475,2480,2484,2491,2493,2510,2512,2591,2594,2604,2609,2613,2620,2622,2639,2641,2711,2714,2724,2729,2733,2740,2742,2759,2761 'identifi':822,841,876,996,1074,1092,1235,1253,1288,1375,1393,1524,1542,1675,1693,1831,1849,1983,2001,2131,2149,2279,2297,2427,2442,2553,2571,2673,2691 'implement':16 'import':22,24,67,180,182,236,238,313,315,397,399,439,441,495,497,533,535,584,586,638,640 'inbound':390,478 'includ':370,622,732 'initi':36 'insight':759,974,1208,1220 'instal':10 'insuffici':116 'int32':311 'integ':380,982,2103,2251,2399 'invalid':112,717 'involv':880 'iso':850,1102,1263,1403,1552,1703,1859,2011,2159,2307,2452,2581,2701 'issu':892,1118,1279,1419,1568,1719,1875,2468,2597,2717 'java':5,9,21,66,179,235,312,396,438,494,532,583,637 'join':135 'joinaiassist':212 'key':114 'krisp':487 'languag':1011 'larg':1010 'leg':156,271,914,924,941,1140,1294,1441,1590,1741,1897,2030,2178,2326,2490,2619,2739 'limit':51,99,130 'machin':767,772,777,783,1509,1513,1663,1812,1820,1971 'metadata':371 'milli':310 'mode':570 'model':1007,1012,1018,1025,1044,1048 'name':368 'network':48 'nois':459,481,489,515 'notifi':2101,2105,2249,2253,2397,2401 'number':994,1002,1342,1352,1489,1499,1638,1648,1789,1799,1945,1955,2093,2116,2241,2264,2389,2412 'object':493,1217 'occur':857,1109,1270,1410,1559,1710,1866,2018,2166,2314,2459,2588,2708 'ok':705 'option':172,302,363,431,469,525 'outbound':392,479 'param':74,185,213,241,260,318,337,589,608 'parti':954,963,1187,1196 'particip':141,171,199 'payload':658,690,812 'permiss':117 'place':1346,1493,1642,1793,1949,2097,2245,2393 'post':162,294,357,425,463,519,575 'postmap':651 'premium':778,784,1818,1969 'process':696 'product':64,636 'provid':1031,1038 'pstn':957,1190 'public':653 'put':226,665,675 'q850':2539,2788 'rate':50,98,129 'raw':649 'reason':2540,2789 'receiv':700,764,949,1182,1336,1362,1483,1632,1783,1939,2087,2235,2383,2532,2661,2781 'refer':789,793,797,2111,2259,2407 'relat':939 'request':621,660 'request.getheader':670,679 'requestbodi':656 'requir':90,168,232,300,581 'resid':1809 'resourc':119,827,1079,1096,1240,1257,1292,1380,1397,1529,1546,1680,1697,1836,1853,1988,2005,2136,2153,2284,2301,2429,2446,2558,2575,2678,2695 'respons':209,256,333,402,444,500,538,604,2102,2250,2398 'responseent':654 'responseentity.badrequest':715 'responseentity.ok':704 'result':71,218,262,339,415,457,513,551,610,1221,1515,1666,1822,1974 'retri':102,131 'return':214,261,338,414,456,512,550,609,703,714 'role':204,555,559,582,600 'run':159 'sec':379,981 'second':988 'secur':375 'send':73,264,266 'senddtmf':336 'sent':724 'session':345,377,421,926,936,1159,1169,1313,1323,1460,1470,1609,1619,1760,1770,1916,1926,2049,2059,2197,2207,2345,2355,2509,2519,2543,2638,2648,2758,2768,2793 'setup':20 'shown':38 'sign':616 'signatur':625,634,668,673,694,718,739,744 'silenc':1813 'sip':381,958,1004,1191,1344,1354,1491,1501,1640,1650,1791,1801,1947,1957,2095,2104,2118,2243,2252,2266,2391,2400,2414 'siprec':341,344,349,387,417,420,801,805,809,2542,2792 'siprec.failed':356,2433 'siprec.started':354,2562 'siprec.stopped':355,424,2682 'skill' 'skill-telnyx-voice-advanced-java' 'source-team-telnyx' 'speech':1022,1037,1055 'speech-to-text':1021 'spring':647 'srs':351 'start':342,343,461,798,806 'startnoisesuppress':503 'startsiprec':405 'state':174,222,225,234,304,365,433,471,527,943,948,1179,1181,1333,1335,1480,1482,1629,1631,1780,1782,1936,1938,2084,2086,2232,2234,2380,2382,2529,2531,2658,2660,2778,2780 'status':2107,2255,2403 'stop':418,419,517,810,2795 'stopnoisesuppress':541 'stopsiprec':447 'string':175,178,219,263,305,308,340,366,369,416,434,437,458,472,475,514,528,531,552,611,657,874,887,900,916,928,944,967,990,998,1008,1019,1032,1046,1060,1113,1126,1142,1161,1180,1201,1274,1287,1296,1315,1334,1341,1350,1360,1414,1427,1443,1462,1481,1488,1497,1563,1576,1592,1611,1630,1637,1646,1714,1727,1743,1762,1781,1788,1797,1870,1883,1899,1918,1937,1944,1953,2022,2032,2051,2070,2085,2092,2114,2170,2180,2199,2218,2233,2240,2262,2318,2328,2347,2366,2381,2388,2410,2463,2476,2492,2511,2530,2538,2592,2605,2621,2640,2659,2712,2725,2741,2760,2779,2787 'supervisor':554,558,569 'suppress':460,482,490,516 'sure':1511,1661,1817 'switch':553,556,566 'switchsupervisorrol':607 'symbol':1366 'synthesi':1056 'system':871 'system.err.println':78,86,709 'system.out.println':699 'tcp':385 'telnyx':2,6,13,18,615,624,629,667,672,677,681,734,738,906,1132,1433,1582,1733,1889,2076,2224,2372,2482,2611,2731 'telnyx-signature-ed25519':623,666,671,737 'telnyx-timestamp':628,676,680,733 'telnyx-voice-advanced-java':1 'telnyxcli':26 'telnyxokhttpclient.fromenv':28 'telnyxserviceexcept':76 'text':11,1024,1035,1053 'text-to-speech':1034,1052 'thread.sleep':106 'time':849,862,1101,1262,1402,1551,1702,1858,2010,2158,2306,2451,2580,2700 'timeout':378 'timestamp':630,678,682,735,863 'tls':386 'tone':268,273 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'track':388,391,393,395,2109,2257,2405 'transport':382 'tri':69,661 'tts':1065 'type':816,819,824,829,833,955,960,1068,1071,1076,1081,1085,1094,1188,1193,1229,1232,1237,1242,1246,1255,1290,1369,1372,1377,1382,1386,1395,1518,1521,1526,1531,1535,1544,1669,1672,1677,1682,1686,1695,1825,1828,1833,1838,1842,1851,1977,1980,1985,1990,1994,2003,2125,2128,2133,2138,2142,2151,2273,2276,2281,2286,2290,2299,2421,2424,2431,2435,2444,2547,2550,2555,2560,2564,2573,2667,2670,2675,2680,2684,2693 'udp':384 'uniqu':840,875,920,932,969,1146,1165,1205,1300,1319,1447,1466,1596,1615,1747,1766,1903,1922,2023,2036,2055,2171,2184,2203,2319,2332,2351,2496,2515,2625,2644,2745,2764 'unwrap':687 'unwrapwebhookparams.builder':688 'updat':220,223 'updateclientst':259 'uri':1345,1355,1492,1502,1641,1651,1792,1802,1948,1958,2096,2119,2244,2267,2392,2415 'url':729 'use':148,648,746,890,909,1013,1026,1039,1050,1063,1116,1135,1153,1173,1277,1307,1327,1417,1436,1454,1474,1566,1585,1603,1623,1717,1736,1754,1774,1873,1892,1910,1930,2043,2063,2079,2191,2211,2227,2339,2359,2375,2466,2485,2503,2523,2595,2614,2632,2652,2715,2734,2752,2772 'uuid':217,839,1091,1252,1392,1541,1692,1848,2000,2148,2296,2441,2570,2690 'v3':188,197,202,244,321,406,448,504,542,592 'valid':53,87,123,695 'var':70,684 'verif':614,711,745 'verifi':633,749 'via':894,1120,1281,1421,1570,1721,1877,2470,2599,2719 'voic':3,7,1058,1061 'wait':100 'webhook':285,289,353,423,612,613,617,644,701,710,721,728,731,811,1156,1176,1310,1330,1457,1477,1606,1626,1757,1777,1913,1933,2046,2066,2194,2214,2342,2362,2506,2526,2635,2655,2755,2775","prices":[{"id":"17143268-c3a7-4265-8b9e-275f405258f6","listingId":"f9f73482-3a4d-4159-ab8e-19c165707de3","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:08:14.634Z"}],"sources":[{"listingId":"f9f73482-3a4d-4159-ab8e-19c165707de3","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-advanced-java","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-java","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:14.634Z","lastSeenAt":"2026-04-22T00:54:50.807Z"}],"details":{"listingId":"f9f73482-3a4d-4159-ab8e-19c165707de3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-advanced-java","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"21663ac8166fb19de8047a9e02236ded9d458b77","skill_md_path":"skills/telnyx-voice-advanced-java/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-java"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-advanced-java","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-java"},"updatedAt":"2026-04-22T00:54:50.807Z"}}