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.
Find and edit the
avisd.config file. On Windows this is in
C:\Program Files\Avis\config, on Linux
/etc/avis, on Max OS X
Federation.Activated: yes line.
On the both servers, add the following:
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"
On the master room1 server only: edit the
config/room1/services/livespace.federation.properties file, and make the following changes:
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.
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:
To add more "slave" rooms:
Do the same Avis config steps for the new room (i.e. add
Default-Class items, enable federation).
Federation.Connect line for the new room to the room1
Duplicate the "federate." lines in the room1
livespace.federation.properties file for the new room.