Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008080opensim[REGION] Script Functionspublic2016-12-04 23:342019-10-25 16:00
ReporterLotek 
Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
StatusacknowledgedResolutionreopened 
PlatformLinuxOSUbuntuOS Version14.04LTS
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0008080: OSSL proposal: HG capable osInstantMessage and osGiveInventory
DescriptionI would like to propose two or three new functions, since the Linden equivalents don't work over the hypergrid. We can already do avi to hypergrid-avi transfers but not object to hypergrid-avi.

---

osInstantMessage(key user, string loginuri, string message);

Sends an instant message to a hypergrid user

---

osGiveInventory(key user, string loginuri, string inventory);

Sends an object from prim inventory to a hypergrid user

---

Ideally, also:

osGiveInventoryList(key user, string loginuri, string folder, list inventory);

Which sends multiple items from a list in prim inventory to a hypergrid user

---

Can this be done if the foreign LoginURI plus the foreign avatar UUID are known?

The newly introduced loginuri parameter would be what is usually seen on the name tags of hypergrid visitors, and similar to what's returned for our local grid by osGetGridLoginURI();
Steps To ReproduceExamples that fail currently with the Linden functions:

llInstantMessage(kForeignAvatar, "Hello");
(silently fails)

llGiveInventory(kForeignAvatar, llGetInventoryName(INVENTORY_NOTECARD,0));
[23:31] llGiveInventory: Can't find destination 'a6396f7c-dd01-4fb9-abb4-9b5f706d6aaf'

This will only work when the hypergrid avatar is visiting us in our sim our object is in.

But it won't work when they reside on their foreign home grid as the avatar UUID is not known to our own local grid.
Additional InformationLinden equivalents:

llInstantMessage(key user, string message);
http://wiki.secondlife.com/wiki/LlInstantMessage [^]

llGiveInventory(key destination, string inventory);
http://wiki.secondlife.com/wiki/LlGiveInventory [^]

llGiveInventoryList(key target, string folder, list inventory);
http://wiki.secondlife.com/wiki/LlGiveInventoryList [^]
TagsNo tags attached.
Git Revision or version number
Run Mode Grid (1 Region per Sim)
Physics EngineubODE
Script Engine
EnvironmentMono / Linux64
Mono VersionOther
ViewerFirestorm
Attached Files

- Relationships

-  Notes
(0031399)
UbitUmarov (administrator)
2016-12-05 05:14

this may need to wait for a HG revision
(0031400)
Mandarinka Tasty (reporter)
2016-12-05 19:21

Hello:)

There is possibility to send InstantMessage

to foreign avatar = located in foreign grid

from local avatar = located in local grid.

Because local grid is not able to know foreign avatar's key, then

we need to find it. And we can do that using:

osAvatarName2Key(string firstname, string lastname);

It is example script, I use to send message:

default
{
    touch_start(integer num)
    {
        llInstantMessage(osAvatarName2Key("John.Smith","@grid.myworld.com:8002"),"Hello !!!");
    }
}

Please, carefully, pay attention on syntax of firstname and lastname
(0031401)
Mandarinka Tasty (reporter)
2016-12-05 19:29

Certainly, sending item using llGiveInventory, unfortunately does not work.

But in my opinion, problem exists in llGiveInventory's way of sending item.

So, personally, I would rather think about improving llGiveinventory,

than creating osVersion.
(0031402)
Mandarinka Tasty (reporter)
2016-12-05 20:59

I have made: llGiveInventory send an item to foreign avatar,

when avatar is offline.

In case of being online, it was working.

And I have added message about what has sent folder to foreign avatar

in aspect of llGiveInventoryList
(0031403)
Mandarinka Tasty (reporter)
2016-12-05 21:02

These are school examples of LSL code:

default
{
    touch_start(integer num)
    {
        llGiveInventory(osAvatarName2Key("John.Smith","@grid.myworld.com:8002"),"A");
    }
}

and

