Room Link combines two or more physical rooms into a single system. One room becomes the primary, whose user interface controls the combined space. The other rooms become secondary and follow the primary, optionally locking their own panels. Each room runs its own Space CE and the rooms communicate over their room channels, so each room in a link lists its partners in its own configuration.
The whole feature lives under the top-level Room Link object: Room Link Settings describes how this room behaves in a link, and Secondary Rooms lists the partner rooms it may link with.
Key concepts
| Term | Description |
|---|---|
| Primary | The room whose panel drives the combined space. Its sources, audio and controls are shared into the secondaries. |
| Secondary | A room driven by the primary. Its own controls are mimicked or locked according to the settings below. |
| Link request | A request from one room to link with one or more partners. Depending on the settings, the partner accepts automatically, prompts its user, or applies a timer before deciding. |
| Allowed Role | Per partner, the role this room may take: Primary, Secondary or Both. Introduced in Space CE v2.23.0. |
Room Link Settings
| Field | Description | Default |
|---|---|---|
Available When On | Whether this room is available for linking while it is powered on. When false, the room is available for linking only while off. | false |
Show Link Prompt | Show a prompt with a countdown on this room’s panel when a link request arrives. | true |
Prompt Timer | How long, in seconds, the prompt is shown before Behaviour On Timer Expiration applies. | - |
Behaviour On Timer Expiration | Accept or Deny the request when the prompt times out. | Accept |
Require All To Accept Before Linking | In a request to several rooms, the link forms only once every room has accepted. | true |
Break Link On Any Unlink | In a link of three or more rooms, one room leaving breaks the whole link. | true |
Lock Room When Linked As Secondary | Lock this room’s user interface while it is linked as a secondary room. | false |
Revert To Previous State On Unlink | Return the room to the state it was in before the link instead of powering off. | false |
Source Sharing Style | Primary Only shares the primary’s sources; Communal shares sources across all linked rooms. | Primary Only |
Communal Matrix ID | When room link routing runs through a shared matrix, the Device ID of that matrix. | - |
Mimic Controls Of Same ID | Ancillary and AV controls with the same ID in a secondary room follow the primary. | true |
Mimicable Objects | Which object types are mimicked: All, Lights, Mics, Blinds or Displays. | - |
Program Audio Level On Link | Level (percent) program audio channels are set to when this room becomes a secondary. | 100 |
Microphone Audio Level On Link | Level (percent) microphone channels are set to when this room becomes a secondary. | 100 |
Unmute When Primary | Unmute the room link audio channels when this room is the primary. | false |
Unmute When Secondary | Unmute the room link audio channels when this room is a secondary. | true |
Sensors Trigger Link When Powered Off | Room link sensors may trigger a link while the room is off. They always can while it is on. | true |
Revit URL | The image used for the Room Link page on the user interface. | - |
Secondary Rooms
Each entry describes one partner room from this room’s point of view.
| Field | Description | Required | Default |
|---|---|---|---|
ID | Identifier other parts of the configuration use for this partner. | Yes | - |
Room Name | The name shown on the user interface for this partner. | Yes | - |
Channel | The partner’s room channel (its room ID). | Yes | - |
Disable | Exclude this partner from the room link system. | No | false |
Allowed Role | The role this room may take toward this partner: Primary, Secondary or Both. See Link direction. | No | Both |
Can Send Link Request To This Room | When false, this room’s panel offers no control to request a link with this partner. A hint for the user interface only; the partner does not reject requests because of it. | No | true |
Visibility Condition | Hide this partner from the user interface while the expression is false, for example in a room mode that never links. | No | always visible |
DSP Device ID | The DSP that carries the audio path to this partner. | No | - |
DSP Mute Block ID | The DSP block that mutes audio to this partner. | No | - |
Input Switch | Switching performed when this room becomes the primary of this partner. | No | - |
Secondary Rooms for a link to form.Link direction and permissions
Allowed Role sets the direction of a link for each partner. The value describes the room being configured, not the partner named in the entry.
| Allowed Role | This room may |
|---|---|
Both | Drive the partner as primary, or be driven by it as secondary. |
Primary | Only drive the partner. A request from the partner to become primary over this room is declined. |
Secondary | Only be driven by the partner. A link request from this room asks the partner to take control. |
Space CE checks each request against these rules in the receiving room. A request that the receiving room’s Allowed Role does not permit is declined with the reason role_not_permitted, and the requesting room’s user interface indicates that the link is not permitted in that direction.
A room whose allowed role toward the partner is Both sends its request open, without a role. The receiving room then takes the role its own Allowed Role toward the requester calls for: it drives when that role is Primary, or when it already drives a link; otherwise the requester drives, as before. A Both room can therefore link to a Primary-only partner from either room’s user interface. Only Primary against Primary and Secondary against Secondary are declined. A user interface that names a role keeps it, except that primary on a Both entry is treated as open, since that was every user interface’s default before the receiving room could decide.
When two rooms request each other at the same moment, the room with the smaller room ID becomes the primary and the other is prompted in the usual way.
A room whose allowed role toward a partner is Secondary can still initiate the link. Its request asks the partner to become the primary, and the partner’s user interface is prompted in the usual way.
Can Send Link Request To This Room complements Allowed Role on the user interface side. Set it to false for a partner that should appear on the room link page but not be the target of a request from this room, for example a main room that links out to its breakout rooms but is not requested by them.
These settings are optional and default to the previous behaviour, so existing room link configurations are unaffected.
Joining a running link
A room that already drives a link stays available to its partners, so a partner can ask to join it. The primary handles the request by its normal rules: it is prompted when Show Link Prompt is on, accepts at once when the prompt is off and Available When On is on, and otherwise holds the request as pending until Prompt Timer expires. The joining room becomes another secondary of the same link. A room that is driven by another room is never available: its partners see it as unavailable until the link ends, and a request to it is declined with already_linked.
A request the room itself cannot make is declined on its own user interface before anything is sent: linked_as_primary when the room drives a link and its entry says the partner would have to drive it, and linked_as_secondary when the room is driven.
Show Link Prompt is on; the request times out and Behaviour On Timer Expiration applies. Run the primary with Show Link Prompt off, or use a user interface that shows the prompt.Hiding partners per room mode
A partner room can carry a Visibility Condition, a boolean expression over live room state such as room.RoomMode != "Lecture". While the condition is false, the partner is sent to the user interface with visible: false and is not shown on the room link page. The link mechanism itself is unchanged: an existing link remains in place, and a hidden partner can still send a request to this room.
{
"ID": "room.link.b",
"Room Name": "Seminar Room B",
"Channel": "seminar-room-b",
"Visibility Condition": "room.RoomMode != \"Lecture\""
}
Configuration
- Open the Space CE template in Room Manager.
- Navigate to Room Link > Room Link Settings and set the prompt, timer and audio behaviour for this room.
- Under Secondary Rooms, add one entry per partner with its Room Name and Channel.
- Optionally set Allowed Role and Can Send Link Request To This Room for each partner, and a Visibility Condition for modes in which the partner is not offered.
- Repeat in each partner room, listing this room in its
Secondary Rooms. - Save the templates and deploy to the rooms.
Worked example
Seminar Room A can link with three rooms. Seminar Room B can take either role. Seminar Room C is only ever driven by Seminar Room A. Seminar Room D is shown on the room link page but is only linked when Seminar Room D sends the request. None of the partners are offered in the Lecture mode.
{
"Room Link": {
"Room Link Settings": {
"Available When On": true,
"Show Link Prompt": true,
"Prompt Timer": 60,
"Behaviour On Timer Expiration": "Deny",
"Require All To Accept Before Linking": true
},
"Secondary Rooms": [
{
"ID": "room.link.b",
"Room Name": "Seminar Room B",
"Channel": "seminar-room-b",
"Allowed Role": "Both",
"Visibility Condition": "room.RoomMode != \"Lecture\""
},
{
"ID": "room.link.c",
"Room Name": "Seminar Room C",
"Channel": "seminar-room-c",
"Allowed Role": "Primary",
"Visibility Condition": "room.RoomMode != \"Lecture\""
},
{
"ID": "room.link.d",
"Room Name": "Seminar Room D",
"Channel": "seminar-room-d",
"Can Send Link Request To This Room": false,
"Visibility Condition": "room.RoomMode != \"Lecture\""
}
]
}
}
In Seminar Room C, the matching entry for Seminar Room A carries "Allowed Role": "Secondary". A request from either room ends with Seminar Room A driving: from Seminar Room A it asks C to follow, from Seminar Room C it asks A to take control, and the room being asked is prompted in the usual way. Seminar Room B’s entry for A is Both, so B’s request goes out open and A, whose entry for B is also Both, lets B drive unless A already drives a link.
Touch panel behaviour
- An incoming request shows a prompt with a countdown when
Show Link Promptis enabled. When the timer expires,Behaviour On Timer Expirationapplies. - An outgoing request is shown as pending on the requesting user interface until each targeted room has responded.
- A declined request shows the reason:
role_not_permitted(the twoAllowed Rolesettings do not allow that direction),already_linked(the partner is driven by another room),linked_as_primary(this room drives a link and the partner would have to drive it),linked_as_secondary(this room is driven),awaiting_primary(this room is waiting on a room it asked to take control) orrequest_already_pending. - A primary that receives a join request shows “Seminar Room D is requesting to join this room” with accept and decline, on user interfaces that support the incoming-request prompt.
- While linked as a secondary room with
Lock Room When Linked As Secondaryenabled, the user interface shows a lockout page with an unlink control.