{"id":"993dee31-9153-4401-ac10-f675bacedfce","shortId":"UJdj3p","kind":"skill","title":"telnyx-voice-advanced-go","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Voice Advanced - Go\n\n## Installation\n\n```bash\ngo get github.com/team-telnyx/telnyx-go\n```\n\n## Setup\n\n```go\nimport (\n  \"context\"\n  \"fmt\"\n  \"os\"\n\n  \"github.com/team-telnyx/telnyx-go\"\n  \"github.com/team-telnyx/telnyx-go/option\"\n)\n\nclient := telnyx.NewClient(\n  option.WithAPIKey(os.Getenv(\"TELNYX_API_KEY\")),\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```go\nimport \"errors\"\n\nresult, err := client.Messages.Send(ctx, params)\nif err != nil {\n  var apiErr *telnyx.Error\n  if errors.As(err, &apiErr) {\n    switch apiErr.StatusCode {\n    case 422:\n      fmt.Println(\"Validation error — check required fields and formats\")\n    case 429:\n      // Rate limited — wait and retry with exponential backoff\n      fmt.Println(\"Rate limited, retrying...\")\n    default:\n      fmt.Printf(\"API error %d: %s\\n\", apiErr.StatusCode, apiErr.Error())\n    }\n  } else {\n    fmt.Println(\"Network error — check connectivity and retry\")\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## Join AI Assistant Conversation\n\nAdd a participant to an existing AI assistant conversation. Use this command to bring an additional call leg into a running AI conversation.\n\n`POST /calls/{call_control_id}/actions/ai_assistant_join` — Required: `conversation_id`, `participant`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```go\n\tresponse, err := client.Calls.Actions.JoinAIAssistant(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionJoinAIAssistantParams{\n\t\t\tConversationID: \"v3:abc123\",\n\t\t\tParticipant: telnyx.CallActionJoinAIAssistantParamsParticipant{\n\t\t\t\tID:   \"v3:abc123def456\",\n\t\t\t\tRole: \"user\",\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `conversation_id` (uuid), `result` (string)\n\n## Update client state\n\nUpdates client state\n\n`PUT /calls/{call_control_id}/actions/client_state_update` — Required: `client_state`\n\n```go\n\tresponse, err := client.Calls.Actions.UpdateClientState(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionUpdateClientStateParams{\n\t\t\tClientState: \"aGF2ZSBhIG5pY2UgZGF5ID1d\",\n\t\t},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## Send DTMF\n\nSends DTMF tones from this leg. DTMF tones will be heard by the other end of the call. **Expected Webhooks:**\n\nThere are no webhooks associated with this command.\n\n`POST /calls/{call_control_id}/actions/send_dtmf` — Required: `digits`\n\nOptional: `client_state` (string), `command_id` (string), `duration_millis` (int32)\n\n```go\n\tresponse, err := client.Calls.Actions.SendDtmf(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionSendDtmfParams{\n\t\t\tDigits: \"1www2WABCDw9\",\n\t\t},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## SIPREC start\n\nStart siprec session to configured in SIPREC connector SRS. \n\n**Expected Webhooks:**\n\n- `siprec.started`\n- `siprec.stopped`\n- `siprec.failed`\n\n`POST /calls/{call_control_id}/actions/siprec_start`\n\nOptional: `client_state` (string), `connector_name` (string), `include_metadata_custom_headers` (boolean), `secure` (boolean), `session_timeout_secs` (integer), `sip_transport` (enum: udp, tcp, tls), `siprec_track` (enum: inbound_track, outbound_track, both_tracks)\n\n```go\n\tresponse, err := client.Calls.Actions.StartSiprec(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionStartSiprecParams{},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## SIPREC stop\n\nStop SIPREC session. **Expected Webhooks:**\n\n- `siprec.stopped`\n\n`POST /calls/{call_control_id}/actions/siprec_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```go\n\tresponse, err := client.Calls.Actions.StopSiprec(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionStopSiprecParams{},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## Noise Suppression Start (BETA)\n\n`POST /calls/{call_control_id}/actions/suppression_start`\n\nOptional: `client_state` (string), `command_id` (string), `direction` (enum: inbound, outbound, both), `noise_suppression_engine` (enum: Denoiser, DeepFilterNet, Krisp, AiCoustics), `noise_suppression_engine_config` (object)\n\n```go\n\tresponse, err := client.Calls.Actions.StartNoiseSuppression(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionStartNoiseSuppressionParams{},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## Noise Suppression Stop (BETA)\n\n`POST /calls/{call_control_id}/actions/suppression_stop`\n\nOptional: `client_state` (string), `command_id` (string)\n\n```go\n\tresponse, err := client.Calls.Actions.StopNoiseSuppression(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionStopNoiseSuppressionParams{},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n## Switch supervisor role\n\nSwitch the supervisor role for a bridged call. This allows switching between different supervisor modes during an active call\n\n`POST /calls/{call_control_id}/actions/switch_supervisor_role` — Required: `role`\n\n```go\n\tresponse, err := client.Calls.Actions.SwitchSupervisorRole(\n\t\tcontext.Background(),\n\t\t\"call_control_id\",\n\t\ttelnyx.CallActionSwitchSupervisorRoleParams{\n\t\t\tRole: telnyx.CallActionSwitchSupervisorRoleParamsRoleBarge,\n\t\t},\n\t)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"%+v\\n\", response.Data)\n```\n\nReturns: `result` (string)\n\n---\n\n## Webhooks\n\n### Webhook Verification\n\nTelnyx signs webhooks with Ed25519. Each request includes `telnyx-signature-ed25519`\nand `telnyx-timestamp` headers. Always verify signatures in production:\n\n```go\n// In your webhook handler:\nfunc handleWebhook(w http.ResponseWriter, r *http.Request) {\n  body, _ := io.ReadAll(r.Body)\n  event, err := client.Webhooks.Unwrap(body, r.Header)\n  if err != nil {\n    http.Error(w, \"Invalid signature\", http.StatusBadRequest)\n    return\n  }\n  // Signature valid — event is the parsed webhook payload\n  fmt.Println(\"Received event:\", event.Data.EventType)\n  w.WriteHeader(http.StatusOK)\n}\n```\n\nThe following webhook events are sent to your configured webhook URL.\nAll webhooks include `telnyx-timestamp` and `telnyx-signature-ed25519` headers for Ed25519 signature verification. Use `client.webhooks.unwrap()` to verify.\n\n| Event | Description |\n|-------|-------------|\n| `callConversationEnded` | Call Conversation Ended |\n| `callConversationInsightsGenerated` | Call Conversation Insights Generated |\n| `callDtmfReceived` | Call Dtmf Received |\n| `callMachineDetectionEnded` | Call Machine Detection Ended |\n| `callMachineGreetingEnded` | Call Machine Greeting Ended |\n| `callMachinePremiumDetectionEnded` | Call Machine Premium Detection Ended |\n| `callMachinePremiumGreetingEnded` | Call Machine Premium Greeting Ended |\n| `callReferCompleted` | Call Refer Completed |\n| `callReferFailed` | Call Refer Failed |\n| `callReferStarted` | Call Refer Started |\n| `callSiprecFailed` | Call Siprec Failed |\n| `callSiprecStarted` | Call Siprec Started |\n| `callSiprecStopped` | Call Siprec Stopped |\n\n### Webhook payload fields\n\n**`callConversationEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.conversation.ended | The type of event being delivered. |\n| `data.id` | uuid | Unique identifier for the event. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.created_at` | date-time | Timestamp when the event was created in the system. |\n| `data.payload.assistant_id` | string | Unique identifier of the assistant involved in the call. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call leg. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session (group of related call legs). |\n| `data.payload.client_state` | string | Base64-encoded state received from a command. |\n| `data.payload.calling_party_type` | enum: pstn, sip | The type of calling party connection. |\n| `data.payload.conversation_id` | string | ID unique to the conversation or insight group generated for the call. |\n| `data.payload.duration_sec` | integer | Duration of the conversation in seconds. |\n| `data.payload.from` | string | The caller's number or identifier. |\n| `data.payload.to` | string | The callee's number or SIP address. |\n| `data.payload.llm_model` | string | The large language model used during the conversation. |\n| `data.payload.stt_model` | string | The speech-to-text model used in the conversation. |\n| `data.payload.tts_provider` | string | The text-to-speech provider used in the call. |\n| `data.payload.tts_model_id` | string | The model ID used for text-to-speech synthesis. |\n| `data.payload.tts_voice_id` | string | Voice ID used for TTS. |\n\n**`callConversationInsightsGenerated`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.conversation_insights.generated | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.calling_party_type` | enum: pstn, sip | The type of calling party connection. |\n| `data.payload.insight_group_id` | string | ID that is unique to the insight group being generated for the call. |\n| `data.payload.results` | array[object] | Array of insight results being generated for the call. |\n\n**`callDtmfReceived`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.dtmf.received | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Identifies the type of resource. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.digit` | string | The received DTMF digit or symbol. |\n\n**`callMachineDetectionEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.detection.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: human, machine, not_sure | Answering machine detection result. |\n\n**`callMachineGreetingEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.greeting.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: beep_detected, ended, not_sure | Answering machine greeting ended result. |\n\n**`callMachinePremiumDetectionEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.premium.detection.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: human_residence, human_business, machine, silence, fax_detected, not_sure | Premium Answering Machine Detection result. |\n\n**`callMachinePremiumGreetingEnded`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.machine.premium.greeting.ended | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n| `data.payload.result` | enum: beep_detected, no_beep_detected | Premium Answering Machine Greeting Ended result. |\n\n**`callReferCompleted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.completed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callReferFailed`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.failed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callReferStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: call.refer.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Unique ID for controlling the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.from` | string | Number or SIP URI placing the call. |\n| `data.payload.sip_notify_response` | integer | SIP NOTIFY event status for tracking the REFER attempt. |\n| `data.payload.to` | string | Destination number or SIP URI of the call. |\n\n**`callSiprecFailed`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the resource. |\n| `data.event_type` | enum: siprec.failed | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.failure_cause` | string | Q850 reason why siprec session failed. |\n\n**`callSiprecStarted`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: siprec.started | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n\n**`callSiprecStopped`**\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.record_type` | enum: event | Identifies the type of the resource. |\n| `data.event_type` | enum: siprec.stopped | The type of event being delivered. |\n| `data.id` | uuid | Identifies the type of resource. |\n| `data.occurred_at` | date-time | ISO 8601 datetime of when the event occurred. |\n| `data.payload.call_control_id` | string | Call ID used to issue commands via Call Control API. |\n| `data.payload.connection_id` | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |\n| `data.payload.call_leg_id` | string | ID that is unique to the call and can be used to correlate webhook events. |\n| `data.payload.call_session_id` | string | ID that is unique to the call session and can be used to correlate webhook events. |\n| `data.payload.client_state` | string | State received from a command. |\n| `data.payload.hangup_cause` | string | Q850 reason why the SIPREC session was stopped. |","tags":["telnyx","voice","advanced","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-voice-advanced-go","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-go","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (23,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:50.713Z","embedding":null,"createdAt":"2026-04-18T22:08:13.856Z","updatedAt":"2026-04-22T00:54:50.713Z","lastSeenAt":"2026-04-22T00:54:50.713Z","tsv":"'/actions/ai_assistant_join':193 '/actions/client_state_update':250 '/actions/send_dtmf':312 '/actions/siprec_start':369 '/actions/siprec_stop':437 '/actions/suppression_start':475 '/actions/suppression_stop':531 '/actions/switch_supervisor_role':587 '/calls':189,246,308,365,433,471,527,583 '/team-telnyx/telnyx-go':16,25 '/team-telnyx/telnyx-go/option':28 '1www2wabcdw9':335 '401':66,137 '403':141 '404':144 '422':62,94,148 '429':59,104,154 '8601':812,1064,1225,1365,1514,1665,1821,1973,2121,2269,2414,2543,2663 'abc123':216 'abc123def456':221 'activ':580 'add':165 'addit':180 'address':966 'advanc':4,8 'agf2zsbhig5py2ugzgf5id1d':264 'ai':162,171,186 'aicoust':495 'allow':572 'alreadi':42 'alway':67,633 'answer':1473,1623,1780,1931 'api':34,50,119,139,858,1084,1245,1385,1534,1685,1841,2434,2563,2683 'apierr':85,90 'apierr.error':125 'apierr.statuscode':92,124 'app':864,1090,1391,1540,1691,1847,2034,2182,2330,2440,2569,2689 'array':1177,1179 'assist':163,172,840 'associ':303 'assum':39 'attempt':2073,2221,2369 'authent':64 'backoff':112,160 'base64':907 'base64-encoded':906 'bash':11 'beep':1618,1925,1928 'beta':469,525 'bodi':649,655 'boolean':381,383 'bridg':569 'bring':178 'busi':1772 'call':51,181,190,210,247,259,296,309,330,366,408,434,450,472,506,528,544,570,581,584,595,714,718,723,727,732,737,743,749,753,757,761,765,769,844,849,856,862,873,884,896,901,923,940,1003,1075,1082,1088,1099,1110,1129,1156,1175,1187,1236,1243,1264,1283,1309,1319,1376,1383,1389,1400,1411,1430,1456,1466,1525,1532,1538,1549,1560,1579,1605,1615,1676,1683,1689,1700,1711,1730,1756,1766,1832,1839,1845,1856,1867,1886,1912,1922,1989,2000,2019,2032,2043,2060,2083,2137,2148,2167,2180,2191,2208,2231,2285,2296,2315,2328,2339,2356,2379,2425,2432,2438,2449,2460,2479,2554,2561,2567,2578,2589,2608,2674,2681,2687,2698,2709,2728 'call.conversation.ended':792 'call.conversation_insights.generated':1044 'call.dtmf.received':1205 'call.machine.detection.ended':1345 'call.machine.greeting.ended':1494 'call.machine.premium.detection.ended':1645 'call.machine.premium.greeting.ended':1801 'call.refer.completed':1953 'call.refer.failed':2101 'call.refer.started':2249 'callconversationend':713,775 'callconversationinsightsgener':717,1027 'calldtmfreceiv':722,1188 'calle':961 'caller':953 'callmachinedetectionend':726,1328 'callmachinegreetingend':731,1477 'callmachinepremiumdetectionend':736,1628 'callmachinepremiumgreetingend':742,1784 'callrefercomplet':748,1936 'callreferfail':752,2084 'callreferstart':756,2232 'callsiprecfail':760,2380 'callsiprecstart':764,2506 'callsiprecstop':768,2626 'case':93,103 'caus':2498,2747 'check':98,130,151 'client':29,40,199,240,243,252,316,371,439,477,533 'client.calls.actions.joinaiassistant':208 'client.calls.actions.senddtmf':328 'client.calls.actions.startnoisesuppression':504 'client.calls.actions.startsiprec':406 'client.calls.actions.stopnoisesuppression':542 'client.calls.actions.stopsiprec':448 'client.calls.actions.switchsupervisorrole':593 'client.calls.actions.updateclientstate':257 'client.messages.send':78 'client.webhooks.unwrap':654,708 'clientstat':263 'code':72,136 'command':176,202,306,319,442,480,536,854,913,1080,1146,1241,1300,1381,1447,1530,1596,1681,1747,1837,1903,2051,2199,2347,2430,2496,2559,2625,2679,2745 'common':134 'complet':751 'config':499 'configur':354,688 'connect':131,868,925,1094,1158,1395,1544,1695,1851,2038,2186,2334,2444,2573,2693 'connector':357,374 'context':20 'context.background':209,258,329,407,449,505,543,594 'control':191,211,248,260,310,331,367,409,435,451,473,507,529,545,585,596,846,857,863,1072,1083,1089,1233,1244,1373,1384,1390,1522,1533,1539,1673,1684,1690,1829,1840,1846,1981,1987,2033,2129,2135,2181,2277,2283,2329,2422,2433,2439,2551,2562,2568,2671,2682,2688 'convers':164,173,187,195,234,715,719,933,947,977,990 'conversationid':214 'correl':1116,1136,1270,1290,1417,1437,1566,1586,1717,1737,1873,1893,2006,2026,2154,2174,2302,2322,2466,2486,2595,2615,2715,2735 'creat':829 'ctx':79 'custom':379 'd':121 'data.created':819 'data.event':789,1041,1202,1342,1491,1642,1798,1950,2098,2246,2391,2520,2640 'data.id':799,1051,1212,1352,1501,1652,1808,1960,2108,2256,2401,2530,2650 'data.occurred':806,1058,1219,1359,1508,1659,1815,1967,2115,2263,2408,2537,2657 'data.payload.assistant':833 'data.payload.call':845,874,886,1071,1100,1119,1232,1254,1273,1372,1401,1420,1521,1550,1569,1672,1701,1720,1828,1857,1876,1980,1990,2009,2128,2138,2157,2276,2286,2305,2421,2450,2469,2550,2579,2598,2670,2699,2718 'data.payload.calling':914,1147 'data.payload.client':903,1139,1293,1440,1589,1740,1896,2044,2192,2340,2489,2618,2738 'data.payload.connection':859,1085,1246,1386,1535,1686,1842,2029,2177,2325,2435,2564,2684 'data.payload.conversation':926 'data.payload.digit':1320 'data.payload.duration':941 'data.payload.failure':2497 'data.payload.from':950,1301,1448,1597,1748,1904,2052,2200,2348 'data.payload.hangup':2746 'data.payload.insight':1159 'data.payload.llm':967 'data.payload.result':1467,1616,1767,1923 'data.payload.results':1176 'data.payload.sip':2061,2209,2357 'data.payload.stt':978 'data.payload.to':958,1310,1457,1606,1757,1913,2074,2222,2370 'data.payload.tts':991,1004,1018 'data.record':779,1031,1192,1332,1481,1632,1788,1940,2088,2236,2384,2510,2630 'date':809,822,1061,1222,1362,1511,1662,1818,1970,2118,2266,2411,2540,2660 'date-tim':808,821,1060,1221,1361,1510,1661,1817,1969,2117,2265,2410,2539,2659 'datetim':813,1065,1226,1366,1515,1666,1822,1974,2122,2270,2415,2544,2664 'deepfilternet':493 'default':117 'deliv':798,1050,1211,1351,1500,1651,1807,1959,2107,2255,2400,2529,2649 'denois':492 'descript':712,778,1030,1191,1331,1480,1631,1787,1939,2087,2235,2383,2509,2629 'destin':1312,1459,1608,1759,1915,2076,2224,2372 'detect':729,740,1475,1619,1776,1782,1926,1929 'differ':575 'digit':314,334,1325 'direct':483 'dtmf':278,280,285,724,1324 'durat':322,944 'ed25519':620,627,701,704 'els':126 'encod':908 'end':293,716,730,735,741,747,1620,1626,1934 'engin':490,498 'enum':390,396,484,491,781,791,917,1033,1043,1150,1194,1204,1334,1344,1468,1483,1493,1617,1634,1644,1768,1790,1800,1924,1942,1952,2090,2100,2238,2248,2386,2393,2512,2522,2632,2642 'err':77,82,89,207,225,228,256,266,269,327,337,340,405,413,416,447,455,458,503,511,514,541,549,552,592,602,605,653,658 'error':47,56,61,65,69,75,97,120,129,135,150 'errors.as':88 'event':652,668,676,683,711,782,796,805,817,827,1034,1048,1069,1118,1138,1195,1209,1230,1272,1292,1335,1349,1370,1419,1439,1484,1498,1519,1568,1588,1635,1649,1670,1719,1739,1791,1805,1826,1875,1895,1943,1957,1978,2008,2028,2067,2091,2105,2126,2156,2176,2215,2239,2253,2274,2304,2324,2363,2387,2398,2419,2468,2488,2513,2527,2548,2597,2617,2633,2647,2668,2717,2737 'event.data.eventtype':677 'exampl':37 'exist':170 'expect':297,359,429 'exponenti':111,159 'fail':53,755,763,2505 'fax':1775 'field':100,152,774,776,1028,1189,1329,1478,1629,1785,1937,2085,2233,2381,2507,2627 'fmt':21 'fmt.printf':118,229,270,341,417,459,515,553,606 'fmt.println':95,113,127,674 'follow':681 'format':102,153 'former':866,1092,1393,1542,1693,1849,2036,2184,2332,2442,2571,2691 'found':147 'func':643 'generat':721,937,1172,1184 'get':13 'github.com':15,24,27 'github.com/team-telnyx/telnyx-go':14,23 'github.com/team-telnyx/telnyx-go/option':26 'go':5,9,12,18,73,205,254,325,403,445,501,539,590,638 'greet':734,746,1625,1933 'group':898,936,1160,1170 'handl':48,68 'handler':642 'handlewebhook':644 'header':380,632,702 'heard':289 'http.error':660 'http.request':648 'http.responsewriter':646 'http.statusbadrequest':664 'http.statusok':679 'human':1469,1769,1771 'id':192,196,203,212,219,235,249,261,311,320,332,368,410,436,443,452,474,481,508,530,537,546,586,597,834,847,850,860,865,869,876,878,888,890,927,929,1006,1010,1020,1023,1073,1076,1086,1091,1095,1102,1104,1121,1123,1161,1163,1234,1237,1247,1256,1258,1275,1277,1374,1377,1387,1392,1396,1403,1405,1422,1424,1523,1526,1536,1541,1545,1552,1554,1571,1573,1674,1677,1687,1692,1696,1703,1705,1722,1724,1830,1833,1843,1848,1852,1859,1861,1878,1880,1982,1985,1992,1994,2011,2013,2030,2035,2039,2130,2133,2140,2142,2159,2161,2178,2183,2187,2278,2281,2288,2290,2307,2309,2326,2331,2335,2423,2426,2436,2441,2445,2452,2454,2471,2473,2552,2555,2565,2570,2574,2581,2583,2600,2602,2672,2675,2685,2690,2694,2701,2703,2720,2722 'identifi':783,802,837,957,1035,1053,1196,1214,1249,1336,1354,1485,1503,1636,1654,1792,1810,1944,1962,2092,2110,2240,2258,2388,2403,2514,2532,2634,2652 'import':19,74 'inbound':397,485 'includ':377,623,693 'initi':43 'insight':720,935,1169,1181 'instal':10 'insuffici':142 'int32':324 'integ':387,943,2064,2212,2360 'invalid':138,662 'involv':841 'io.readall':650 'iso':811,1063,1224,1364,1513,1664,1820,1972,2120,2268,2413,2542,2662 'issu':853,1079,1240,1380,1529,1680,1836,2429,2558,2678 'join':161 'key':35,140 'krisp':494 'languag':972 'larg':971 'leg':182,284,875,885,902,1101,1255,1402,1551,1702,1858,1991,2139,2287,2451,2580,2700 'limit':58,106,115,156 'log.fatal':227,268,339,415,457,513,551,604 'machin':728,733,738,744,1470,1474,1624,1773,1781,1932 'metadata':378 'milli':323 'mode':577 'model':968,973,979,986,1005,1009 'n':123,231,272,343,419,461,517,555,608 'name':375 'network':55,128 'nil':83,226,267,338,414,456,512,550,603,659 'nois':466,488,496,522 'notifi':2062,2066,2210,2214,2358,2362 'number':955,963,1303,1313,1450,1460,1599,1609,1750,1760,1906,1916,2054,2077,2202,2225,2350,2373 'object':500,1178 'occur':818,1070,1231,1371,1520,1671,1827,1979,2127,2275,2420,2549,2669 'option':198,315,370,438,476,532 'option.withapikey':31 'os':22 'os.getenv':32 'outbound':399,486 'param':80 'pars':671 'parti':915,924,1148,1157 'particip':167,197,217 'payload':673,773 'permiss':143 'place':1307,1454,1603,1754,1910,2058,2206,2354 'post':188,307,364,432,470,526,582 'premium':739,745,1779,1930 'product':71,637 'provid':992,999 'pstn':918,1151 'put':245 'q850':2500,2749 'r':647 'r.body':651 'r.header':656 'rate':57,105,114,155 'reason':2501,2750 'receiv':675,725,910,1143,1297,1323,1444,1593,1744,1900,2048,2196,2344,2493,2622,2742 'refer':750,754,758,2072,2220,2368 'relat':900 'request':622 'requir':99,194,251,313,588 'resid':1770 'resourc':145,788,1040,1057,1201,1218,1253,1341,1358,1490,1507,1641,1658,1797,1814,1949,1966,2097,2114,2245,2262,2390,2407,2519,2536,2639,2656 'respons':206,255,326,404,446,502,540,591,2063,2211,2359 'response.data':232,273,344,420,462,518,556,609 'result':76,237,275,346,422,464,520,558,611,1182,1476,1627,1783,1935 'retri':109,116,133,157 'return':233,274,345,421,463,519,557,610,665 'role':222,562,566,589,599 'run':185 'sec':386,942 'second':949 'secur':382 'send':277,279 'sent':685 'session':352,384,428,887,897,1120,1130,1274,1284,1421,1431,1570,1580,1721,1731,1877,1887,2010,2020,2158,2168,2306,2316,2470,2480,2504,2599,2609,2719,2729,2754 'setup':17 'shown':45 'sign':617 'signatur':626,635,663,666,700,705 'silenc':1774 'sip':388,919,965,1152,1305,1315,1452,1462,1601,1611,1752,1762,1908,1918,2056,2065,2079,2204,2213,2227,2352,2361,2375 'siprec':348,351,356,394,424,427,762,766,770,2503,2753 'siprec.failed':363,2394 'siprec.started':361,2523 'siprec.stopped':362,431,2643 'skill' 'skill-telnyx-voice-advanced-go' 'source-team-telnyx' 'speech':983,998,1016 'speech-to-text':982 'srs':358 'start':349,350,468,759,767 'state':200,241,244,253,317,372,440,478,534,904,909,1140,1142,1294,1296,1441,1443,1590,1592,1741,1743,1897,1899,2045,2047,2193,2195,2341,2343,2490,2492,2619,2621,2739,2741 'status':2068,2216,2364 'stop':425,426,524,771,2756 'string':201,204,238,276,318,321,347,373,376,423,441,444,465,479,482,521,535,538,559,612,835,848,861,877,889,905,928,951,959,969,980,993,1007,1021,1074,1087,1103,1122,1141,1162,1235,1248,1257,1276,1295,1302,1311,1321,1375,1388,1404,1423,1442,1449,1458,1524,1537,1553,1572,1591,1598,1607,1675,1688,1704,1723,1742,1749,1758,1831,1844,1860,1879,1898,1905,1914,1983,1993,2012,2031,2046,2053,2075,2131,2141,2160,2179,2194,2201,2223,2279,2289,2308,2327,2342,2349,2371,2424,2437,2453,2472,2491,2499,2553,2566,2582,2601,2620,2673,2686,2702,2721,2740,2748 'supervisor':561,565,576 'suppress':467,489,497,523 'sure':1472,1622,1778 'switch':91,560,563,573 'symbol':1327 'synthesi':1017 'system':832 'tcp':392 'telnyx':2,6,33,616,625,630,695,699,867,1093,1394,1543,1694,1850,2037,2185,2333,2443,2572,2692 'telnyx-signature-ed25519':624,698 'telnyx-timestamp':629,694 'telnyx-voice-advanced-go':1 'telnyx.callactionjoinaiassistantparams':213 'telnyx.callactionjoinaiassistantparamsparticipant':218 'telnyx.callactionsenddtmfparams':333 'telnyx.callactionstartnoisesuppressionparams':509 'telnyx.callactionstartsiprecparams':411 'telnyx.callactionstopnoisesuppressionparams':547 'telnyx.callactionstopsiprecparams':453 'telnyx.callactionswitchsupervisorroleparams':598 'telnyx.callactionswitchsupervisorroleparamsrolebarge':600 'telnyx.callactionupdateclientstateparams':262 'telnyx.error':86 'telnyx.newclient':30 'text':985,996,1014 'text-to-speech':995,1013 'time':810,823,1062,1223,1363,1512,1663,1819,1971,2119,2267,2412,2541,2661 'timeout':385 'timestamp':631,696,824 'tls':393 'tone':281,286 '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':395,398,400,402,2070,2218,2366 'transport':389 'tts':1026 'type':777,780,785,790,794,916,921,1029,1032,1037,1042,1046,1055,1149,1154,1190,1193,1198,1203,1207,1216,1251,1330,1333,1338,1343,1347,1356,1479,1482,1487,1492,1496,1505,1630,1633,1638,1643,1647,1656,1786,1789,1794,1799,1803,1812,1938,1941,1946,1951,1955,1964,2086,2089,2094,2099,2103,2112,2234,2237,2242,2247,2251,2260,2382,2385,2392,2396,2405,2508,2511,2516,2521,2525,2534,2628,2631,2636,2641,2645,2654 'udp':391 'uniqu':801,836,881,893,930,1107,1126,1166,1261,1280,1408,1427,1557,1576,1708,1727,1864,1883,1984,1997,2016,2132,2145,2164,2280,2293,2312,2457,2476,2586,2605,2706,2725 'updat':239,242 'uri':1306,1316,1453,1463,1602,1612,1753,1763,1909,1919,2057,2080,2205,2228,2353,2376 'url':690 'use':174,707,851,870,974,987,1000,1011,1024,1077,1096,1114,1134,1238,1268,1288,1378,1397,1415,1435,1527,1546,1564,1584,1678,1697,1715,1735,1834,1853,1871,1891,2004,2024,2040,2152,2172,2188,2300,2320,2336,2427,2446,2464,2484,2556,2575,2593,2613,2676,2695,2713,2733 'user':223 'uuid':236,800,1052,1213,1353,1502,1653,1809,1961,2109,2257,2402,2531,2651 'v':230,271,342,418,460,516,554,607 'v3':215,220 'valid':60,96,149,667 'var':84 'verif':615,706 'verifi':634,710 'via':855,1081,1242,1382,1531,1682,1838,2431,2560,2680 'voic':3,7,1019,1022 'w':645,661 'w.writeheader':678 'wait':107 'webhook':298,302,360,430,613,614,618,641,672,682,689,692,772,1117,1137,1271,1291,1418,1438,1567,1587,1718,1738,1874,1894,2007,2027,2155,2175,2303,2323,2467,2487,2596,2616,2716,2736","prices":[{"id":"9a078b2a-9a02-4a4a-807b-550bbe177646","listingId":"993dee31-9153-4401-ac10-f675bacedfce","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:13.856Z"}],"sources":[{"listingId":"993dee31-9153-4401-ac10-f675bacedfce","source":"github","sourceId":"team-telnyx/ai/telnyx-voice-advanced-go","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-go","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:13.856Z","lastSeenAt":"2026-04-22T00:54:50.713Z"}],"details":{"listingId":"993dee31-9153-4401-ac10-f675bacedfce","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-voice-advanced-go","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":"4da337461392efc9be8571bc0d15186b2825a6f8","skill_md_path":"skills/telnyx-voice-advanced-go/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-advanced-go"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-voice-advanced-go","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-voice-advanced-go"},"updatedAt":"2026-04-22T00:54:50.713Z"}}