Folks, <br><br>wanted to check your opinion on this.<br><br>I've slowly started hacking up the code to try out my idea of "friendly teleports".<br><br>The way I am playing with it is by making the "hybrid backend services" - a backend services class has the LocalBackEndServices as a class member, first redirects all of the calls to it, and then handles the "failure" cases   in InformRegionOfChildAgent, ExpectAvatarCrossing, AcknowledgeAgentCrossed, RequestNeighbourInfo.
<br><br>The latter retrieves the regioninfo from the "remote regions cache" - hash indexed by the regionid, which would need to be populated within the flow of the said os* function.<br><br>The rationale for making the "overlay class" is to avoid the duplication of the functionality of  "same-server" functions which are there already in the local backend services - and have just the "intergrid" functions using the remoting which I snarf from the OGS1 backend services code.
<br><br>Since the regionhandle seems to be quite tied to the grid coordinates, I am thinking of the following scheme:<br><br>1) I add a new os* function, which would take the URL of the sim + the coordinates as the parameter. (could be a PATH_INFO-like scheme, 
i.e.: <a href="http://sim-domain-name/path_to_handler_or_sim_name_in_case_of_grid/x/y/z">http://sim-domain-name/path_to_handler_or_sim_name_in_case_of_grid/x/y/z</a><br><br>2) when the user script calls this function, the source sim A retrieves the info about the destination sim (grid) B via this URL (the mainly interesting stuff for the current implementation is the remoting IP/port) - but might change in the future. This is the point where the user might get a dialog box "do you want to teleport to ..."
<br><br>3) A and B need to negotiate a "temporary" regionHandle, which would be unused in both sims (grids). <br><br>3a) A sends a request with the proposed region handle to sim B<br>3b) if this regionhandle is ok - then B responds to it, else it responds with "NAK", and proposes its own region handle.
<br>3c) A does the same - if still not ok, selects the new temp region handle and the story repeats. If after N attempts we do not succeed, the teleport is declared as failed. If it succeeds, then both A and B have in the cache the info about the temporary handle.
<br><br>4) the user is sent to the target sim B using the scene.RequestTeleportLocation()<br><br>5) once the user arrives, the sim (grid) B initiates a second teleport to the "real" region and signals back to sim (grid) A that the temporary location there can be cleared.
<br><br>once the teleport succeeds, the sim(grid) B clears the temporary location as well. The temporary locations would be probably cutting off the chunk of the topmost X/Y coordinates.<br><br>This is a raw idea, I still need to test it further, but I think it might work..
<br><br>/d<br><br>p.s. I do not open yet the can of worms with the inventory, etc. :)<br><br>