{"id":"e607deb8-0c4c-4755-a240-0cb9218a8daa","shortId":"GFkqde","kind":"skill","title":"telnyx-sip-integrations-javascript","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Sip Integrations - JavaScript\n\n## Installation\n\n```bash\nnpm install telnyx\n```\n\n## Setup\n\n```javascript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```javascript\ntry {\n  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });\n} catch (err) {\n  if (err instanceof Telnyx.APIConnectionError) {\n    console.error('Network error — check connectivity and retry');\n  } else if (err instanceof Telnyx.RateLimitError) {\n    // 429: rate limited — wait and retry with exponential backoff\n    const retryAfter = err.headers?.['retry-after'] || 1;\n    await new Promise(r => setTimeout(r, retryAfter * 1000));\n  } else if (err instanceof Telnyx.APIError) {\n    console.error(`API error ${err.status}: ${err.message}`);\n    if (err.status === 422) {\n      console.error('Validation error — check required fields and formats');\n    }\n  }\n}\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Pagination:** List methods return an auto-paginating iterator. Use `for await (const item of result) { ... }` to iterate through all pages automatically.\n\n## Retrieve a stored credential\n\nReturns the information about custom storage credentials.\n\n`GET /custom_storage_credentials/{connection_id}`\n\n```javascript\nconst customStorageCredential = await client.customStorageCredentials.retrieve('connection_id');\n\nconsole.log(customStorageCredential.connection_id);\n```\n\nReturns: `backend` (enum: gcs, s3, azure), `configuration` (object)\n\n## Create a custom storage credential\n\nCreates a custom storage credentials configuration.\n\n`POST /custom_storage_credentials/{connection_id}`\n\n```javascript\nconst customStorageCredential = await client.customStorageCredentials.create('connection_id', {\n  backend: 'gcs',\n  configuration: { backend: 'gcs' },\n});\n\nconsole.log(customStorageCredential.connection_id);\n```\n\nReturns: `backend` (enum: gcs, s3, azure), `configuration` (object)\n\n## Update a stored credential\n\nUpdates a stored custom credentials configuration.\n\n`PUT /custom_storage_credentials/{connection_id}`\n\n```javascript\nconst customStorageCredential = await client.customStorageCredentials.update('connection_id', {\n  backend: 'gcs',\n  configuration: { backend: 'gcs' },\n});\n\nconsole.log(customStorageCredential.connection_id);\n```\n\nReturns: `backend` (enum: gcs, s3, azure), `configuration` (object)\n\n## Delete a stored credential\n\nDeletes a stored custom credentials configuration.\n\n`DELETE /custom_storage_credentials/{connection_id}`\n\n```javascript\nawait client.customStorageCredentials.delete('connection_id');\n```\n\n## Retrieve stored Dialogflow Connection\n\nReturn details of the Dialogflow connection associated with the given CallControl connection.\n\n`GET /dialogflow_connections/{connection_id}`\n\n```javascript\nconst dialogflowConnection = await client.dialogflowConnections.retrieve('connection_id');\n\nconsole.log(dialogflowConnection.data);\n```\n\nReturns: `connection_id` (string), `conversation_profile_id` (string), `environment` (string), `record_type` (string), `service_account` (string)\n\n## Create a Dialogflow Connection\n\nSave Dialogflow Credentiails to Telnyx, so it can be used with other Telnyx services.\n\n`POST /dialogflow_connections/{connection_id}`\n\n```javascript\nconst dialogflowConnection = await client.dialogflowConnections.create('connection_id', {\n  service_account: {\n    type: 'bar',\n    project_id: 'bar',\n    private_key_id: 'bar',\n    private_key: 'bar',\n    client_email: 'bar',\n    client_id: 'bar',\n    auth_uri: 'bar',\n    token_uri: 'bar',\n    auth_provider_x509_cert_url: 'bar',\n    client_x509_cert_url: 'bar',\n  },\n});\n\nconsole.log(dialogflowConnection.data);\n```\n\nReturns: `connection_id` (string), `conversation_profile_id` (string), `environment` (string), `record_type` (string), `service_account` (string)\n\n## Update stored Dialogflow Connection\n\nUpdates a stored Dialogflow Connection.\n\n`PUT /dialogflow_connections/{connection_id}`\n\n```javascript\nconst dialogflowConnection = await client.dialogflowConnections.update('connection_id', {\n  service_account: {\n    type: 'bar',\n    project_id: 'bar',\n    private_key_id: 'bar',\n    private_key: 'bar',\n    client_email: 'bar',\n    client_id: 'bar',\n    auth_uri: 'bar',\n    token_uri: 'bar',\n    auth_provider_x509_cert_url: 'bar',\n    client_x509_cert_url: 'bar',\n  },\n});\n\nconsole.log(dialogflowConnection.data);\n```\n\nReturns: `connection_id` (string), `conversation_profile_id` (string), `environment` (string), `record_type` (string), `service_account` (string)\n\n## Delete stored Dialogflow Connection\n\nDeletes a stored Dialogflow Connection.\n\n`DELETE /dialogflow_connections/{connection_id}`\n\n```javascript\nawait client.dialogflowConnections.delete('connection_id');\n```\n\n## List all External Connections\n\nThis endpoint returns a list of your External Connections inside the 'data' attribute of the response. External Connections are used by Telnyx customers to seamless configure SIP trunking integrations with Telnyx Partners, through External Voice Integrations in Mission Control Portal.\n\n`GET /external_connections`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const externalConnection of client.externalConnections.list()) {\n  console.log(externalConnection.id);\n}\n```\n\nReturns: `active` (boolean), `created_at` (string), `credential_active` (boolean), `external_sip_connection` (enum: zoom, operator_connect), `id` (string), `inbound` (object), `outbound` (object), `record_type` (string), `tags` (array[string]), `updated_at` (string), `webhook_api_version` (enum: 1, 2), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n## Creates an External Connection\n\nCreates a new External Connection based on the parameters sent in the request. The external_sip_connection and outbound voice profile id are required. Once created, you can assign phone numbers to your application using the `/phone_numbers` endpoint.\n\n`POST /external_connections` — Required: `external_sip_connection`, `outbound`\n\nOptional: `active` (boolean), `inbound` (object), `tags` (array[string]), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n```javascript\nconst externalConnection = await client.externalConnections.create({\n  external_sip_connection: 'zoom',\n  outbound: {},\n});\n\nconsole.log(externalConnection.data);\n```\n\nReturns: `active` (boolean), `created_at` (string), `credential_active` (boolean), `external_sip_connection` (enum: zoom, operator_connect), `id` (string), `inbound` (object), `outbound` (object), `record_type` (string), `tags` (array[string]), `updated_at` (string), `webhook_api_version` (enum: 1, 2), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n## List all log messages\n\nRetrieve a list of log messages for all external connections associated with your account.\n\n`GET /external_connections/log_messages`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const logMessageListResponse of client.externalConnections.logMessages.list()) {\n  console.log(logMessageListResponse.code);\n}\n```\n\nReturns: `log_messages` (array[object]), `meta` (object)\n\n## Retrieve a log message\n\nRetrieve a log message for an external connection associated with your account.\n\n`GET /external_connections/log_messages/{id}`\n\n```javascript\nconst logMessage = await client.externalConnections.logMessages.retrieve('1293384261075731499');\n\nconsole.log(logMessage.log_messages);\n```\n\nReturns: `log_messages` (array[object])\n\n## Dismiss a log message\n\nDismiss a log message for an external connection associated with your account.\n\n`DELETE /external_connections/log_messages/{id}`\n\n```javascript\nconst response = await client.externalConnections.logMessages.dismiss('1293384261075731499');\n\nconsole.log(response.success);\n```\n\nReturns: `success` (boolean)\n\n## Retrieve an External Connection\n\nReturn the details of an existing External Connection inside the 'data' attribute of the response.\n\n`GET /external_connections/{id}`\n\n```javascript\nconst externalConnection = await client.externalConnections.retrieve('1293384261075731499');\n\nconsole.log(externalConnection.data);\n```\n\nReturns: `active` (boolean), `created_at` (string), `credential_active` (boolean), `external_sip_connection` (enum: zoom, operator_connect), `id` (string), `inbound` (object), `outbound` (object), `record_type` (string), `tags` (array[string]), `updated_at` (string), `webhook_api_version` (enum: 1, 2), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n## Update an External Connection\n\nUpdates settings of an existing External Connection based on the parameters of the request.\n\n`PATCH /external_connections/{id}` — Required: `outbound`\n\nOptional: `active` (boolean), `inbound` (object), `tags` (array[string]), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n```javascript\nconst externalConnection = await client.externalConnections.update('1293384261075731499', {\n  outbound: { outbound_voice_profile_id: '1911630617284445511' },\n});\n\nconsole.log(externalConnection.data);\n```\n\nReturns: `active` (boolean), `created_at` (string), `credential_active` (boolean), `external_sip_connection` (enum: zoom, operator_connect), `id` (string), `inbound` (object), `outbound` (object), `record_type` (string), `tags` (array[string]), `updated_at` (string), `webhook_api_version` (enum: 1, 2), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n## Deletes an External Connection\n\nPermanently deletes an External Connection. Deletion may be prevented if the application is in use by phone numbers, is active, or if it is an Operator Connect connection. To remove an Operator Connect integration please contact Telnyx support.\n\n`DELETE /external_connections/{id}`\n\n```javascript\nconst externalConnection = await client.externalConnections.delete('1293384261075731499');\n\nconsole.log(externalConnection.data);\n```\n\nReturns: `active` (boolean), `created_at` (string), `credential_active` (boolean), `external_sip_connection` (enum: zoom, operator_connect), `id` (string), `inbound` (object), `outbound` (object), `record_type` (string), `tags` (array[string]), `updated_at` (string), `webhook_api_version` (enum: 1, 2), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer | null)\n\n## List all civic addresses and locations\n\nReturns the civic addresses and locations from Microsoft Teams.\n\n`GET /external_connections/{id}/civic_addresses`\n\n```javascript\nconst civicAddresses = await client.externalConnections.civicAddresses.list('1293384261075731499');\n\nconsole.log(civicAddresses.data);\n```\n\nReturns: `city_or_town` (string), `city_or_town_alias` (string), `company_name` (string), `country` (string), `country_or_district` (string), `default_location_id` (uuid), `description` (string), `house_number` (string), `house_number_suffix` (string), `id` (uuid), `locations` (array[object]), `postal_or_zip_code` (string), `record_type` (string), `state_or_province` (string), `street_name` (string), `street_suffix` (string)\n\n## Retrieve a Civic Address\n\nReturn the details of an existing Civic Address with its Locations inside the 'data' attribute of the response.\n\n`GET /external_connections/{id}/civic_addresses/{address_id}`\n\n```javascript\nconst civicAddress = await client.externalConnections.civicAddresses.retrieve(\n  '318fb664-d341-44d2-8405-e6bfb9ced6d9',\n  { id: '1293384261075731499' },\n);\n\nconsole.log(civicAddress.data);\n```\n\nReturns: `city_or_town` (string), `city_or_town_alias` (string), `company_name` (string), `country` (string), `country_or_district` (string), `default_location_id` (uuid), `description` (string), `house_number` (string), `house_number_suffix` (string), `id` (uuid), `locations` (array[object]), `postal_or_zip_code` (string), `record_type` (string), `state_or_province` (string), `street_name` (string), `street_suffix` (string)\n\n## Update a location's static emergency address\n\n`PATCH /external_connections/{id}/locations/{location_id}` — Required: `static_emergency_address_id`\n\n```javascript\nconst response = await client.externalConnections.updateLocation(\n  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n  {\n    id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n    static_emergency_address_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n  },\n);\n\nconsole.log(response.data);\n```\n\nReturns: `accepted_address_suggestions` (boolean), `location_id` (uuid), `static_emergency_address_id` (uuid)\n\n## List all phone numbers\n\nReturns a list of all active phone numbers associated with the given external connection.\n\n`GET /external_connections/{id}/phone_numbers`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const externalConnectionPhoneNumber of client.externalConnections.phoneNumbers.list(\n  '1293384261075731499',\n)) {\n  console.log(externalConnectionPhoneNumber.civic_address_id);\n}\n```\n\nReturns: `acquired_capabilities` (array[string]), `civic_address_id` (uuid), `displayed_country_code` (string), `location_id` (uuid), `number_id` (string), `telephone_number` (string), `ticket_id` (uuid)\n\n## Retrieve a phone number\n\nReturn the details of a phone number associated with the given external connection.\n\n`GET /external_connections/{id}/phone_numbers/{phone_number_id}`\n\n```javascript\nconst phoneNumber = await client.externalConnections.phoneNumbers.retrieve('1234567889', {\n  id: '1293384261075731499',\n});\n\nconsole.log(phoneNumber.data);\n```\n\nReturns: `acquired_capabilities` (array[string]), `civic_address_id` (uuid), `displayed_country_code` (string), `location_id` (uuid), `number_id` (string), `telephone_number` (string), `ticket_id` (uuid)\n\n## Update a phone number\n\nAsynchronously update settings of the phone number associated with the given external connection.\n\n`PATCH /external_connections/{id}/phone_numbers/{phone_number_id}`\n\nOptional: `location_id` (uuid)\n\n```javascript\nconst phoneNumber = await client.externalConnections.phoneNumbers.update('1234567889', {\n  id: '1293384261075731499',\n});\n\nconsole.log(phoneNumber.data);\n```\n\nReturns: `acquired_capabilities` (array[string]), `civic_address_id` (uuid), `displayed_country_code` (string), `location_id` (uuid), `number_id` (string), `telephone_number` (string), `ticket_id` (uuid)\n\n## List all Releases\n\nReturns a list of your Releases for the given external connection. These are automatically created when you change the `connection_id` of a phone number that is currently on Microsoft Teams.\n\n`GET /external_connections/{id}/releases`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const releaseListResponse of client.externalConnections.releases.list(\n  '1293384261075731499',\n)) {\n  console.log(releaseListResponse.tenant_id);\n}\n```\n\nReturns: `created_at` (string), `error_message` (string), `status` (enum: pending_upload, pending, in_progress, complete, failed, expired, unknown), `telephone_numbers` (array[object]), `tenant_id` (uuid), `ticket_id` (uuid)\n\n## Retrieve a Release request\n\nReturn the details of a Release request and its phone numbers.\n\n`GET /external_connections/{id}/releases/{release_id}`\n\n```javascript\nconst release = await client.externalConnections.releases.retrieve(\n  '7b6a6449-b055-45a6-81f6-f6f0dffa4cc6',\n  { id: '1293384261075731499' },\n);\n\nconsole.log(release.data);\n```\n\nReturns: `created_at` (string), `error_message` (string), `status` (enum: pending_upload, pending, in_progress, complete, failed, expired, unknown), `telephone_numbers` (array[object]), `tenant_id` (uuid), `ticket_id` (uuid)\n\n## List all Upload requests\n\nReturns a list of your Upload requests for the given external connection.\n\n`GET /external_connections/{id}/uploads`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const upload of client.externalConnections.uploads.list('1293384261075731499')) {\n  console.log(upload.location_id);\n}\n```\n\nReturns: `available_usages` (array[string]), `error_code` (string), `error_message` (string), `location_id` (uuid), `status` (enum: pending_upload, pending, in_progress, partial_success, success, error), `tenant_id` (uuid), `ticket_id` (uuid), `tn_upload_entries` (array[object])\n\n## Creates an Upload request\n\nCreates a new Upload request to Microsoft teams with the included phone numbers. Only one of civic_address_id or location_id must be provided, not both. The maximum allowed phone numbers for the numbers_ids array is 1000.\n\n`POST /external_connections/{id}/uploads` — Required: `number_ids`\n\nOptional: `additional_usages` (array[string]), `civic_address_id` (uuid), `location_id` (uuid), `usage` (enum: calling_user_assignment, first_party_app_assignment)\n\n```javascript\nconst upload = await client.externalConnections.uploads.create('1293384261075731499', {\n  number_ids: [\n    '3920457616934164700',\n    '3920457616934164701',\n    '3920457616934164702',\n    '3920457616934164703',\n  ],\n});\n\nconsole.log(upload.ticket_id);\n```\n\nReturns: `success` (boolean), `ticket_id` (uuid)\n\n## Refresh the status of all Upload requests\n\nForces a recheck of the status of all pending Upload requests for the given external connection in the background.\n\n`POST /external_connections/{id}/uploads/refresh`\n\n```javascript\nconst response = await client.externalConnections.uploads.refreshStatus('1293384261075731499');\n\nconsole.log(response.success);\n```\n\nReturns: `success` (boolean)\n\n## Get the count of pending upload requests\n\nReturns the count of all pending upload requests for the given external connection.\n\n`GET /external_connections/{id}/uploads/status`\n\n```javascript\nconst response = await client.externalConnections.uploads.pendingCount('1293384261075731499');\n\nconsole.log(response.data);\n```\n\nReturns: `pending_numbers_count` (integer), `pending_orders_count` (integer)\n\n## Retrieve an Upload request\n\nReturn the details of an Upload request and its phone numbers.\n\n`GET /external_connections/{id}/uploads/{ticket_id}`\n\n```javascript\nconst upload = await client.externalConnections.uploads.retrieve(\n  '7b6a6449-b055-45a6-81f6-f6f0dffa4cc6',\n  { id: '1293384261075731499' },\n);\n\nconsole.log(upload.data);\n```\n\nReturns: `available_usages` (array[string]), `error_code` (string), `error_message` (string), `location_id` (uuid), `status` (enum: pending_upload, pending, in_progress, partial_success, success, error), `tenant_id` (uuid), `ticket_id` (uuid), `tn_upload_entries` (array[object])\n\n## Retry an Upload request\n\nIf there were any errors during the upload process, this endpoint will retry the upload request. In some cases this will reattempt the existing upload request, in other cases it may create a new upload request. Please check the ticket_id in the response to determine if a new upload request was created.\n\n`POST /external_connections/{id}/uploads/{ticket_id}/retry`\n\n```javascript\nconst response = await client.externalConnections.uploads.retry(\n  '7b6a6449-b055-45a6-81f6-f6f0dffa4cc6',\n  { id: '1293384261075731499' },\n);\n\nconsole.log(response.data);\n```\n\nReturns: `available_usages` (array[string]), `error_code` (string), `error_message` (string), `location_id` (uuid), `status` (enum: pending_upload, pending, in_progress, partial_success, success, error), `tenant_id` (uuid), `ticket_id` (uuid), `tn_upload_entries` (array[object])\n\n## List uploaded media\n\nReturns a list of stored media files.\n\n`GET /media`\n\n```javascript\nconst media = await client.media.list();\n\nconsole.log(media.data);\n```\n\nReturns: `content_type` (string), `created_at` (string), `expires_at` (string), `media_name` (string), `updated_at` (string)\n\n## Upload media\n\nUpload media file to Telnyx so it can be used with other Telnyx services\n\n`POST /media` — Required: `media_url`\n\nOptional: `media_name` (string), `ttl_secs` (integer)\n\n```javascript\nconst response = await client.media.upload({ media_url: 'http://www.example.com/audio.mp3' });\n\nconsole.log(response.data);\n```\n\nReturns: `content_type` (string), `created_at` (string), `expires_at` (string), `media_name` (string), `updated_at` (string)\n\n## Retrieve stored media\n\nReturns the information about a stored media file.\n\n`GET /media/{media_name}`\n\n```javascript\nconst media = await client.media.retrieve('media_name');\n\nconsole.log(media.data);\n```\n\nReturns: `content_type` (string), `created_at` (string), `expires_at` (string), `media_name` (string), `updated_at` (string)\n\n## Update stored media\n\nUpdates a stored media file.\n\n`PUT /media/{media_name}`\n\nOptional: `media_url` (string), `ttl_secs` (integer)\n\n```javascript\nconst media = await client.media.update('media_name');\n\nconsole.log(media.data);\n```\n\nReturns: `content_type` (string), `created_at` (string), `expires_at` (string), `media_name` (string), `updated_at` (string)\n\n## Deletes stored media\n\nDeletes a stored media file.\n\n`DELETE /media/{media_name}`\n\n```javascript\nawait client.media.delete('media_name');\n```\n\n## Download stored media\n\nDownloads a stored media file.\n\n`GET /media/{media_name}/download`\n\n```javascript\nconst response = await client.media.download('media_name');\n\nconsole.log(response);\n\nconst content = await response.blob();\nconsole.log(content);\n```\n\n## Refresh Operator Connect integration\n\nThis endpoint will make an asynchronous request to refresh the Operator Connect integration with Microsoft Teams for the current user. This will create new external connections on the user's account if needed, and/or report the integration results as [log messages](https://developers.telnyx.com/api-reference/external-connections/list-all-log-messages#list-all-log-messages).\n\n`POST /operator_connect/actions/refresh`\n\n```javascript\nconst response = await client.operatorConnect.actions.refresh();\n\nconsole.log(response.message);\n```\n\nReturns: `message` (string), `success` (boolean)\n\n## List all recording transcriptions\n\nReturns a list of your recording transcriptions.\n\n`GET /recording_transcriptions`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const recordingTranscription of client.recordingTranscriptions.list()) {\n  console.log(recordingTranscription.id);\n}\n```\n\nReturns: `created_at` (string), `duration_millis` (int32), `id` (string), `record_type` (enum: recording_transcription), `recording_id` (string), `status` (enum: in-progress, completed), `transcription_text` (string), `updated_at` (string)\n\n## Retrieve a recording transcription\n\nRetrieves the details of an existing recording transcription.\n\n`GET /recording_transcriptions/{recording_transcription_id}`\n\n```javascript\nconst recordingTranscription = await client.recordingTranscriptions.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(recordingTranscription.data);\n```\n\nReturns: `created_at` (string), `duration_millis` (int32), `id` (string), `record_type` (enum: recording_transcription), `recording_id` (string), `status` (enum: in-progress, completed), `transcription_text` (string), `updated_at` (string)\n\n## Delete a recording transcription\n\nPermanently deletes a recording transcription.\n\n`DELETE /recording_transcriptions/{recording_transcription_id}`\n\n```javascript\nconst recordingTranscription = await client.recordingTranscriptions.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(recordingTranscription.data);\n```\n\nReturns: `created_at` (string), `duration_millis` (int32), `id` (string), `record_type` (enum: recording_transcription), `recording_id` (string), `status` (enum: in-progress, completed), `transcription_text` (string), `updated_at` (string)\n\n## List all call recordings\n\nReturns a list of your call recordings.\n\n`GET /recordings`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const recordingResponseData of client.recordings.list()) {\n  console.log(recordingResponseData.id);\n}\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `call_session_id` (string), `channels` (enum: single, dual), `conference_id` (string), `connection_id` (string), `created_at` (string), `download_urls` (object), `duration_millis` (int32), `from` (string), `id` (string), `initiated_by` (string), `record_type` (enum: recording), `recording_ended_at` (string), `recording_started_at` (string), `source` (enum: conference, call), `status` (enum: completed), `to` (string), `updated_at` (string)\n\n## Delete a list of call recordings\n\nPermanently deletes a list of call recordings.\n\n`POST /recordings/actions/delete`\n\n```javascript\nconst action = await client.recordings.actions.delete({\n  ids: ['428c31b6-7af4-4bcb-b7f5-5013ef9657c1', '428c31b6-7af4-4bcb-b7f5-5013ef9657c2'],\n});\n\nconsole.log(action.status);\n```\n\nReturns: `status` (enum: ok)\n\n## Retrieve a call recording\n\nRetrieves the details of an existing call recording.\n\n`GET /recordings/{recording_id}`\n\n```javascript\nconst recording = await client.recordings.retrieve('recording_id');\n\nconsole.log(recording.data);\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `call_session_id` (string), `channels` (enum: single, dual), `conference_id` (string), `connection_id` (string), `created_at` (string), `download_urls` (object), `duration_millis` (int32), `from` (string), `id` (string), `initiated_by` (string), `record_type` (enum: recording), `recording_ended_at` (string), `recording_started_at` (string), `source` (enum: conference, call), `status` (enum: completed), `to` (string), `updated_at` (string)\n\n## Delete a call recording\n\nPermanently deletes a call recording.\n\n`DELETE /recordings/{recording_id}`\n\n```javascript\nconst recording = await client.recordings.delete('recording_id');\n\nconsole.log(recording.data);\n```\n\nReturns: `call_control_id` (string), `call_leg_id` (string), `call_session_id` (string), `channels` (enum: single, dual), `conference_id` (string), `connection_id` (string), `created_at` (string), `download_urls` (object), `duration_millis` (int32), `from` (string), `id` (string), `initiated_by` (string), `record_type` (enum: recording), `recording_ended_at` (string), `recording_started_at` (string), `source` (enum: conference, call), `status` (enum: completed), `to` (string), `updated_at` (string)\n\n## Create a SIPREC connector\n\nCreates a new SIPREC connector configuration.\n\n`POST /siprec_connectors`\n\n```javascript\nconst siprecConnector = await client.siprecConnectors.create({\n  host: 'siprec.telnyx.com',\n  name: 'my-siprec-connector',\n  port: 5060,\n});\n\nconsole.log(siprecConnector.data);\n```\n\nReturns: `app_subdomain` (string), `created_at` (string), `host` (string), `name` (string), `port` (integer), `record_type` (string), `updated_at` (string)\n\n## Retrieve a SIPREC connector\n\nReturns details of a stored SIPREC connector.\n\n`GET /siprec_connectors/{connector_name}`\n\n```javascript\nconst siprecConnector = await client.siprecConnectors.retrieve('connector_name');\n\nconsole.log(siprecConnector.data);\n```\n\nReturns: `app_subdomain` (string), `created_at` (string), `host` (string), `name` (string), `port` (integer), `record_type` (string), `updated_at` (string)\n\n## Update a SIPREC connector\n\nUpdates a stored SIPREC connector configuration.\n\n`PUT /siprec_connectors/{connector_name}`\n\n```javascript\nconst siprecConnector = await client.siprecConnectors.update('connector_name', {\n  host: 'siprec.telnyx.com',\n  name: 'my-siprec-connector',\n  port: 5060,\n});\n\nconsole.log(siprecConnector.data);\n```\n\nReturns: `app_subdomain` (string), `created_at` (string), `host` (string), `name` (string), `port` (integer), `record_type` (string), `updated_at` (string)\n\n## Delete a SIPREC connector\n\nDeletes a stored SIPREC connector.\n\n`DELETE /siprec_connectors/{connector_name}`\n\n```javascript\nawait client.siprecConnectors.delete('connector_name');\n```","tags":["telnyx","sip","integrations","javascript","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-sip-integrations-javascript","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-sip-integrations-javascript","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (28,330 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-22T06:54:48.032Z","embedding":null,"createdAt":"2026-04-18T22:07:46.562Z","updatedAt":"2026-04-22T06:54:48.032Z","lastSeenAt":"2026-04-22T06:54:48.032Z","tsv":"'+13125550001':82 '+13125550002':84 '-47':2568,2625 '-8948':2567,2624 '/api-reference/external-connections/list-all-log-messages#list-all-log-messages).':2472 '/audio.mp3''':2277 '/civic_addresses':1214,1303 '/custom_storage_credentials':213,246,283,320 '/dialogflow_connections':345,392,467,542 '/download':2409 '/external_connections':595,705,921,1001,1135,1212,1301,1384,1456,1520,1579,1659,1723,1788,1888,1963,1998,2034,2148 '/external_connections/log_messages':815,855,888 '/locations':1386 '/media':2216,2257,2308,2345,2389,2406 '/operator_connect/actions/refresh':2474 '/phone_numbers':702,1458,1522,1581 '/recording_transcriptions':2499,2557,2614 '/recordings':2673,2804,2889 '/recordings/actions/delete':2766 '/releases':1661,1725 '/retry':2153 '/siprec_connectors':2975,3023,3065,3115 '/uploads':1790,1890,2036,2150 '/uploads/refresh':1965 '/uploads/status':2000 '1':120,646,780,966,1076,1180 '1000':128,1886 '1234567889':1531,1594 '1293384261075731499':862,895,928,1032,1142,1220,1318,1472,1533,1596,1675,1740,1804,1920,1971,2006,2051,2166 '182bd5e5':1400,1407,1417 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':1399,1406,1416 '1911630617284445511':1038 '2':647,781,967,1077,1181 '318fb664':1312 '318fb664-d341-44d2':1311 '3920457616934164700':1923 '3920457616934164701':1924 '3920457616934164702':1925 '3920457616934164703':1926 '401':68,153 '403':157 '404':160 '422':64,141,164 '428c31b6':2774,2780 '428c31b6-7af4-4bcb-b7f5-5013ef9657c1':2773 '428c31b6-7af4-4bcb-b7f5-5013ef9657c2':2779 '429':61,105,170 '44d2':1314 '45a6':1736,2047,2162 '4bcb':2776,2782 '4fe4':1402,1409,1419 '5013ef9657c1':2778 '5013ef9657c2':2784 '5060':2989,3083 '6a09cdc3':2566,2623 '6e1a':1401,1408,1418 '74ac943d6c58':2572,2629 '7af4':2775,2781 '7b6a6449':1734,2045,2160 '7b6a6449-b055-45a6-81f6-f6f0dffa4cc6':1733,2044,2159 '81f6':1737,2048,2163 '8405':1315 'a799':1403,1410,1420 'aa62':2571,2628 'aa6d9a6ab26e':1404,1411,1421 'accept':1425 'account':371,403,455,478,530,813,853,886,2459 'acquir':1478,1537,1600 'action':2769 'action.status':2786 'activ':612,618,712,746,752,932,938,1006,1042,1048,1115,1146,1152,1446 'addit':1895 'address':1199,1205,1281,1289,1304,1382,1392,1414,1426,1434,1475,1483,1542,1605,1865,1900 'alia':1231,1329 'allow':1877 'alreadi':44 'alway':69 'and/or':2462 'api':28,52,135,155,643,777,963,1073,1177 'apikey':25 'app':1913,2993,3036,3087 'applic':699,1107 'array':637,717,771,834,869,957,1011,1067,1171,1258,1356,1480,1539,1602,1699,1763,1811,1842,1884,1897,2057,2088,2172,2203 'assign':694,1910,1914 'associ':338,810,850,883,1449,1513,1572 'assum':41 'asynchron':1565,2434 'attribut':566,916,1296 'auth':422,428,497,503 'authent':66 'auto':185 'auto-pagin':184 'automat':200,597,817,1460,1640,1663,1792,2501,2675 'avail':1809,2055,2170 'await':79,121,190,219,252,289,324,351,398,473,546,604,736,824,860,893,926,1030,1140,1218,1309,1397,1467,1529,1592,1670,1731,1799,1918,1969,2004,2042,2157,2220,2271,2314,2358,2393,2413,2421,2478,2508,2564,2621,2682,2770,2810,2895,2979,3029,3071,3119 'azur':231,269,306 'b055':1735,2046,2161 'b7f5':2777,2783 'backend':227,256,259,265,293,296,302 'background':1961 'backoff':113,176 'bar':405,408,412,415,418,421,424,427,433,438,480,483,487,490,493,496,499,502,508,513 'base':671,993 'bash':11 'boolean':613,619,713,747,753,900,933,939,1007,1043,1049,1147,1153,1428,1932,1976,2486 'call':53,1908,2663,2670,2690,2694,2698,2743,2756,2763,2793,2801,2817,2821,2825,2870,2881,2886,2902,2906,2910,2955 'callcontrol':342 'capabl':1479,1538,1601 'case':2112,2122 'catch':87 'cert':431,436,506,511 'chang':1644 'channel':2702,2829,2914 'check':96,145,167,2131 'citi':1224,1228,1322,1326 'civic':1198,1204,1280,1288,1482,1541,1604,1864,1899 'civicaddress':1217,1308 'civicaddress.data':1320 'civicaddresses.data':1222 'client':22,42,416,419,434,491,494,509 'client.customstoragecredentials.create':253 'client.customstoragecredentials.delete':325 'client.customstoragecredentials.retrieve':220 'client.customstoragecredentials.update':290 'client.dialogflowconnections.create':399 'client.dialogflowconnections.delete':547 'client.dialogflowconnections.retrieve':352 'client.dialogflowconnections.update':474 'client.externalconnections.civicaddresses.list':1219 'client.externalconnections.civicaddresses.retrieve':1310 'client.externalconnections.create':737 'client.externalconnections.delete':1141 'client.externalconnections.list':608 'client.externalconnections.logmessages.dismiss':894 'client.externalconnections.logmessages.list':828 'client.externalconnections.logmessages.retrieve':861 'client.externalconnections.phonenumbers.list':1471 'client.externalconnections.phonenumbers.retrieve':1530 'client.externalconnections.phonenumbers.update':1593 'client.externalconnections.releases.list':1674 'client.externalconnections.releases.retrieve':1732 'client.externalconnections.retrieve':927 'client.externalconnections.update':1031 'client.externalconnections.updatelocation':1398 'client.externalconnections.uploads.create':1919 'client.externalconnections.uploads.list':1803 'client.externalconnections.uploads.pendingcount':2005 'client.externalconnections.uploads.refreshstatus':1970 'client.externalconnections.uploads.retrieve':2043 'client.externalconnections.uploads.retry':2158 'client.media.delete':2394 'client.media.download':2414 'client.media.list':2221 'client.media.retrieve':2315 'client.media.update':2359 'client.media.upload':2272 'client.messages.send':80 'client.operatorconnect.actions.refresh':2479 'client.recordings.actions.delete':2771 'client.recordings.delete':2896 'client.recordings.list':2686 'client.recordings.retrieve':2811 'client.recordingtranscriptions.delete':2622 'client.recordingtranscriptions.list':2512 'client.recordingtranscriptions.retrieve':2565 'client.siprecconnectors.create':2980 'client.siprecconnectors.delete':3120 'client.siprecconnectors.retrieve':3030 'client.siprecconnectors.update':3072 'code':74,152,1263,1361,1488,1547,1610,1814,2060,2175 'common':150 'compani':1233,1331 'complet':1693,1757,2537,2597,2654,2746,2873,2958 'confer':2706,2742,2833,2869,2918,2954 'configur':232,244,258,270,281,295,307,318,579,2973,3063 'connect':97,214,221,247,254,284,291,321,326,331,337,343,346,353,358,376,393,400,442,460,465,468,475,517,535,540,543,548,553,562,571,622,626,665,670,682,709,740,756,760,809,849,882,904,912,942,946,985,992,1052,1056,1095,1100,1122,1123,1128,1156,1160,1454,1518,1577,1637,1646,1786,1958,1996,2427,2440,2454,2709,2836,2921 'connector':2967,2972,2987,3014,3021,3024,3031,3057,3062,3066,3073,3081,3108,3113,3116,3121 'console.error':93,134,142 'console.log':223,261,298,355,439,514,609,743,829,863,896,929,1039,1143,1221,1319,1422,1473,1534,1597,1676,1741,1805,1927,1972,2007,2052,2167,2222,2278,2318,2362,2417,2423,2480,2513,2573,2630,2687,2785,2814,2899,2990,3033,3084 'const':21,77,114,191,217,250,287,349,396,471,605,734,825,858,891,924,1028,1138,1216,1307,1395,1468,1527,1590,1671,1729,1800,1916,1967,2002,2040,2155,2218,2269,2312,2356,2411,2419,2476,2509,2562,2619,2683,2768,2808,2893,2977,3027,3069 'contact':1131 'content':2225,2281,2321,2365,2420,2424 'control':592,2691,2818,2903 'convers':361,445,520 'count':1979,1986,2012,2016 'countri':1236,1238,1334,1336,1487,1546,1609 'creat':234,239,373,614,662,666,691,748,934,1044,1148,1641,1680,1744,1844,1848,2125,2146,2228,2284,2324,2368,2451,2516,2576,2633,2712,2839,2924,2964,2968,2996,3039,3090 'credenti':204,211,238,243,275,280,312,317,617,751,937,1047,1151 'credentiail':379 'current':1654,2447 'custom':209,236,241,279,316,576 'customstoragecredenti':218,251,288 'customstoragecredential.connection':224,262,299 'd341':1313 'data':565,915,1295 'default':33,1242,1340 'delet':309,313,319,532,536,541,887,1092,1097,1101,1134,2380,2383,2388,2604,2609,2613,2752,2759,2879,2884,2888,3105,3109,3114 'descript':1246,1344 'detail':333,907,1284,1508,1713,2024,2550,2797,3016 'determin':2139 'developers.telnyx.com':2471 'developers.telnyx.com/api-reference/external-connections/list-all-log-messages#list-all-log-messages).':2470 'dialogflow':330,336,375,378,459,464,534,539 'dialogflowconnect':350,397,472 'dialogflowconnection.data':356,440,515 'dismiss':871,875 'display':1486,1545,1608 'district':1240,1338 'download':2397,2400,2715,2842,2927 'dual':2705,2832,2917 'durat':2519,2579,2636,2718,2845,2930 'e6bfb9ced6d9':1316 'els':100,129 'email':417,492 'emerg':1381,1391,1413,1433 'end':2733,2860,2945 'endpoint':555,703,2104,2430 'entri':1841,2087,2202 'enum':228,266,303,623,645,757,779,943,965,1053,1075,1157,1179,1687,1751,1823,1907,2069,2184,2526,2533,2586,2593,2643,2650,2703,2730,2741,2745,2789,2830,2857,2868,2872,2915,2942,2953,2957 'environ':365,449,524 'err':88,90,102,131 'err.headers':116 'err.message':138 'err.status':137,140 'error':49,58,63,67,71,95,136,144,151,166,1683,1747,1813,1816,1832,2059,2062,2078,2098,2174,2177,2193 'event':649,654,720,725,783,788,969,974,1014,1019,1079,1084,1183,1188 'exampl':39 'exist':910,990,1287,2117,2553,2800 'expir':1695,1759,2231,2287,2327,2371 'exponenti':112,175 'extern':552,561,570,587,620,664,669,680,707,738,754,808,848,881,903,911,940,984,991,1050,1094,1099,1154,1453,1517,1576,1636,1785,1957,1995,2453 'externalconnect':606,735,925,1029,1139 'externalconnection.data':744,930,1040,1144 'externalconnection.id':610 'externalconnectionphonenumb':1469 'externalconnectionphonenumber.civic':1474 'f0':2570,2627 'f0-aa62-74ac943d6c58':2569,2626 'f6f0dffa4cc6':1738,2049,2164 'fail':55,1694,1758 'failov':650,721,784,970,1015,1080,1184 'fetch':598,818,1461,1664,1793,2502,2676 'field':147,168 'file':2214,2244,2306,2343,2387,2404 'first':1911 'forc':1943 'format':149,169 'found':163 'gcs':229,257,260,267,294,297,304 'get':212,344,594,814,854,920,1211,1300,1455,1519,1658,1722,1787,1977,1997,2033,2215,2307,2405,2498,2556,2672,2803,3022 'given':341,1452,1516,1575,1635,1784,1956,1994 'handl':50,70 'hello':86 'host':2981,2999,3042,3075,3093 'hous':1248,1251,1346,1349 'id':215,222,225,248,255,263,285,292,300,322,327,347,354,359,363,394,401,407,411,420,443,447,469,476,482,486,495,518,522,544,549,627,687,761,856,889,922,947,1002,1037,1057,1136,1161,1213,1244,1255,1302,1305,1317,1342,1353,1385,1388,1393,1405,1415,1430,1435,1457,1476,1484,1491,1494,1500,1521,1525,1532,1543,1550,1553,1559,1580,1584,1587,1595,1606,1613,1616,1622,1647,1660,1678,1702,1705,1724,1727,1739,1766,1769,1789,1807,1820,1834,1837,1866,1869,1883,1889,1893,1901,1904,1922,1929,1934,1964,1999,2035,2038,2050,2066,2080,2083,2134,2149,2152,2165,2181,2195,2198,2522,2530,2560,2582,2590,2617,2639,2647,2692,2696,2700,2707,2710,2723,2772,2806,2813,2819,2823,2827,2834,2837,2850,2891,2898,2904,2908,2912,2919,2922,2935 'import':17,177 'in-progress':2534,2594,2651 'inbound':629,714,763,949,1008,1059,1163 'includ':1858 'inform':207,2301 'initi':45,2725,2852,2937 'insid':563,913,1293 'instal':10,13 'instanceof':91,103,132 'insuffici':158 'int32':2521,2581,2638,2720,2847,2932 'integ':660,731,794,980,1025,1090,1194,2013,2017,2267,2354,3004,3047,3098 'integr':4,8,582,589,1129,2428,2441,2465 'invalid':154 'item':192 'iter':187,196 'javascript':5,9,16,75,216,249,286,323,348,395,470,545,596,733,816,857,890,923,1027,1137,1215,1306,1394,1459,1526,1589,1662,1728,1791,1915,1966,2001,2039,2154,2217,2268,2311,2355,2392,2410,2475,2500,2561,2618,2674,2767,2807,2892,2976,3026,3068,3118 'key':29,156,410,414,485,489 'leg':2695,2822,2907 'limit':60,107,172 'list':180,550,558,796,802,1196,1437,1443,1624,1629,1771,1777,2205,2210,2487,2493,2661,2667,2754,2761 'locat':1201,1207,1243,1257,1292,1341,1355,1378,1387,1429,1490,1549,1586,1612,1819,1868,1903,2065,2180 'log':798,804,832,840,844,867,873,877,2468 'logmessag':859 'logmessage.log':864 'logmessagelistrespons':826 'logmessagelistresponse.code':830 'make':2432 'maximum':1876 'may':1102,2124 'media':2207,2213,2219,2234,2241,2243,2259,2262,2273,2290,2298,2305,2309,2313,2316,2330,2338,2342,2346,2349,2357,2360,2374,2382,2386,2390,2395,2399,2403,2407,2415 'media.data':2223,2319,2363 'messag':799,805,833,841,845,865,868,874,878,1684,1748,1817,2063,2178,2469,2483 'meta':836 'method':181 'microsoft':1209,1656,1854,2443 'milli':2520,2580,2637,2719,2846,2931 'mission':591 'must':1870 'my-siprec-connector':2984,3078 'name':1234,1273,1332,1371,2235,2263,2291,2310,2317,2331,2347,2361,2375,2391,2396,2408,2416,2983,3001,3025,3032,3044,3067,3074,3077,3095,3117,3122 'need':602,822,1465,1668,1797,2461,2506,2680 'network':57,94 'new':23,122,668,1850,2127,2142,2452,2970 'note':178 'npm':12 'null':661,732,795,981,1026,1091,1195 'number':696,1113,1249,1252,1347,1350,1440,1448,1493,1497,1505,1512,1524,1552,1556,1564,1571,1583,1615,1619,1651,1698,1721,1762,1860,1879,1882,1892,1921,2011,2032 'object':233,271,308,630,632,715,764,766,835,837,870,950,952,1009,1060,1062,1164,1166,1259,1357,1700,1764,1843,2089,2204,2717,2844,2929 'ok':2790 'omit':37 'one':1862 'oper':625,759,945,1055,1121,1127,1159,2426,2439 'option':711,1005,1585,1894,2261,2348 'order':2015 'outbound':631,684,710,742,765,951,1004,1033,1034,1061,1165 'page':199,600,820,1463,1666,1795,2504,2678 'pagin':179,186 'paramet':674,996 'parti':1912 'partial':1829,2075,2190 'partner':585 'patch':1000,1383,1578 'pend':1688,1690,1752,1754,1824,1826,1951,1981,1989,2010,2014,2070,2072,2185,2187 'perman':1096,2608,2758,2883 'permiss':159 'phone':695,1112,1439,1447,1504,1511,1523,1563,1570,1582,1650,1720,1859,1878,2031 'phonenumb':1528,1591 'phonenumber.data':1535,1598 'pleas':1130,2130 'port':2988,3003,3046,3082,3097 'portal':593 'post':245,391,704,1887,1962,2147,2256,2473,2765,2974 'postal':1260,1358 'prevent':1104 'privat':409,413,484,488 'process':2102 'process.env':26 'product':73 'profil':362,446,521,686,1036 'progress':1692,1756,1828,2074,2189,2536,2596,2653 'project':406,481 'promis':123 'provid':429,504,1872 'provinc':1270,1368 'put':282,466,2344,3064 'r':124,126 'rate':59,106,171 'reattempt':2115 'recheck':1945 'record':367,451,526,633,767,953,1063,1167,1265,1363,2489,2496,2524,2527,2529,2546,2554,2558,2584,2587,2589,2606,2611,2615,2641,2644,2646,2664,2671,2728,2731,2732,2736,2757,2764,2794,2802,2805,2809,2812,2855,2858,2859,2863,2882,2887,2890,2894,2897,2940,2943,2944,2948,3005,3048,3099 'recording.data':2815,2900 'recordingresponsedata':2684 'recordingresponsedata.id':2688 'recordingtranscript':2510,2563,2620 'recordingtranscription.data':2574,2631 'recordingtranscription.id':2514 'refresh':1936,2425,2437 'releas':1626,1632,1709,1716,1726,1730 'release.data':1742 'releaselistrespons':1672 'releaselistresponse.tenant':1677 'remov':1125 'report':2463 'request':678,999,1710,1717,1774,1781,1847,1852,1942,1953,1983,1991,2021,2028,2093,2109,2119,2129,2144,2435 'requir':146,689,706,1003,1389,1891,2258 'resourc':161 'respons':569,892,919,1299,1396,1968,2003,2137,2156,2270,2412,2418,2477 'response.blob':2422 'response.data':1423,2008,2168,2279 'response.message':2481 'response.success':897,1973 'result':78,194,2466 'retri':99,110,118,173,2090,2106 'retriev':201,328,800,838,842,901,1278,1502,1707,2018,2296,2544,2548,2791,2795,3011 'retry-aft':117 'retryaft':115,127 'return':182,205,226,264,301,332,357,441,516,556,611,745,831,866,898,905,931,1041,1145,1202,1223,1282,1321,1424,1441,1477,1506,1536,1599,1627,1679,1711,1743,1775,1808,1930,1974,1984,2009,2022,2054,2169,2208,2224,2280,2299,2320,2364,2482,2491,2515,2575,2632,2665,2689,2787,2816,2901,2992,3015,3035,3086 's3':230,268,305 'save':377 'seamless':578 'sec':659,730,793,979,1024,1089,1193,2266,2353 'sent':675 'servic':370,390,402,454,477,529,2255 'session':2699,2826,2911 'set':987,1567 'settimeout':125 'setup':15 'shown':47 'singl':2704,2831,2916 'sip':3,7,580,621,681,708,739,755,941,1051,1155 'siprec':2966,2971,2986,3013,3020,3056,3061,3080,3107,3112 'siprec.telnyx.com':2982,3076 'siprecconnector':2978,3028,3070 'siprecconnector.data':2991,3034,3085 'skill' 'skill-telnyx-sip-integrations-javascript' 'sourc':2740,2867,2952 'source-team-telnyx' 'start':2737,2864,2949 'state':1268,1366 'static':1380,1390,1412,1432 'status':1686,1750,1822,1938,1948,2068,2183,2532,2592,2649,2744,2788,2871,2956 'storag':210,237,242 'store':203,274,278,311,315,329,458,463,533,538,2212,2297,2304,2337,2341,2381,2385,2398,2402,3019,3060,3111 'street':1272,1275,1370,1373 'string':360,364,366,369,372,444,448,450,453,456,519,523,525,528,531,616,628,635,638,641,718,750,762,769,772,775,936,948,955,958,961,1012,1046,1058,1065,1068,1071,1150,1162,1169,1172,1175,1227,1232,1235,1237,1241,1247,1250,1254,1264,1267,1271,1274,1277,1325,1330,1333,1335,1339,1345,1348,1352,1362,1365,1369,1372,1375,1481,1489,1495,1498,1540,1548,1554,1557,1603,1611,1617,1620,1682,1685,1746,1749,1812,1815,1818,1898,2058,2061,2064,2173,2176,2179,2227,2230,2233,2236,2239,2264,2283,2286,2289,2292,2295,2323,2326,2329,2332,2335,2351,2367,2370,2373,2376,2379,2484,2518,2523,2531,2540,2543,2578,2583,2591,2600,2603,2635,2640,2648,2657,2660,2693,2697,2701,2708,2711,2714,2722,2724,2727,2735,2739,2748,2751,2820,2824,2828,2835,2838,2841,2849,2851,2854,2862,2866,2875,2878,2905,2909,2913,2920,2923,2926,2934,2936,2939,2947,2951,2960,2963,2995,2998,3000,3002,3007,3010,3038,3041,3043,3045,3050,3053,3089,3092,3094,3096,3101,3104 'subdomain':2994,3037,3088 'success':899,1830,1831,1931,1975,2076,2077,2191,2192,2485 'suffix':1253,1276,1351,1374 'suggest':1427 'support':1133 'tag':636,716,770,956,1010,1066,1170 'team':1210,1657,1855,2444 'telephon':1496,1555,1618,1697,1761 'telnyx':2,6,14,18,20,24,27,381,389,575,584,1132,2246,2254 'telnyx-sip-integrations-javascript':1 'telnyx.apiconnectionerror':92 'telnyx.apierror':133 'telnyx.ratelimiterror':104 'tenant':1701,1765,1833,2079,2194 'text':85,2539,2599,2656 'ticket':1499,1558,1621,1704,1768,1836,1933,2037,2082,2133,2151,2197 'timeout':658,729,792,978,1023,1088,1192 'tn':1839,2085,2200 'token':425,500 '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' 'town':1226,1230,1324,1328 'transcript':2490,2497,2528,2538,2547,2555,2559,2588,2598,2607,2612,2616,2645,2655 'tri':76 'trunk':581 'ttl':2265,2352 'type':368,404,452,479,527,634,768,954,1064,1168,1266,1364,2226,2282,2322,2366,2525,2585,2642,2729,2856,2941,3006,3049,3100 'unknown':1696,1760 'updat':272,276,457,461,639,773,959,982,986,1069,1173,1376,1561,1566,2237,2293,2333,2336,2339,2377,2541,2601,2658,2749,2876,2961,3008,3051,3054,3058,3102 'upload':1689,1753,1773,1780,1801,1825,1840,1846,1851,1917,1941,1952,1982,1990,2020,2027,2041,2071,2086,2092,2101,2108,2118,2128,2143,2186,2201,2206,2240,2242 'upload.data':2053 'upload.location':1806 'upload.ticket':1928 'uri':423,426,498,501,652,656,723,727,786,790,972,976,1017,1021,1082,1086,1186,1190 'url':432,437,507,512,651,655,722,726,785,789,971,975,1016,1020,1081,1085,1185,1189,2260,2274,2350,2716,2843,2928 'usag':1810,1896,1906,2056,2171 'use':188,386,573,700,1110,2251 'user':1909,2448,2457 'uuid':1245,1256,1343,1354,1431,1436,1485,1492,1501,1544,1551,1560,1588,1607,1614,1623,1703,1706,1767,1770,1821,1835,1838,1902,1905,1935,2067,2081,2084,2182,2196,2199 'valid':62,143,165 'version':644,778,964,1074,1178 'voic':588,685,1035 'wait':108 'webhook':642,648,653,657,719,724,728,776,782,787,791,962,968,973,977,1013,1018,1022,1072,1078,1083,1087,1176,1182,1187,1191 'www.example.com':2276 'www.example.com/audio.mp3''':2275 'x509':430,435,505,510 'zip':1262,1360 'zoom':624,741,758,944,1054,1158","prices":[{"id":"9645119b-f80c-45a7-9a53-2c178e36b7be","listingId":"e607deb8-0c4c-4755-a240-0cb9218a8daa","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:07:46.562Z"}],"sources":[{"listingId":"e607deb8-0c4c-4755-a240-0cb9218a8daa","source":"github","sourceId":"team-telnyx/ai/telnyx-sip-integrations-javascript","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-sip-integrations-javascript","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:46.562Z","lastSeenAt":"2026-04-22T06:54:48.032Z"}],"details":{"listingId":"e607deb8-0c4c-4755-a240-0cb9218a8daa","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-sip-integrations-javascript","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"da70f5d62e928d1bf1189e4cac1637a10c310911","skill_md_path":"skills/telnyx-sip-integrations-javascript/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-sip-integrations-javascript"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-sip-integrations-javascript","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-sip-integrations-javascript"},"updatedAt":"2026-04-22T06:54:48.032Z"}}