Skip to content
Innomesh Docs
Room Manager

Room Link

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

TermDescription
PrimaryThe room whose panel drives the combined space. Its sources, audio and controls are shared into the secondaries.
SecondaryA room driven by the primary. Its own controls are mimicked or locked according to the settings below.
Link requestA 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 RolePer partner, the role this room may take: Primary, Secondary or Both. Introduced in Space CE v2.23.0.
FieldDescriptionDefault
Available When OnWhether 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 PromptShow a prompt with a countdown on this room’s panel when a link request arrives.true
Prompt TimerHow long, in seconds, the prompt is shown before Behaviour On Timer Expiration applies.-
Behaviour On Timer ExpirationAccept or Deny the request when the prompt times out.Accept
Require All To Accept Before LinkingIn a request to several rooms, the link forms only once every room has accepted.true
Break Link On Any UnlinkIn a link of three or more rooms, one room leaving breaks the whole link.true
Lock Room When Linked As SecondaryLock this room’s user interface while it is linked as a secondary room.false
Revert To Previous State On UnlinkReturn the room to the state it was in before the link instead of powering off.false
Source Sharing StylePrimary Only shares the primary’s sources; Communal shares sources across all linked rooms.Primary Only
Communal Matrix IDWhen room link routing runs through a shared matrix, the Device ID of that matrix.-
Mimic Controls Of Same IDAncillary and AV controls with the same ID in a secondary room follow the primary.true
Mimicable ObjectsWhich object types are mimicked: All, Lights, Mics, Blinds or Displays.-
Program Audio Level On LinkLevel (percent) program audio channels are set to when this room becomes a secondary.100
Microphone Audio Level On LinkLevel (percent) microphone channels are set to when this room becomes a secondary.100
Unmute When PrimaryUnmute the room link audio channels when this room is the primary.false
Unmute When SecondaryUnmute the room link audio channels when this room is a secondary.true
Sensors Trigger Link When Powered OffRoom link sensors may trigger a link while the room is off. They always can while it is on.true
Revit URLThe 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.

FieldDescriptionRequiredDefault
IDIdentifier other parts of the configuration use for this partner.Yes-
Room NameThe name shown on the user interface for this partner.Yes-
ChannelThe partner’s room channel (its room ID).Yes-
DisableExclude this partner from the room link system.Nofalse
Allowed RoleThe role this room may take toward this partner: Primary, Secondary or Both. See Link direction.NoBoth
Can Send Link Request To This RoomWhen 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.Notrue
Visibility ConditionHide this partner from the user interface while the expression is false, for example in a room mode that never links.Noalways visible
DSP Device IDThe DSP that carries the audio path to this partner.No-
DSP Mute Block IDThe DSP block that mutes audio to this partner.No-
Input SwitchSwitching performed when this room becomes the primary of this partner.No-
📝 Note
Room Link is configured in both rooms. A partner room lists this room in its own Secondary Rooms for a link to form.
📌 Since
Space CE v2.23.0.

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 RoleThis room may
BothDrive the partner as primary, or be driven by it as secondary.
PrimaryOnly drive the partner. A request from the partner to become primary over this room is declined.
SecondaryOnly 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.

📌 Since
Space CE v2.24.0, the receiving room decides the direction of a request that names no role.

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.

📌 Since
Space CE v2.24.0.

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.

📝 Note
A user interface without the incoming-request prompt cannot accept a join while 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

📌 Since
Space CE v2.24.0.

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

  1. Open the Space CE template in Room Manager.
  2. Navigate to Room Link > Room Link Settings and set the prompt, timer and audio behaviour for this room.
  3. Under Secondary Rooms, add one entry per partner with its Room Name and Channel.
  4. 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.
  5. Repeat in each partner room, listing this room in its Secondary Rooms.
  6. 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 Prompt is enabled. When the timer expires, Behaviour On Timer Expiration applies.
  • 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 two Allowed Role settings 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) or request_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 Secondary enabled, the user interface shows a lockout page with an unlink control.