LSL Protocol/Restrained Love Open Relay Group/who

From Second Life Wiki
Jump to: navigation, search

Attempt at clarifying and consolidating: Version 002 draft.

This specification has been copied from LSL_Protocol/Restrained_Life_Relay/who after Marine Kelley's decision to deprecate the meta-command "!who" in the core relay specification v1.100.

As this meta-command had received a lot of positive feedback from users and scripters, it was only natural we decided to "scavenge" it into the ORG x-tensions list. Moreover Marine's objections about trustworthiness seems largely unfounded to us (more on this in the text below).

Because the specification of !who has already been thoroughly discussed, and even implemented in a non-negligible set of devices now, we can consider this current specification as final (until some bugs are found, of course). However the current text could be reworked in a more formal and less verbose way, maybe?

!x-who

STATUS: near final (maybe another name change? please read the discussion page)

VERSION: 001

Implemented in THINK KINK's tkPBA v30i

Partly implemented in the Cool Hud v2.30  

Implemented in OpenCollar and in Satomi's Multirelay HUD

Implemented in Dahlia's multirelay

Note that as of now, this is actually !who which is implemented. We recommend that relays who already support !who, now should support both !who and !x-who indifferently during the transition period. In-world devices should ensure compatibility by using !who during the transisition, and later only !x-who.

Description 
meta command to pass the UUID of WHO is trying to operate your relay, not just WHAT device and the OWNER of the device (more often than not, WHO's the operator and WHO's the owner are NOT the same avatar).
Background 
we constantly have people coming to our store wanting a way to know WHO is trying to control their relay, it's almost become a mantra "I don't care WHAT it is, I want to know WHO it is!". This is a simple way to pass that information from a device to the relay when the device attempts use the relay.
Syntax
 !x-who/(key)
(key) is the UUID of the AV that you wish to present to the relay.
Implementation 
  • traps that are automatically triggered by the victim should use the uuid of the victim instead of the person who has setup the trap, perhaps hours ago
  • 00000000-0000-0000-0000-000000000000 (NULL_KEY) is valid, meaning an unkown avatar
  • The content of this message is obviously only as trustworthy as the world object is. Hence when you accept a bunch of commands prefixed by a "!x-who", you have to trust both the avatar whose key is in after the "!x-who", but also the owner of the device issuing the command. Fortunately this requirement can be met easily (i.e.: if the owner is also the land owner, or if you personally know her), which makes this meta-command useful nonetheless.
as THINK KINK is implementing this, we are making a few caveats -
We are making the !x-who as the FIRST entry in a command string, so it can be picked up immediately and used in an ASK dialog (if necessary)
IF the !x-who on a new command from an object is the same as the last !who from the same object, no ASK necessary
IF the !x-who on a new command from an object is DIFFERENT from the last !who from the same object, ASK again See the discussion page for a recommendation to make this optional
IF no !x-who on a command string, normal object verification rules apply
Cool Hud v2.30 partial implementation:
When in "Ask" mode, and !who is used somewhere in the command line (and not necessarily as the first command) the relay presents the permission request menu with info about who is controlling the device.
When !who is present in a command line sent to the relay and bears the UUID of a user who was previously banned from the relay, the relay immediately frees the wearer (with !release ok sent to the RL device) and tells them the banned user attempted to control them via the device.
Further Points of Implementation 
The ASK message will change if a !x-who command comes in, instead of "Dastardly Device owned by Random Avatar wants to control your relay, ALLOW/DENY?"
the message becomes "Crafty Avatar wants to control your relay using Random Avatar's Dastardly Device, ALLOW/DENY?"
if the owner and the operator are the same, then a more succinct message could be "Crafty Avatar wants to control your relay using their Dasterdly Device, ALLOW/DENY?"
further if YOU (the victim) are the 'operator' (ie. by walking into an area effect device) you could say "You have activated Crafty Avatar's Area of Doom and it is attempting to control your relay, ALLOW/DENY?"
addition of a this will make for clearer messages and communication with the victim.
if a !x-who is present, then should the victim DENY the request, an IM can go back to the 'clicker' "Sitting Duck has denied your attempt to control their relay".
Extension of the ALLOW/DENY dialog to include ALLOW/DENY/ALWAYS ALLOW (effectively give this AV 'Auto' Permission, no matter the relay setting)/ALWAYS ASK (give this AV the 'Ask' requirement no matter the relay setting)/ALWAYS DENY (effectively 'blacklist' this AV from any attempts to control your AV)