到门口开放平台open.menkou.com

接口说明 / 门铃会议室

门铃自研会议室 API

面向 App / H5 对接的自研会议室:业务接口走门铃鉴权,媒体层为 SRS 5 WHIP 推流 + WHEP / HTTP-FLV / HLS 拉流。不接第三方 RTC。

开放平台入口与自研站双 Base并存,能力相同:
https://open.menkou.com/api/meeting/{action}(本站反代)
https://meeting.menling.com/api/meeting/{action}(源站)
完整 Markdown:/docs/MEETING-API.md · 源站 meeting.menling.com/MEETING-API.md
千人架构:WEBINAR-1K.md · 本页 §千人研讨会

Base URL

项值
开放平台 APIhttps://open.menkou.com/api/meeting/
自研站 APIhttps://meeting.menling.com/api/meeting/
会议室 H5https://meeting.menling.com/room?id={room_id}
WHIP 推流域https://live.menling.com
WHEP / FLV / HLShttps://zhibo.menling.com

统一响应:

{ "code": 200, "msg": "ok", "data": { } }

code !== 200 为失败(401 未登录、403 无权限/密码错、404 不存在、410 已结束)。

鉴权

门铃号 = uid。调用时带上其一:

推荐:Authorization Bearer

Authorization: Bearer {uid}.{token}

token = md5(uid + "|" + authSecret)。可用 POST /api/meeting/login 用门铃号+密码换取。

联调:Header

X-Doorbell-Uid: 995298414
X-Meeting-Secret: <联调共享密钥,见完整文档>
密钥、密码、JWT secret 勿写入 App 包或公开仓。本文档不含密钥明文;联调密钥向平台运营索取或见内网完整 Markdown。

登录换 Token

POST https://open.menkou.com/api/meeting/login
Content-Type: application/json

{ "doorbell": "10001", "password": "你的密码" }

成功 data 含 uid / token / authorization(可直接作 Bearer)。

媒体模型(必读)

会议室 = 多路独立推流(mesh):每人推一条 meet/{stream},stream = meet_{roomId}_{uid}。App 自己 WHIP 推,其他人 WHEP(或 FLV)拉。v1 信令轮询 userList(建议 2–3s)。

用途URL 形态
自己推流 WHIPhttps://live.menling.com/rtc/v1/whip/?app=meet&stream=meet_{roomId}_{uid}
拉别人 WHEPhttps://zhibo.menling.com/rtc/v1/whep/?app=meet&stream=meet_{roomId}_{对方uid}
备选 HTTP-FLVhttps://zhibo.menling.com/meet/meet_{roomId}_{uid}.flv
备选 HLShttps://zhibo.menling.com/meet/meet_{roomId}_{uid}.m3u8

浏览器 / WebView:getUserMedia → RTCPeerConnection → POST WHIP/WHEP(Content-Type: application/sdp)。可参考 https://zhibo.menling.com/assets/srs/srs.sdk.js。

接口一览

MethodPath(相对 Base)说明
GET/POST/health健康检查
POST/login门铃号登录换 token
POST/token联调签发 token
GET/POST/me当前用户
POST/create创建会议室(主持人)
POST/join加入
GET/POST/list我的会议室列表
GET/POST/userList房内成员 + 各路播流 URL
GET/POST/info房间摘要(可不登录)
POST/exit离开
POST/end主持人结束
POST/kick主持人踢人
POST/block主持人封禁
POST/raiseHand研讨会:观众举手
POST/approveSpeak研讨会:批准连麦升嘉宾
POST/muteAll全员静音
POST/setRole设置角色

角色:role=0 主持人,role=1 嘉宾/参会者,role=2 观众(webinar),role=3 联席主持。创建可传 mode=meeting|webinar(默认 meeting,兼容旧客户端)。

创建 / 加入示例

create

POST https://open.menkou.com/api/meeting/create
Authorization: Bearer 10001.xxxxx
Content-Type: application/json

{ "meeting_theme": "周会", "password": "", "mode": "meeting" }

成功 data 含 room_id、share_code、self.publish.whip、self.play、signaling(轮询 userList)。千人请用 mode=webinar(见下节)。

join

POST https://open.menkou.com/api/meeting/join
Authorization: Bearer 10001.xxxxx
Content-Type: application/json

{ "room_id": 8000041, "password": "" }

也可用 { "share_code": "A1B2C3D4" }。成功含 participants[] 各路 play(WHEP/FLV/HLS)。

userList(信令轮询)

POST https://open.menkou.com/api/meeting/userList
Authorization: Bearer 10001.xxxxx
Content-Type: application/json

{ "room_id": 8000041 }

对 is_self=0 的成员建立 WHEP;自己保持 WHIP。is_end=1 则退出 UI。

App 接入步骤

  1. 用户门铃登录 → 拿 Authorization: Bearer …
  2. create 或 join → 拿到 self.publish.whip 与 participants[].play.whep
  3. 本地 WHIP 推音视频
  4. 每 2–3 秒 userList:新成员开 WHEP,离开的关 PeerConnection
  5. 离开调 exit;主持人散会调 end
  6. IM 邀请仍可用现有 IM 发 room_id / share_code(只替换媒体房间)

千人研讨会(mode=webinar)

产品定稿:主讲在讲、大家听。主持/嘉宾 WHIP 推流;观众只拉 HLS/HTTP-FLV(与直播看播相同)。举手 → approveSpeak 升为嘉宾后才有 WHIP/WHEP。自建 SRS,不接腾讯云。

架构说明:源站 WEBINAR-1K.md · 完整字段见 MEETING-API.md §10。

角色role推流拉流
主持人0WHIP 个人流 + 节目流 webinar_{roomId}WHEP 嘉宾
嘉宾1WHIP 个人流WHEP 主持/嘉宾
观众2无仅节目流 HLS/FLV
联席主持3同嘉宾同嘉宾 + 可审批

观众拉流(同直播路径形态,播域 zhibo.menling.com):

https://zhibo.menling.com/meet/webinar_{roomId}.flv
https://zhibo.menling.com/meet/webinar_{roomId}.m3u8

主持推节目流(推域 live.menling.com):

https://live.menling.com/rtc/v1/whip/?app=meet&stream=webinar_{roomId}

创建研讨会

POST https://open.menkou.com/api/meeting/create
Authorization: Bearer 10001.xxxxx
Content-Type: application/json

{
  "meeting_theme": "千人分享会",
  "mode": "webinar",
  "audience_mode": "hls_flv",
  "max_guests": 16
}

默认 audience_mode=hls_flv。成功含 self.publish_program 与 program.http_flv / program.hls。

举手与连麦

POST https://open.menkou.com/api/meeting/raiseHand
{ "room_id": 8000100, "raise": 1 }

POST https://open.menkou.com/api/meeting/approveSpeak
{ "room_id": 8000100, "user_id": 10002, "approve": 1 }

POST https://open.menkou.com/api/meeting/muteAll
{ "room_id": 8000100, "mute": 1 }

join 默认观众(role=2)。批准后客户端切换为 WHIP 推 + WHEP 拉;观众始终只播节目流。

与 1v1 WebRTC / 旧会议接口

健康检查

curl -sk https://open.menkou.com/api/meeting/health

期望 code=200 且 data.service=meeting-selfhost。

更全的字段与错误码见 MEETING-API.md。