Skip to main content

Meeting rooms and SIP terminals: the MCU and Poly Trio

Applies to: SimpleTwo 0.9.271, MCU 0.7.0 · Checked: 24.09.2026

The mcu role brings meeting-room hardware that speaks SIP into SimpleTwo meetings: Poly Trio, Poly and Cisco conference phones and video terminals. To a meeting a room is a participant like a person: it has a name, it has a tile, it is heard in the recording.

1. How it works

  • A meeting room is an account with a calendar and an internal number (2001, say). Numbers come from SimpleTwo's numbering plan; see section 3.
  • A booking is the room taking part in a meeting. While a room is booked into a meeting with a conference, its number leads into that meeting.
  • The device dials a room's number — its own or another's — at the MCU's address: 2001@<MCU address>. The MCU recognises the device by the address the call came from and decides the door:
Who dialsWhat happens
the room itself, or another room booked into the same meetingstraight in
any other registered roomthe lobby: connected, hearing nothing and heard by nobody until a host admits it
the room behind the number has no meeting nowrefused, 404 No meeting in this room now
a person's numberrefused, 404 Calling people is not available yet — calling people from a terminal comes later
The coordinator is not in the call

The meeting and the door are decided by messaging against a snapshot of numbers and bookings the coordinator sends every minute. While the coordinator is down, rooms keep joining on the last snapshot. The room credential is signed by messaging too: the MCU holds no media-server key.

2. What has to be ready

  1. The mcu role is installed on a host (Servers & deploys → Add a host, role mcu). It needs the same redis bus as the SFU pool and a deployed messaging. Ports are in the port reference: 5060 UDP and TCP, 10000–20000 UDP and TCP, 5061 TCP when a certificate exists.
  2. The host's public address is set on the role's card if the host is behind NAT. It goes into the SDP; a private one there gives a call that connects and carries audio one way.
  3. The room existsUsers → Rooms & devices → New room. It gets its number by itself.
  4. Meetings are booked with the room and with a conference. Without a booking the room's number is refused, and rightly: a terminal cannot open a meeting that does not exist.

3. Internal numbers

Every person and every meeting room has an internal number: the lowest free one in 2000–7999, given when the account is created. Guests and bots get none.

  • The number is in the Number column of the users and rooms tables and on the contact card in the clients; the address book finds people by it.
  • An administrator may change it in the user dialog. The server checks it has 3–6 digits, does not start with 8 (service numbers), 9 (outside line) or 0 (operator), and is nobody else's. It cannot be cleared: a person without a number cannot be dialled.
  • The number is ours alone. It will become an address in federation, so it belongs to SimpleTwo's numbering plan and not to a field in somebody else's directory: nothing reads it from AD. Numbers that already live in AD are copied once, by the migration utility into identity.

4. The device registry: who may call

By default the MCU admits nobody. A device not in the registry gets 403 Not a registered meeting room. Devices are added where the room is:

Users → Rooms & devices → ⋯ on the room → SIP endpoints

FieldWhat to enter
Labelwhich device it is, e.g. "Trio by the window"
Ida short identifier; per-device settings are keyed by it (section 6)
Addressesthe IP address the device calls from. Reserve it in DHCP: a changed address is a device that stops getting in
SIP useronly when several devices call through one SBC and arrive from one address; they are then told apart by the user in From

A device joins under its room's account: the tile, the recording and the transcript say "Room Ladoga", not the model name. A disabled device stays in the registry and its calls are refused.

5. The keypad and spoken prompts

Keys travel as RFC 2833 telephone-events — the default on Poly and Cisco.

KeyActionWhat the room hears
*1its own microphone off/on"Microphone off" / "Microphone on"
*2raise/lower its hand — clients draw it like a person's"Hand raised" / "Hand lowered"
*3pin whoever is on screen, or unpin"Picture pinned" / "Following the speaker"
*0help: the keys actually bound on this device are read outthe key list
##leave the meeting

At the lobby door the room hears "Please wait…" every 20 seconds, and "You are now in the meeting" once admitted. The language is the prompts setting: en or off. Russian prompts arrive with a voice of our own: the ready Russian synthesiser voices rest on research-licensed data.

A room governs only itself — its microphone, its hand, its picture. Muting somebody else from a wall-mounted device is not possible.

6. Picture, sound and keys: the MCU settings

Telephony → MCU: mixing & keypad (SIP endpoints) — a form the MCU builds from its own description of its settings. Set a default for every device and an override for one (by its Id from the registry). An empty field inherits the level above; the inherited value is shown.

