Livespaces
Federation

Livespaces need to be federated on two levels: at the Elvin level in order to be able to exchange low level Elvin events between the rooms' routers, and at the Livespace level in order to logically connect the entities in the two rooms.

In this guide, we assume that you already have two operational Livespaces which are able to connect at the IP network level. We also assume you're using the Avis Elvin router.

Before starting, you need to designate one Livespace as the "master" and one as the "slave": these are logical designations only and simply help you decide which Livespace initiates the federation links, it doesn't matter which one is which.

In the examples below, we assume the two rooms are named "room1" and "room2" and room1's main server is the designated master.

Elvin Federation

    Federation.Subscribe[Livespace] = \
         (string (TICKERTAPE) && string (TICKERTEXT) && string (USER)) \
      || (string (NEWSGROUPS) && string (FROM_NAME) && string (SUBJECT)) \
      || (string (Group) && string (Message) && string (From)) \
      || (int32 (Presence-Protocol) || int64 (Presence-Protocol)) \
      || (int32 (Livespace-Protocol) && Entity-Type != "room")

    Federation.Provide[Livespace] = \
         (string (TICKERTAPE) && string (TICKERTEXT) && string (USER)) \
      || (string (NEWSGROUPS) && string (FROM_NAME) && string (SUBJECT)) \
      || (string (Group) && string (Message) && string (From)) \
      || (int32 (Presence-Protocol) || int64 (Presence-Protocol)) \
      || (int32 (Livespace-Protocol) && Entity-Type != "room")

    Federation.Default-Class: Livespace
    Federation.Connect[Livespace] = ewaf://room2.avis.server
    Federation.Listen = ewaf://0.0.0.0:2916
    Mar 18 11:08:45: Avis: Info: Federation outgoing link for ewaf://room2.avis.server:2916 established with "room2.avis.server/131.185.xxx.xxx", remote server domain "1010@room2"

Livespace Federation

On the master room1 server only: edit the config/room1/services/livespace.federation.properties file, and make the following changes:

   federatorId: MyRoom_MyServer
    federate.Room\ 1<>Room\ 2.computer: mirror
    federate.Room\ 1<>Room\ 2.presence: mirror
    federate.Room\ 1<>Room\ 2.teamthink: replicate
    federate.Room\ 1<>Room\ 2.teamscope: replicate
    federate.Room\ 1<>Room\ 2.clipboard: replicate
    federate.Room\ 1<>Room\ 2.screen\ sharing: replicate

Note the room names between the "<>", and note the use of \ to quote spaces in the names. The room name is the room's full name as it appears in Ignite the Livespace Browser, not the room's short name.

Run the livespace.services.federation service on the room1 server by editing the config/room1/deploy/server.deploy file and adding the following at init level 5:

    start livespace.services.federation

Federating More Than Two Livespaces

To add more "slave" rooms:

category: Documentation, Public