{"id":"ac01ab2c-7d07-4a57-a3df-93561c7a5a8e","shortId":"aCFPaM","kind":"skill","title":"telnyx-voice-gather-java","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Gather - 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## Add messages to AI Assistant\n\nAdd messages to the conversation started by an AI assistant on the call.\n\n`POST /calls/{call_control_id}/actions/ai_assistant_add_messages`\n\nOptional: `client_state` (string), `command_id` (string), `messages` (array[object])\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionAddAiAssistantMessagesParams;\nimport com.telnyx.sdk.models.calls.actions.ActionAddAiAssistantMessagesResponse;\n\nActionAddAiAssistantMessagesResponse response = client.calls().actions().addAiAssistantMessages(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Start AI Assistant\n\nStart an AI assistant on the call. **Expected Webhooks:**\n\n- `call.conversation.ended`\n- `call.conversation_insights.generated`\n\n`POST /calls/{call_control_id}/actions/ai_assistant_start`\n\nOptional: `assistant` (object), `client_state` (string), `command_id` (string), `greeting` (string), `interruption_settings` (object), `message_history` (array[object]), `participants` (array[object]), `send_message_history_updates` (boolean), `transcription` (object), `voice` (string), `voice_settings` (object)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStartAiAssistantParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStartAiAssistantResponse;\n\nActionStartAiAssistantResponse response = client.calls().actions().startAiAssistant(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `conversation_id` (uuid), `result` (string)\n\n## Stop AI Assistant\n\nStop an AI assistant on the call.\n\n`POST /calls/{call_control_id}/actions/ai_assistant_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStopAiAssistantParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStopAiAssistantResponse;\n\nActionStopAiAssistantResponse response = client.calls().actions().stopAiAssistant(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Gather\n\nGather DTMF signals to build interactive menus. You can pass a list of valid digits. The `Answer` command must be issued before the `gather` command.\n\n`POST /calls/{call_control_id}/actions/gather`\n\nOptional: `client_state` (string), `command_id` (string), `gather_id` (string), `initial_timeout_millis` (int32), `inter_digit_timeout_millis` (int32), `maximum_digits` (int32), `minimum_digits` (int32), `terminating_digit` (string), `timeout_millis` (int32), `valid_digits` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionGatherParams;\nimport com.telnyx.sdk.models.calls.actions.ActionGatherResponse;\n\nActionGatherResponse response = client.calls().actions().gather(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Gather stop\n\nStop current gather. **Expected Webhooks:**\n\n- `call.gather.ended`\n\n`POST /calls/{call_control_id}/actions/gather_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionStopGatherParams;\nimport com.telnyx.sdk.models.calls.actions.ActionStopGatherResponse;\n\nActionStopGatherResponse response = client.calls().actions().stopGather(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Gather using AI\n\nGather parameters defined in the request payload using a voice assistant. You can pass parameters described as a JSON Schema object and the voice assistant will attempt to gather these informations.\n\n`POST /calls/{call_control_id}/actions/gather_using_ai` — Required: `parameters`\n\nOptional: `assistant` (object), `client_state` (string), `command_id` (string), `gather_ended_speech` (string), `greeting` (string), `interruption_settings` (object), `language` (object), `message_history` (array[object]), `send_message_history_updates` (boolean), `send_partial_results` (boolean), `transcription` (object), `user_response_timeout_ms` (integer), `voice` (string), `voice_settings` (object)\n\n```java\nimport com.telnyx.sdk.core.JsonValue;\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingAiParams;\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingAiResponse;\n\nActionGatherUsingAiParams params = ActionGatherUsingAiParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .parameters(ActionGatherUsingAiParams.Parameters.builder()\n        .putAdditionalProperty(\"properties\", JsonValue.from(\"bar\"))\n        .putAdditionalProperty(\"required\", JsonValue.from(\"bar\"))\n        .putAdditionalProperty(\"type\", JsonValue.from(\"bar\"))\n        .build())\n    .build();\nActionGatherUsingAiResponse response = client.calls().actions().gatherUsingAi(params);\n```\n\nReturns: `conversation_id` (uuid), `result` (string)\n\n## Gather using audio\n\nPlay an audio file on the call until the required DTMF signals are gathered to build interactive menus. You can pass a list of valid digits along with an 'invalid_audio_url', which will be played back at the beginning of each prompt. Playback will be interrupted when a DTMF signal is received.\n\n`POST /calls/{call_control_id}/actions/gather_using_audio`\n\nOptional: `audio_url` (string), `client_state` (string), `command_id` (string), `inter_digit_timeout_millis` (int32), `invalid_audio_url` (string), `invalid_media_name` (string), `maximum_digits` (int32), `maximum_tries` (int32), `media_name` (string), `minimum_digits` (int32), `terminating_digit` (string), `timeout_millis` (int32), `valid_digits` (string)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingAudioParams;\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingAudioResponse;\n\nActionGatherUsingAudioResponse response = client.calls().actions().gatherUsingAudio(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\");\n```\n\nReturns: `result` (string)\n\n## Gather using speak\n\nConvert text to speech and play it on the call until the required DTMF signals are gathered to build interactive menus. You can pass a list of valid digits along with an 'invalid_payload', which will be played back at the beginning of each prompt. Speech will be interrupted when a DTMF signal is received.\n\n`POST /calls/{call_control_id}/actions/gather_using_speak` — Required: `voice`, `payload`\n\nOptional: `client_state` (string), `command_id` (string), `inter_digit_timeout_millis` (int32), `invalid_payload` (string), `language` (enum: arb, cmn-CN, cy-GB, da-DK, de-DE, en-AU, en-GB, en-GB-WLS, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, is-IS, it-IT, ja-JP, ko-KR, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sv-SE, tr-TR), `maximum_digits` (int32), `maximum_tries` (int32), `minimum_digits` (int32), `payload_type` (enum: text, ssml), `service_level` (enum: basic, premium), `terminating_digit` (string), `timeout_millis` (int32), `valid_digits` (string), `voice_settings` (object)\n\n```java\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingSpeakParams;\nimport com.telnyx.sdk.models.calls.actions.ActionGatherUsingSpeakResponse;\n\nActionGatherUsingSpeakParams params = ActionGatherUsingSpeakParams.builder()\n    .callControlId(\"v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ\")\n    .payload(\"say this on call\")\n    .voice(\"male\")\n    .build();\nActionGatherUsingSpeakResponse response = client.calls().actions().gatherUsingSpeak(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| `CallAIGatherEnded` | Call AI Gather Ended |\n| `CallAIGatherMessageHistoryUpdated` | Call AI Gather Message History Updated |\n| `CallAIGatherPartialResults` | Call AI Gather Partial Results |\n| `callGatherEnded` | Call Gather Ended |\n\n### Webhook payload fields\n\n**`CallAIGatherEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.ai_gather.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 | 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.message_history` | array[object] | The history of the messages exchanged during the AI gather |\n| `data.payload.result` | object | The result of the AI gather, its type depends of the `parameters` provided in the command |\n| `data.payload.status` | enum: valid, invalid | Reflects how command ended. |\n\n**`CallAIGatherMessageHistoryUpdated`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.ai_gather.message_history_updated | 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 | 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.message_history` | array[object] | The history of the messages exchanged during the AI gather |\n\n**`CallAIGatherPartialResults`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.ai_gather.partial_results | 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 | 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.message_history` | array[object] | The history of the messages exchanged during the AI gather |\n| `data.payload.partial_results` | object | The partial result of the AI gather, its type depends of the `parameters` provided in the command |\n\n**`callGatherEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.gather.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.digits` | string | The received DTMF digit or symbol. |\n| `data.payload.status` | enum: valid, invalid, call_hangup, cancelled, cancelled_amd, timeout | Reflects how command ended. |","tags":["telnyx","voice","gather","java","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-gather-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-gather-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 (15,665 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:52.600Z","embedding":null,"createdAt":"2026-04-18T22:08:25.699Z","updatedAt":"2026-04-22T00:54:52.600Z","lastSeenAt":"2026-04-22T00:54:52.600Z","tsv":"'/actions/ai_assistant_add_messages':158 '/actions/ai_assistant_start':209 '/actions/ai_assistant_stop':282 '/actions/gather':342 '/actions/gather_stop':411 '/actions/gather_using_ai':479 '/actions/gather_using_audio':635 '/actions/gather_using_speak':764 '/calls':154,205,278,338,407,475,631,760 '/webhooks':976 '1000':107 '401':59,111 '403':115 '404':118 '41d4':183,257,304,391,433,542,694,915 '422':55,85,122 '429':52,97,128 '446655440000':185,259,306,393,435,544,696,917 '550e8400':180,254,301,388,430,539,691,912 '6.36.0':14,19 '8601':1138,1314,1463,1631 'a716':184,258,305,392,434,543,695,916 'action':177,251,298,385,427,565,688,930 'actionaddaiassistantmessagesrespons':174 'actiongatherrespons':382 'actiongatherusingaiparam':534 'actiongatherusingaiparams.builder':536 'actiongatherusingaiparams.parameters.builder':547 'actiongatherusingairespons':562 'actiongatherusingaudiorespons':685 'actiongatherusingspeakparam':907 'actiongatherusingspeakparams.builder':909 'actiongatherusingspeakrespons':927 'actionstartaiassistantrespons':248 'actionstopaiassistantrespons':295 'actionstopgatherrespons':424 'add':135,140 'addaiassistantmessag':178 'ai':138,148,191,195,268,272,442,1078,1083,1090,1247,1255,1423,1572,1582 'along':603,733 'alreadi':35 'alway':60,956 'amd':1749 'answer':328 'api':43,79,113,1158,1334,1483,1651 'app':1657 'arb':785 'array':167,226,229,504,1237,1413,1562 'assist':139,149,192,196,211,269,273,453,467,483 'assum':32 'attempt':469 'au':800 'audio':576,579,607,637,652 'authent':57 'back':613,742 'backoff':105,134 'bar':551,555,559 'basic':888 'begin':616,745 'bodi':974,1013,1040 'boolean':235,510,514 'br':855 'build':316,560,561,592,722,926,1007,1017 'ca':825 'call':44,152,155,199,206,276,279,339,408,476,583,632,713,761,923,1077,1082,1089,1095,1149,1156,1168,1179,1198,1224,1234,1325,1332,1344,1355,1374,1400,1410,1474,1481,1493,1504,1523,1549,1559,1642,1649,1655,1666,1677,1696,1722,1732,1745 'call.ai_gather.ended':1118 'call.ai_gather.message':1292 'call.ai_gather.partial':1442 'call.conversation.ended':202 'call.conversation_insights.generated':203 'call.gather.ended':405,1611 'callaigatherend':1076,1101 'callaigathermessagehistoryupd':1081,1275 'callaigatherpartialresult':1088,1425 'callcontrolid':537,910 'callgatherend':1094,1594 'cancel':1747,1748 'catch':75,1030 'check':89,125 'client':27,33,160,213,284,344,413,485,640,769 'client.calls':176,250,297,384,426,564,687,929 'client.messages':72 'client.webhooks':1010 'client.webhooks.unwrap':1071 'cmn':787 'cmn-cn':786 'cn':788 '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':965 'com.telnyx.sdk.core.jsonvalue':529 'com.telnyx.sdk.core.unwrapwebhookparams':963 'com.telnyx.sdk.errors.telnyxserviceexception':68 'com.telnyx.sdk.models.calls.actions.actionaddaiassistantmessagesparams':171 'com.telnyx.sdk.models.calls.actions.actionaddaiassistantmessagesresponse':173 'com.telnyx.sdk.models.calls.actions.actiongatherparams':379 'com.telnyx.sdk.models.calls.actions.actiongatherresponse':381 'com.telnyx.sdk.models.calls.actions.actiongatherusingaiparams':531 'com.telnyx.sdk.models.calls.actions.actiongatherusingairesponse':533 'com.telnyx.sdk.models.calls.actions.actiongatherusingaudioparams':682 'com.telnyx.sdk.models.calls.actions.actiongatherusingaudioresponse':684 'com.telnyx.sdk.models.calls.actions.actiongatherusingspeakparams':904 'com.telnyx.sdk.models.calls.actions.actiongatherusingspeakresponse':906 'com.telnyx.sdk.models.calls.actions.actionstartaiassistantparams':245 'com.telnyx.sdk.models.calls.actions.actionstartaiassistantresponse':247 'com.telnyx.sdk.models.calls.actions.actionstopaiassistantparams':292 'com.telnyx.sdk.models.calls.actions.actionstopaiassistantresponse':294 'com.telnyx.sdk.models.calls.actions.actionstopgatherparams':421 'com.telnyx.sdk.models.calls.actions.actionstopgatherresponse':423 'command':163,216,287,329,336,347,416,488,643,772,1154,1215,1266,1273,1330,1391,1479,1540,1593,1647,1713,1753 'common':108 'configur':1051 'connect':1163,1339,1488,1661 'control':156,207,280,340,409,477,633,762,1146,1157,1322,1333,1471,1482,1639,1650,1656 'convers':144,262,569 'convert':704 'correl':1185,1205,1361,1381,1510,1530,1683,1703 'current':401 'cy':790 'cy-gb':789 'da':793 'da-dk':792 'data.event':1115,1289,1439,1608 'data.id':1125,1301,1450,1618 'data.occurred':1132,1308,1457,1625 'data.payload.call':1145,1169,1188,1321,1345,1364,1470,1494,1513,1638,1667,1686 'data.payload.client':1208,1384,1533,1706 'data.payload.connection':1159,1335,1484,1652 'data.payload.digits':1733 'data.payload.from':1216,1392,1541,1714 'data.payload.message':1235,1411,1560 'data.payload.partial':1574 'data.payload.result':1249 'data.payload.status':1267,1741 'data.payload.to':1225,1401,1550,1723 'data.record':1105,1279,1429,1598 'date':1135,1311,1460,1628 'date-tim':1134,1310,1459,1627 'datetim':1139,1315,1464,1632 'de':796,797 'de-d':795 'defin':445 'deliv':1124,1300,1449,1617 'depend':1259,1586 'describ':458 'descript':1075,1104,1278,1428,1597 'destin':1227,1403,1552,1725 'digit':326,358,363,366,369,375,602,647,660,669,672,678,732,776,872,878,891,897,1738 'dk':794 'dtmf':313,587,626,717,755,1737 'e':77,1032 'e.g':970 'e.getmessage':82,1037 'e.statuscode':81,84,96 'e29b':182,256,303,390,432,541,693,914 'e29b-41d4-a716':181,255,302,389,431,540,692,913 'ed25519':943,950,993,998,1064,1067 'els':94 'en':799,802,805,809,812 'en-au':798 'en-gb':801 'en-gb-wl':804 'en-in':808 'en-us':811 'end':492,1080,1097,1274,1754 'enum':784,882,887,1107,1117,1268,1281,1291,1431,1441,1600,1610,1742 'error':40,49,54,58,62,80,88,109,124 'es':815,816,818,821 'es-':814 'es-mx':817 'es-us':820 'event':1009,1022,1026,1046,1074,1108,1122,1143,1187,1207,1282,1298,1319,1363,1383,1432,1447,1468,1512,1532,1601,1615,1636,1685,1705 'exampl':30 'except':1031 'exchang':1244,1420,1569 'expect':200,403 'exponenti':104,133 'fail':46,1036 'field':91,126,1100,1102,1276,1426,1595 'file':580 'follow':1044 'format':93,127 'former':1659 'found':121 'fr':824,827,828 'fr-ca':823 'fr-fr':826 'gather':4,8,311,312,335,350,386,398,402,440,443,471,491,574,590,701,720,1079,1084,1091,1096,1248,1256,1424,1573,1583 'gatherusingai':566 'gatherusingaudio':689 'gatherusingspeak':931 'gb':791,803,806 'gradl':15 'greet':219,495 'gru1ogrkyq':186,260,307,394,436,545,697,918 'handl':41,61 'handler':969 'handlewebhook':979 'hangup':1746 'header':955,986,987,1015,1016,1065 'headers.builder':988 'hi':830 'hi-in':829 'histori':225,233,503,508,1086,1236,1240,1293,1412,1416,1561,1565 'httpservletrequest':983 'id':157,164,208,217,263,281,288,341,348,351,410,417,478,489,570,634,644,763,773,1147,1150,1160,1164,1171,1173,1190,1192,1323,1326,1336,1340,1347,1349,1366,1368,1472,1475,1485,1489,1496,1498,1515,1517,1640,1643,1653,1658,1662,1669,1671,1688,1690 'identifi':1109,1127,1283,1303,1433,1452,1602,1620 'implement':16 'import':22,24,67,170,172,244,246,291,293,378,380,420,422,528,530,532,681,683,903,905,962,964 'includ':946,1056 'inform':473 'initi':36,353 'instal':10 'insuffici':116 'int32':356,361,364,367,373,650,661,664,670,676,779,873,876,879,895 'integ':521 'inter':357,646,775 'interact':317,593,723 'interrupt':221,497,623,752 'invalid':112,606,651,655,736,780,1041,1270,1744 'is-i':832 'iso':1137,1313,1462,1630 'issu':332,1153,1329,1478,1646 'it-it':835 'ja':839 'ja-jp':838 'java':5,9,21,66,169,243,290,377,419,527,680,902,961 'jp':840 'json':461 'jsonvalue.from':550,554,558 'key':114 'ko':842 'ko-kr':841 'kr':843 'languag':500,783 'leg':1170,1346,1495,1668 'level':886 'limit':51,99,130 'list':323,599,729 'male':925 'maximum':362,659,662,871,874 'media':656,665 'menus':318,594,724 'messag':136,141,166,224,232,502,507,1085,1243,1419,1568 'milli':355,360,372,649,675,778,894 'minimum':365,668,877 'ms':520 'must':330 'mx':819 'name':657,666 'nb':845 'nb-no':844 'network':48 'nl':848,849 'nl-nl':847 'number':1218,1228,1394,1404,1543,1553,1716,1726 'object':168,212,223,227,230,237,242,463,484,499,501,505,516,526,901,1238,1250,1414,1563,1576 'occur':1144,1320,1469,1637 'ok':1029 'option':159,210,283,343,412,482,636,768 'param':74,535,567,908,932 'paramet':444,457,481,546,1262,1589 'partial':512,1092,1578 'particip':228 'pass':321,456,597,727 'payload':449,737,767,781,880,919,982,1014,1099 'permiss':117 'pl':851,852 'pl-pl':850 'place':1222,1398,1547,1720 'play':577,612,709,741 'playback':620 'post':153,204,277,337,406,474,630,759 'postmap':975 'premium':889 'process':1020 'product':64,960 'prompt':619,748 'properti':549 'provid':1263,1590 'pt':854,857,858 'pt-br':853 'pt-pt':856 'public':977 'put':989,999 'putadditionalproperti':548,552,556 'rate':50,98,129 'raw':973 'receiv':629,758,1024,1212,1388,1537,1710,1736 'reflect':1271,1751 'request':448,945,984 'request.getheader':994,1003 'requestbodi':980 'requir':90,480,553,586,716,765 'resourc':119,1114,1131,1288,1307,1438,1456,1607,1624 'respons':175,249,296,383,425,518,563,686,928 'responseent':978 'responseentity.badrequest':1039 'responseentity.ok':1028 'result':71,188,265,309,396,438,513,572,699,934,1093,1252,1443,1575,1579 'retri':102,131 'return':187,261,308,395,437,568,698,933,1027,1038 'ro':860,861 'ro-ro':859 'ru':863,864 'ru-ru':862 'say':920 'schema':462 'se':867 'send':73,231,506,511 'sent':1048 'servic':885 'session':1189,1199,1365,1375,1514,1524,1687,1697 'set':222,241,498,525,900 'setup':20 'shown':38 'sign':940 'signal':314,588,627,718,756 'signatur':949,958,992,997,1018,1042,1063,1068 'sip':1220,1230,1396,1406,1545,1555,1718,1728 'skill' 'skill-telnyx-voice-gather-java' 'source-team-telnyx' 'speak':703 'speech':493,707,749 'spring':971 'ssml':884 'start':145,190,193 'startaiassist':252 'state':161,214,285,345,414,486,641,770,1209,1211,1385,1387,1534,1536,1707,1709 'stop':267,270,399,400 'stopaiassist':299 'stopgath':428 'string':162,165,189,215,218,220,239,266,286,289,310,346,349,352,370,376,397,415,418,439,487,490,494,496,523,573,639,642,645,654,658,667,673,679,700,771,774,782,892,898,935,981,1148,1161,1172,1191,1210,1217,1226,1324,1337,1348,1367,1386,1393,1402,1473,1486,1497,1516,1535,1542,1551,1641,1654,1670,1689,1708,1715,1724,1734 'sv':866 'sv-se':865 'symbol':1740 'system.err.println':78,86,1033 'system.out.println':1023 'telnyx':2,6,13,18,939,948,953,991,996,1001,1005,1058,1062,1162,1338,1487,1660 'telnyx-signature-ed25519':947,990,995,1061 'telnyx-timestamp':952,1000,1004,1057 'telnyx-voice-gather-java':1 'telnyxcli':26 'telnyxokhttpclient.fromenv':28 'telnyxserviceexcept':76 'termin':368,671,890 'text':11,705,883 'thread.sleep':106 'time':1136,1312,1461,1629 'timeout':354,359,371,519,648,674,777,893,1750 'timestamp':954,1002,1006,1059 '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' 'tr':869,870 'tr-tr':868 'transcript':236,515 'tri':69,663,875,985 'type':557,881,1103,1106,1111,1116,1120,1129,1258,1277,1280,1285,1290,1296,1305,1427,1430,1435,1440,1445,1454,1585,1596,1599,1604,1609,1613,1622 'uniqu':1176,1195,1352,1371,1501,1520,1674,1693 'unwrap':1011 'unwrapwebhookparams.builder':1012 'updat':234,509,1087,1294 'uri':1221,1231,1397,1407,1546,1556,1719,1729 'url':608,638,653,1053 'us':813,822 'use':441,450,575,702,972,1070,1151,1165,1183,1203,1327,1341,1359,1379,1476,1490,1508,1528,1644,1663,1681,1701 'user':517 'uuid':264,571,1126,1302,1451,1619 'v3':179,253,300,387,429,538,690,911 'valid':53,87,123,325,374,601,677,731,896,1019,1269,1743 'var':70,1008 'verif':938,1035,1069 'verifi':957,1073 'via':1155,1331,1480,1648 'voic':3,7,238,240,452,466,522,524,766,899,924 'wait':100 'webhook':201,404,936,937,941,968,1025,1034,1045,1052,1055,1098,1186,1206,1362,1382,1511,1531,1684,1704 'wls':807","prices":[{"id":"b3ec0e3d-85d0-4d16-ac1e-4a4d01b20667","listingId":"ac01ab2c-7d07-4a57-a3df-93561c7a5a8e","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:25.699Z"}],"sources":[{"listingId":"ac01ab2c-7d07-4a57-a3df-93561c7a5a8e","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-gather-java","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-gather-java","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:25.699Z","lastSeenAt":"2026-04-22T00:54:52.600Z"}],"details":{"listingId":"ac01ab2c-7d07-4a57-a3df-93561c7a5a8e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-gather-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":"1ebe7cdc2d239b6fd4a6e57a9bf69a192ab85182","skill_md_path":"skills/telnyx-voice-gather-java/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-gather-java"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-gather-java","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-gather-java"},"updatedAt":"2026-04-22T00:54:52.600Z"}}