腾讯云语音

通过腾讯云语音服务(VMS · SendTtsVoice)给值班人员打电话播报告警,新人可按步骤直接完成配置。

概述

腾讯云语音通知媒介利用腾讯云 VMS(语音消息服务) · SendTtsVoice API,把告警以 TTS(文字转语音)方式自动拨打到值班人员手机。用于对时效性要求最高的严重告警——电话比短信、IM 更能把人叫醒。

  • 适用场景:夜间/节假日的 P0 级告警、需要强制触达的故障通知。
  • 你需要准备:
    1. 一个已实名认证、开通语音消息 VMS 的腾讯云账号;
    2. 腾讯云 SecretId / SecretKey(建议用 CAM 子账号);
    3. 已审核通过的 语音模板 TemplateId
    4. 已创建的 VoiceSdkAppid(语音应用 ID,VMS 控制台里创建)。
  • 整个配置分三步:①在腾讯云开通 VMS 并申请语音模板 → ②在夜莺新建腾讯云语音通知媒介 → ③用户填手机号、通知规则里选接收人

腾讯云 VMS 模板/签名需要工单审核,周期 1~3 个工作日。

第一步:在腾讯云控制台准备资料

  1. 登录 腾讯云语音消息控制台,首次使用需开通服务。
  2. 创建语音应用:进入 应用管理 → 创建应用,得到 VoiceSdkAppid(7 位数字)。
  3. 创建语音模板
    • 应用管理 → 你的应用 → 正文模板,申请一个 TTS 模板;
    • 关键:模板只能有一个变量 {1},因为夜莺预置的请求体里写的是 TemplateParamSet = ["{{$tpl.content}}"]——只传了一个值,对应模板里的 {1}
    • 把固定话术写在模板里,让 {1} 只放变化部分:
      您有一条告警,{1},请及时处理
      
      然后到夜莺 → 消息模板 → 复制一份 Tencent Voice,把 content 字段改短(例如改成 {{$event.RuleName}})。
    • 提交审核,通过后得到 TemplateId(一串数字,如 1234567)。
  4. CAM 访问管理 · 子账号 创建一个子账号,授予策略 QcloudVMSFullAccess(或等效权限),记下 SecretId / SecretKey(仅创建时显示一次)。

第二步:在夜莺新建腾讯云语音通知媒介

  1. 登录夜莺 → 左侧菜单 通知 → 通知媒介

  2. 在左侧类型面板中点击 腾讯云语音,进入新建页面(URL /notification-channels/add?ident=tx-voice)。

  3. 填写基础信息:

    腾讯云语音基础配置

    区块 字段 是否需要改 说明
    基础配置 名称 需要 例如 腾讯云语音
    变量配置 联系方式 保持默认 Phone 发送时 $sendto 取用户的手机号
    HTTP 配置 URL 保持默认 https://vms.tencentcloudapi.com(VMS 固定域名)
    HTTP 配置 请求方法 POST
  4. 请求头部分,除了常规的 Content-Type / Host 外,腾讯云特有的鉴权字段也都放在这里——这是唯一需要你改的几个

    腾讯云语音请求头

    参数名 是否需要改
    Content-Type application/json 保持默认
    Host vms.tencentcloudapi.com 保持默认
    Secret_ID 你的 SecretId 需要改,第一步 CAM 拿到的 AKID
    Secret_Key 你的 SecretKey 需要改
    Service vms 保持默认
    X-TC-Action SendTtsVoice 保持默认
    X-TC-Region ap-beijing 按语音应用所在地域改,常见 ap-guangzhou / ap-beijing / ap-nanjing
    X-TC-Version 2020-09-02 保持默认(API 版本)

    说明:Secret_ID / Secret_Key 虽然是填在"请求头"里,但夜莺后端在发送前会把它们取出来计算 TC3-HMAC-SHA256 签名,并从实际请求头中移除——不会明文传给腾讯云。

  5. 滚到"请求体",默认模板已经帮你写好:

    {
      "CalledNumber": "+86{{ $sendto }}",
      "TemplateId": "需要改为实际的模板id",
      "TemplateParamSet": ["{{$tpl.content}}"],
      "VoiceSdkAppid": "需要改为实际的appid"
    }
    

    把其中的占位符替换成你的值:

    字段 说明
    CalledNumber +86{{ $sendto }} 保持默认——必须带 +86 前缀(国际 E.164 格式)
    TemplateId 你的模板 ID 第一步审核通过的数字 ID
    TemplateParamSet ["{{$tpl.content}}"] 按模板变量顺序对应一个数组——夜莺默认只传一个值,因此你的腾讯云模板只能有一个 {1}{{$tpl.content}} 来自系统自带的 Tencent Voice 消息模板,默认渲染为 S<级别>{Triggered/Recovered}<规则名>
    VoiceSdkAppid 你的 AppID 第一步创建的 7 位数字
  6. 点击 保存

