{"id":"dc889ea2-1b6e-4d21-8e50-f0ef029c7a1a","shortId":"X9Dwtu","kind":"skill","title":"telnyx-voice-advanced-curl","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Advanced - curl\n\n## Installation\n\n```text\n# curl is pre-installed on macOS, Linux, and Windows 10+\n```\n\n## Setup\n\n```bash\nexport TELNYX_API_KEY=\"YOUR_API_KEY_HERE\"\n```\n\nAll examples below use `$TELNYX_API_KEY` for authentication.\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```bash\n# Check HTTP status code in response\nresponse=$(curl -s -w \"\\n%{http_code}\" \\\n  -X POST \"https://api.telnyx.com/v2/messages\" \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\": \"+13125550001\", \"from\": \"+13125550002\", \"text\": \"Hello\"}')\n\nhttp_code=$(echo \"$response\" | tail -1)\nbody=$(echo \"$response\" | sed '$d')\n\ncase $http_code in\n  2*) echo \"Success: $body\" ;;\n  422) echo \"Validation error — check required fields and formats\" ;;\n  429) echo \"Rate limited — retry after delay\"; sleep 1 ;;\n  401) echo \"Authentication failed — check TELNYX_API_KEY\" ;;\n  *)   echo \"Error $http_code: $body\" ;;\nesac\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"conversation_id\": \"v3:abc123\",\n  \"participant\": {}\n}' \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/ai_assistant_join\"\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```bash\ncurl \\\n  -X PUT \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"client_state\": \"aGF2ZSBhIG5pY2UgZGF5ID1d\"\n}' \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/client_state_update\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"digits\": \"1www2WABCDw9\"\n}' \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/send_dtmf\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/siprec_start\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/siprec_stop\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/suppression_start\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/suppression_stop\"\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```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"role\": \"barge\"\n}' \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/switch_supervisor_role\"\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```bash\n# Telnyx signs webhooks with Ed25519 (asymmetric — NOT HMAC/Standard Webhooks).\n# Headers sent with each webhook:\n#   telnyx-signature-ed25519: base64-encoded Ed25519 signature\n#   telnyx-timestamp: Unix timestamp (reject if >5 minutes old for replay protection)\n#\n# Get your public key from: Telnyx Portal > Account Settings > Keys & Credentials\n# Use the Telnyx SDK in your language for verification (client.webhooks.unwrap).\n# Your endpoint MUST return 2xx within 2 seconds or Telnyx will retry (up to 3 attempts).\n# Configure a failover URL in Telnyx Portal for additional reliability.\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","curl","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-advanced-curl","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-curl","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 (23,223 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.621Z","embedding":null,"createdAt":"2026-04-18T22:08:12.967Z","updatedAt":"2026-04-22T00:54:50.621Z","lastSeenAt":"2026-04-22T00:54:50.621Z","tsv":"'+13125550001':100 '+13125550002':102 '-1':110 '/actions/ai_assistant_join':215 '/actions/client_state_update':268 '/actions/send_dtmf':332 '/actions/siprec_start':390 '/actions/siprec_stop':458 '/actions/suppression_start':496 '/actions/suppression_stop':552 '/actions/switch_supervisor_role':608 '/calls':211,264,328,386,454,492,548,604 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/ai_assistant_join':250 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/client_state_update':293 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/send_dtmf':365 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/siprec_start':441 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/siprec_stop':483 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/suppression_start':539 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/suppression_stop':577 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/switch_supervisor_role':631 '/v2/messages':86 '1':141 '10':22 '1www2wabcdw9':362 '2':120,724 '2xx':722 '3':732 '401':61,142,159 '403':163 '404':166 '422':57,124,170 '429':54,133,176 '5':691 '8601':876,1128,1289,1429,1578,1729,1885,2037,2185,2333,2478,2607,2727 'abc123':246 'account':704 'activ':601 'add':187 'addit':202,742 'address':1030 'advanc':4,8 'agf2zsbhig5py2ugzgf5id1d':290 'ai':184,193,208 'aicoust':516 'allow':593 'alway':62,655 'answer':1537,1687,1844,1995 'api':27,30,38,45,91,148,161,235,280,353,432,474,530,568,619,922,1148,1309,1449,1598,1749,1905,2498,2627,2747 'api.telnyx.com':85,249,292,364,440,482,538,576,630 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/ai_assistant_join':248 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/client_state_update':291 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/send_dtmf':363 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/siprec_start':439 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/siprec_stop':481 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/suppression_start':537 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/suppression_stop':575 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/switch_supervisor_role':629 'api.telnyx.com/v2/messages':84 'app':928,1154,1455,1604,1755,1911,2098,2246,2394,2504,2633,2753 'application/json':97,241,286,359,438,480,536,574,625 'array':1241,1243 'assist':185,194,904 'associ':323 'asymmetr':666 'attempt':733,2137,2285,2433 'authent':41,59,144 'author':88,232,277,350,429,471,527,565,616 'backoff':182 'barg':628 'base64':680,971 'base64-encoded':679,970 'bash':24,68,227,272,345,424,466,522,560,611,660 'bearer':89,233,278,351,430,472,528,566,617 'beep':1682,1989,1992 'beta':490,546 'bodi':111,123,154 'boolean':402,404 'bridg':590 'bring':200 'busi':1836 'call':46,203,212,265,316,329,387,455,493,549,591,602,605,778,782,787,791,796,801,807,813,817,821,825,829,833,908,913,920,926,937,948,960,965,987,1004,1067,1139,1146,1152,1163,1174,1193,1220,1239,1251,1300,1307,1328,1347,1373,1383,1440,1447,1453,1464,1475,1494,1520,1530,1589,1596,1602,1613,1624,1643,1669,1679,1740,1747,1753,1764,1775,1794,1820,1830,1896,1903,1909,1920,1931,1950,1976,1986,2053,2064,2083,2096,2107,2124,2147,2201,2212,2231,2244,2255,2272,2295,2349,2360,2379,2392,2403,2420,2443,2489,2496,2502,2513,2524,2543,2618,2625,2631,2642,2653,2672,2738,2745,2751,2762,2773,2792 'call.conversation.ended':856 'call.conversation_insights.generated':1108 'call.dtmf.received':1269 'call.machine.detection.ended':1409 'call.machine.greeting.ended':1558 'call.machine.premium.detection.ended':1709 'call.machine.premium.greeting.ended':1865 'call.refer.completed':2017 'call.refer.failed':2165 'call.refer.started':2313 'callconversationend':777,839 'callconversationinsightsgener':781,1091 'calldtmfreceiv':786,1252 'calle':1025 'caller':1017 'callmachinedetectionend':790,1392 'callmachinegreetingend':795,1541 'callmachinepremiumdetectionend':800,1692 'callmachinepremiumgreetingend':806,1848 'callrefercomplet':812,2000 'callreferfail':816,2148 'callreferstart':820,2296 'callsiprecfail':824,2444 'callsiprecstart':828,2570 'callsiprecstop':832,2690 'case':116 'caus':2562,2811 'check':69,128,146,173 'client':221,258,261,270,288,336,392,460,498,554 'client.webhooks.unwrap':717,772 'code':67,72,81,106,118,153,158 'command':198,224,326,339,463,501,557,918,977,1144,1210,1305,1364,1445,1511,1594,1660,1745,1811,1901,1967,2115,2263,2411,2494,2560,2623,2689,2743,2809 'common':156 'complet':815 'config':520 'configur':375,734,752 'connect':932,989,1158,1222,1459,1608,1759,1915,2102,2250,2398,2508,2637,2757 'connector':378,395 'content':95,239,284,357,436,478,534,572,623 'content-typ':94,238,283,356,435,477,533,571,622 'control':213,266,330,388,456,494,550,606,910,921,927,1136,1147,1153,1297,1308,1437,1448,1454,1586,1597,1603,1737,1748,1754,1893,1904,1910,2045,2051,2097,2193,2199,2245,2341,2347,2393,2486,2497,2503,2615,2626,2632,2735,2746,2752 'convers':186,195,209,217,243,252,779,783,997,1011,1041,1054 'correl':1180,1200,1334,1354,1481,1501,1630,1650,1781,1801,1937,1957,2070,2090,2218,2238,2366,2386,2530,2550,2659,2679,2779,2799 'creat':893 'credenti':707 'curl':5,9,12,76,228,273,346,425,467,523,561,612 'custom':400 'd':98,115,242,287,360,626 'data.created':883 'data.event':853,1105,1266,1406,1555,1706,1862,2014,2162,2310,2455,2584,2704 'data.id':863,1115,1276,1416,1565,1716,1872,2024,2172,2320,2465,2594,2714 'data.occurred':870,1122,1283,1423,1572,1723,1879,2031,2179,2327,2472,2601,2721 'data.payload.assistant':897 'data.payload.call':909,938,950,1135,1164,1183,1296,1318,1337,1436,1465,1484,1585,1614,1633,1736,1765,1784,1892,1921,1940,2044,2054,2073,2192,2202,2221,2340,2350,2369,2485,2514,2533,2614,2643,2662,2734,2763,2782 'data.payload.calling':978,1211 'data.payload.client':967,1203,1357,1504,1653,1804,1960,2108,2256,2404,2553,2682,2802 'data.payload.connection':923,1149,1310,1450,1599,1750,1906,2093,2241,2389,2499,2628,2748 'data.payload.conversation':990 'data.payload.digit':1384 'data.payload.duration':1005 'data.payload.failure':2561 'data.payload.from':1014,1365,1512,1661,1812,1968,2116,2264,2412 'data.payload.hangup':2810 'data.payload.insight':1223 'data.payload.llm':1031 'data.payload.result':1531,1680,1831,1987 'data.payload.results':1240 'data.payload.sip':2125,2273,2421 'data.payload.stt':1042 'data.payload.to':1022,1374,1521,1670,1821,1977,2138,2286,2434 'data.payload.tts':1055,1068,1082 'data.record':843,1095,1256,1396,1545,1696,1852,2004,2152,2300,2448,2574,2694 'date':873,886,1125,1286,1426,1575,1726,1882,2034,2182,2330,2475,2604,2724 'date-tim':872,885,1124,1285,1425,1574,1725,1881,2033,2181,2329,2474,2603,2723 'datetim':877,1129,1290,1430,1579,1730,1886,2038,2186,2334,2479,2608,2728 'deepfilternet':514 'delay':139 'deliv':862,1114,1275,1415,1564,1715,1871,2023,2171,2319,2464,2593,2713 'denois':513 'descript':776,842,1094,1255,1395,1544,1695,1851,2003,2151,2299,2447,2573,2693 'destin':1376,1523,1672,1823,1979,2140,2288,2436 'detect':793,804,1539,1683,1840,1846,1990,1993 'differ':596 'digit':334,361,1389 'direct':504 'dtmf':298,300,305,788,1388 'durat':342,1008 'echo':107,112,121,125,134,143,150 'ed25519':642,649,665,678,682,765,768 'encod':681,972 'end':313,780,794,799,805,811,1684,1690,1998 'endpoint':719 'engin':511,519 'enum':411,417,505,512,845,855,981,1097,1107,1214,1258,1268,1398,1408,1532,1547,1557,1681,1698,1708,1832,1854,1864,1988,2006,2016,2154,2164,2302,2312,2450,2457,2576,2586,2696,2706 'error':42,51,56,60,64,127,151,157,172 'esac':155 'event':747,775,846,860,869,881,891,1098,1112,1133,1182,1202,1259,1273,1294,1336,1356,1399,1413,1434,1483,1503,1548,1562,1583,1632,1652,1699,1713,1734,1783,1803,1855,1869,1890,1939,1959,2007,2021,2042,2072,2092,2131,2155,2169,2190,2220,2240,2279,2303,2317,2338,2368,2388,2427,2451,2462,2483,2532,2552,2577,2591,2612,2661,2681,2697,2711,2732,2781,2801 'exampl':34 'exist':192 'expect':317,380,450 'exponenti':181 'export':25 'fail':48,145,819,827,2569 'failov':736 'fax':1839 'field':130,174,838,840,1092,1253,1393,1542,1693,1849,2001,2149,2297,2445,2571,2691 'follow':745 'format':132,175 'former':930,1156,1457,1606,1757,1913,2100,2248,2396,2506,2635,2755 'found':169 'generat':785,1001,1236,1248 'get':697 'greet':798,810,1689,1997 'group':962,1000,1224,1234 'h':87,93,231,237,276,282,349,355,428,434,470,476,526,532,564,570,615,621 'handl':43,63 'header':401,654,670,766 'heard':309 'hello':104 'hmac/standard':668 'http':70,80,105,117,152 'human':1533,1833,1835 'id':214,218,225,244,253,267,331,340,389,457,464,495,502,551,558,607,898,911,914,924,929,933,940,942,952,954,991,993,1070,1074,1084,1087,1137,1140,1150,1155,1159,1166,1168,1185,1187,1225,1227,1298,1301,1311,1320,1322,1339,1341,1438,1441,1451,1456,1460,1467,1469,1486,1488,1587,1590,1600,1605,1609,1616,1618,1635,1637,1738,1741,1751,1756,1760,1767,1769,1786,1788,1894,1897,1907,1912,1916,1923,1925,1942,1944,2046,2049,2056,2058,2075,2077,2094,2099,2103,2194,2197,2204,2206,2223,2225,2242,2247,2251,2342,2345,2352,2354,2371,2373,2390,2395,2399,2487,2490,2500,2505,2509,2516,2518,2535,2537,2616,2619,2629,2634,2638,2645,2647,2664,2666,2736,2739,2749,2754,2758,2765,2767,2784,2786 'identifi':847,866,901,1021,1099,1117,1260,1278,1313,1400,1418,1549,1567,1700,1718,1856,1874,2008,2026,2156,2174,2304,2322,2452,2467,2578,2596,2698,2716 'inbound':418,506 'includ':398,645,757 'insight':784,999,1233,1245 'instal':10,16 'insuffici':164 'int32':344 'integ':408,1007,2128,2276,2424 'invalid':160 'involv':905 'iso':875,1127,1288,1428,1577,1728,1884,2036,2184,2332,2477,2606,2726 'issu':917,1143,1304,1444,1593,1744,1900,2493,2622,2742 'join':183 'key':28,31,39,92,149,162,236,281,354,433,475,531,569,620,700,706 'krisp':515 'languag':714,1036 'larg':1035 'leg':204,304,939,949,966,1165,1319,1466,1615,1766,1922,2055,2203,2351,2515,2644,2764 'limit':53,136,178 'linux':19 'machin':792,797,802,808,1534,1538,1688,1837,1845,1996 'maco':18 'metadata':399 'milli':343 'minut':692 'mode':598 'model':1032,1037,1043,1050,1069,1073 'must':720 'n':79 'name':396 'network':50 'nois':487,509,517,543 'notifi':2126,2130,2274,2278,2422,2426 'number':1019,1027,1367,1377,1514,1524,1663,1673,1814,1824,1970,1980,2118,2141,2266,2289,2414,2437 'object':521,1242 'occur':882,1134,1295,1435,1584,1735,1891,2043,2191,2339,2484,2613,2733 'old':693 'option':220,335,391,459,497,553 'outbound':420,507 'parti':979,988,1212,1221 'particip':189,219,247 'payload':837 'permiss':165 'place':1371,1518,1667,1818,1974,2122,2270,2418 'portal':703,740 'post':83,210,230,327,348,385,427,453,469,491,525,547,563,603,614 'pre':15 'pre-instal':14 'premium':803,809,1843,1994 'product':66,659 'protect':696 'provid':1056,1063 'pstn':982,1215 'public':699 'put':263,275 'q850':2564,2813 'rate':52,135,177 'reason':2565,2814 'receiv':789,974,1207,1361,1387,1508,1657,1808,1964,2112,2260,2408,2557,2686,2806 'refer':814,818,822,2136,2284,2432 'reject':689 'relat':964 'reliabl':743 'replay':695 'request':644 'requir':129,216,269,333,609 'resid':1834 'resourc':167,852,1104,1121,1265,1282,1317,1405,1422,1554,1571,1705,1722,1861,1878,2013,2030,2161,2178,2309,2326,2454,2471,2583,2600,2703,2720 'respons':74,75,108,113,2127,2275,2423 'result':255,295,367,443,485,541,579,633,1246,1540,1691,1847,1999 'retri':137,179,729 'return':251,294,366,442,484,540,578,632,721 'role':583,587,610,627 'run':207 'sdk':711 'sec':407,1006 'second':725,1013 'secur':403 'sed':114 'send':297,299 'sent':671,749 'session':373,405,449,951,961,1184,1194,1338,1348,1485,1495,1634,1644,1785,1795,1941,1951,2074,2084,2222,2232,2370,2380,2534,2544,2568,2663,2673,2783,2793,2818 'set':705 'setup':23 'sign':639,662 'signatur':648,657,677,683,764,769 'silenc':1838 'sip':409,983,1029,1216,1369,1379,1516,1526,1665,1675,1816,1826,1972,1982,2120,2129,2143,2268,2277,2291,2416,2425,2439 'siprec':369,372,377,415,445,448,826,830,834,2567,2817 'siprec.failed':384,2458 'siprec.started':382,2587 'siprec.stopped':383,452,2707 'skill' 'skill-telnyx-voice-advanced-curl' 'sleep':140 'source-team-telnyx' 'speech':1047,1062,1080 'speech-to-text':1046 'srs':379 'start':370,371,489,823,831 'state':222,259,262,271,289,337,393,461,499,555,968,973,1204,1206,1358,1360,1505,1507,1654,1656,1805,1807,1961,1963,2109,2111,2257,2259,2405,2407,2554,2556,2683,2685,2803,2805 'status':71,2132,2280,2428 'stop':446,447,545,835,2820 'string':223,226,256,296,338,341,368,394,397,444,462,465,486,500,503,542,556,559,580,634,899,912,925,941,953,969,992,1015,1023,1033,1044,1057,1071,1085,1138,1151,1167,1186,1205,1226,1299,1312,1321,1340,1359,1366,1375,1385,1439,1452,1468,1487,1506,1513,1522,1588,1601,1617,1636,1655,1662,1671,1739,1752,1768,1787,1806,1813,1822,1895,1908,1924,1943,1962,1969,1978,2047,2057,2076,2095,2110,2117,2139,2195,2205,2224,2243,2258,2265,2287,2343,2353,2372,2391,2406,2413,2435,2488,2501,2517,2536,2555,2563,2617,2630,2646,2665,2684,2737,2750,2766,2785,2804,2812 'success':122 'supervisor':582,586,597 'suppress':488,510,518,544 'sure':1536,1686,1842 'switch':581,584,594 'symbol':1391 'synthesi':1081 'system':896 'tail':109 'tcp':413 'telnyx':2,6,26,37,90,147,234,279,352,431,473,529,567,618,638,647,652,661,676,685,702,710,727,739,759,763,931,1157,1458,1607,1758,1914,2101,2249,2397,2507,2636,2756 'telnyx-signature-ed25519':646,675,762 'telnyx-timestamp':651,684,758 'telnyx-voice-advanced-curl':1 'text':11,103,1049,1060,1078 'text-to-speech':1059,1077 'time':874,887,1126,1287,1427,1576,1727,1883,2035,2183,2331,2476,2605,2725 'timeout':406 'timestamp':653,686,688,760,888 'tls':414 'tone':301,306 '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':416,419,421,423,2134,2282,2430 'transport':410 'tts':1090 'type':96,240,285,358,437,479,535,573,624,841,844,849,854,858,980,985,1093,1096,1101,1106,1110,1119,1213,1218,1254,1257,1262,1267,1271,1280,1315,1394,1397,1402,1407,1411,1420,1543,1546,1551,1556,1560,1569,1694,1697,1702,1707,1711,1720,1850,1853,1858,1863,1867,1876,2002,2005,2010,2015,2019,2028,2150,2153,2158,2163,2167,2176,2298,2301,2306,2311,2315,2324,2446,2449,2456,2460,2469,2572,2575,2580,2585,2589,2598,2692,2695,2700,2705,2709,2718 'udp':412 'uniqu':865,900,945,957,994,1171,1190,1230,1325,1344,1472,1491,1621,1640,1772,1791,1928,1947,2048,2061,2080,2196,2209,2228,2344,2357,2376,2521,2540,2650,2669,2770,2789 'unix':687 'updat':257,260 'uri':1370,1380,1517,1527,1666,1676,1817,1827,1973,1983,2121,2144,2269,2292,2417,2440 'url':737,754 'use':36,196,708,771,915,934,1038,1051,1064,1075,1088,1141,1160,1178,1198,1302,1332,1352,1442,1461,1479,1499,1591,1610,1628,1648,1742,1761,1779,1799,1898,1917,1935,1955,2068,2088,2104,2216,2236,2252,2364,2384,2400,2491,2510,2528,2548,2620,2639,2657,2677,2740,2759,2777,2797 'uuid':254,864,1116,1277,1417,1566,1717,1873,2025,2173,2321,2466,2595,2715 'v3':245 'valid':55,126,171 'verif':637,716,770 'verifi':656,774 'via':919,1145,1306,1446,1595,1746,1902,2495,2624,2744 'voic':3,7,1083,1086 'w':78 'webhook':318,322,381,451,635,636,640,663,669,674,746,753,756,836,1181,1201,1335,1355,1482,1502,1631,1651,1782,1802,1938,1958,2071,2091,2219,2239,2367,2387,2531,2551,2660,2680,2780,2800 'window':21 'within':723 'x':82,229,274,347,426,468,524,562,613","prices":[{"id":"de8bd98e-7cf1-4e7e-b8c7-37d07e327ad2","listingId":"dc889ea2-1b6e-4d21-8e50-f0ef029c7a1a","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:12.967Z"}],"sources":[{"listingId":"dc889ea2-1b6e-4d21-8e50-f0ef029c7a1a","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-advanced-curl","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-curl","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:12.967Z","lastSeenAt":"2026-04-22T00:54:50.621Z"}],"details":{"listingId":"dc889ea2-1b6e-4d21-8e50-f0ef029c7a1a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-advanced-curl","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":"a8b5411df29e2763bc233fecd3c362cb2e2c7a87","skill_md_path":"skills/telnyx-voice-advanced-curl/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-curl"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-advanced-curl","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-curl"},"updatedAt":"2026-04-22T00:54:50.621Z"}}