2025/03/05 10:32:37
事件类型
开通声网消息通知后,声网通知服务器以 HTTPS POST 请求方法向你的服务器发送频道事件通知回调。数据格式为 JSON,字符编码为 UTF-8,签名算法为 HMAC/SHA1 或 HMAC/SHA256。
本页介绍频道事件回调中返回的各事件类型及含义。
请求的 Header
消息通知回调的 header
中包含以下字段:
字段名 | 值 |
---|---|
Content-Type | Application/json |
Agora-Signature | 声网用客户密钥和 HMAC/SHA1 算法生成的签名值。你需要使用客户密钥和 HMAC/SHA1 算法来验证该签名值。详见验证签名。 |
Agora-Signature-V2 | 声网用客户密钥和 HMAC/SHA256 算法生成的签名值。你需要使用客户密钥和 HMAC/SHA256 算法来验证该签名值。详见验证签名。 |
请求的 Body
消息通知回调的请求包体包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
noticeId | String | 通知 ID,标识来自声网业务服务器的一次事件通知。 |
productId | Number | 业务 ID。值为 17 表示对话式 AI 引擎业务。 |
eventType | Number | 通知的事件类型。详见事件类型。 |
notifyMs | Number | 声网消息服务器向你的服务器发送事件通知的 Unix 时间戳 (ms)。通知重试时该值会更新。 |
sid | String | 会话 ID。 |
payload | JSON Object | 通知事件的具体内容。payload 因 eventType 而异,详见事件类型。 |
消息通知回调的请求包体示例:
JSON
{
"sid": "C866467GVJJ54687",
"noticeId": "2000001428:4330:107",
"productId": 17,
"eventType": 101,
"notifyMs": 1611566412672,
"payload": {...}
}
事件类型
声网消息通知服务可以通知对话式 AI 引擎服务中的以下事件:
eventType | event_name | 事件描述 |
---|---|---|
101 | agent joined | 智能体加入频道。 |
102 | agent left | 智能体离开频道。 |
110 | agent error | 智能体错误。 |
101 agent joined
eventType
为 101
表示智能体加入频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
agent_id | String | 智能体 ID。 |
start_ts | Number | 智能体创建的时间戳。 |
channel | String | 智能体所在频道名。 |
payload
示例:
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"channel": "xxxxx"
}
102 agent left
eventType
为 102
表示智能体离开频道,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
agent_id | String | 智能体 ID。 |
start_ts | Number | 智能体创建的时间戳。 |
stop_ts | Number | 智能体离开频道的时间戳。 |
channel | String | 智能体所在频道名。 |
status | String | 智能体状态。 |
message | String | 智能体离开频道的原因。 |
智能体因不同原因离开频道的 payload
示例:
- 手动停止智能体
- 智能体空闲超时
- 智能体出错
- RTC 连接出错
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"stop_ts": 1737111455,
"channel": "xxxxx",
"status": "STOPPED",
"message": "OK"
}
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"stop_ts": 1737111455,
"channel": "xxxxx",
"status": "STOPPED",
"message": "Idle for too long"
}
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"stop_ts": 1737111455,
"channel": "xxxxx",
"status": "FAILED",
"message": "Connecting for too long"
}
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"stop_ts": 1737111455,
"channel": "xxxxx",
"status": "FAILED",
"message": "RTC connection error"
}
110 agent error
eventType
为 110
表示智能体出错,payload
中包含以下字段:
字段 | 数据类型 | 含义 |
---|---|---|
agent_id | String | 智能体 ID。 |
start_ts | Number | 智能体创建的时间戳。 |
channel | String | 智能体所在频道名。 |
turn_id | String | 字幕对话轮次,详见实时字幕 API 参考。 |
errors | Array | 错误信息。包含以下字段:
|
payload
示例:
JSON
{
"agent_id": "1NT29X10YHxxxxxWJOXLYHNYB",
"start_ts": 1737111452,
"channel": "xxxxx",
"turn_id": 2,
"errors": [{"module": "llm", "turn_id":2, "code":503, "message": "Insufficient balance."}],
}