第三步:用户配置手机号 & 通知规则

  1. 进入 人员组织 → 用户管理,为接电话的用户填写手机号(11 位国内号码,不带 +86 前缀,前缀会由请求体自动拼上)。
  2. 进入 通知 → 通知规则 → 新增
    • 通知媒介:选腾讯云语音媒介;
    • 消息模板:选系统自带的 Tencent Voice——它的 content 字段默认渲染为 S{{$event.Severity}}{{if $event.IsRecovered}}Recovered{{else}}Triggered{{end}}{{$event.RuleName}},例如 S1Triggered CPU使用率超阈值。配合默认请求体 TemplateParamSet = ["{{$tpl.content}}"],这串文本会作为 {1} 的取值发给腾讯云;
    • 注意 {{$tpl.content}} 的长度必须在腾讯云单变量长度限制内(默认 ≤ 30 字符),告警规则名很长时建议复制一份 Tencent Voice 模板改短再用;
    • 接收人 / 接收团队:选目标用户;
    • 适用级别:建议只勾一级(Critical);
    • 保存。
  3. 点击"通知测试",目标手机应在 10 秒内响铃并播报一段 TTS 告警语音。

腾讯云侧计费与配额

  • VMS 按通话时长/条数计费,详见 腾讯云 VMS 定价
  • 对同一手机号有日呼叫次数上限(默认较低),可工单申请调整。
  • 若对方按键(如按 1 认领),腾讯云会回调预留的 URL——夜莺当前默认不接入此回调;需要认领流程可自行实现。

常见问题

Q1:返回 AuthFailure.SignatureFailure

A:Secret_Key 错了,或机器时间漂移过大(TC3 签名对时间敏感,超过 ±5 分钟即判失败)。检查服务器 NTP 时间是否准。

Q2:返回 UnauthorizedOperation / CAM

A:子账号没挂 QcloudVMSFullAccess 策略;或者你用的 SecretId 属于没开通 VMS 的账号。

Q3:返回 FailedOperation.InvalidTemplate / 模板审核未通过?

A:检查 TemplateId 是否写对;登录 VMS 控制台看模板状态是否为"审核通过"。

Q4:返回 FailedOperation.InsufficientBalance

A:账户余额不足。充值或设置充值告警。

Q5:返回 InvalidParameterValue.InvalidCalledNumber

A:CalledNumber 必须是 E.164 格式,国内号码写成 +861XXXXXXXXXX。夜莺的默认模板已经帮你在 {{ $sendto }} 前拼了 +86,别再双写。

Q6:TemplateParamSet 数组长度和模板不匹配会报什么?

A:腾讯云会返回 InvalidParameterValue.TemplateParamSet。请打开 VMS 模板,数一下 {1} {2} {3} 有几个,数组长度要和它相等;并且不能有空串

Q7:多个接收人会怎么调度?

A:SendTtsVoice 单次只呼一个号码,夜莺会按接收人逐一调用。人数多时适当拉大"重试间隔"(例如 500ms)避免触发并发限流。

Q8:我用的是海外账号 / 国际号码?

A:腾讯云国际语音服务(SendCallVoice 等)属于不同产品线,夜莺默认 ident 不覆盖。需要国际语音请在媒介里把 URL 改成国际 endpoint、X-TC-Action 改为对应接口名,并按国际号码格式填 CalledNumber

参考资料

更新时间 2026-04-25

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云