> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stmlink.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> 对外开放的服务端接口有两组前缀，都用同一套鉴权：`/server/v1/...`（SRTC 与 SMeeting 的主接口）和 `/stm/srvapi/v1/...`（SMeeting 的用户体系，服务端极简对接会用到）。鉴权是 app_id + nonce + timestamp + signature 四个请求头，用 app_key 做 HMAC-SHA256 签名，只能从业务方自己的后端调用。除这两组前缀外的接口均为内部接口，不要建议客户调用。
> app_key 是服务端密钥，绝不能出现在客户端代码、前端配置或移动 App 里。客户端加入频道用的 token 必须由业务方后端签发后下发（SRTC 走 `/server/v1/channel/grant`，SMeeting 走 `/stm/srvapi/v1/member/grant`）。
> SRTC 与 SMeeting 是上下两层不同的产品，术语不通用：SRTC 是音视频底座，说「频道 channel」「加入 / 退出」；SMeeting 建在 SRTC 之上，说「房间 room」「会议 meeting」「进入 / 退出」。回答时按用户所在的层用对应术语，不要把「房间」「会议」安到 SRTC 的接口上。
> 同一能力在各端 SDK 里的包名、类名、方法名并不相同。写示例代码时请使用文档中该端自己的 API，不要把一个端的写法套到另一个端上。苹果平台每个产品都有两套 SDK（Swift 原生与 Objective-C），两套 API 不能混用。

# 枚举类型与数据结构

> Windows SMeeting SDK C++ 枚举类型与数据结构参考

## 枚举类型

### StatusCode

| 值      | 名称                         | 说明       |
| ------ | -------------------------- | -------- |
| 0      | OK                         | 成功       |
| 100001 | SystemError                | 系统错误     |
| 100002 | NotInitialized             | 未初始化     |
| 100003 | MediaNotInitialized        | 媒体未初始化   |
| 100004 | ProtocolParsingError       | 协议解析错误   |
| 100005 | Timeout                    | 超时       |
| 100006 | InvalidArgs                | 参数无效     |
| 100007 | Conflict                   | 冲突       |
| 100008 | SdkTokenInvalid            | Token 无效 |
| 100009 | NetError                   | 网络错误     |
| 100010 | MediaNetError              | 媒体网络错误   |
| 100011 | NotFound                   | 未找到      |
| 101000 | SDKFail                    | SDK 失败   |
| 101001 | DeviceFail                 | 设备失败     |
| 101002 | DeviceNoFind               | 设备未找到    |
| 101003 | UserNotFound               | 用户未找到    |
| 101004 | NotDevPrivate              | 无设备权限    |
| 101005 | InvalidOperation           | 无效操作     |
| 101006 | NotSupport                 | 不支持      |
| 101007 | DealBeQuick                | 操作过快     |
| 101008 | MoudelNotSupport           | 模式不支持    |
| 101009 | BeforeSetting              | 需要先设置    |
| 101100 | ChannelJoinError           | 频道加入错误   |
| 101101 | ChannelJoinTimeOut         | 频道加入超时   |
| 101200 | StreamJoinError            | 流加入错误    |
| 101201 | StreamJoinConflict         | 流加入冲突    |
| 101202 | VideoCapturerError         | 视频采集器错误  |
| 101203 | NotFindStreamTrack         | 未找到流轨道   |
| 101204 | ExceedingSpecifiedQuantity | 超出指定数量   |
| 201000 | SDKMeetingFail             | SDK 会议失败 |
| 201001 | MeetingStatusReject        | 会议状态拒绝   |
| 201002 | MeetingHostFail            | 主持人失败    |

### DisconnectReason

| 值  | 名称      | 说明   |
| -- | ------- | ---- |
| -1 | Error   | 错误   |
| 1  | Self    | 主动离开 |
| 2  | Kicked  | 被踢出  |
| 3  | Replace | 被替换  |
| 4  | Timeout | 超时离开 |
| 5  | Destroy | 被销毁  |

### ChatMsgType

| 值 | 名称    | 说明 |
| - | ----- | -- |
| 1 | Text  | 文本 |
| 2 | File  | 文件 |
| 3 | Pic   | 图片 |
| 4 | Sound | 声音 |

### HandupType

| 值 | 名称     | 说明    |
| - | ------ | ----- |
| 1 | Mic    | 举手麦克风 |
| 2 | Camera | 举手摄像头 |
| 3 | Chat   | 举手聊天  |

### UserHandupStep

