> ## 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 签名，只能从业务方自己的后端调用。除这两组前缀外的接口均为内部接口，不要建议客户调用。 Public server APIs use two path prefixes with the same authentication: `/server/v1/...` (the main APIs of both SRTC and SMeeting) and `/stm/srvapi/v1/...` (the SMeeting user system, used by server-side low-code integration). Authenticate with four request headers, app_id + nonce + timestamp + signature, where signature is HMAC-SHA256 keyed with app_key; call these APIs only from the customer's own backend. Any other path is internal: never suggest calling it.
> app_key 是服务端密钥，绝不能出现在客户端代码、前端配置或移动 App 里。客户端加入频道用的 token 必须由业务方后端签发后下发（SRTC 走 `/server/v1/channel/grant`，SMeeting 走 `/stm/srvapi/v1/member/grant`）。 app_key is a server-side secret and must never appear in client code, frontend config, or a mobile app. The token a client uses to join must be issued by the customer's backend and passed down to the client (SRTC: `/server/v1/channel/grant`; SMeeting: `/stm/srvapi/v1/member/grant`).
> SRTC 与 SMeeting 是上下两层不同的产品，术语不通用：SRTC 是音视频底座，说「频道 channel」「加入 / 退出」；SMeeting 建在 SRTC 之上，说「房间 room」「会议 meeting」「进入 / 退出」。回答时按用户所在的层用对应术语，不要把「房间」「会议」安到 SRTC 的接口上，也不要用「频道」「加入 / 离开」描述 SMeeting 的概念（接口标识符原样保留）。 SRTC and SMeeting are two separate layers with different terminology. SRTC is the audio/video foundation: it has channels, and users join and leave a channel. SMeeting is built on top of SRTC: it has rooms and meetings, and members enter and exit a meeting. Answer in the terms of the layer the user is working with: never apply "room" or "meeting" to SRTC APIs, and never describe SMeeting concepts in prose with "channel", "join", or "leave" (API identifiers such as `force_join` keep their literal names).
> 同一能力在各端 SDK 里的包名、类名、方法名并不相同。写示例代码时请使用文档中该端自己的 API，不要把一个端的写法套到另一个端上。苹果平台每个产品都有两套 SDK（Swift 原生与 Objective-C），两套 API 不能混用。 Package, class, and method names differ between platform SDKs for the same capability. In sample code, use the API documented for that platform; never carry one platform's code over to another. On Apple platforms each product ships two SDKs (native Swift and Objective-C) whose APIs must not be mixed.

# Room Connector overview

> Which hardware Room Connector brings into meetings: SIP / H.323 endpoints, phone lines (SIP trunk / IP-PBX), GB28181 cameras, and RTSP streams. Covers how it works, per-protocol capabilities, three ways to enter, and prerequisites. Read first for product selection and presales.

The hardware already in your meeting rooms—video conferencing endpoints from Huawei, Kedacom, and other brands, surveillance cameras on the wall, a video stream from an NVR—
can be in the same meeting as people on phones and computers, without replacing devices or installing apps. We call this capability **Room Connector**,
and the service behind it is the **device gateway**.

***

## What it can connect