default
{
    touch_start(integer num)
    {
        list items;
        integer i;
        do
        {
            string item = llGetInventoryName(INVENTORY_ALL,i);
            if(item != llGetScriptName())
            {
                items += llGetInventoryName(INVENTORY_ALL,i);
            }
        }
        while(++i<llGetInventoryNumber(INVENTORY_ALL));
        llGiveInventoryList(osAvatarName2Key("John.Smith","@grid.myworld.com:8002"),llGetObjectName(),items);
    }
}

Naturally, John Smith is hypothetical avatar, please use other one.
(0031404)
Mandarinka Tasty (reporter)
2016-12-05 23:26

What else is important here:

When foreign avatar is online in a foreign grid, then:

object sent by llGiveInventory arrives to folder Objects

and folder sent by llGiveInventoryList arrives to root folder.

But when foreing avatar is offline, then sent things arrive to folder

My Suitcase, depends on whether foreign grid supports My Suitcase.


Please also be aware that due to configuration of foreign grid,

notification sent by viewer about received: items, and/or folders

does not need to appear for online avatar, in case when things have arrived, when avatar was offline.

That depends on how offline messages are configured in a foreign grid.

But regardless of such configuration, in both cases: online and offline,

items and folders are sent via llGiveInventory and llGiveInventoryList.

This error, you have mentioned above:
[23:31] llGiveInventory: Can't find destination 'a6396f7c-dd01-4fb9-abb4-9b5f706d6aaf'

is not going to appear, when you apply my patch.

Reason was,that sending was rejected, when avatar was offline.
(0031405)
Lotek (reporter)
2016-12-06 05:42

I tried the suggested functions from a sim on OsGrid running OpenSim master to Kitely as well as Metropolis, both which run 0.8.

Using llInstantMessage using your method works if the avi is online, but not when they are offline.

The vanilla llGiveInventory() doesn't work at all, whether the avi is online or offline.
With your patch, llGiveInventory() works but only when the avi is online.

Would the failures happen because the target grid is on OpenSim 0.8?
(0031406)
Lotek (reporter)
2016-12-06 06:04

I made an account on MEtropolis testgrid which is 0.9

So, the scenario is From:osgrid opensim master + this patch, to:metropolis testgrid which is a daily git snapshot i think (I just use the sandbox there).

Object instant message to offline hg avi -> doesn't arrive (silently discarded)
Object give inventory to offline hg avi -> can't find destination <uuid>

Object instant message to online hg avi -> arrives
Object give inventory to offline hg avi -> can't find destination <uuid>
(0031407)
Mandarinka Tasty (reporter)
2016-12-06 06:17

Hello again )

I was testing the problem, sending messages, items and folders

from region (0.9.1 version ) located in osgrid to region ( 0.8.2.1)

located in foreign grid.

Please check folder My Suitcase, when you send item, or folder to offline avatar

in Kitely. Please name item in other way, to not make mistake with items

received when avatar was online.

I have account in Kitely, so i make tests too.

In my case, when avatar was offline, while receiving items, folders

after logging in, I did not receive notificaiotn, but items and folders

were located in My Suitcase
(0031408)
Lotek (reporter)
2016-12-06 06:50

Confirmed, I received the item in My suitcase :) sorry I overlooked that.

I didn't receive the llInstantMessage though. Did you?
(0031409)
Mandarinka Tasty (reporter)
2016-12-06 07:20

Hello )

I have made tests, sending messages, items and folders from osgrid region = 0.9.1 version

to Kitely region = welcome center.

Items and folders are received in both cases: online and offline for foreign avatar.

Sending InstantMessages work onyl for online foreign avatar.

You see, it is hard to investigate it, because I have no access to check offline

messages in kitely grid. So hard to tell, where this problem exists.

But when i use one of my grids: 0.8.2.0 or 0.8.2.1 version,

Instant Messages based on OsAvatarName2Key are delivered to offline foreign avatar.

So administrator of Kitely could tell it more in such case.
(0031412)
aiaustin (developer)
2016-12-07 12:54
edited on: 2016-12-07 12:54

Like Mandarinka, I think it is better to make existing functions work smoothly (as reasonable) with existing llFunctions if a grid allows HG operations rather than adding custom osFunctions

