{"id":"d381ea7c-9086-4d67-97f3-577ec7640b6b","shortId":"MWuhxc","kind":"skill","title":"telnyx-voice-conferencing-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Conferencing - 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## Important Notes\n\n- **Pagination:** List methods return an auto-paginating iterator. Use `for item in page_result:` to iterate through all pages automatically.\n\n## Enqueue call\n\nPut the call in a queue.\n\n`POST /calls/{call_control_id}/actions/enqueue` — Required: `queue_name`\n\nOptional: `client_state` (string), `command_id` (string), `keep_after_hangup` (boolean), `max_size` (integer), `max_wait_time_secs` (integer)\n\n```python\nresponse = client.calls.actions.enqueue(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    queue_name=\"support\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Remove call from a queue\n\nRemoves the call from a queue.\n\n`POST /calls/{call_control_id}/actions/leave_queue`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```python\nresponse = client.calls.actions.leave_queue(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## List conferences\n\nLists conferences. Conferences are created on demand, and will expire after all participants have left the conference or after 4 hours regardless of the number of active participants. Conferences are listed in descending order by `expires_at`.\n\n`GET /conferences`\n\n```python\npage = client.conferences.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `connection_id` (string), `created_at` (string), `end_reason` (enum: all_left, ended_via_api, host_left, time_exceeded), `ended_by` (object), `expires_at` (string), `id` (string), `name` (string), `record_type` (enum: conference), `region` (string), `status` (enum: init, in_progress, completed), `updated_at` (string)\n\n## Create conference\n\nCreate a conference from an existing call leg using a `call_control_id` and a conference name. Upon creating the conference, the call will be automatically bridged to the conference. Conferences will expire after all participants have left the conference or after 4 hours regardless of the number of active participants.\n\n`POST /conferences` — Required: `call_control_id`, `name`\n\nOptional: `beep_enabled` (enum: always, never, on_enter, on_exit), `client_state` (string), `comfort_noise` (boolean), `command_id` (string), `duration_minutes` (integer), `hold_audio_url` (string), `hold_media_name` (string), `max_participants` (integer), `region` (enum: Australia, Europe, Middle East, US), `start_conference_on_create` (boolean)\n\n```python\nconference = client.conferences.create(\n    call_control_id=\"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg\",\n    name=\"Business\",\n)\nprint(conference.data)\n```\n\nReturns: `connection_id` (string), `created_at` (string), `end_reason` (enum: all_left, ended_via_api, host_left, time_exceeded), `ended_by` (object), `expires_at` (string), `id` (string), `name` (string), `record_type` (enum: conference), `region` (string), `status` (enum: init, in_progress, completed), `updated_at` (string)\n\n## List conference participants\n\nLists conference participants\n\n`GET /conferences/{conference_id}/participants`\n\n```python\npage = client.conferences.list_participants(\n    conference_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `conference` (object), `created_at` (string), `end_conference_on_exit` (boolean), `id` (string), `muted` (boolean), `on_hold` (boolean), `record_type` (enum: participant), `soft_end_conference_on_exit` (boolean), `status` (enum: joining, joined, left), `updated_at` (string), `whisper_call_control_ids` (array[string])\n\n## Retrieve a conference\n\nRetrieve an existing conference\n\n`GET /conferences/{id}`\n\n```python\nconference = client.conferences.retrieve(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(conference.data)\n```\n\nReturns: `connection_id` (string), `created_at` (string), `end_reason` (enum: all_left, ended_via_api, host_left, time_exceeded), `ended_by` (object), `expires_at` (string), `id` (string), `name` (string), `record_type` (enum: conference), `region` (string), `status` (enum: init, in_progress, completed), `updated_at` (string)\n\n## End a conference\n\nEnd a conference and terminate all active participants.\n\n`POST /conferences/{id}/actions/end`\n\nOptional: `command_id` (string)\n\n```python\nresponse = client.conferences.actions.end_conference(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Gather DTMF using audio prompt in a conference\n\nPlay an audio file to a specific conference participant and gather DTMF input.\n\n`POST /conferences/{id}/actions/gather_using_audio` — Required: `call_control_id`\n\nOptional: `audio_url` (string), `client_state` (string), `gather_id` (string), `initial_timeout_millis` (integer), `inter_digit_timeout_millis` (integer), `invalid_audio_url` (string), `invalid_media_name` (string), `maximum_digits` (integer), `maximum_tries` (integer), `media_name` (string), `minimum_digits` (integer), `stop_playback_on_dtmf` (boolean), `terminating_digit` (string), `timeout_millis` (integer), `valid_digits` (string)\n\n```python\nresponse = client.conferences.actions.gather_dtmf_audio(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    call_control_id=\"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Hold conference participants\n\nHold a list of participants in a conference call\n\n`POST /conferences/{id}/actions/hold`\n\nOptional: `audio_url` (string), `call_control_ids` (array[string]), `media_name` (string), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.hold(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Join a conference\n\nJoin an existing call leg to a conference. Issue the Join Conference command with the conference ID in the path and the `call_control_id` of the leg you wish to join to the conference as an attribute. The conference can have up to a certain amount of active participants, as set by the `max_participants` parameter in conference creation request.\n\n`POST /conferences/{id}/actions/join` — Required: `call_control_id`\n\nOptional: `beep_enabled` (enum: always, never, on_enter, on_exit), `client_state` (string), `command_id` (string), `end_conference_on_exit` (boolean), `hold` (boolean), `hold_audio_url` (string), `hold_media_name` (string), `mute` (boolean), `region` (enum: Australia, Europe, Middle East, US), `soft_end_conference_on_exit` (boolean), `start_conference_on_enter` (boolean), `supervisor_role` (enum: barge, monitor, none, whisper), `whisper_call_control_ids` (array[string])\n\n```python\nresponse = client.conferences.actions.join(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    call_control_id=\"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Leave a conference\n\nRemoves a call leg from a conference and moves it back to parked state. **Expected Webhooks:**\n\n- `conference.participant.left`\n\n`POST /conferences/{id}/actions/leave` — Required: `call_control_id`\n\nOptional: `beep_enabled` (enum: always, never, on_enter, on_exit), `command_id` (string), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.leave(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    call_control_id=\"c46e06d7-b78f-4b13-96b6-c576af9640ff\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Mute conference participants\n\nMute a list of participants in a conference call\n\n`POST /conferences/{id}/actions/mute`\n\nOptional: `call_control_ids` (array[string]), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.mute(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Play audio to conference participants\n\nPlay audio to all or some participants on a conference call.\n\n`POST /conferences/{id}/actions/play`\n\nOptional: `audio_url` (string), `call_control_ids` (array[string]), `loop` (string), `media_name` (string), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.play(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Conference recording pause\n\nPause conference recording.\n\n`POST /conferences/{id}/actions/record_pause`\n\nOptional: `command_id` (string), `recording_id` (string), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.record_pause(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Conference recording resume\n\nResume conference recording.\n\n`POST /conferences/{id}/actions/record_resume`\n\nOptional: `command_id` (string), `recording_id` (string), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.record_resume(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Conference recording start\n\nStart recording the conference. Recording will stop on conference end, or via the Stop Recording command. **Expected Webhooks:**\n\n- `conference.recording.saved`\n\n`POST /conferences/{id}/actions/record_start` — Required: `format`\n\nOptional: `channels` (enum: single, dual), `command_id` (string), `custom_file_name` (string), `play_beep` (boolean), `region` (enum: Australia, Europe, Middle East, US), `trim` (enum: trim-silence)\n\n```python\nresponse = client.conferences.actions.record_start(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    format=\"wav\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Conference recording stop\n\nStop recording the conference. **Expected Webhooks:**\n\n- `conference.recording.saved`\n\n`POST /conferences/{id}/actions/record_stop`\n\nOptional: `client_state` (string), `command_id` (string), `recording_id` (uuid), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.record_stop(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Send DTMF to conference participants\n\nSend DTMF tones to one or more conference participants.\n\n`POST /conferences/{id}/actions/send_dtmf` — Required: `digits`\n\nOptional: `call_control_ids` (array[string]), `client_state` (string), `duration_millis` (integer)\n\n```python\nresponse = client.conferences.actions.send_dtmf(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    digits=\"1234#\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Speak text to conference participants\n\nConvert text to speech and play it to all or some participants.\n\n`POST /conferences/{id}/actions/speak` — Required: `payload`, `voice`\n\nOptional: `call_control_ids` (array[string]), `command_id` (string), `language` (enum: arb, cmn-CN, cy-GB, da-DK, de-DE, en-AU, en-GB, en-GB-WLS, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, is-IS, it-IT, ja-JP, ko-KR, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sv-SE, tr-TR), `payload_type` (enum: text, ssml), `region` (enum: Australia, Europe, Middle East, US), `voice_settings` (object)\n\n```python\nresponse = client.conferences.actions.speak(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    payload=\"Say this to participants\",\n    voice=\"female\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Stop audio being played on the conference\n\nStop audio being played to all or some participants on a conference call.\n\n`POST /conferences/{id}/actions/stop`\n\nOptional: `call_control_ids` (array[string]), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.stop(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Unhold conference participants\n\nUnhold a list of participants in a conference call\n\n`POST /conferences/{id}/actions/unhold` — Required: `call_control_ids`\n\nOptional: `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.unhold(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    call_control_ids=[\"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg\"],\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Unmute conference participants\n\nUnmute a list of participants in a conference call\n\n`POST /conferences/{id}/actions/unmute`\n\nOptional: `call_control_ids` (array[string]), `region` (enum: Australia, Europe, Middle East, US)\n\n```python\nresponse = client.conferences.actions.unmute(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `result` (string)\n\n## Update conference participant\n\nUpdate conference participant supervisor_role\n\n`POST /conferences/{id}/actions/update` — Required: `call_control_id`, `supervisor_role`\n\nOptional: `command_id` (string), `region` (enum: Australia, Europe, Middle East, US), `whisper_call_control_ids` (array[string])\n\n```python\naction = client.conferences.actions.update(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    call_control_id=\"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg\",\n    supervisor_role=\"whisper\",\n)\nprint(action.data)\n```\n\nReturns: `result` (string)\n\n## Retrieve a conference participant\n\nRetrieve details of a specific conference participant by their ID or label.\n\n`GET /conferences/{id}/participants/{participant_id}`\n\n```python\nresponse = client.conferences.retrieve_participant(\n    participant_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `conference_id` (string), `created_at` (date-time), `end_conference_on_exit` (boolean), `id` (string), `label` (string), `muted` (boolean), `on_hold` (boolean), `soft_end_conference_on_exit` (boolean), `status` (enum: joining, joined, left), `updated_at` (date-time), `whisper_call_control_ids` (array[string])\n\n## Update a conference participant\n\nUpdate properties of a conference participant.\n\n`PATCH /conferences/{id}/participants/{participant_id}`\n\nOptional: `beep_enabled` (enum: always, never, on_enter, on_exit), `end_conference_on_exit` (boolean), `soft_end_conference_on_exit` (boolean)\n\n```python\nresponse = client.conferences.update_participant(\n    participant_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `conference_id` (string), `created_at` (date-time), `end_conference_on_exit` (boolean), `id` (string), `label` (string), `muted` (boolean), `on_hold` (boolean), `soft_end_conference_on_exit` (boolean), `status` (enum: joining, joined, left), `updated_at` (date-time), `whisper_call_control_ids` (array[string])\n\n## List queues\n\nList all queues for the authenticated user.\n\n`GET /queues`\n\n```python\npage = client.queues.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `average_wait_time_secs` (integer), `created_at` (string), `current_size` (integer), `id` (string), `max_size` (integer), `name` (string), `record_type` (enum: queue), `updated_at` (string)\n\n## Create a queue\n\nCreate a new call queue.\n\n`POST /queues` — Required: `queue_name`\n\nOptional: `max_size` (integer)\n\n```python\nqueue = client.queues.create(\n    queue_name=\"tier_1_support\",\n)\nprint(queue.data)\n```\n\nReturns: `average_wait_time_secs` (integer), `created_at` (string), `current_size` (integer), `id` (string), `max_size` (integer), `name` (string), `record_type` (enum: queue), `updated_at` (string)\n\n## Retrieve a call queue\n\nRetrieve an existing call queue\n\n`GET /queues/{queue_name}`\n\n```python\nqueue = client.queues.retrieve(\n    \"queue_name\",\n)\nprint(queue.data)\n```\n\nReturns: `average_wait_time_secs` (integer), `created_at` (string), `current_size` (integer), `id` (string), `max_size` (integer), `name` (string), `record_type` (enum: queue), `updated_at` (string)\n\n## Update a queue\n\nUpdate properties of an existing call queue.\n\n`POST /queues/{queue_name}` — Required: `max_size`\n\n```python\nqueue = client.queues.update(\n    queue_name=\"my-queue\",\n    max_size=200,\n)\nprint(queue.data)\n```\n\nReturns: `average_wait_time_secs` (integer), `created_at` (string), `current_size` (integer), `id` (string), `max_size` (integer), `name` (string), `record_type` (enum: queue), `updated_at` (string)\n\n## Delete a queue\n\nDelete an existing call queue.\n\n`DELETE /queues/{queue_name}`\n\n```python\nclient.queues.delete(\n    \"queue_name\",\n)\n```\n\n## Retrieve calls from a queue\n\nRetrieve the list of calls in an existing queue\n\n`GET /queues/{queue_name}/calls`\n\n```python\npage = client.queues.calls.list(\n    queue_name=\"my-queue\",\n)\npage = page.data[0]\nprint(page.call_control_id)\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `call_session_id` (string), `connection_id` (string), `enqueued_at` (string), `from` (string), `is_alive` (boolean), `queue_id` (string), `queue_position` (integer), `record_type` (enum: queue_call), `to` (string), `wait_time_secs` (integer)\n\n## Retrieve a call from a queue\n\nRetrieve an existing call from an existing queue\n\n`GET /queues/{queue_name}/calls/{call_control_id}`\n\n```python\ncall = client.queues.calls.retrieve(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    queue_name=\"my-queue\",\n)\nprint(call.data)\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `call_session_id` (string), `connection_id` (string), `enqueued_at` (string), `from` (string), `is_alive` (boolean), `queue_id` (string), `queue_position` (integer), `record_type` (enum: queue_call), `to` (string), `wait_time_secs` (integer)\n\n## Update queued call\n\nUpdate queued call's keep_after_hangup flag\n\n`PATCH /queues/{queue_name}/calls/{call_control_id}`\n\nOptional: `keep_after_hangup` (boolean)\n\n```python\nclient.queues.calls.update(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    queue_name=\"my-queue\",\n)\n```\n\n## Force remove a call from a queue\n\nRemoves an inactive call from a queue. If the call is no longer active, use this command to remove it from the queue.\n\n`DELETE /queues/{queue_name}/calls/{call_control_id}`\n\n```python\nclient.queues.calls.remove(\n    call_control_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    queue_name=\"my-queue\",\n)\n```\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| `callEnqueued` | Call Enqueued |\n| `callLeftQueue` | Call Left Queue |\n| `conferenceCreated` | Conference Created |\n| `conferenceEnded` | Conference Ended |\n| `conferenceFloorChanged` | Conference Floor Changed |\n| `conferenceParticipantJoined` | Conference Participant Joined |\n| `conferenceParticipantLeft` | Conference Participant Left |\n| `conferenceParticipantPlaybackEnded` | Conference Participant Playback Ended |\n| `conferenceParticipantPlaybackStarted` | Conference Participant Playback Started |\n| `conferenceParticipantSpeakEnded` | Conference Participant Speak Ended |\n| `conferenceParticipantSpeakStarted` | Conference Participant Speak Started |\n| `conferencePlaybackEnded` | Conference Playback Ended |\n| `conferencePlaybackStarted` | Conference Playback Started |\n| `conferenceRecordingSaved` | Conference Recording Saved |\n| `conferenceSpeakEnded` | Conference Speak Ended |\n| `conferenceSpeakStarted` | Conference Speak Started |\n\n### Webhook payload fields\n\n**`callEnqueued`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.enqueued | 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.queue` | string | The name of the queue |\n| `data.payload.current_position` | integer | Current position of the call in the queue. |\n| `data.payload.queue_avg_wait_time_secs` | integer | Average time call spends in the queue in seconds. |\n\n**`callLeftQueue`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.dequeued | 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.queue` | string | The name of the queue |\n| `data.payload.queue_position` | integer | Last position of the call in the queue. |\n| `data.payload.reason` | enum: bridged, bridging-in-process, hangup, leave, timeout | The reason for leaving the queue |\n| `data.payload.wait_time_secs` | integer | Time call spent in the queue in seconds. |\n\n**`conferenceCreated`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.created | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\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.conference_id` | string | Conference ID that the participant joined. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\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.conference_id` | string | Conference ID that the participant joined. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.reason` | enum: all_left, host_left, time_exceeded | Reason the conference ended. |\n\n**`conferenceFloorChanged`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `record_type` | enum: event | Identifies the type of the resource. |\n| `event_type` | enum: conference.floor.changed | The type of event being delivered. |\n| `id` | uuid | Identifies the type of resource. |\n| `payload.call_control_id` | string | Call Control ID of the new speaker. |\n| `payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `payload.call_leg_id` | string | Call Leg ID of the new speaker. |\n| `payload.call_session_id` | string | Call Session ID of the new speaker. |\n| `payload.client_state` | string | State received from a command. |\n| `payload.conference_id` | string | Conference ID that had a speaker change event. |\n| `payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceParticipantJoined`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.joined | 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.conference_id` | string | Conference ID that the participant joined. |\n\n**`conferenceParticipantLeft`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.left | 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.conference_id` | string | Conference ID that the participant joined. |\n\n**`conferenceParticipantPlaybackEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.playback.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.call_control_id` | string | Participant's call ID used to issue commands via Call Control API. |\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.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.media_url` | string | The audio URL being played back, if audio_url has been used to start. |\n| `data.payload.media_name` | string | The name of the audio media file being played back, if media_name has been used to start. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceParticipantPlaybackStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.playback.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.call_control_id` | string | Participant's call ID used to issue commands via Call Control API. |\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.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.media_url` | string | The audio URL being played back, if audio_url has been used to start. |\n| `data.payload.media_name` | string | The name of the audio media file being played back, if media_name has been used to start. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceParticipantSpeakEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.speak.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.call_control_id` | string | Participant's call ID used to issue commands via Call Control API. |\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.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceParticipantSpeakStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.participant.speak.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.call_control_id` | string | Participant's call ID used to issue commands via Call Control API. |\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.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferencePlaybackEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.playback.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.media_url` | string | The audio URL being played back, if audio_url has been used to start. |\n| `data.payload.media_name` | string | The name of the audio media file being played back, if media_name has been used to start. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferencePlaybackStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.playback.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.media_url` | string | The audio URL being played back, if audio_url has been used to start. |\n| `data.payload.media_name` | string | The name of the audio media file being played back, if media_name has been used to start. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceRecordingSaved`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.recording.saved | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.call_control_id` | string | Participant's call ID used to issue commands via Call Control API. |\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.channels` | enum: single, dual | Whether recording was recorded in `single` or `dual` channel. |\n| `data.payload.conference_id` | uuid | ID of the conference that is being recorded. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.format` | enum: wav, mp3 | The audio file format used when storing the call recording. |\n| `data.payload.recording_ended_at` | date-time | ISO 8601 datetime of when recording ended. |\n| `data.payload.recording_id` | uuid | ID of the conference recording. |\n| `data.payload.recording_started_at` | date-time | ISO 8601 datetime of when recording started. |\n\n**`conferenceSpeakEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.speak.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n\n**`conferenceSpeakStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: conference.speak.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.creator_call_session_id` | string | ID that is unique to the call session that started the conference. |\n| `data.payload.conference_id` | string | ID of the conference the text was spoken in. |\n| `data.payload.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |","tags":["telnyx","voice","conferencing","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-conferencing-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-conferencing-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 (39,232 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:51.810Z","embedding":null,"createdAt":"2026-04-18T22:08:21.325Z","updatedAt":"2026-04-22T00:54:51.810Z","lastSeenAt":"2026-04-22T00:54:51.810Z","tsv":"'+13125550001':83 '+13125550002':85 '/actions/end':704 '/actions/enqueue':206 '/actions/gather_using_audio':749 '/actions/hold':845 '/actions/join':947 '/actions/leave':1060 '/actions/leave_queue':265 '/actions/mute':1124 '/actions/play':1172 '/actions/record_pause':1218 '/actions/record_resume':1258 '/actions/record_start':1314 '/actions/record_stop':1375 '/actions/send_dtmf':1426 '/actions/speak':1479 '/actions/stop':1640 '/actions/unhold':1684 '/actions/unmute':1733 '/actions/update':1773 '/calls':202,261,2262,2337,2416,2475 '/conferences':331,438,553,632,702,747,843,945,1058,1122,1170,1216,1256,1312,1373,1424,1477,1638,1682,1731,1771,1838,1928 '/participants':556,1840,1930 '/queues':2038,2082,2136,2183,2237,2259,2334,2413,2472 '/webhooks':2534 '0':337,571,2044,2273 '1':111,2096 '1234':1453 '182bd5e5':715,814,1447,1857,1968 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':714,813,1446,1856,1967 '200':2199,2589 '4':312,428 '400':2572 '401':69,146 '403':150 '404':153 '41d4':238,283,566,641,872,1023,1092,1145,1201,1241,1281,1352,1401,1602,1661,1704,1754,1804,1852,1963,2350,2433,2487 '422':65,134,157 '429':62,99,163 '446655440000':240,285,568,643,874,1025,1094,1147,1203,1243,1283,1354,1403,1604,1663,1706,1756,1806,1854,1965,2352,2435,2489 '4b13':1101 '4fe4':717,816,1449,1859,1970 '550e8400':235,280,563,638,869,1020,1089,1142,1198,1238,1278,1349,1398,1599,1658,1701,1751,1801,1849,1960,2347,2430,2484 '6e1a':716,815,1448,1858,1969 '8601':2728,2881,3132,3261,3384,3428,3557,3831,4020,4171,4322,4448,4574,4716,4737,4824,4912 '96b6':1102 'a716':239,284,567,642,873,1024,1093,1146,1202,1242,1282,1353,1402,1603,1662,1705,1755,1805,1853,1964,2351,2434,2488 'a799':718,817,1450,1860,1971 'aa6d9a6ab26e':719,818,1451,1861,1972 'action':1798 'action.data':1817 'activ':319,435,699,931,2461 'actual':118 'aliv':2300,2382 'alreadi':45 'alway':70,448,956,1069,1937,2515 'amount':929 'api':25,29,53,126,148,354,516,660,2748,2901,3054,3183,3448,3577,3695,3884,4073,4224,4627 'app':2754,2907,3060,3189,3327,3454,3583,3748,3937,4126,4277,4365,4491,4685,4779,4867 'app.route':2533 'arb':1494 'array':622,853,1014,1129,1180,1433,1487,1645,1738,1795,1915,2026 'assum':42 'attribut':920 'au':1509 'audio':467,728,735,755,774,811,847,976,1154,1159,1174,1618,1625,3791,3797,3811,3980,3986,4000,4408,4414,4428,4534,4540,4554,4700 'australia':479,860,987,1080,1133,1189,1228,1268,1334,1388,1587,1649,1692,1742,1786 'authent':67,2035 'auto':178 'auto-pagin':177 'automat':192,411 'averag':2048,2101,2147,2203,2835 'avg':2830 'b78f':1100 'back':1050,3795,3816,3984,4005,4412,4433,4538,4559 'backoff':107,169 'barg':1006 'bash':11 'beep':445,953,1066,1330,1934 'bodi':2529,2547 'boolean':220,459,488,592,596,599,609,797,972,974,984,997,1002,1331,1885,1891,1894,1900,1947,1953,1996,2002,2005,2011,2301,2383,2424 'br':1564 'bridg':412,2984,2986 'bridging-in-process':2985 'busi':499 'c46e06d7':1099 'c46e06d7-b78f-4b13-96b6-c576af9640ff':1098 'c576af9640ff':1103 'ca':1534 'call':54,194,197,203,232,250,256,262,277,392,396,408,440,492,575,579,619,751,819,841,850,886,905,949,1011,1026,1042,1062,1095,1120,1126,1168,1177,1430,1484,1636,1642,1680,1686,1707,1729,1735,1775,1792,1807,1865,1869,1912,1976,1980,2023,2079,2128,2133,2180,2234,2245,2253,2279,2283,2287,2312,2321,2328,2338,2342,2344,2361,2365,2369,2394,2403,2406,2417,2427,2444,2451,2457,2476,2481,2624,2627,2739,2746,2752,2763,2774,2793,2825,2837,2892,2899,2905,2916,2927,2946,2978,3003,3045,3052,3058,3069,3080,3099,3174,3181,3187,3198,3209,3228,3315,3325,3336,3341,3352,3439,3446,3452,3463,3474,3493,3568,3575,3581,3592,3603,3622,3686,3693,3706,3725,3746,3757,3759,3769,3875,3882,3895,3914,3935,3946,3948,3958,4064,4071,4084,4103,4124,4135,4137,4147,4215,4222,4235,4254,4275,4286,4288,4298,4363,4374,4376,4386,4489,4500,4502,4512,4618,4625,4638,4683,4694,4707,4777,4788,4790,4800,4865,4876,4878,4888 'call.data':2359 'call.dequeued':2861 'call.enqueued':2708 'callenqueu':2623,2691 'callleftqueu':2626,2844 'certain':928 'chang':2639,3376 'channel':1318,4668 'check':93,112,138,160 'client':23,43,211,267,454,758,962,1377,1435 'client.calls.actions.enqueue':231 'client.calls.actions.leave':275 'client.conferences.actions.end':711 'client.conferences.actions.gather':809 'client.conferences.actions.hold':867 'client.conferences.actions.join':1018 'client.conferences.actions.leave':1087 'client.conferences.actions.mute':1140 'client.conferences.actions.play':1196 'client.conferences.actions.record':1235,1275,1346,1395 'client.conferences.actions.send':1443 'client.conferences.actions.speak':1597 'client.conferences.actions.stop':1656 'client.conferences.actions.unhold':1699 'client.conferences.actions.unmute':1749 'client.conferences.actions.update':1799 'client.conferences.create':491 'client.conferences.list':334,559 'client.conferences.retrieve':636,1845 'client.conferences.update':1956 'client.messages.send':81 'client.queues.calls.list':2265 'client.queues.calls.remove':2480 'client.queues.calls.retrieve':2343 'client.queues.calls.update':2426 'client.queues.create':2092 'client.queues.delete':2241 'client.queues.list':2041 'client.queues.retrieve':2141 'client.queues.update':2191 'client.webhooks.unwrap':2555,2618 'cmn':1496 'cmn-cn':1495 'cn':1497 'code':75,129,133,145 'comfort':457 'command':214,270,460,706,895,965,1075,1220,1260,1307,1322,1380,1489,1781,2464,2744,2810,2897,2963,3050,3116,3179,3245,3366,3444,3510,3573,3639,3691,3742,3880,3931,4069,4120,4220,4271,4623,4655 'common':143 'complet':380,542,686 'confer':292,294,295,309,321,372,385,388,401,406,415,416,425,485,490,534,547,550,554,561,583,589,606,626,630,635,678,692,695,712,732,740,831,840,882,890,894,898,917,922,941,969,994,999,1039,1046,1110,1119,1156,1167,1209,1213,1249,1253,1289,1295,1300,1362,1368,1412,1421,1462,1623,1635,1670,1679,1719,1728,1763,1766,1823,1830,1873,1882,1897,1919,1925,1944,1950,1984,1993,2008,2631,2634,2637,2641,2645,2649,2654,2659,2664,2669,2673,2677,2681,2685,3120,3249,3278,3370,3514,3643,3774,3781,3963,3970,4152,4159,4303,4310,4391,4398,4517,4524,4675,4728,4805,4812,4893,4900 'conferenc':4,8 'conference.created':3027 'conference.data':501,645 'conference.ended':3156 'conference.floor.changed':3297 'conference.participant.joined':3408 'conference.participant.left':1056,3537 'conference.participant.playback.ended':3666 'conference.participant.playback.started':3855 'conference.participant.speak.ended':4044 'conference.participant.speak.started':4195 'conference.playback.ended':4346 'conference.playback.started':4472 'conference.recording.saved':1310,1371,4598 'conference.speak.ended':4760 'conference.speak.started':4848 'conferencecr':2630,3010 'conferenceend':2633,3139 'conferencefloorchang':2636,3280 'conferenceparticipantjoin':2640,3391 'conferenceparticipantleft':2644,3520 'conferenceparticipantplaybackend':2648,3649 'conferenceparticipantplaybackstart':2653,3838 'conferenceparticipantspeakend':2658,4027 'conferenceparticipantspeakstart':2663,4178 'conferenceplaybackend':2668,4329 'conferenceplaybackstart':2672,4455 'conferencerecordingsav':2676,4581 'conferencespeakend':2680,4743 'conferencespeakstart':2684,4831 'configur':2598 'connect':94,341,503,647,2291,2373,2758,2911,3064,3193,3331,3458,3587,3752,3941,4130,4281,4369,4495,4689,4783,4871 'control':204,233,263,278,397,441,493,576,620,752,820,851,906,950,1012,1027,1063,1096,1127,1178,1431,1485,1643,1687,1708,1736,1776,1793,1808,1866,1913,1977,2024,2276,2280,2339,2345,2362,2418,2428,2477,2482,2736,2747,2753,2889,2900,2906,3042,3053,3059,3171,3182,3188,3312,3316,3326,3436,3447,3453,3565,3576,3582,3681,3694,3747,3870,3883,3936,4059,4072,4125,4210,4223,4276,4364,4490,4613,4626,4684,4778,4866 'convert':1464 'correl':2780,2800,2933,2953,3086,3106,3215,3235,3480,3500,3609,3629,3712,3732,3901,3921,4090,4110,4241,4261,4645 'creat':297,344,384,386,404,487,506,585,650,1876,1987,2053,2073,2076,2106,2152,2208,2632 'creation':942 'current':2056,2109,2155,2211,2821 'custom':1325 'cy':1499 'cy-gb':1498 'da':1502 'da-dk':1501 'data':2542 'data.event':2705,2858,3024,3153,3405,3534,3663,3852,4041,4192,4343,4469,4595,4757,4845 'data.id':2715,2868,3034,3163,3415,3544,3673,3862,4051,4202,4353,4479,4605,4767,4855 'data.occurred':2722,2875,3422,3551 'data.payload.call':2735,2764,2783,2888,2917,2936,3041,3070,3089,3170,3199,3218,3435,3464,3483,3564,3593,3612,3680,3696,3715,3869,3885,3904,4058,4074,4093,4209,4225,4244,4612,4628 'data.payload.channels':4656 'data.payload.client':2803,2956,3109,3238,3503,3632,3735,3924,4113,4264,4648 'data.payload.conference':3117,3246,3511,3640,3775,3964,4153,4304,4392,4518,4669,4806,4894 'data.payload.connection':2749,2902,3055,3184,3449,3578,3743,3932,4121,4272,4360,4486,4680,4774,4862 'data.payload.creator':3758,3947,4136,4287,4375,4501,4789,4877 'data.payload.current':2818 'data.payload.format':4695 'data.payload.media':3787,3804,3976,3993,4404,4421,4530,4547 'data.payload.occurred':3126,3255,3825,4014,4165,4316,4442,4568,4818,4906 'data.payload.queue':2811,2829,2964,2971 'data.payload.reason':2982,3268 'data.payload.recording':4709,4722,4730 'data.payload.wait':2998 'data.record':2695,2848,3014,3143,3395,3524,3653,3842,4031,4182,4333,4459,4585,4747,4835 'date':1879,1909,1990,2020,2725,2878,3129,3258,3381,3425,3554,3828,4017,4168,4319,4445,4571,4713,4734,4821,4909 'date-tim':1878,1908,1989,2019,2724,2877,3128,3257,3380,3424,3553,3827,4016,4167,4318,4444,4570,4712,4733,4820,4908 'datetim':2729,2882,3133,3262,3385,3429,3558,3832,4021,4172,4323,4449,4575,4717,4738,4825,4913 'de':1505,1506 'de-d':1504 'def':2537 'default':34 'delay':119 'delet':2228,2231,2236,2471 'deliv':2714,2867,3033,3162,3303,3414,3543,3672,3861,4050,4201,4352,4478,4604,4766,4854 'demand':299 'descend':325 'descript':2622,2694,2847,3013,3142,3283,3394,3523,3652,3841,4030,4181,4332,4458,4584,4746,4834 'detail':1826 'dict':2551 'digit':769,782,791,799,805,1428,1452 'dk':1503 'dtmf':726,744,796,810,1410,1415,1444 'dual':1321,4659,4667 'durat':463,1438 'e':123,2562,2568 'e.g':2525 'e.message':130 'e.status':128,132 'e29b':237,282,565,640,871,1022,1091,1144,1200,1240,1280,1351,1400,1601,1660,1703,1753,1803,1851,1962,2349,2432,2486 'e29b-41d4-a716':236,281,564,639,870,1021,1090,1143,1199,1239,1279,1350,1399,1600,1659,1702,1752,1802,1850,1961,2348,2431,2485 'east':482,863,990,1083,1136,1192,1231,1271,1337,1391,1590,1652,1695,1745,1789 'ed25519':2502,2509,2611,2614 'en':1508,1511,1514,1518,1521 'en-au':1507 'en-gb':1510 'en-gb-wl':1513 'en-in':1517 'en-us':1520 'enabl':446,954,1067,1935 'end':347,352,359,509,514,521,588,605,653,658,665,690,693,968,993,1301,1881,1896,1943,1949,1992,2007,2635,2652,2662,2671,2683,3279,4710,4721 'enqueu':193,2294,2376,2625 'enter':451,959,1001,1072,1940 'enum':349,371,376,447,478,511,533,538,602,611,655,677,682,859,955,986,1005,1068,1079,1132,1188,1227,1267,1319,1333,1340,1387,1493,1582,1586,1648,1691,1741,1785,1902,1936,2013,2068,2121,2167,2223,2310,2392,2697,2707,2850,2860,2983,3016,3026,3145,3155,3269,3286,3296,3397,3407,3526,3536,3655,3665,3844,3854,4033,4043,4184,4194,4335,4345,4461,4471,4587,4597,4657,4696,4749,4759,4837,4847 'error':50,59,64,68,72,92,127,137,144,159 'es':1524,1525,1527,1530 'es-':1523 'es-mx':1526 'es-us':1529 'europ':480,861,988,1081,1134,1190,1229,1269,1335,1389,1588,1650,1693,1743,1787 'event':2554,2575,2584,2593,2621,2698,2712,2733,2782,2802,2851,2865,2886,2935,2955,3017,3031,3088,3108,3137,3146,3160,3217,3237,3266,3287,3294,3301,3377,3389,3398,3412,3433,3482,3502,3527,3541,3562,3611,3631,3656,3670,3714,3734,3836,3845,3859,3903,3923,4025,4034,4048,4092,4112,4176,4185,4199,4243,4263,4327,4336,4350,4453,4462,4476,4579,4588,4602,4647,4750,4764,4829,4838,4852,4917 'event.data.event':2585 'exampl':40 'exceed':358,520,664,3275 'except':88,97,120,2559,2560 'exist':391,629,885,2132,2179,2233,2256,2327,2331 'exit':453,591,608,961,971,996,1074,1884,1899,1942,1946,1952,1995,2010 'expect':1054,1308,1369 'expir':302,328,362,418,524,668 'exponenti':106,168 'f':125,2564,2582 'fail':56,2567 'femal':1611 'field':140,161,2690,2692,2845,3011,3140,3281,3392,3521,3650,3839,4028,4179,4330,4456,4582,4744,4832 'file':736,1326,3813,4002,4430,4556,4701 'flag':2411 'flask':2526 'floor':2638 'follow':2591 'forc':2441 'format':142,162,1316,1355,4702 'former':2756,2909,3062,3191,3329,3456,3585,3750,3939,4128,4279,4367,4493,4687,4781,4869 'found':156 'fr':1533,1536,1537 'fr-ca':1532 'fr-fr':1535 'gather':725,743,761 'gb':1500,1512,1515 'get':330,552,631,1837,2037,2135,2258,2333 'handl':51,71,2538 'handler':2524 'hangup':219,2410,2423,2989 'header':116,2514,2550,2557,2558,2612 'hello':87 'hi':1539 'hi-in':1538 'hold':466,470,598,830,833,973,975,979,1893,2004 'host':355,517,661,3272 'hour':313,429 'id':205,215,234,264,271,279,342,365,398,442,461,494,504,527,555,562,577,581,593,621,633,637,648,671,703,707,713,748,753,762,812,821,844,852,868,899,907,946,951,966,1013,1019,1028,1059,1064,1076,1088,1097,1123,1128,1141,1171,1179,1197,1217,1221,1224,1237,1257,1261,1264,1277,1313,1323,1348,1374,1381,1384,1397,1425,1432,1445,1478,1486,1490,1598,1639,1644,1657,1683,1688,1700,1709,1732,1737,1750,1772,1777,1782,1794,1800,1809,1834,1839,1842,1848,1855,1867,1871,1874,1886,1914,1929,1932,1959,1966,1978,1982,1985,1997,2025,2059,2112,2158,2214,2277,2281,2285,2289,2292,2303,2340,2346,2363,2367,2371,2374,2385,2419,2429,2478,2483,2737,2740,2750,2755,2759,2766,2768,2785,2787,2890,2893,2903,2908,2912,2919,2921,2938,2940,3043,3046,3056,3061,3065,3072,3074,3091,3093,3118,3121,3172,3175,3185,3190,3194,3201,3203,3220,3222,3247,3250,3304,3313,3317,3323,3328,3332,3339,3343,3350,3354,3368,3371,3437,3440,3450,3455,3459,3466,3468,3485,3487,3512,3515,3566,3569,3579,3584,3588,3595,3597,3614,3616,3641,3644,3682,3687,3698,3700,3717,3719,3744,3749,3753,3761,3763,3776,3778,3871,3876,3887,3889,3906,3908,3933,3938,3942,3950,3952,3965,3967,4060,4065,4076,4078,4095,4097,4122,4127,4131,4139,4141,4154,4156,4211,4216,4227,4229,4246,4248,4273,4278,4282,4290 'identifi':2699,2717,2852,2870,3018,3036,3147,3165,3288,3306,3399,3417,3528,3546,3657,3675,3846,3864,4035,4053,4186,4204,4337,4355,4463,4481,4589,4607,4751,4769,4839,4857 'iie4pqg':497,824,1031,1712,1812 'import':17,21,77,108,170 'inact':2450 'includ':2505,2603 'init':377,539,683 'initi':46,764 'input':745 'instal':10,13 'insuffici':151 'integ':223,228,465,476,767,772,783,786,792,803,1440,2052,2058,2063,2089,2105,2111,2116,2151,2157,2162,2207,2213,2218,2307,2318,2389,2400,2820,2834,2973,3001 'inter':768 'invalid':147,773,777,2570 'is-i':1541 'iso':2727,2880,3131,3260,3383,3427,3556,3830,4019,4170,4321,4447,4573,4715,4736,4823,4911 'issu':891,2743,2896,3049,3178,3443,3572,3690,3879,4068,4219,4622 'it-it':1544 'item':183 'iter':180,188 'ja':1548 'ja-jp':1547 'join':612,613,880,883,893,914,1903,1904,2014,2015,2643,3125,3254,3519,3648 'jp':1549 'json':2532 'keep':217,2408,2421 'key':26,30,149 'ko':1551 'ko-kr':1550 'kr':1552 'label':1836,1888,1999 'languag':1492 'last':2974 'leav':1037,2990,2995 'left':307,351,356,423,513,518,614,657,662,1905,2016,2628,2647,3271,3273 'leg':393,580,887,910,1043,1870,1981,2284,2366,2765,2918,3071,3200,3338,3342,3465,3594,3697,3886,4075,4226 'limit':61,101,165 'list':173,291,293,323,546,549,835,1114,1674,1723,2028,2030,2251 'longer':2460 'loop':1182 'max':221,224,474,937,2061,2087,2114,2160,2187,2197,2216 'maximum':781,784 'mdi91x4lwfes7igbbeot9m4aigoy08m0wwzfist1yw2axz':496,823,1030,1711,1811 'media':471,778,787,855,980,1184,3812,3818,4001,4007,4429,4435,4555,4561 'method':174,2535 'middl':481,862,989,1082,1135,1191,1230,1270,1336,1390,1589,1651,1694,1744,1788 'milli':766,771,802,1439 'minimum':790 'minut':464 'monitor':1007 'move':1048 'mp3':4698 'mute':595,983,1109,1112,1890,2001 'mx':1528 'my-queu':2194,2268,2355,2438,2492 'name':209,242,367,402,443,472,498,529,673,779,788,856,981,1185,1327,2064,2085,2094,2117,2138,2143,2163,2185,2193,2219,2239,2243,2261,2267,2336,2354,2415,2437,2474,2491,2814,2967,3805,3808,3819,3994,3997,4008,4422,4425,4436,4548,4551,4562 'nb':1554 'nb-no':1553 'network':58,91 'never':449,957,1070,1938 'new':2078,3320,3346,3357 'nl':1557,1558 'nl-nl':1556 'nois':458 'none':1008 'note':171 'number':317,433 'object':361,523,584,667,1594 'occur':2734,2887,3138,3267,3390,3434,3563,3837,4026,4177,4328,4454,4580,4830,4918 'ok':2588 'omit':38 'one':1418 'option':210,266,444,705,754,846,952,1065,1125,1173,1219,1259,1317,1376,1429,1483,1641,1689,1734,1780,1933,2086,2420 'order':326 'os':18 'os.environ.get':27 'page':185,191,333,335,558,569,2040,2042,2264,2271 'page.call':2275 'page.data':336,570,2043,2272 'page.id':339,573,2046 'pagin':172,179 'paramet':939 'park':1052 'pars':2531,2578 'particip':305,320,421,436,475,548,551,560,603,700,741,832,837,932,938,1111,1116,1157,1164,1413,1422,1463,1475,1609,1632,1671,1676,1720,1725,1764,1767,1824,1831,1841,1846,1847,1920,1926,1931,1957,1958,2642,2646,2650,2655,2660,2665,3124,3253,3518,3647,3684,3873,4062,4213,4616 'patch':1927,2412 'path':902 'paus':1211,1212,1236 'payload':1481,1580,1605,2540,2556,2580,2689 'payload.call':3311,3337,3348 'payload.client':3359 'payload.conference':3367 'payload.connection':3322 'payload.occurred':3378 'permiss':152 'pip':12 'pl':1560,1561 'pl-pl':1559 'play':733,1153,1158,1329,1469,1620,1627,3794,3815,3983,4004,4411,4432,4537,4558 'playback':794,2651,2656,2670,2674 'posit':2306,2388,2819,2822,2972,2975 'post':201,260,437,701,746,842,944,1057,1121,1169,1215,1255,1311,1372,1423,1476,1637,1681,1730,1770,2081,2182,2536 'print':90,124,135,244,286,338,500,572,644,720,825,875,1032,1104,1148,1204,1244,1284,1357,1404,1454,1612,1664,1713,1757,1816,1862,1973,2045,2098,2144,2200,2274,2358,2563,2581 'process':2988 'product':74,2519 'progress':379,541,685 'prompt':729 'properti':1922,2176 'pt':1563,1566,1567 'pt-br':1562 'pt-pt':1565 'put':195 'python':5,9,16,76,229,273,332,489,557,634,709,807,865,1016,1085,1138,1194,1233,1273,1344,1393,1441,1595,1654,1697,1747,1797,1843,1954,2039,2090,2139,2189,2240,2263,2341,2425,2479,2520 'queu':2402,2405 'queue':200,208,241,253,259,276,2029,2032,2069,2075,2080,2084,2091,2093,2122,2129,2134,2137,2140,2142,2168,2174,2181,2184,2190,2192,2196,2224,2230,2235,2238,2242,2248,2257,2260,2266,2270,2302,2305,2311,2324,2332,2335,2353,2357,2384,2387,2393,2414,2436,2440,2447,2454,2470,2473,2490,2494,2629,2817,2828,2841,2970,2981,2997,3007 'queue.data':2099,2145,2201 'rate':60,100,164 'raw':2528,2546 'reason':348,510,654,2993,3276 'receiv':2583,2807,2960,3113,3242,3363,3507,3636,3739,3928,4117,4268,4652 'record':369,531,600,675,1210,1214,1223,1250,1254,1263,1290,1293,1296,1306,1363,1366,1383,2066,2119,2165,2221,2308,2390,2678,3284,4661,4663,4679,4708,4720,4729,4741 'regardless':314,430 'region':373,477,535,679,858,985,1078,1131,1187,1226,1266,1332,1386,1585,1647,1690,1740,1784 'remov':249,254,1040,2442,2448,2466 'request':943,2504 'request.get':2541 'request.headers':2552 'requir':139,207,439,750,948,1061,1315,1427,1480,1685,1774,2083,2186 'resourc':154,2704,2721,2857,2874,3023,3040,3152,3169,3293,3310,3404,3421,3533,3550,3662,3679,3851,3868,4040,4057,4191,4208,4342,4359,4468,4485,4594,4611,4756,4773,4844,4861 'respons':230,274,710,808,866,1017,1086,1139,1195,1234,1274,1345,1394,1442,1596,1655,1698,1748,1844,1955 'response.data':245,287,721,826,876,1033,1105,1149,1205,1245,1285,1358,1405,1455,1613,1665,1714,1758,1863,1974 'result':80,186,247,289,723,828,878,1035,1107,1151,1207,1247,1287,1360,1407,1457,1615,1667,1716,1760,1819 'resum':1251,1252,1276 'retri':96,104,114,166 'retriev':624,627,1821,1825,2126,2130,2244,2249,2319,2325 'retry-aft':113 'return':175,246,288,340,502,574,646,722,827,877,1034,1106,1150,1206,1246,1286,1359,1406,1456,1614,1666,1715,1759,1818,1864,1975,2047,2100,2146,2202,2278,2360,2569,2587 'ro':1569,1570 'ro-ro':1568 'role':1004,1769,1779,1814 'ru':1572,1573 'ru-ru':1571 'save':2679 'say':1606 'se':1576 'sec':227,2051,2104,2150,2206,2317,2399,2833,3000 'second':2843,3009 'send':1409,1414 'sent':2595 'session':2288,2370,2784,2794,2937,2947,3090,3100,3219,3229,3349,3353,3484,3494,3613,3623,3716,3726,3760,3770,3905,3915,3949,3959,4094,4104,4138,4148,4245,4255,4289,4299,4377,4387,4503,4513,4629,4639,4791,4801,4879,4889 'set':934,1593 'setup':15 'shown':48 'sign':2499 'signatur':2508,2517,2571,2573,2610,2615 'silenc':1343 'singl':1320,4658,4665 'size':222,2057,2062,2088,2110,2115,2156,2161,2188,2198,2212,2217 'skill' 'skill-telnyx-voice-conferencing-python' 'soft':604,992,1895,1948,2006 'source-team-telnyx' 'speak':1459,2661,2666,2682,2686 'speaker':3321,3347,3358,3375 'specif':739,1829 'speech':1467 'spend':2838 'spent':3004 'spoken':3785,3974,4163,4314,4402,4528,4816,4904 'ssml':1584 'start':484,998,1291,1292,1347,2657,2667,2675,2687,3772,3803,3824,3961,3992,4013,4150,4301,4389,4420,4441,4515,4546,4567,4731,4742,4803,4891 'state':212,268,455,759,963,1053,1378,1436,2804,2806,2957,2959,3110,3112,3239,3241,3360,3362,3504,3506,3633,3635,3736,3738,3925,3927,4114,4116,4265,4267,4649,4651 'status':375,537,610,681,1901,2012 'stop':793,1298,1305,1364,1365,1396,1617,1624 'store':4705 'string':213,216,248,269,272,290,343,346,364,366,368,374,383,456,462,469,473,505,508,526,528,530,536,545,578,582,587,594,617,623,649,652,670,672,674,680,689,708,724,757,760,763,776,780,789,800,806,829,849,854,857,879,964,967,978,982,1015,1036,1077,1108,1130,1152,1176,1181,1183,1186,1208,1222,1225,1248,1262,1265,1288,1324,1328,1361,1379,1382,1408,1434,1437,1458,1488,1491,1616,1646,1668,1717,1739,1761,1783,1796,1820,1868,1872,1875,1887,1889,1916,1979,1983,1986,1998,2000,2027,2055,2060,2065,2072,2108,2113,2118,2125,2154,2159,2164,2171,2210,2215,2220,2227,2282,2286,2290,2293,2296,2298,2304,2314,2364,2368,2372,2375,2378,2380,2386,2396,2549,2738,2751,2767,2786,2805,2812,2891,2904,2920,2939,2958,2965,3044,3057,3073,3092,3111,3119,3173,3186,3202,3221,3240,3248,3314,3324,3340,3351,3361,3369,3438,3451,3467,3486,3505,3513,3567,3580,3596,3615,3634,3642,3683,3699,3718,3737,3745,3762,3777,3789,3806,3872,3888,3907,3926,3934,3951,3966,3978,3995,4061,4077,4096,4115,4123,4140,4155,4212,4228,4247,4266,4274,4291,4306,4362,4379,4394,4406,4423,4488,4505,4520,4532,4549,4615,4631,4650,4682,4776,4793,4808,4864,4881,4896 'supervisor':1003,1768,1778,1813 'support':243,2097 'sv':1575 'sv-se':1574 'telnyx':2,6,14,20,22,24,28,78,2498,2507,2512,2605,2609,2757,2910,3063,3192,3330,3457,3586,3751,3940,4129,4280,4368,4494,4688,4782,4870 'telnyx-signature-ed25519':2506,2608 'telnyx-timestamp':2511,2604 'telnyx-voice-conferencing-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.ratelimiterror':98 'termin':697,798 'text':86,1460,1465,1583,2544,3783,3972,4161,4312,4400,4526,4814,4902 'tier':2095 'time':109,226,357,519,663,1880,1910,1991,2021,2050,2103,2149,2205,2316,2398,2726,2832,2836,2879,2999,3002,3130,3259,3274,3382,3426,3555,3829,4018,4169,4320,4446,4572,4714,4735,4822,4910 'time.sleep':110 'timeout':765,770,801,2991 'timestamp':2513,2606 'tone':1416 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'tr':1578,1579 'tr-tr':1577 'tri':79,785,2553 'trim':1339,1342 'trim-sil':1341 'true':2545 'type':370,532,601,676,1581,2067,2120,2166,2222,2309,2391,2586,2693,2696,2701,2706,2710,2719,2846,2849,2854,2859,2863,2872,3012,3015,3020,3025,3029,3038,3141,3144,3149,3154,3158,3167,3282,3285,3290,3295,3299,3308,3393,3396,3401,3406,3410,3419,3522,3525,3530,3535,3539,3548,3651,3654,3659,3664,3668,3677,3840,3843,3848,3853,3857,3866,4029,4032,4037,4042,4046,4055,4180,4183,4188,4193,4197,4206,4331,4334,4339,4344,4348,4357,4457,4460,4465,4470,4474,4483,4583,4586,4591,4596,4600,4609,4745,4748,4753,4758,4762,4771,4833,4836,4841,4846,4850,4859 'unhold':1669,1672 'uniqu':2771,2790,2924,2943,3077,3096,3206,3225,3471,3490,3600,3619,3703,3722,3766,3892,3911,3955,4081,4100,4144,4232,4251,4295,4383,4509,4635,4797,4885 'unmut':1718,1721 'updat':381,543,615,687,1762,1765,1906,1917,1921,2017,2070,2123,2169,2172,2175,2225,2401,2404 'upon':403 'url':468,756,775,848,977,1175,2600,3788,3792,3798,3977,3981,3987,4405,4409,4415,4531,4535,4541 'us':483,864,991,1084,1137,1193,1232,1272,1338,1392,1522,1531,1591,1653,1696,1746,1790 'use':181,394,727,2462,2527,2617,2741,2760,2778,2798,2894,2913,2931,2951,3047,3066,3084,3104,3176,3195,3213,3233,3333,3441,3460,3478,3498,3570,3589,3607,3627,3688,3710,3730,3754,3801,3822,3877,3899,3919,3943,3990,4011,4066,4088,4108,4132,4217,4239,4259,4283,4371,4418,4439,4497,4544,4565,4620,4643,4691,4703,4785,4873 'user':2036 'uuid':1385,2716,2869,3035,3164,3305,3416,3545,3674,3863,4052,4203,4354,4480,4606,4671,4724,4768,4856 'v3':495,822,1029,1710,1810 'valid':63,136,158,804,2574 'verif':2497,2566,2616 'verifi':2516,2620 'via':353,515,659,1303,2745,2898,3051,3180,3445,3574,3692,3881,4070,4221,4624 'voic':3,7,1482,1592,1610 'wait':102,225,2049,2102,2148,2204,2315,2397,2831 'wav':1356,4697 'webhook':1055,1309,1370,2495,2496,2500,2523,2539,2565,2579,2592,2599,2602,2688,2781,2801,2934,2954,3087,3107,3216,3236,3481,3501,3610,3630,3713,3733,3902,3922,4091,4111,4242,4262,4646 'whether':4660 'whisper':618,1009,1010,1791,1815,1911,2022 'wish':912 'wls':1516","prices":[{"id":"8405ab5b-0332-4ad9-9520-9607bf11b4ad","listingId":"d381ea7c-9086-4d67-97f3-577ec7640b6b","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:21.325Z"}],"sources":[{"listingId":"d381ea7c-9086-4d67-97f3-577ec7640b6b","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-conferencing-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-conferencing-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:21.325Z","lastSeenAt":"2026-04-22T00:54:51.810Z"}],"details":{"listingId":"d381ea7c-9086-4d67-97f3-577ec7640b6b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-conferencing-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":"b3572bcc5a682798abf721ef7ab3411875a1a897","skill_md_path":"skills/telnyx-voice-conferencing-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-conferencing-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-conferencing-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-conferencing-python"},"updatedAt":"2026-04-22T00:54:51.810Z"}}