用途
Telnyx Voice Advanced - Go 是 Telnyx 面向 Go 开发者的语音高级呼叫控制技能,基于官方 Go SDK(github.com/team-telnyx/telnyx-go),用于在 Go 应用中实现进阶的呼叫控制与语音处理能力。它面向需要以编程方式操作通话的开发者,例如构建呼叫中心、智能语音助手、通话录音与质检、坐席监控等系统。
主要能力
该技能提供以下呼叫控制操作:
- 发送 DTMF:通过 POST /calls/{call_control_id}/actions/send_dtmf 从当前通话腿发送 DTMF 音,对端可听到。必填参数 digits,可选 client_state、command_id、duration_millis。
- SIPREC 录音:启动 SIPREC 会话(POST /calls/{call_control_id}/actions/siprec_start),将通话录音发送到 SIPREC 连接器配置的 SRS;可配置 connector_name、include_metadata_custom_headers、secure、session_timeout_secs、sip_transport(udp/tcp/tls)、siprec_track(inbound_track/outbound_track/both_tracks)。停止会话使用 POST /calls/{call_control_id}/actions/siprec_stop。
- 噪声抑制(BETA):启动(POST /calls/{call_control_id}/actions/suppression_start)与停止(POST /calls/{call_control_id}/actions/suppression_stop)噪声抑制,可选 direction(inbound/outbound/both)与 noise_suppression_engine(Denoiser、DeepFilterNet、Krisp、AiCoustics)及引擎配置对象。
- 客户端状态更新:通过 PUT /calls/{call_control_id}/actions/client_state_update 更新 client_state,必填 client_state。
- 加入 AI 助手会话:通过 POST /calls/{call_control_id}/actions/ai_assistant_join 将额外通话腿加入正在运行的 AI 助手会话,必填 conversation_id 与 participant(含 ID、Role),可选 client_state、command_id。
- 切换主管角色:通过 POST /calls/{call_control_id}/actions/switch_supervisor_role 在通话中切换主管模式,必填 role。
使用方式
安装:
go get github.com/team-telnyx/telnyx-go
初始化客户端:
import ( "context" "fmt" "os"
"github.com/team-telnyx/telnyx-go" "github.com/team-telnyx/telnyx-go/option" )
client := telnyx.NewClient( option.WithAPIKey(os.Getenv("TELNYX_API_KEY")), )
所有示例均假设 client 已按上述方式初始化。调用示例(发送 DTMF):
response, err := client.Calls.Actions.SendDtmf( context.Background(), "call_control_id", telnyx.CallActionSendDtmfParams{ Digits: "1www2WABCDw9", }, ) if err != nil { log.Fatal(err) } fmt.Printf("%+v\n", response.Data)
错误处理:所有 API 调用可能因网络错误、限流(429)、校验错误(422)或认证错误(401)失败。生产代码应始终处理错误,常见错误码包括 401 无效 API Key、403 权限不足、404 资源不存在、422 校验错误、429 限流(建议指数退避重试)。
Webhook 验证:Telnyx 使用 Ed25519 签名 Webhook,每个请求包含 telnyx-signature-ed25519 与 telnyx-timestamp 头。生产环境应始终验证签名,可使用 client.Webhooks.Unwrap(body, r.Header) 解析并校验事件。
适用场景
- 呼叫中心与坐席管理:主管角色切换、通话监控。
- 智能语音交互:将通话腿加入 AI 助手会话,结合语音识别与合成。
- 通话录音与质检:通过 SIPREC 启停录音会话,配合事件回调处理录音状态。
- 语音质量优化:启用噪声抑制引擎改善通话体验。
- 交互式语音应答:发送 DTMF 与接收 DTMF 事件。
限制
- 噪声抑制功能标注为 BETA。
- 部分操作依赖已配置的 SIPREC 连接器与 SRS。
- 具体计费、价格、平台支持范围与配额等资料暂未提供。
- Webhook 事件类型包括 callConversationEnded、callConversationInsightsGenerated、callDtmfReceived、callMachineDetectionEnded、callMachineGreetingEnded、callMachinePremiumDetectionEnded、callMachinePremiumGreetingEnded、callReferCompleted、callReferFailed、callReferStarted、callSiprecFailed、callSiprecStarted、callSiprecStopped 等,各事件字段详见官方文档。