| 值 | 名称          | 说明   |
| - | ----------- | ---- |
| 1 | Request     | 请求   |
| 2 | Cancel      | 取消   |
| 3 | ConfirmOpen | 确认打开 |
| 4 | RejectOpen  | 拒绝打开 |

### CameraState

| 值 | 名称  | 说明 |
| - | --- | -- |
| 1 | On  | 开启 |
| 2 | Off | 关闭 |

### MicState

| 值 | 名称  | 说明 |
| - | --- | -- |
| 1 | On  | 开启 |
| 2 | Off | 关闭 |

### ShareType

| 值 | 名称         | 说明 |
| - | ---------- | -- |
| 0 | Normal     | 普通 |
| 1 | Screen     | 屏幕 |
| 2 | WhiteBoard | 白板 |

### Role

| 值 | 名称     | 说明    |
| - | ------ | ----- |
| 0 | Member | 普通成员  |
| 1 | Host   | 主持人   |
| 2 | CoHost | 联合主持人 |

### DeviceType

| 值 | 名称      | 说明  |
| - | ------- | --- |
| 1 | Mic     | 麦克风 |
| 2 | Speaker | 扬声器 |
| 3 | Camera  | 摄像头 |

### DeviceStatus

| 值 | 名称     | 说明 |
| - | ------ | -- |
| 2 | NoFail | 正常 |
| 1 | Fail   | 异常 |

### StreamNetLevel

| 值  | 名称           | 说明  |
| -- | ------------ | --- |
| 0  | Good         | 好   |
| -1 | NotGood      | 一般  |
| -2 | Terrible     | 差   |
| -3 | Catastrophic | 灾难性 |

***

## 数据结构

### SMeetingCreateMeetingModel

会议室创建模型：

| 字段                            | 类型                         | 说明                              | 默认值   |
| ----------------------------- | -------------------------- | ------------------------------- | ----- |
| room\_no                      | std::string                | 房间号                             | -     |
| title                         | std::string                | 会议标题                            | -     |
| content                       | std::string                | 会议内容                            | -     |
| password                      | std::string                | 密码                              | -     |
| meeting\_type                 | int                        | 会议类型 (1:临时 2:预约)                | 1     |
| meeting\_mode                 | int                        | 会议模式 (1:普通 2:合成 3:培训 4:培训 5:小组) | 1     |
| plan\_time                    | long long                  | 计划时间 (Unix 时间戳)                 | 0     |
| plan\_dur                     | int                        | 计划时长                            | 0     |
| conferee                      | `std::vector<std::string>` | 与会者列表                           | -     |
| co\_host                      | `std::vector<std::string>` | 联合主持人列表                         | -     |
| maximum                       | int                        | 最大人数                            | 0     |
| end\_type                     | int                        | 结束类型 (0:延长 1:强制结束)              | 1     |
| entry\_mute\_policy           | int                        | 入场静音策略 (1:强制 2:关闭 3:超 6 人静音)    | 3     |
| watermark\_disabled           | bool                       | 是否禁用水印                          | true  |
| screenshot\_disabled          | bool                       | 是否禁用截屏                          | false |
| chat\_disabled                | bool                       | 是否禁用聊天                          | false |
| auto\_record                  | bool                       | 是否自动录制                          | true  |
| attend\_type                  | int                        | 参会类型 (1:允许 3:禁止)                | 1     |
| waiting\_room\_disabled       | bool                       | 是否禁用等候室                         | true  |
| enter\_before\_host\_disabled | bool                       | 是否禁止主持人前进入                      | false |
| parent                        | std::string                | 父会议 ID                          | -     |
| extend\_info                  | std::string                | 扩展信息                            | -     |

### SMeetingMeetingAttachments

会议附件：

| 字段   | 类型          | 说明 |
| ---- | ----------- | -- |
| name | std::string | 名称 |
| key  | std::string | 键  |

### SMeetingResourcesModel

资源模型：

| 字段          | 类型          | 说明     |
| ----------- | ----------- | ------ |
| meeting\_id | std::string | 会议 ID  |
| parent\_id  | std::string | 父资源 ID |
| res\_type   | std::string | 资源类型   |
| res\_key    | std::string | 资源键    |
| res\_name   | std::string | 资源名称   |

### CustomPublishTrack

自定义发布轨道：

| 字段      | 类型          | 说明  |
| ------- | ----------- | --- |
| desc    | std::string | 描述  |
| width   | int         | 宽度  |
| height  | int         | 高度  |
| fps     | int         | 帧率  |
| bitrate | int         | 比特率 |
| encode  | int         | 编码  |
