AI 呼入
通过 SIP Header 传入自定义参数,实现个性化 AI 呼入接入。
3.1 参数说明
AI 呼入支持通过 SIP Header 传入自定义参数,系统接收后在提示词中替换对应变量,实现个性化呼入体验。参数需提前在平台配置好字段定义,以下为示例(实际字段以平台配置为准):
| 参数 KEY | 参数名称 | 说明 | 是否必须 |
|---|---|---|---|
| user_phone | 用户手机号 | 用户手机号 | ✓ |
| variable3 | 用户的姓名 | 用户的姓名 | ✓ |
| variable10 | 用户欠费的金额 | 用户欠费的金额 | ✓ |
| variable2 | 余额50需充值金额 | 余额50需充值金额 | ✓ |
| variable4 | 余额一百需充值金额 | 余额一百需充值金额 | ✓ |
| variable9 | 用户欠费的手机号 | 用户欠费的手机号 | ✓ |
3.2 SIP Header 说明
| Header | 必填 | 说明 |
|---|---|---|
sip_h_X-BotId | ✓ | AI 数字员工唯一标识(即 1.2 获取项目下数字员工列表 中获取的 botId) |
sip_h_X-Call-Params | ✓ | 呼入参数,JSON 对象经 Base64 编码后的字符串 |
sip_h_X-Call-ID | ✓ | 本次呼入的唯一标识,全局唯一;通话结束后可凭此 ID 通过回调或查询接口获取结果 |
origination_uuid | ✓ | 发起方 UUID,由贵方外呼系统生成 |
3.3 参数编码
将所有参数组成 JSON 对象,整体做 Base64 编码后放入 sip_h_X-Call-Params:
function encodeCallParams(params) {
return Buffer.from(JSON.stringify(params)).toString('base64')
}
const encoded = encodeCallParams({
user_phone: "18888888888",
variable3: "张三",
variable10: "150.00",
variable2: "200.00",
variable4: "250.00",
variable9: "18811111111",
})
// eyJ1c2VyX3Bob25lIjoiMTg4ODg4ODg4ODgiLCJ2YXJpYWJsZTMiOiLlvKDkuIkiLCJ2YXJpYWJsZTEwIjoiMTUwLjAwIiwidmFyaWFibGUyIjoiMjAwLjAwIiwidmFyaWFibGU0IjoiMjUwLjAwIiwidmFyaWFibGU5IjoiMTg4MTExMTExMTEifQ==
3.4 FreeSWITCH 转发示例
originate {
ignore_early_media=true,
origination_uuid=001
} user/1001 &bridge({
sip_h_X-BotId=85488662,
sip_h_X-Call-Params=eyJ1c2VyX3Bob25lIjoiMTg4ODg4ODg4ODgiLCJ2YXJpYWJsZTMiOiLlvKDkuIkiLCJ2YXJpYWJsZTEwIjoiMTUwLjAwIiwidmFyaWFibGUyIjoiMjAwLjAwIiwidmFyaWFibGU0IjoiMjUwLjAwIiwidmFyaWFibGU5IjoiMTg4MTExMTExMTEifQ==,
sip_h_X-Call-ID=callid_20250720_083123,
ignore_early_media=false,
origination_uuid=001
} sofia/external/sip:85488662@115.190.223.167:5080)
sip_h_X-Call-ID建议格式:callid_{yyyyMMdd}_{HHmmss}_{随机串},通话结束后可凭此 ID 通过回调接收或主动查询结果。
话单回调:通话结束后系统会主动向业务服务器推送话单(含通话记录、意向结果、对话日志),推送地址/签名规则/请求体等说明见 Webhook 参考。