SettingWhat it sets
Picturethe speaker or a grid (the grid arrives with transcoding)
Hold the picture at least, mshow long the speaker keeps the screen — so a cough does not take it mid-sentence
Stay on the last speaker, mshow long the picture stays once everybody is quiet
Voices mixedhow many voices to mix (one — the loudest — is forwarded today)
Picture height, frames per seconda ceiling for the device
Presentation channelwhether to offer the second stream (BFCP)
May pin a participant / switch layoutwhat the device may do from its own keypad
Spoken promptsen or off
Keypadrebind or remove keys

A value out of range is not refused but moved to the nearest one allowed, and the MCU says so. Further down the same tab, Calls right now shows every device on a call, the number it dialled, how it came in ("straight in", "waiting in the lobby", "admitted from the lobby"), whom it shows, who holds the presentation floor, and what the call does differently from the settings.

7. Setting up a Poly Trio 8800, step by step

The Trio 8800 is a conference phone. With a Poly Trio Visual+ (or VisualPro) it becomes a video terminal: camera and screen in the room, presentation from a laptop. Without the Visual+ the room takes part by voice.

Configure it in the device's web interface (administrator sign-in) or with a configuration file from a provisioning server. The parameter names below are from the Poly Trio administrator guide (UC Software 5.9 and the Parameter Reference 9.x); if your firmware names something differently, check its guide.

Step 1. Address and line

  1. Give the device a fixed IP address (a DHCP reservation) — it is how the MCU recognises the room.
  2. Set up a line without registration: the MCU does not accept REGISTER, it accepts calls from devices in the registry.
ParameterValue
reg.1.addressthe room's login, e.g. ladoga
reg.1.displayNamethe room's name, e.g. Ladoga
reg.1.server.1.addressthe MCU host's address
reg.1.server.1.register0 — do not register (how Poly describes an unregistered line)

In the device's web interface these are the settings of the first line: address, display name, server = the MCU address, registration off.

Step 2. Codecs — the main thing

The MCU forwards media without transcoding today, so the device has to speak the meeting's codecs: Opus for audio and H.264 for video. G.711 without Opus is refused with 488 and the reason in the text. Transcoding is the next stage.

Opus is off on a Trio by default

In the Trio's codec priority table Opus is 0, meaning it is not offered. Turn it on and put it first — in the codec priority table of the web interface's audio settings, or when provisioning, with the Opus priority parameter in the voice.codecPref.* group. Check the exact parameter name in your firmware's configuration export: the Poly reference does not list it. Poly warns that Opus is incompatible with G.729 and iLBC — with those first, Opus is not published.

ParameterValue
the Opus priority (voice.codecPref.*)1
voice.codecPref.G729_AB0 — so it does not suppress Opus
video.enable1 (the default) — with a Visual+
video.codecPref.H264on (the default)

Step 3. Keys and presentation

Poly's defaults are right; nothing needs changing. Only check they have not been overridden:

ParameterValueWhy
tone.dtmf.rfc2833Control1 (the default)keys go as telephone-events
tone.dtmf.viaRtp1 (the default)in the media stream, not in signalling
reg.1.content.bfcp.enabled1 (the default)BFCP presentation on this line
content.bfcp.transportUDP (the default)either works; TCP needs agent 0.5.76+ on the MCU host — before it the TCP presentation port was closed by the host firewall

Step 4. A "Join the meeting" button

Add a favourite (Contacts/Favorites) with the room's own number. Joining is then one press: the device dials its own number and lands in the meeting the room is booked into now.

Step 5. Registering it in SimpleTwo

In the console: Users → Rooms & devices → ⋯ → SIP endpoints — label, Id, the device's IP address from step 1.

Checking

  1. Book the room into a meeting with a conference in the next half hour.
  2. Dial the room's number on the Trio.
  3. In the console, Telephony → Calls right now shows a row: the number dialled, "straight in", whom it shows.
  4. Press *1 — the room hears "Microphone off", and the clients draw its microphone crossed out.

8. When it does not work

The MCU writes the reason on the response's status line — it is on the device's screen and in its call log.

ResponseCauseWhat to do
403 Not a registered meeting roomthe address the device calls from is not in the registrycheck the IP in the registry (section 4); behind NAT or an SBC — the address the MCU sees
404 No meeting in this room nowthe room behind the number has no meeting right nowbook the room into a meeting with a conference
404 Unknown numberthe number is nobody'scheck it in the Number column
488 …codecs did not match; the text says what was missingput Opus first (step 2); H.264 for video
503 Numbering plan not received yetmessaging has not received the number snapshot yetwait a minute; if it persists, the coordinator cannot reach messaging
503 MCU not authorised by messagingthe bridge key did not matchthe host gets the right key with the agent's next desired state; if it persists, check the agent version
connected, but silencethe device is in the lobbya host admits the room; Calls right now shows it "waiting in the lobby"
audio one waya private address went into the SDPset the host's public address on the role's card
not everybody is shownthe participant publishes VP8 and forwarding carries only H.264transcoding comes at the next stage; Calls right now lists whom it cannot show

Next