{"id":"bd9a39f2-3484-4196-81d4-d5d56d1f6be8","shortId":"FQg6c3","kind":"skill","title":"telnyx-voice-advanced-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Advanced - Python\n\n## Installation\n\n```bash\npip install telnyx\n```\n\n## Setup\n\n```python\nimport os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n    api_key=os.environ.get(\"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```python\nimport telnyx\n\ntry:\n    result = client.messages.send(to=\"+13125550001\", from_=\"+13125550002\", text=\"Hello\")\nexcept telnyx.APIConnectionError:\n    print(\"Network error — check connectivity and retry\")\nexcept telnyx.RateLimitError:\n    # 429: rate limited — wait and retry with exponential backoff\n    import time\n    time.sleep(1)  # Check Retry-After header for actual delay\nexcept telnyx.APIStatusError as e:\n    print(f\"API error {e.status_code}: {e.message}\")\n    if e.status_code == 422:\n        print(\"Validation error — check required fields and formats\")\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```python\nresponse = client.calls.actions.join_ai_assistant(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    conversation_id=\"v3:abc123\",\n    participant={\n        \"id\": \"v3:abc123def456\",\n        \"role\": \"user\",\n    },\n)\nprint(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```python\nresponse = client.calls.actions.update_client_state(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    client_state=\"aGF2ZSBhIG5pY2UgZGF5ID1d\",\n)\nprint(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```python\nresponse = client.calls.actions.send_dtmf(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    digits=\"1www2WABCDw9\",\n)\nprint(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```python\nresponse = client.calls.actions.start_siprec(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(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```python\nresponse = client.calls.actions.stop_siprec(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(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```python\nresponse = client.calls.actions.start_noise_suppression(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(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```python\nresponse = client.calls.actions.stop_noise_suppression(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(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```python\nresponse = client.calls.actions.switch_supervisor_role(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    role=\"barge\",\n)\nprint(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```python\n# In your webhook handler (e.g., Flask — use raw body, not parsed JSON):\n@app.route(\"/webhooks\", methods=[\"POST\"])\ndef handle_webhook():\n    payload = request.get_data(as_text=True)  # raw body as string\n    headers = dict(request.headers)\n    try:\n        event = client.webhooks.unwrap(payload, headers=headers)\n    except Exception as e:\n        print(f\"Webhook verification failed: {e}\")\n        return \"Invalid signature\", 400\n    # Signature valid — event is the parsed webhook payload\n    print(f\"Received event: {event.data.event_type}\")\n    return \"OK\", 200\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","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-advanced-python","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-python","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,555 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.989Z","embedding":null,"createdAt":"2026-04-18T22:08:16.229Z","updatedAt":"2026-04-22T00:54:50.989Z","lastSeenAt":"2026-04-22T00:54:50.989Z","tsv":"'+13125550001':83 '+13125550002':85 '/actions/ai_assistant_join':202 '/actions/client_state_update':257 '/actions/send_dtmf':318 '/actions/siprec_start':372 '/actions/siprec_stop':437 '/actions/suppression_start':472 '/actions/suppression_stop':526 '/actions/switch_supervisor_role':580 '/calls':198,253,314,368,433,468,522,576 '/webhooks':643 '1':111 '1www2wabcdw9':345 '200':698 '400':681 '401':69,146 '403':150 '404':153 '41d4':225,272,341,416,455,509,545,594 '422':65,134,157 '429':62,99,163 '446655440000':227,274,343,418,457,511,547,596 '550e8400':222,269,338,413,452,506,542,591 '8601':831,1083,1244,1384,1533,1684,1840,1992,2140,2288,2433,2562,2682 'a716':226,273,342,417,456,510,546,595 'abc123':231 'abc123def456':235 'activ':573 'actual':118 'add':174 'addit':189 'address':985 'advanc':4,8 'agf2zsbhig5py2ugzgf5id1d':277 'ai':171,180,195,217 'aicoust':492 'allow':565 'alreadi':45 'alway':70,624 'answer':1492,1642,1799,1950 'api':25,29,53,126,148,877,1103,1264,1404,1553,1704,1860,2453,2582,2702 'app':883,1109,1410,1559,1710,1866,2053,2201,2349,2459,2588,2708 'app.route':642 'array':1196,1198 'assist':172,181,218,859 'associ':309 'assum':42 'attempt':2092,2240,2388 'authent':67 'backoff':107,169 'barg':598 'base64':926 'base64-encoded':925 'bash':11 'beep':1637,1944,1947 'beta':466,520 'bodi':638,656 'boolean':384,386 'bridg':562 'bring':187 'busi':1791 'call':54,190,199,219,254,266,302,315,335,369,410,434,449,469,503,523,539,563,574,577,588,733,737,742,746,751,756,762,768,772,776,780,784,788,863,868,875,881,892,903,915,920,942,959,1022,1094,1101,1107,1118,1129,1148,1175,1194,1206,1255,1262,1283,1302,1328,1338,1395,1402,1408,1419,1430,1449,1475,1485,1544,1551,1557,1568,1579,1598,1624,1634,1695,1702,1708,1719,1730,1749,1775,1785,1851,1858,1864,1875,1886,1905,1931,1941,2008,2019,2038,2051,2062,2079,2102,2156,2167,2186,2199,2210,2227,2250,2304,2315,2334,2347,2358,2375,2398,2444,2451,2457,2468,2479,2498,2573,2580,2586,2597,2608,2627,2693,2700,2706,2717,2728,2747 'call.conversation.ended':811 'call.conversation_insights.generated':1063 'call.dtmf.received':1224 'call.machine.detection.ended':1364 'call.machine.greeting.ended':1513 'call.machine.premium.detection.ended':1664 'call.machine.premium.greeting.ended':1820 'call.refer.completed':1972 'call.refer.failed':2120 'call.refer.started':2268 'callconversationend':732,794 'callconversationinsightsgener':736,1046 'calldtmfreceiv':741,1207 'calle':980 'caller':972 'callmachinedetectionend':745,1347 'callmachinegreetingend':750,1496 'callmachinepremiumdetectionend':755,1647 'callmachinepremiumgreetingend':761,1803 'callrefercomplet':767,1955 'callreferfail':771,2103 'callreferstart':775,2251 'callsiprecfail':779,2399 'callsiprecstart':783,2525 'callsiprecstop':787,2645 'caus':2517,2766 'check':93,112,138,160 'client':23,43,208,247,250,259,264,275,322,374,439,474,528 'client.calls.actions.join':216 'client.calls.actions.send':333 'client.calls.actions.start':408,500 'client.calls.actions.stop':447,536 'client.calls.actions.switch':585 'client.calls.actions.update':263 'client.messages.send':81 'client.webhooks.unwrap':664,727 'code':75,129,133,145 'command':185,211,312,325,442,477,531,873,932,1099,1165,1260,1319,1400,1466,1549,1615,1700,1766,1856,1922,2070,2218,2366,2449,2515,2578,2644,2698,2764 'common':143 'complet':770 'config':496 'configur':357,707 'connect':94,887,944,1113,1177,1414,1563,1714,1870,2057,2205,2353,2463,2592,2712 'connector':360,377 'control':200,220,255,267,316,336,370,411,435,450,470,504,524,540,578,589,865,876,882,1091,1102,1108,1252,1263,1392,1403,1409,1541,1552,1558,1692,1703,1709,1848,1859,1865,2000,2006,2052,2148,2154,2200,2296,2302,2348,2441,2452,2458,2570,2581,2587,2690,2701,2707 'convers':173,182,196,204,228,241,734,738,952,966,996,1009 'correl':1135,1155,1289,1309,1436,1456,1585,1605,1736,1756,1892,1912,2025,2045,2173,2193,2321,2341,2485,2505,2614,2634,2734,2754 'creat':848 'custom':382 'data':651 'data.created':838 'data.event':808,1060,1221,1361,1510,1661,1817,1969,2117,2265,2410,2539,2659 'data.id':818,1070,1231,1371,1520,1671,1827,1979,2127,2275,2420,2549,2669 'data.occurred':825,1077,1238,1378,1527,1678,1834,1986,2134,2282,2427,2556,2676 'data.payload.assistant':852 'data.payload.call':864,893,905,1090,1119,1138,1251,1273,1292,1391,1420,1439,1540,1569,1588,1691,1720,1739,1847,1876,1895,1999,2009,2028,2147,2157,2176,2295,2305,2324,2440,2469,2488,2569,2598,2617,2689,2718,2737 'data.payload.calling':933,1166 'data.payload.client':922,1158,1312,1459,1608,1759,1915,2063,2211,2359,2508,2637,2757 'data.payload.connection':878,1104,1265,1405,1554,1705,1861,2048,2196,2344,2454,2583,2703 'data.payload.conversation':945 'data.payload.digit':1339 'data.payload.duration':960 'data.payload.failure':2516 'data.payload.from':969,1320,1467,1616,1767,1923,2071,2219,2367 'data.payload.hangup':2765 'data.payload.insight':1178 'data.payload.llm':986 'data.payload.result':1486,1635,1786,1942 'data.payload.results':1195 'data.payload.sip':2080,2228,2376 'data.payload.stt':997 'data.payload.to':977,1329,1476,1625,1776,1932,2093,2241,2389 'data.payload.tts':1010,1023,1037 'data.record':798,1050,1211,1351,1500,1651,1807,1959,2107,2255,2403,2529,2649 'date':828,841,1080,1241,1381,1530,1681,1837,1989,2137,2285,2430,2559,2679 'date-tim':827,840,1079,1240,1380,1529,1680,1836,1988,2136,2284,2429,2558,2678 'datetim':832,1084,1245,1385,1534,1685,1841,1993,2141,2289,2434,2563,2683 'deepfilternet':490 'def':646 'default':34 'delay':119 'deliv':817,1069,1230,1370,1519,1670,1826,1978,2126,2274,2419,2548,2668 'denois':489 'descript':731,797,1049,1210,1350,1499,1650,1806,1958,2106,2254,2402,2528,2648 'destin':1331,1478,1627,1778,1934,2095,2243,2391 'detect':748,759,1494,1638,1795,1801,1945,1948 'dict':660 'differ':568 'digit':320,344,1344 'direct':480 'dtmf':284,286,291,334,743,1343 'durat':328,963 'e':123,671,677 'e.g':634 'e.message':130 'e.status':128,132 'e29b':224,271,340,415,454,508,544,593 'e29b-41d4-a716':223,270,339,414,453,507,543,592 'ed25519':611,618,720,723 'encod':927 'end':299,735,749,754,760,766,1639,1645,1953 'engin':487,495 'enum':393,399,481,488,800,810,936,1052,1062,1169,1213,1223,1353,1363,1487,1502,1512,1636,1653,1663,1787,1809,1819,1943,1961,1971,2109,2119,2257,2267,2405,2412,2531,2541,2651,2661 'error':50,59,64,68,72,92,127,137,144,159 'event':663,684,693,702,730,801,815,824,836,846,1053,1067,1088,1137,1157,1214,1228,1249,1291,1311,1354,1368,1389,1438,1458,1503,1517,1538,1587,1607,1654,1668,1689,1738,1758,1810,1824,1845,1894,1914,1962,1976,1997,2027,2047,2086,2110,2124,2145,2175,2195,2234,2258,2272,2293,2323,2343,2382,2406,2417,2438,2487,2507,2532,2546,2567,2616,2636,2652,2666,2687,2736,2756 'event.data.event':694 'exampl':40 'except':88,97,120,668,669 'exist':179 'expect':303,362,429 'exponenti':106,168 'f':125,673,691 'fail':56,676,774,782,2524 'fax':1794 'field':140,161,793,795,1047,1208,1348,1497,1648,1804,1956,2104,2252,2400,2526,2646 'flask':635 'follow':700 'format':142,162 'former':885,1111,1412,1561,1712,1868,2055,2203,2351,2461,2590,2710 'found':156 'generat':740,956,1191,1203 'greet':753,765,1644,1952 'group':917,955,1179,1189 'handl':51,71,647 'handler':633 'header':116,383,623,659,666,667,721 'heard':295 'hello':87 'human':1488,1788,1790 'id':201,205,212,221,229,233,242,256,268,317,326,337,371,412,436,443,451,471,478,505,525,532,541,579,590,853,866,869,879,884,888,895,897,907,909,946,948,1025,1029,1039,1042,1092,1095,1105,1110,1114,1121,1123,1140,1142,1180,1182,1253,1256,1266,1275,1277,1294,1296,1393,1396,1406,1411,1415,1422,1424,1441,1443,1542,1545,1555,1560,1564,1571,1573,1590,1592,1693,1696,1706,1711,1715,1722,1724,1741,1743,1849,1852,1862,1867,1871,1878,1880,1897,1899,2001,2004,2011,2013,2030,2032,2049,2054,2058,2149,2152,2159,2161,2178,2180,2197,2202,2206,2297,2300,2307,2309,2326,2328,2345,2350,2354,2442,2445,2455,2460,2464,2471,2473,2490,2492,2571,2574,2584,2589,2593,2600,2602,2619,2621,2691,2694,2704,2709,2713,2720,2722,2739,2741 'identifi':802,821,856,976,1054,1072,1215,1233,1268,1355,1373,1504,1522,1655,1673,1811,1829,1963,1981,2111,2129,2259,2277,2407,2422,2533,2551,2653,2671 'import':17,21,77,108 'inbound':400,482 'includ':380,614,712 'initi':46 'insight':739,954,1188,1200 'instal':10,13 'insuffici':151 'int32':330 'integ':390,962,2083,2231,2379 'invalid':147,679 'involv':860 'iso':830,1082,1243,1383,1532,1683,1839,1991,2139,2287,2432,2561,2681 'issu':872,1098,1259,1399,1548,1699,1855,2448,2577,2697 'join':170 'json':641 'key':26,30,149 'krisp':491 'languag':991 'larg':990 'leg':191,290,894,904,921,1120,1274,1421,1570,1721,1877,2010,2158,2306,2470,2599,2719 'limit':61,101,165 'machin':747,752,757,763,1489,1493,1643,1792,1800,1951 'metadata':381 'method':644 'milli':329 'mode':570 'model':987,992,998,1005,1024,1028 'name':378 'network':58,91 'nois':463,485,493,501,517,537 'notifi':2081,2085,2229,2233,2377,2381 'number':974,982,1322,1332,1469,1479,1618,1628,1769,1779,1925,1935,2073,2096,2221,2244,2369,2392 'object':497,1197 'occur':837,1089,1250,1390,1539,1690,1846,1998,2146,2294,2439,2568,2688 'ok':697 'omit':38 'option':207,321,373,438,473,527 'os':18 'os.environ.get':27 'outbound':402,483 'pars':640,687 'parti':934,943,1167,1176 'particip':176,206,232 'payload':649,665,689,792 'permiss':152 'pip':12 'place':1326,1473,1622,1773,1929,2077,2225,2373 'post':197,313,367,432,467,521,575,645 'premium':758,764,1798,1949 'print':90,124,135,238,278,346,419,458,512,548,599,672,690 'product':74,628 'provid':1011,1018 'pstn':937,1170 'put':252 'python':5,9,16,76,214,261,331,406,445,498,534,583,629 'q850':2519,2768 'rate':60,100,164 'raw':637,655 'reason':2520,2769 'receiv':692,744,929,1162,1316,1342,1463,1612,1763,1919,2067,2215,2363,2512,2641,2761 'refer':769,773,777,2091,2239,2387 'relat':919 'request':613 'request.get':650 'request.headers':661 'requir':139,203,258,319,581 'resid':1789 'resourc':154,807,1059,1076,1220,1237,1272,1360,1377,1509,1526,1660,1677,1816,1833,1968,1985,2116,2133,2264,2281,2409,2426,2538,2555,2658,2675 'respons':215,262,332,407,446,499,535,584,2082,2230,2378 'response.data':239,279,347,420,459,513,549,600 'result':80,244,281,349,422,461,515,551,602,1201,1495,1646,1802,1954 'retri':96,104,114,166 'retry-aft':113 'return':240,280,348,421,460,514,550,601,678,696 'role':236,555,559,582,587,597 'run':194 'sec':389,961 'second':968 'secur':385 'send':283,285 'sent':704 'session':355,387,428,906,916,1139,1149,1293,1303,1440,1450,1589,1599,1740,1750,1896,1906,2029,2039,2177,2187,2325,2335,2489,2499,2523,2618,2628,2738,2748,2773 'setup':15 'shown':48 'sign':608 'signatur':617,626,680,682,719,724 'silenc':1793 'sip':391,938,984,1171,1324,1334,1471,1481,1620,1630,1771,1781,1927,1937,2075,2084,2098,2223,2232,2246,2371,2380,2394 'siprec':351,354,359,397,409,424,427,448,781,785,789,2522,2772 'siprec.failed':366,2413 'siprec.started':364,2542 'siprec.stopped':365,431,2662 'skill' 'skill-telnyx-voice-advanced-python' 'source-team-telnyx' 'speech':1002,1017,1035 'speech-to-text':1001 'srs':361 'start':352,353,465,778,786 'state':209,248,251,260,265,276,323,375,440,475,529,923,928,1159,1161,1313,1315,1460,1462,1609,1611,1760,1762,1916,1918,2064,2066,2212,2214,2360,2362,2509,2511,2638,2640,2758,2760 'status':2087,2235,2383 'stop':425,426,519,790,2775 'string':210,213,245,282,324,327,350,376,379,423,441,444,462,476,479,516,530,533,552,603,658,854,867,880,896,908,924,947,970,978,988,999,1012,1026,1040,1093,1106,1122,1141,1160,1181,1254,1267,1276,1295,1314,1321,1330,1340,1394,1407,1423,1442,1461,1468,1477,1543,1556,1572,1591,1610,1617,1626,1694,1707,1723,1742,1761,1768,1777,1850,1863,1879,1898,1917,1924,1933,2002,2012,2031,2050,2065,2072,2094,2150,2160,2179,2198,2213,2220,2242,2298,2308,2327,2346,2361,2368,2390,2443,2456,2472,2491,2510,2518,2572,2585,2601,2620,2639,2692,2705,2721,2740,2759,2767 'supervisor':554,558,569,586 'suppress':464,486,494,502,518,538 'sure':1491,1641,1797 'switch':553,556,566 'symbol':1346 'synthesi':1036 'system':851 'tcp':395 'telnyx':2,6,14,20,22,24,28,78,607,616,621,714,718,886,1112,1413,1562,1713,1869,2056,2204,2352,2462,2591,2711 'telnyx-signature-ed25519':615,717 'telnyx-timestamp':620,713 'telnyx-voice-advanced-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.ratelimiterror':98 'text':86,653,1004,1015,1033 'text-to-speech':1014,1032 'time':109,829,842,1081,1242,1382,1531,1682,1838,1990,2138,2286,2431,2560,2680 'time.sleep':110 'timeout':388 'timestamp':622,715,843 'tls':396 'tone':287,292 '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':398,401,403,405,2089,2237,2385 'transport':392 'tri':79,662 'true':654 'tts':1045 'type':695,796,799,804,809,813,935,940,1048,1051,1056,1061,1065,1074,1168,1173,1209,1212,1217,1222,1226,1235,1270,1349,1352,1357,1362,1366,1375,1498,1501,1506,1511,1515,1524,1649,1652,1657,1662,1666,1675,1805,1808,1813,1818,1822,1831,1957,1960,1965,1970,1974,1983,2105,2108,2113,2118,2122,2131,2253,2256,2261,2266,2270,2279,2401,2404,2411,2415,2424,2527,2530,2535,2540,2544,2553,2647,2650,2655,2660,2664,2673 'udp':394 'uniqu':820,855,900,912,949,1126,1145,1185,1280,1299,1427,1446,1576,1595,1727,1746,1883,1902,2003,2016,2035,2151,2164,2183,2299,2312,2331,2476,2495,2605,2624,2725,2744 'updat':246,249 'uri':1325,1335,1472,1482,1621,1631,1772,1782,1928,1938,2076,2099,2224,2247,2372,2395 'url':709 'use':183,636,726,870,889,993,1006,1019,1030,1043,1096,1115,1133,1153,1257,1287,1307,1397,1416,1434,1454,1546,1565,1583,1603,1697,1716,1734,1754,1853,1872,1890,1910,2023,2043,2059,2171,2191,2207,2319,2339,2355,2446,2465,2483,2503,2575,2594,2612,2632,2695,2714,2732,2752 'user':237 'uuid':243,819,1071,1232,1372,1521,1672,1828,1980,2128,2276,2421,2550,2670 'v3':230,234 'valid':63,136,158,683 'verif':606,675,725 'verifi':625,729 'via':874,1100,1261,1401,1550,1701,1857,2450,2579,2699 'voic':3,7,1038,1041 'wait':102 'webhook':304,308,363,430,604,605,609,632,648,674,688,701,708,711,791,1136,1156,1290,1310,1437,1457,1586,1606,1737,1757,1893,1913,2026,2046,2174,2194,2322,2342,2486,2506,2615,2635,2735,2755","prices":[{"id":"59435503-af33-4d35-971d-1a276aa2cd51","listingId":"bd9a39f2-3484-4196-81d4-d5d56d1f6be8","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:16.229Z"}],"sources":[{"listingId":"bd9a39f2-3484-4196-81d4-d5d56d1f6be8","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-advanced-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:16.229Z","lastSeenAt":"2026-04-22T00:54:50.989Z"}],"details":{"listingId":"bd9a39f2-3484-4196-81d4-d5d56d1f6be8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-advanced-python","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":"589cd0a493efb43d20a41a695b031647e140f10a","skill_md_path":"skills/telnyx-voice-advanced-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-advanced-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-python"},"updatedAt":"2026-04-22T00:54:50.989Z"}}