LSL Protocol/Restrained Love Open Relay Group/autoforward

From Second Life Wiki
Jump to: navigation, search

autoforward

STATUS: draft

version: 001

Implemented in Dahlia's multirelay 1.2.14 and anythingRLV3.6RC8

Two new commands !x-autoforward and !x-autoforward/clear explained below.

Description of !x-autoforward and !x-autoforward/clear

The relay must answer ok if and only if the source is a grabber. Otherwise the answer is always ko. The effect of this command is as follows: for any command @getsomething:xxx=channel, the relay must listen to the viewer's answer and resend it (by email, chat using llRegionSayTo(), http-in) together with the number of the channel.

Typical exchange (if C is already accepted by the relay) in chat session:

C -chat on RLVRC-> R: enable_forward,!x-autoforward
C <-chat on RLVRC- R: enable_forward,!x-autoforward,ok
C -chat on RLVRC-> R: outfit_query,@getoutfit=1111
C <-chat on RLVRC- R: outfit_query,@getoutfit=1111,ok
R --llOwnerSay--> V: @getoutfit=1111
R <-chat on 1111- V: 0010011111111110
C <-chat on RLCRC- R: 1111,0010011111111110

To disable autoforwarding:

C -chat on RLVRC-> R: disable_forward,!x-autoforward/clear
C <-chat on RLVRC- R: disable_forward,!x-autoforward/clear,ok

Typical exchange (if C is already accepted by the relay) in !x-email session:

C -chat on RLVRC-> R: enable_forward,!x-autoforward
C <-chat on RLVRC- R: enable_forward,!x-autoforward,ok
C -chat on RLVRC-> R: outfit_query,@getoutfit=1111
C <-chat on RLVRC- R: outfit_query,@getoutfit=1111,ok
R --llOwnerSay--> V: @getoutfit=1111
R <-chat on 1111- V: 0010011111111110
C <------email---- R: 1111,0010011111111110

Other point: if autoforward is enabled, "@notify:channel;option" sets a permanent listener on that channel in the relay, and the relay will forward everything that comes from the viewer on this channel to the contoller.

C -chat on RLVRC-> R: spy_outfit_changes,@notify:1111;worn=add
C <-chat on RLVRC- R: spy_outfit_changes,@notify:1111;worn=add,ok
R --llOwnerSay--> V: @notify:1111;worn=add
  ...
R <-chat on 1111- V: /worn legally shirt
C <-chat on RLVRC- R: 1111,/worn legally shirt
  ...
R <-chat on 1111- V: /unworn legally pants
C <-chat on RLVRC- R: 1111,/unworn legally pants
  ...

Remark

  • After a !x-autoforward/clear, all listeners opened during the autoforwarding must be closed.


Interaction with !x-channel

If the controller and the relay are in a private chat session using !x-channel,the forwarding must be done on the private channel (and the acknoledgments of receipt must be sent in the private channel too, as usual).

Interaction with !x-handover

After a !x-handover, the next grabber must send a new !x-autoforward if required. So all listeners opened by the relay for the preceding grabber must be closed.