(0031413)
Lotek (reporter)
2016-12-07 17:25

Agreed to use existing functions as much as possible. I was surprised to see osAvatarName2Key() can be used in this way..

Would be nice if the patch could be included in master so llGiveInventory() also works to offline HG avatars.

I can think of numerous applications that would use this; boards like midnight mania, update servers, dropboxes for vendor systems etc.

Is osAvatarName2Key() an expensive lookup for the simulator or grid services or does it have security implications? Because I wondered why this general purpose function is only enabled for region owners and managers out of the box?
(0031415)
Mandarinka Tasty (reporter)
2016-12-07 19:23

ThreatLevel for this function = Low. So that shows precisely, it is safe function.

And reason of setting it for Estate Owner and Estate Manager in osslEnable.ini

is result of so called: tradition, in my personal opinion.

It should be set: Allow_osAvatarName2Key = true

No need to make it secret for residents and only leave for managers.

Estate owners and estate managers in 95% are usual residents

with just only position on estate.
(0031494)
Lotek (reporter)
2016-12-18 11:17

Could Mandarinka's patch above be included in master or does it need to be addressed in some other way?

With the patch llGiveInventory() works very well to transfer stuff to offline HG avies

That would leave just llInstantMessage not working yet to message offline HG avies
(0031495)
aiaustin (developer)
2016-12-18 14:16

Note that this is not just an issue for llInstantMessage as an instant message done via a viewer chat/IM tool also does not work between an avatar on one grid to an offline HG avatar who is not online either on the source grid or on the destination home grid even when that grid supports offline IM delivery.
(0035785)
Mandarinka Tasty (reporter)
2019-10-25 14:54

I've removed the patch of mine.

- Issue History
Date Modified Username Field Change
2016-12-04 23:34 Lotek New Issue
2016-12-05 05:14 UbitUmarov Note Added: 0031399
2016-12-05 19:21 Mandarinka Tasty Note Added: 0031400
2016-12-05 19:29 Mandarinka Tasty Note Added: 0031401
2016-12-05 20:57 Mandarinka Tasty File Added: 0001-Fix-for-llGiveInventory-and-llGiveInventoryList.patch
2016-12-05 20:59 Mandarinka Tasty Note Added: 0031402
2016-12-05 20:59 Mandarinka Tasty Status new => patch included
2016-12-05 21:02 Mandarinka Tasty Note Added: 0031403
2016-12-05 23:26 Mandarinka Tasty Note Added: 0031404
2016-12-06 05:42 Lotek Note Added: 0031405
2016-12-06 06:04 Lotek Note Added: 0031406
2016-12-06 06:17 Mandarinka Tasty Note Added: 0031407
2016-12-06 06:50 Lotek Note Added: 0031408
2016-12-06 07:20 Mandarinka Tasty Note Added: 0031409
2016-12-07 12:54 aiaustin Note Added: 0031412
2016-12-07 12:54 aiaustin Note Edited: 0031412 View Revisions
2016-12-07 17:25 Lotek Note Added: 0031413
2016-12-07 19:23 Mandarinka Tasty Note Added: 0031415
2016-12-18 11:17 Lotek Note Added: 0031494
2016-12-18 14:16 aiaustin Note Added: 0031495
2019-10-25 14:53 Mandarinka Tasty File Deleted: 0001-Fix-for-llGiveInventory-and-llGiveInventoryList.patch
2019-10-25 14:54 Mandarinka Tasty Note Added: 0035785
2019-10-25 14:54 Mandarinka Tasty Status patch included => resolved
2019-10-25 14:54 Mandarinka Tasty Resolution open => won't fix
2019-10-25 14:54 Mandarinka Tasty Assigned To => Mandarinka Tasty
2019-10-25 15:58 UbitUmarov Assigned To Mandarinka Tasty =>
2019-10-25 15:58 UbitUmarov Resolution won't fix => reopened
2019-10-25 16:00 UbitUmarov Status resolved => acknowledged


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker