{"id":"d30d8c18-ca41-4d22-b94d-178030fc77c7","shortId":"pBtyUE","kind":"skill","title":"telnyx-voice-advanced-javascript","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Advanced - JavaScript\n\n## Installation\n\n```bash\nnpm install telnyx\n```\n\n## Setup\n\n```javascript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\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```javascript\ntry {\n  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });\n} catch (err) {\n  if (err instanceof Telnyx.APIConnectionError) {\n    console.error('Network error — check connectivity and retry');\n  } else if (err instanceof Telnyx.RateLimitError) {\n    // 429: rate limited — wait and retry with exponential backoff\n    const retryAfter = err.headers?.['retry-after'] || 1;\n    await new Promise(r => setTimeout(r, retryAfter * 1000));\n  } else if (err instanceof Telnyx.APIError) {\n    console.error(`API error ${err.status}: ${err.message}`);\n    if (err.status === 422) {\n      console.error('Validation error — check required fields and formats');\n    }\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```javascript\nconst response = await client.calls.actions.joinAIAssistant('call_control_id', {\n  conversation_id: 'v3:abc123',\n  participant: { id: 'v3:abc123def456', role: 'user' },\n});\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.updateClientState('call_control_id', {\n  client_state: 'aGF2ZSBhIG5pY2UgZGF5ID1d',\n});\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.sendDtmf('call_control_id', { digits: '1www2WABCDw9' });\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.startSiprec('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.stopSiprec('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.startNoiseSuppression('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.stopNoiseSuppression('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');\n\nconsole.log(response.data);\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```javascript\nconst response = await client.calls.actions.switchSupervisorRole('call_control_id', {\n  role: 'barge',\n});\n\nconsole.log(response.data);\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```javascript\n// In your webhook handler (e.g., Express — use raw body, not parsed JSON):\napp.post('/webhooks', express.raw({ type: 'application/json' }), async (req, res) => {\n  try {\n    const event = await client.webhooks.unwrap(req.body.toString(), {\n      headers: req.headers,\n    });\n    // Signature valid — event is the parsed webhook payload\n    console.log('Received event:', event.data.event_type);\n    res.status(200).send('OK');\n  } catch (err) {\n    console.error('Webhook verification failed:', err.message);\n    res.status(400).send('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","javascript","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-advanced-javascript","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-javascript","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 (22,683 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.903Z","embedding":null,"createdAt":"2026-04-18T22:08:15.433Z","updatedAt":"2026-04-22T00:54:50.903Z","lastSeenAt":"2026-04-22T00:54:50.903Z","tsv":"'+13125550001':82 '+13125550002':84 '/actions/ai_assistant_join':209 '/actions/client_state_update':258 '/actions/send_dtmf':313 '/actions/siprec_start':362 '/actions/siprec_stop':427 '/actions/suppression_start':462 '/actions/suppression_stop':515 '/actions/switch_supervisor_role':568 '/calls':205,254,309,358,423,458,511,564 '/webhooks':625 '1':120 '1000':128 '1www2wabcdw9':335 '200':654 '400':665 '401':68,153 '403':157 '404':160 '41d4':405,444,497,532 '422':64,141,164 '429':61,105,170 '446655440000':407,446,499,534 '550e8400':402,441,494,529 '8601':801,1053,1214,1354,1503,1654,1810,1962,2110,2258,2403,2532,2652 'a716':406,445,498,533 'abc123':232 'abc123def456':236 'activ':561 'add':181 'addit':196 'address':955 'advanc':4,8 'agf2zsbhig5py2ugzgf5id1d':272 'ai':178,187,202 'aicoust':482 'allow':553 'alreadi':44 'alway':69,606 'answer':1462,1612,1769,1920 'api':28,52,135,155,847,1073,1234,1374,1523,1674,1830,2423,2552,2672 'apikey':25 'app':853,1079,1380,1529,1680,1836,2023,2171,2319,2429,2558,2678 'app.post':624 'application/json':628 'array':1166,1168 'assist':179,188,829 'associ':304 'assum':41 'async':629 'attempt':2062,2210,2358 'authent':66 'await':79,121,224,265,329,399,438,491,526,574,635 'backoff':113,176 'barg':580 'base64':896 'base64-encoded':895 'bash':11 'beep':1607,1914,1917 'beta':456,509 'bodi':620 'boolean':374,376 'bridg':550 'bring':194 'busi':1761 'call':53,197,206,226,255,267,297,310,331,359,424,459,512,551,562,565,576,703,707,712,716,721,726,732,738,742,746,750,754,758,833,838,845,851,862,873,885,890,912,929,992,1064,1071,1077,1088,1099,1118,1145,1164,1176,1225,1232,1253,1272,1298,1308,1365,1372,1378,1389,1400,1419,1445,1455,1514,1521,1527,1538,1549,1568,1594,1604,1665,1672,1678,1689,1700,1719,1745,1755,1821,1828,1834,1845,1856,1875,1901,1911,1978,1989,2008,2021,2032,2049,2072,2126,2137,2156,2169,2180,2197,2220,2274,2285,2304,2317,2328,2345,2368,2414,2421,2427,2438,2449,2468,2543,2550,2556,2567,2578,2597,2663,2670,2676,2687,2698,2717 'call.conversation.ended':781 'call.conversation_insights.generated':1033 'call.dtmf.received':1194 'call.machine.detection.ended':1334 'call.machine.greeting.ended':1483 'call.machine.premium.detection.ended':1634 'call.machine.premium.greeting.ended':1790 'call.refer.completed':1942 'call.refer.failed':2090 'call.refer.started':2238 'callconversationend':702,764 'callconversationinsightsgener':706,1016 'calldtmfreceiv':711,1177 'calle':950 'caller':942 'callmachinedetectionend':715,1317 'callmachinegreetingend':720,1466 'callmachinepremiumdetectionend':725,1617 'callmachinepremiumgreetingend':731,1773 'callrefercomplet':737,1925 'callreferfail':741,2073 'callreferstart':745,2221 'callsiprecfail':749,2369 'callsiprecstart':753,2495 'callsiprecstop':757,2615 'catch':87,657 'caus':2487,2736 'check':96,145,167 'client':22,42,215,248,251,260,270,317,364,429,464,517 'client.calls.actions.joinaiassistant':225 'client.calls.actions.senddtmf':330 'client.calls.actions.startnoisesuppression':492 'client.calls.actions.startsiprec':400 'client.calls.actions.stopnoisesuppression':527 'client.calls.actions.stopsiprec':439 'client.calls.actions.switchsupervisorrole':575 'client.calls.actions.updateclientstate':266 'client.messages.send':80 'client.webhooks.unwrap':636,697 'code':74,152 'command':192,218,307,320,432,467,520,843,902,1069,1135,1230,1289,1370,1436,1519,1585,1670,1736,1826,1892,2040,2188,2336,2419,2485,2548,2614,2668,2734 'common':150 'complet':740 'config':486 'configur':347,677 'connect':97,857,914,1083,1147,1384,1533,1684,1840,2027,2175,2323,2433,2562,2682 'connector':350,367 'console.error':93,134,142,659 'console.log':239,273,336,409,448,501,536,581,648 'const':21,77,114,222,263,327,397,436,489,524,572,633 'control':207,227,256,268,311,332,360,425,460,513,566,577,835,846,852,1061,1072,1078,1222,1233,1362,1373,1379,1511,1522,1528,1662,1673,1679,1818,1829,1835,1970,1976,2022,2118,2124,2170,2266,2272,2318,2411,2422,2428,2540,2551,2557,2660,2671,2677 'convers':180,189,203,211,229,242,704,708,922,936,966,979 'correl':1105,1125,1259,1279,1406,1426,1555,1575,1706,1726,1862,1882,1995,2015,2143,2163,2291,2311,2455,2475,2584,2604,2704,2724 'creat':818 'custom':372 'data.created':808 'data.event':778,1030,1191,1331,1480,1631,1787,1939,2087,2235,2380,2509,2629 'data.id':788,1040,1201,1341,1490,1641,1797,1949,2097,2245,2390,2519,2639 'data.occurred':795,1047,1208,1348,1497,1648,1804,1956,2104,2252,2397,2526,2646 'data.payload.assistant':822 'data.payload.call':834,863,875,1060,1089,1108,1221,1243,1262,1361,1390,1409,1510,1539,1558,1661,1690,1709,1817,1846,1865,1969,1979,1998,2117,2127,2146,2265,2275,2294,2410,2439,2458,2539,2568,2587,2659,2688,2707 'data.payload.calling':903,1136 'data.payload.client':892,1128,1282,1429,1578,1729,1885,2033,2181,2329,2478,2607,2727 'data.payload.connection':848,1074,1235,1375,1524,1675,1831,2018,2166,2314,2424,2553,2673 'data.payload.conversation':915 'data.payload.digit':1309 'data.payload.duration':930 'data.payload.failure':2486 'data.payload.from':939,1290,1437,1586,1737,1893,2041,2189,2337 'data.payload.hangup':2735 'data.payload.insight':1148 'data.payload.llm':956 'data.payload.result':1456,1605,1756,1912 'data.payload.results':1165 'data.payload.sip':2050,2198,2346 'data.payload.stt':967 'data.payload.to':947,1299,1446,1595,1746,1902,2063,2211,2359 'data.payload.tts':980,993,1007 'data.record':768,1020,1181,1321,1470,1621,1777,1929,2077,2225,2373,2499,2619 'date':798,811,1050,1211,1351,1500,1651,1807,1959,2107,2255,2400,2529,2649 'date-tim':797,810,1049,1210,1350,1499,1650,1806,1958,2106,2254,2399,2528,2648 'datetim':802,1054,1215,1355,1504,1655,1811,1963,2111,2259,2404,2533,2653 'deepfilternet':480 'default':33 'deliv':787,1039,1200,1340,1489,1640,1796,1948,2096,2244,2389,2518,2638 'denois':479 'descript':701,767,1019,1180,1320,1469,1620,1776,1928,2076,2224,2372,2498,2618 'destin':1301,1448,1597,1748,1904,2065,2213,2361 'detect':718,729,1464,1608,1765,1771,1915,1918 'differ':556 'digit':315,334,1314 'direct':470 'dtmf':279,281,286,713,1313 'durat':323,933 'e.g':616 'e29b':404,443,496,531 'e29b-41d4-a716':403,442,495,530 'ed25519':593,600,690,693 'els':100,129 'encod':897 'end':294,705,719,724,730,736,1609,1615,1923 'engin':477,485 'enum':383,389,471,478,770,780,906,1022,1032,1139,1183,1193,1323,1333,1457,1472,1482,1606,1623,1633,1757,1779,1789,1913,1931,1941,2079,2089,2227,2237,2375,2382,2501,2511,2621,2631 'err':88,90,102,131,658 'err.headers':116 'err.message':138,663 'err.status':137,140 'error':49,58,63,67,71,95,136,144,151,166 'event':634,642,650,672,700,771,785,794,806,816,1023,1037,1058,1107,1127,1184,1198,1219,1261,1281,1324,1338,1359,1408,1428,1473,1487,1508,1557,1577,1624,1638,1659,1708,1728,1780,1794,1815,1864,1884,1932,1946,1967,1997,2017,2056,2080,2094,2115,2145,2165,2204,2228,2242,2263,2293,2313,2352,2376,2387,2408,2457,2477,2502,2516,2537,2586,2606,2622,2636,2657,2706,2726 'event.data.event':651 'exampl':39 'exist':186 'expect':298,352,419 'exponenti':112,175 'express':617 'express.raw':626 'fail':55,662,744,752,2494 'fax':1764 'field':147,168,763,765,1017,1178,1318,1467,1618,1774,1926,2074,2222,2370,2496,2616 'follow':670 'format':149,169 'former':855,1081,1382,1531,1682,1838,2025,2173,2321,2431,2560,2680 'found':163 'generat':710,926,1161,1173 'greet':723,735,1614,1922 'group':887,925,1149,1159 'gru1ogrkyq':408,447,500,535 'handl':50,70 'handler':615 'header':373,605,638,691 'heard':290 'hello':86 'human':1458,1758,1760 'id':208,212,219,228,230,234,243,257,269,312,321,333,361,426,433,461,468,514,521,567,578,823,836,839,849,854,858,865,867,877,879,916,918,995,999,1009,1012,1062,1065,1075,1080,1084,1091,1093,1110,1112,1150,1152,1223,1226,1236,1245,1247,1264,1266,1363,1366,1376,1381,1385,1392,1394,1411,1413,1512,1515,1525,1530,1534,1541,1543,1560,1562,1663,1666,1676,1681,1685,1692,1694,1711,1713,1819,1822,1832,1837,1841,1848,1850,1867,1869,1971,1974,1981,1983,2000,2002,2019,2024,2028,2119,2122,2129,2131,2148,2150,2167,2172,2176,2267,2270,2277,2279,2296,2298,2315,2320,2324,2412,2415,2425,2430,2434,2441,2443,2460,2462,2541,2544,2554,2559,2563,2570,2572,2589,2591,2661,2664,2674,2679,2683,2690,2692,2709,2711 'identifi':772,791,826,946,1024,1042,1185,1203,1238,1325,1343,1474,1492,1625,1643,1781,1799,1933,1951,2081,2099,2229,2247,2377,2392,2503,2521,2623,2641 'import':17 'inbound':390,472 'includ':370,596,682 'initi':45 'insight':709,924,1158,1170 'instal':10,13 'instanceof':91,103,132 'insuffici':158 'int32':325 'integ':380,932,2053,2201,2349 'invalid':154,667 'involv':830 'iso':800,1052,1213,1353,1502,1653,1809,1961,2109,2257,2402,2531,2651 'issu':842,1068,1229,1369,1518,1669,1825,2418,2547,2667 'javascript':5,9,16,75,221,262,326,396,435,488,523,571,611 'join':177 'json':623 'key':29,156 'krisp':481 'languag':961 'larg':960 'leg':198,285,864,874,891,1090,1244,1391,1540,1691,1847,1980,2128,2276,2440,2569,2689 'limit':60,107,172 'machin':717,722,727,733,1459,1463,1613,1762,1770,1921 'metadata':371 'milli':324 'mode':558 'model':957,962,968,975,994,998 'name':368 'network':57,94 'new':23,122 'nois':453,475,483,506 'notifi':2051,2055,2199,2203,2347,2351 'npm':12 'number':944,952,1292,1302,1439,1449,1588,1598,1739,1749,1895,1905,2043,2066,2191,2214,2339,2362 'object':487,1167 'occur':807,1059,1220,1360,1509,1660,1816,1968,2116,2264,2409,2538,2658 'ok':656 'omit':37 'option':214,316,363,428,463,516 'outbound':392,473 'pars':622,645 'parti':904,913,1137,1146 'particip':183,213,233 'payload':647,762 'permiss':159 'place':1296,1443,1592,1743,1899,2047,2195,2343 'post':204,308,357,422,457,510,563 'premium':728,734,1768,1919 'process.env':26 'product':73,610 'promis':123 'provid':981,988 'pstn':907,1140 'put':253 'q850':2489,2738 'r':124,126 'rate':59,106,171 'raw':619 'reason':2490,2739 'receiv':649,714,899,1132,1286,1312,1433,1582,1733,1889,2037,2185,2333,2482,2611,2731 'refer':739,743,747,2061,2209,2357 'relat':889 'req':630 'req.body.tostring':637 'req.headers':639 'request':595 'requir':146,210,259,314,569 'res':631 'res.status':653,664 'resid':1759 'resourc':161,777,1029,1046,1190,1207,1242,1330,1347,1479,1496,1630,1647,1786,1803,1938,1955,2086,2103,2234,2251,2379,2396,2508,2525,2628,2645 'respons':223,264,328,398,437,490,525,573,2052,2200,2348 'response.data':240,274,337,410,449,502,537,582 'result':78,245,276,339,412,451,504,539,584,1171,1465,1616,1772,1924 'retri':99,110,118,173 'retry-aft':117 'retryaft':115,127 'return':241,275,338,411,450,503,538,583 'role':237,543,547,570,579 'run':201 'sec':379,931 'second':938 'secur':375 'send':278,280,655,666 'sent':674 'session':345,377,418,876,886,1109,1119,1263,1273,1410,1420,1559,1569,1710,1720,1866,1876,1999,2009,2147,2157,2295,2305,2459,2469,2493,2588,2598,2708,2718,2743 'settimeout':125 'setup':15 'shown':47 'sign':590 'signatur':599,608,640,668,689,694 'silenc':1763 'sip':381,908,954,1141,1294,1304,1441,1451,1590,1600,1741,1751,1897,1907,2045,2054,2068,2193,2202,2216,2341,2350,2364 'siprec':341,344,349,387,414,417,751,755,759,2492,2742 'siprec.failed':356,2383 'siprec.started':354,2512 'siprec.stopped':355,421,2632 'skill' 'skill-telnyx-voice-advanced-javascript' 'source-team-telnyx' 'speech':972,987,1005 'speech-to-text':971 'srs':351 'start':342,343,455,748,756 'state':216,249,252,261,271,318,365,430,465,518,893,898,1129,1131,1283,1285,1430,1432,1579,1581,1730,1732,1886,1888,2034,2036,2182,2184,2330,2332,2479,2481,2608,2610,2728,2730 'status':2057,2205,2353 'stop':415,416,508,760,2745 'string':217,220,246,277,319,322,340,366,369,413,431,434,452,466,469,505,519,522,540,585,824,837,850,866,878,894,917,940,948,958,969,982,996,1010,1063,1076,1092,1111,1130,1151,1224,1237,1246,1265,1284,1291,1300,1310,1364,1377,1393,1412,1431,1438,1447,1513,1526,1542,1561,1580,1587,1596,1664,1677,1693,1712,1731,1738,1747,1820,1833,1849,1868,1887,1894,1903,1972,1982,2001,2020,2035,2042,2064,2120,2130,2149,2168,2183,2190,2212,2268,2278,2297,2316,2331,2338,2360,2413,2426,2442,2461,2480,2488,2542,2555,2571,2590,2609,2662,2675,2691,2710,2729,2737 'supervisor':542,546,557 'suppress':454,476,484,507 'sure':1461,1611,1767 'switch':541,544,554 'symbol':1316 'synthesi':1006 'system':821 'tcp':385 'telnyx':2,6,14,18,20,24,27,589,598,603,684,688,856,1082,1383,1532,1683,1839,2026,2174,2322,2432,2561,2681 'telnyx-signature-ed25519':597,687 'telnyx-timestamp':602,683 'telnyx-voice-advanced-javascript':1 'telnyx.apiconnectionerror':92 'telnyx.apierror':133 'telnyx.ratelimiterror':104 'text':85,974,985,1003 'text-to-speech':984,1002 'time':799,812,1051,1212,1352,1501,1652,1808,1960,2108,2256,2401,2530,2650 'timeout':378 'timestamp':604,685,813 'tls':386 'tone':282,287 '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,2059,2207,2355 'transport':382 'tri':76,632 'tts':1015 'type':627,652,766,769,774,779,783,905,910,1018,1021,1026,1031,1035,1044,1138,1143,1179,1182,1187,1192,1196,1205,1240,1319,1322,1327,1332,1336,1345,1468,1471,1476,1481,1485,1494,1619,1622,1627,1632,1636,1645,1775,1778,1783,1788,1792,1801,1927,1930,1935,1940,1944,1953,2075,2078,2083,2088,2092,2101,2223,2226,2231,2236,2240,2249,2371,2374,2381,2385,2394,2497,2500,2505,2510,2514,2523,2617,2620,2625,2630,2634,2643 'udp':384 'uniqu':790,825,870,882,919,1096,1115,1155,1250,1269,1397,1416,1546,1565,1697,1716,1853,1872,1973,1986,2005,2121,2134,2153,2269,2282,2301,2446,2465,2575,2594,2695,2714 'updat':247,250 'uri':1295,1305,1442,1452,1591,1601,1742,1752,1898,1908,2046,2069,2194,2217,2342,2365 'url':679 'use':190,618,696,840,859,963,976,989,1000,1013,1066,1085,1103,1123,1227,1257,1277,1367,1386,1404,1424,1516,1535,1553,1573,1667,1686,1704,1724,1823,1842,1860,1880,1993,2013,2029,2141,2161,2177,2289,2309,2325,2416,2435,2453,2473,2545,2564,2582,2602,2665,2684,2702,2722 'user':238 'uuid':244,789,1041,1202,1342,1491,1642,1798,1950,2098,2246,2391,2520,2640 'v3':231,235,401,440,493,528 'valid':62,143,165,641 'verif':588,661,695 'verifi':607,699 'via':844,1070,1231,1371,1520,1671,1827,2420,2549,2669 'voic':3,7,1008,1011 'wait':108 'webhook':299,303,353,420,586,587,591,614,646,660,671,678,681,761,1106,1126,1260,1280,1407,1427,1556,1576,1707,1727,1863,1883,1996,2016,2144,2164,2292,2312,2456,2476,2585,2605,2705,2725","prices":[{"id":"4d3aa8d1-efec-4783-b76b-2032291ecab8","listingId":"d30d8c18-ca41-4d22-b94d-178030fc77c7","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:15.433Z"}],"sources":[{"listingId":"d30d8c18-ca41-4d22-b94d-178030fc77c7","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-advanced-javascript","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-javascript","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:15.433Z","lastSeenAt":"2026-04-22T00:54:50.903Z"}],"details":{"listingId":"d30d8c18-ca41-4d22-b94d-178030fc77c7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-advanced-javascript","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":"5f27f708409dffc934a891bd5cf08b72479ba1a4","skill_md_path":"skills/telnyx-voice-advanced-javascript/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-javascript"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-advanced-javascript","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-javascript"},"updatedAt":"2026-04-22T00:54:50.903Z"}}