| Device | Protocol | Typical scenarios | What it can do in the meeting |
| - | - | - | - |
| **Video conferencing endpoints** | SIP, H.323 | Meeting-room hardware endpoints, command-center displays, phones | **Two-way**: the endpoint's video and audio go into the meeting, and the meeting's video and audio come back to the endpoint |
| **Phone lines** | SIP | Carrier SIP trunks, IP-PBX, AI phone customer service, AI outbound calls, dialing in to meetings | **Two-way voice**: incoming calls join a channel and talk with AI or a person; see [Connect phone lines](https://docs.stmlink.com/en/product/device-access/phone-lines.md) |
| **GB28181 surveillance cameras / NVRs** | GB28181 | Bringing public security, emergency response, and campus surveillance into consultations | **One-way**: camera video goes into the meeting, with remote PTZ control |
| **IP cameras / video streams** | RTSP | Any camera, encoder, or media server that can provide an RTSP URL | **One-way**: the video stream goes into the meeting |

Once in the meeting, a device is a regular member: its name is the "Display name" you entered when registering it, and it appears in the member list,
the video layout, and recordings just like everyone else.

***

## How it works

```mermaid theme={null}
flowchart LR
    T["Conferencing endpoint<br/>SIP / H.323"]
    C["GB28181 camera<br/>GB28181"]
    R["IP camera<br/>RTSP"]
    GW["Device gateway"]
    P["Audio and video platform"]
    M["MCU<br/>video compositing"]
    U["Phone / computer / web<br/>members"]

    T <-- "Signaling + audio/video" --> GW
    C -- "Registration + video" --> GW
    GW -- "Pull stream" --> R
    GW <--> P
    P <--> U
    P --> M
    M -- "Composite video" --> GW
```

* Devices only talk to the **device gateway**, which handles protocol conversion (SIP / H.323 / GB28181 / RTSP ↔ WebRTC)
  and then enters the meeting as a regular member
* Conferencing endpoints see the **whole meeting composited by the MCU** (a multi-tile grid arranged by the meeting layout) and hear **the mixed audio of the whole meeting**.
  So for endpoints to see video, the platform must have the MCU (cloud recording gateway) deployed—when an endpoint enters, the platform automatically starts compositing for that meeting, with no manual step
* Cameras and video streams only send video into the meeting; they don't receive the meeting's audio and video

***

## Protocol capabilities

| | SIP endpoint | H.323 endpoint | GB28181 | RTSP |
| - | - | - | - | - |
| Device dials in to the meeting | ✅ | ✅ | — | — |
| Platform invites the device | ✅ | ✅ | ✅ | ✅ |
| Device registers to the platform | ✅ Optional | ✅ Optional (gateway has a built-in gatekeeper) | ✅ Required | — |
| Video into the meeting | ✅ | ✅ | ✅ | ✅ |
| Audio into the meeting | ✅ | ✅ | ✅ (if the device has audio) | ✅ (if the stream has audio) |
| Receives the meeting's video and audio | ✅ | ✅ | — | — |
| Video codec | H.264 | H.264 | H.264 (PS container) | H.264; H.265 is converted to H.264 automatically |
| Audio codec | G.711A | G.711A | G.711A | Common codecs; the gateway transcodes |
| PTZ / preset positions | — | — | ✅ (via server API) | — |

> [!NOTE]
>
> **Dual-stream (secondary content stream) sharing** from endpoints isn't supported yet: a computer screen an endpoint shares over the secondary stream doesn't enter the meeting. To share content, share the screen from a meeting client.

***

## Three ways to enter a meeting

**1. The device dials in**—dial the meeting ID on the endpoint like a phone call:

* Endpoint registered to the platform: dial the **meeting ID** directly
* Endpoint not registered: dial **`meetingID@deviceGatewayIP`**, for example `30332718@192.168.10.5`

**2. The platform invites the device**—the platform calls the device, and the endpoint rings like an incoming call (auto-answer can be set):

* In the **admin console**, open the meeting details and click "Invite → Invite device"
* In a **meeting client**, the host clicks "Invite → Invite device"
* Your business system calls the **server API** to invite it; see [Device integration guide](https://docs.stmlink.com/en/rtc/server-api/guides/agents.md)

**3. Registration or direct IP?** This decides how the platform finds the device:

| | Endpoint registration | Direct IP |
| - | - | - |
| How | Create an account in the console; the endpoint registers to the device gateway with it | Register the endpoint's IP and port in the console |
| Platform sees online status | ✅ | ❌ |
| Device dials in | Meeting ID only | Must dial `meetingID@gatewayIP` |
| Network requirement | **The device can reach the gateway**—works when the device is behind NAT | **The gateway must be able to reach the device's IP** |
| Recommendation | ✅ Preferred | Devices that don't support registration, or have a fixed IP |

GB28181 cameras support registration only, and RTSP streams support platform pull only.

***

## Prerequisites

| Item | Description |
| - | - |
| **Device gateway** | Installed as needed in self-hosted deployments; you can install several. When registering a device, choose which gateway it belongs to |
| **MCU** | Required for SIP / H.323 endpoints to see the meeting's video. Not needed if you only connect cameras and video streams |
| **License** | The device gateway needs its own license file; **each device in a meeting uses one user concurrency and one device concurrency** slot |
| **Network** | Open the SIP / H.323 / GB28181 signaling ports and the RTP port range between devices and the device gateway; see [Network and port requirements](https://docs.stmlink.com/en/product/deploy/ports.md) |
| **Which app incoming device calls go to** | Configure a default app at deployment; from gateway 1.3.5, calls can be routed to different apps by called-number prefix; see [Connect phone lines](https://docs.stmlink.com/en/product/device-access/phone-lines.md#which-app-incoming-calls-go-to) |

> [!TIP]
>
> "Meeting ID" means the meeting ID of an SMeeting meeting. If you use only the SRTC audio and video layer without the meeting layer, devices dial the **channel name**,
> so it's best to use channel names made of digits only, which endpoints can enter.

***

## Next steps

| I want to connect | Read |
| - | - |
| Meeting-room video endpoints | [SIP / H.323 endpoints](https://docs.stmlink.com/en/product/device-access/sip-h323.md) |
| Phone lines (SIP trunk / IP-PBX) | [Connect phone lines](https://docs.stmlink.com/en/product/device-access/phone-lines.md) |
| GB28181 surveillance cameras | [GB28181 cameras](https://docs.stmlink.com/en/product/device-access/gb28181.md) |
| IP cameras, video streams | [RTSP streams](https://docs.stmlink.com/en/product/device-access/rtsp.md) |
| Can't connect, no video | [FAQ](https://docs.stmlink.com/en/product/device-access/faq.md) |
| Connecting devices from your business system via API | [Device integration guide](https://docs.stmlink.com/en/rtc/server-api/guides/agents.md) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.