{"id":"12d88176-abdf-4fd0-b456-438bcbe45b69","shortId":"NdVjZX","kind":"skill","title":"telnyx-voice-streaming-curl","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Streaming - curl\n\n## Installation\n\n```text\n# curl is pre-installed on macOS, Linux, and Windows 10+\n```\n\n## Setup\n\n```bash\nexport TELNYX_API_KEY=\"YOUR_API_KEY_HERE\"\n```\n\nAll examples below use `$TELNYX_API_KEY` for authentication.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```bash\n# Check HTTP status code in response\nresponse=$(curl -s -w \"\\n%{http_code}\" \\\n  -X POST \"https://api.telnyx.com/v2/messages\" \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\": \"+13125550001\", \"from\": \"+13125550002\", \"text\": \"Hello\"}')\n\nhttp_code=$(echo \"$response\" | tail -1)\nbody=$(echo \"$response\" | sed '$d')\n\ncase $http_code in\n  2*) echo \"Success: $body\" ;;\n  422) echo \"Validation error — check required fields and formats\" ;;\n  429) echo \"Rate limited — retry after delay\"; sleep 1 ;;\n  401) echo \"Authentication failed — check TELNYX_API_KEY\" ;;\n  *)   echo \"Error $http_code: $body\" ;;\nesac\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Forking start\n\nCall forking allows you to stream the media from a call to a specific target in realtime. This stream can be used to enable realtime audio analysis to support a \nvariety of use cases, including fraud detection, or the creation of AI-generated audio responses. Requests must specify either the `target` attribute or the `rx` and `tx` attributes.\n\n`POST /calls/{call_control_id}/actions/fork_start`\n\nOptional: `client_state` (string), `command_id` (string), `rx` (string), `stream_type` (enum: decrypted), `tx` (string)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/fork_start\"\n```\n\nReturns: `result` (string)\n\n## Forking stop\n\nStop forking a call. **Expected Webhooks:**\n\n- `call.fork.stopped`\n\n`POST /calls/{call_control_id}/actions/fork_stop`\n\nOptional: `client_state` (string), `command_id` (string), `stream_type` (enum: raw, decrypted)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/fork_stop\"\n```\n\nReturns: `result` (string)\n\n## Streaming start\n\nStart streaming the media from a call to a specific WebSocket address or Dialogflow connection in near-realtime. Audio will be delivered as base64-encoded RTP payload (raw audio), wrapped in JSON payloads. Please find more details about media streaming messages specification under the [link](https://developers.telnyx.com/docs/voice/programmable-voice/media-streaming).\n\n`POST /calls/{call_control_id}/actions/streaming_start`\n\nOptional: `client_state` (string), `command_id` (string), `custom_parameters` (array[object]), `dialogflow_config` (object), `enable_dialogflow` (boolean), `stream_auth_token` (string), `stream_bidirectional_codec` (enum: PCMU, PCMA, G722, OPUS, AMR-WB, L16), `stream_bidirectional_mode` (enum: mp3, rtp), `stream_bidirectional_sampling_rate` (enum: 8000, 16000, 22050, 24000, 48000), `stream_bidirectional_target_legs` (enum: both, self, opposite), `stream_codec` (enum: PCMU, PCMA, G722, OPUS, AMR-WB, L16, default), `stream_track` (enum: inbound_track, outbound_track, both_tracks), `stream_url` (string)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n      \"stream_url\": \"wss://example.com/audio-stream\"\n  }' \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/streaming_start\"\n```\n\nReturns: `result` (string)\n\n## Streaming stop\n\nStop streaming a call to a WebSocket. **Expected Webhooks:**\n\n- `streaming.stopped`\n\n`POST /calls/{call_control_id}/actions/streaming_stop`\n\nOptional: `client_state` (string), `command_id` (string), `stream_id` (uuid)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/streaming_stop\"\n```\n\nReturns: `result` (string)\n\n## Transcription start\n\nStart real-time transcription. Transcription will stop on call hang-up, or can be initiated via the Transcription stop command. **Expected Webhooks:**\n\n- `call.transcription`\n\n`POST /calls/{call_control_id}/actions/transcription_start`\n\nOptional: `client_state` (string), `command_id` (string), `transcription_engine` (enum: Google, Telnyx, Deepgram, Azure, A, B), `transcription_engine_config` (object), `transcription_tracks` (string)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/transcription_start\"\n```\n\nReturns: `result` (string)\n\n## Transcription stop\n\nStop real-time transcription.\n\n`POST /calls/{call_control_id}/actions/transcription_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```bash\ncurl \\\n  -X POST \\\n  -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  \"https://api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ/actions/transcription_stop\"\n```\n\nReturns: `result` (string)\n\n---\n\n## Webhooks\n\n### Webhook Verification\n\nTelnyx signs webhooks with Ed25519. Each request includes `telnyx-signature-ed25519`\nand `telnyx-timestamp` headers. Always verify signatures in production:\n\n```bash\n# Telnyx signs webhooks with Ed25519 (asymmetric — NOT HMAC/Standard Webhooks).\n# Headers sent with each webhook:\n#   telnyx-signature-ed25519: base64-encoded Ed25519 signature\n#   telnyx-timestamp: Unix timestamp (reject if >5 minutes old for replay protection)\n#\n# Get your public key from: Telnyx Portal > Account Settings > Keys & Credentials\n# Use the Telnyx SDK in your language for verification (client.webhooks.unwrap).\n# Your endpoint MUST return 2xx within 2 seconds or Telnyx will retry (up to 3 attempts).\n# Configure a failover URL in Telnyx Portal for additional reliability.\n```\n\nThe following webhook events are sent to your configured webhook URL.\nAll webhooks include `telnyx-timestamp` and `telnyx-signature-ed25519` headers for Ed25519 signature verification. Use `client.webhooks.unwrap()` to verify.\n\n| Event | Description |\n|-------|-------------|\n| `callForkStarted` | Call Fork Started |\n| `callForkStopped` | Call Fork Stopped |\n| `callStreamingFailed` | Call Streaming Failed |\n| `callStreamingStarted` | Call Streaming Started |\n| `callStreamingStopped` | Call Streaming Stopped |\n| `transcription` | Transcription |\n\n### Webhook payload fields\n\n**`callForkStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.fork.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.stream_type` | enum: decrypted | Type of media streamed. |\n\n**`callForkStopped`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.fork.stopped | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.stream_type` | enum: decrypted | Type of media streamed. |\n\n**`callStreamingFailed`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the resource. |\n| `data.event_type` | enum: streaming.failed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.failure_reason` | string | A short description explaning why the media streaming failed. |\n| `data.payload.stream_id` | uuid | Identifies the streaming. |\n| `data.payload.stream_type` | enum: websocket, dialogflow | The type of stream connection the stream is performing. |\n\n**`callStreamingStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: streaming.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.stream_url` | string | Destination WebSocket address where the stream is going to be delivered. |\n\n**`callStreamingStopped`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: streaming.stopped | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.stream_url` | string | Destination WebSocket address where the stream is going to be delivered. |\n\n**`transcription`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.transcription | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique identifier and token for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | Use this field to add state to every subsequent webhook. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |","tags":["telnyx","voice","streaming","curl","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-streaming-curl","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-voice-streaming-curl","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (13,225 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:54.145Z","embedding":null,"createdAt":"2026-04-18T22:08:37.709Z","updatedAt":"2026-04-22T00:54:54.145Z","lastSeenAt":"2026-04-22T00:54:54.145Z","tsv":"'+13125550001':100 '+13125550002':102 '-1':110 '/actions/fork_start':249 '/actions/fork_stop':300 '/actions/streaming_start':391 '/actions/streaming_stop':517 '/actions/transcription_start':581 '/actions/transcription_stop':638 '/audio-stream':493 '/calls':245,296,387,513,577,634 '/docs/voice/programmable-voice/media-streaming).':385 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/fork_start':282 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/fork_stop':330 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/streaming_start':496 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/streaming_stop':545 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/transcription_start':622 '/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/transcription_stop':663 '/v2/messages':86 '1':141 '10':22 '16000':437 '2':120,756 '22050':438 '24000':439 '2xx':754 '3':764 '401':61,142,159 '403':163 '404':166 '422':57,124,170 '429':54,133,176 '48000':440 '5':723 '8000':436 '8601':871,995,1116,1268,1402,1536 'account':736 'add':1601 'addit':774 'address':347,1356,1490 'ai':227 'ai-gener':226 'allow':187 'alway':62,687 'amr':422,457 'amr-wb':421,456 'analysi':211 'api':27,30,38,45,91,148,161,273,321,481,536,613,654,1136,1288,1422 'api.telnyx.com':85,281,329,495,544,621,662 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/fork_start':280 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/fork_stop':328 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/streaming_start':494 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/streaming_stop':543 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/transcription_start':620 'api.telnyx.com/v2/calls/v3:550e8400-e29b-41d4-a716-446655440000_gru1ogrkyq/actions/transcription_stop':661 'api.telnyx.com/v2/messages':84 'app':883,1007,1142,1294,1428,1612 'application/json':97,279,327,487,542,619,660 'array':401 'asymmetr':698 'attempt':765 'attribut':237,243 'audio':210,229,355,366 'auth':410 'authent':41,59,144 'author':88,270,318,478,533,610,651 'azur':595 'b':597 'backoff':182 'base64':361,712 'base64-encoded':360,711 'bash':24,68,265,313,473,528,605,646,692 'bearer':89,271,319,479,534,611,652 'bidirect':414,426,432,442 'bodi':111,123,154 'boolean':408 'call':46,185,195,246,291,297,342,388,505,514,560,578,635,810,814,818,822,826,881,892,902,913,932,1005,1016,1026,1037,1056,1127,1134,1140,1151,1162,1181,1279,1286,1292,1303,1314,1333,1413,1420,1426,1437,1448,1467,1554,1565,1584,1610,1621 'call.fork.started':851 'call.fork.stopped':294,975 'call.transcription':575,1516 'callforkstart':809,834 'callforkstop':813,958 'callstreamingfail':817,1082 'callstreamingstart':821,1231 'callstreamingstop':825,1365 'case':116,218 'check':69,128,146,173 'client':251,302,393,519,583,640 'client.webhooks.unwrap':749,804 'code':67,72,81,106,118,153,158 'codec':415,450 'command':254,305,396,522,572,586,643,949,1073,1132,1198,1284,1350,1418,1484 'common':156 'config':404,600 'configur':766,784 'connect':350,887,1011,1146,1226,1298,1432,1616 'content':95,277,325,485,540,617,658 'content-typ':94,276,324,484,539,616,657 'control':247,298,389,515,579,636,882,894,900,1006,1018,1024,1124,1135,1141,1276,1287,1293,1410,1421,1427,1544,1552,1611 'correl':919,939,1043,1063,1168,1188,1320,1340,1454,1474,1571,1591 'creation':224 'credenti':739 'curl':5,9,12,76,266,314,474,529,606,647 'custom':399 'd':98,115,488 'data.event':848,972,1093,1245,1379,1513 'data.id':858,982,1103,1255,1389,1523 'data.occurred':865,989,1110,1262,1396,1530 'data.payload.call':893,903,922,1017,1027,1046,1123,1152,1171,1275,1304,1323,1409,1438,1457,1543,1555,1574 'data.payload.client':942,1066,1191,1343,1477,1594 'data.payload.connection':878,1002,1137,1289,1423,1607 'data.payload.failure':1199 'data.payload.stream':950,1074,1211,1217,1351,1485 'data.record':838,962,1086,1235,1369,1503 'date':868,992,1113,1265,1399,1533 'date-tim':867,991,1112,1264,1398,1532 'datetim':872,996,1117,1269,1403,1537 'decrypt':262,312,953,1077 'deepgram':594 'default':460 'delay':139 'deliv':358,857,981,1102,1254,1364,1388,1498,1522 'descript':808,837,961,1085,1204,1234,1368,1502 'destin':1354,1488 'detail':374 'detect':221 'developers.telnyx.com':384 'developers.telnyx.com/docs/voice/programmable-voice/media-streaming).':383 'dialogflow':349,403,407,1221 'echo':107,112,121,125,134,143,150 'ed25519':674,681,697,710,714,797,800 'either':234 'enabl':208,406 'encod':362,713 'endpoint':751 'engin':590,599 'enum':261,310,416,428,435,445,451,463,591,840,850,952,964,974,1076,1088,1095,1219,1237,1247,1371,1381,1505,1515 'error':42,51,56,60,64,127,151,157,172 'esac':155 'event':779,807,841,855,876,921,941,965,979,1000,1045,1065,1089,1100,1121,1170,1190,1238,1252,1273,1322,1342,1372,1386,1407,1456,1476,1506,1520,1541,1573,1593 'everi':1604 'exampl':34 'example.com':492 'example.com/audio-stream':491 'expect':292,509,573 'explan':1205 'exponenti':181 'export':25 'fail':48,145,820,1210 'failov':768 'field':130,174,833,835,959,1083,1232,1366,1500,1599 'find':372 'follow':777 'fork':183,186,286,289,811,815 'format':132,175 'former':885,1009,1144,1296,1430,1614 'found':169 'fraud':220 'g722':419,454 'generat':228 'get':729 'go':1361,1495 'googl':592 'h':87,93,269,275,317,323,477,483,532,538,609,615,650,656 'handl':43,63 'hang':562 'hang-up':561 'header':686,702,798 'hello':104 'hmac/standard':700 'http':70,80,105,117,152 'id':248,255,299,306,390,397,516,523,526,580,587,637,644,879,884,888,895,898,905,907,924,926,1003,1008,1012,1019,1022,1029,1031,1048,1050,1125,1128,1138,1143,1147,1154,1156,1173,1175,1212,1277,1280,1290,1295,1299,1306,1308,1325,1327,1411,1414,1424,1429,1433,1440,1442,1459,1461,1545,1557,1559,1576,1578,1608,1613,1617 'identifi':842,860,966,984,1090,1105,1214,1239,1257,1373,1391,1507,1525,1548 'inbound':464 'includ':219,677,789 'initi':567 'instal':10,16 'insuffici':164 'invalid':160 'iso':870,994,1115,1267,1401,1535 'issu':1131,1283,1417 'json':369 'key':28,31,39,92,149,162,274,322,482,537,614,655,732,738 'l16':424,459 'languag':746 'leg':444,904,1028,1153,1305,1439,1556 'limit':53,136,178 'link':382 'linux':19 'maco':18 'media':192,339,376,956,1080,1208 'messag':378 'minut':724 'mode':427 'mp3':429 'must':232,752 'n':79 'near':353 'near-realtim':352 'network':50 'object':402,405,601 'occur':877,1001,1122,1274,1408,1542 'old':725 'opposit':448 'option':250,301,392,518,582,639 'opus':420,455 'outbound':466 'paramet':400 'payload':364,370,832 'pcma':418,453 'pcmu':417,452 'perform':1230 'permiss':165 'pleas':371 'portal':735,772 'post':83,244,268,295,316,386,476,512,531,576,608,633,649 'pre':15 'pre-instal':14 'product':66,691 'protect':728 'public':731 'rate':52,135,177,434 'raw':311,365 'real':553,630 'real-tim':552,629 'realtim':201,209,354 'reason':1200 'receiv':946,1070,1195,1347,1481 'reject':721 'reliabl':775 'replay':727 'request':231,676 'requir':129 'resourc':167,847,864,971,988,1092,1109,1244,1261,1378,1395,1512,1529 'respons':74,75,108,113,230 'result':284,332,498,547,624,665 'retri':137,179,761 'return':283,331,497,546,623,664,753 'rtp':363,430 'rx':240,257 'sampl':433 'sdk':743 'second':757 'sed':114 'self':447 'sent':703,781 'session':923,933,1047,1057,1172,1182,1324,1334,1458,1468,1575,1585 'set':737 'setup':23 'short':1203 'sign':671,694 'signatur':680,689,709,715,796,801 'skill' 'skill-telnyx-voice-streaming-curl' 'sleep':140 'source-team-telnyx' 'specif':198,345,379 'specifi':233 'start':184,335,336,550,551,812,824 'state':252,303,394,520,584,641,943,945,1067,1069,1192,1194,1344,1346,1478,1480,1595,1602 'status':71 'stop':287,288,501,502,558,571,627,628,816,828 'stream':4,8,190,203,259,308,334,337,377,409,413,425,431,441,449,461,470,489,500,503,525,819,823,827,957,1081,1209,1216,1225,1228,1359,1493 'streaming.failed':1096 'streaming.started':1248 'streaming.stopped':511,1382 'string':253,256,258,264,285,304,307,333,395,398,412,472,499,521,524,548,585,588,604,625,642,645,666,880,896,906,925,944,1004,1020,1030,1049,1068,1126,1139,1155,1174,1193,1201,1278,1291,1307,1326,1345,1353,1412,1425,1441,1460,1479,1487,1546,1558,1577,1596,1609 'subsequ':1605 'success':122 'support':213 'tail':109 'target':199,236,443 'telnyx':2,6,26,37,90,147,272,320,480,535,593,612,653,670,679,684,693,708,717,734,742,759,771,791,795,886,1010,1145,1297,1431,1615 'telnyx-signature-ed25519':678,707,794 'telnyx-timestamp':683,716,790 'telnyx-voice-streaming-curl':1 'text':11,103 'time':554,631,869,993,1114,1266,1400,1534 'timestamp':685,718,720,792 'token':411,1550 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'track':462,465,467,469,603 'transcript':549,555,556,570,589,598,602,626,632,829,830,1499 'tx':242,263 'type':96,260,278,309,326,486,541,618,659,836,839,844,849,853,862,951,954,960,963,968,973,977,986,1075,1078,1084,1087,1094,1098,1107,1218,1223,1233,1236,1241,1246,1250,1259,1367,1370,1375,1380,1384,1393,1501,1504,1509,1514,1518,1527 'uniqu':897,910,929,1021,1034,1053,1159,1178,1311,1330,1445,1464,1547,1562,1581 'unix':719 'url':471,490,769,786,1352,1486 'use':36,206,217,740,803,889,917,937,1013,1041,1061,1129,1148,1166,1186,1281,1300,1318,1338,1415,1434,1452,1472,1569,1589,1597,1618 'uuid':527,859,983,1104,1213,1256,1390,1524 'valid':55,126,171 'varieti':215 'verif':669,748,802 'verifi':688,806 'via':568,1133,1285,1419 'voic':3,7 'w':78 'wb':423,458 'webhook':293,510,574,667,668,672,695,701,706,778,785,788,831,920,940,1044,1064,1169,1189,1321,1341,1455,1475,1572,1592,1606 'websocket':346,508,1220,1355,1489 'window':21 'within':755 'wrap':367 'x':82,267,315,475,530,607,648","prices":[{"id":"d3cc2691-e8cf-4947-8bb2-aaf520bc703c","listingId":"12d88176-abdf-4fd0-b456-438bcbe45b69","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:37.709Z"}],"sources":[{"listingId":"12d88176-abdf-4fd0-b456-438bcbe45b69","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-streaming-curl","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-curl","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:37.709Z","lastSeenAt":"2026-04-22T00:54:54.145Z"}],"details":{"listingId":"12d88176-abdf-4fd0-b456-438bcbe45b69","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-streaming-curl","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"6b3ee4c22cbce8929ccf5ec37447bc4b18f45372","skill_md_path":"skills/telnyx-voice-streaming-curl/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-curl"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-streaming-curl","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-streaming-curl"},"updatedAt":"2026-04-22T00:54:54.145Z"}}