Capabilities

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Enabling and Disabling)
 
(39 intermediate revisions by one user not shown)
Line 1: Line 1:
{{Languages|Capabilities}}
+
{{Quicklinks|Capabilities}}
 
=Introduction=
 
=Introduction=
  
 
Capabilities are part of the communications protocol between a client and the region<br>
 
Capabilities are part of the communications protocol between a client and the region<br>
Most correspond to a HTTP URL a client will use to perform a particular action, for example get a texture data.
+
This correspond to a HTTP URL a client will use to perform a particular action, for example get a texture data.<br>
Some others are information about the viewer or the region<br>
+
A region may provide the service for a capability, providing its URL for it, provide a URL of a external service or ignore it if not supported.
A region may provide the service for a capability, providing its URL for it, or provide a URL of a external service.
+
  
 
Opensimulator supports part of the capabilities that Third Part Viewers expect from Second Life, plus its own set<br>
 
Opensimulator supports part of the capabilities that Third Part Viewers expect from Second Life, plus its own set<br>
  
  
==OpenSimulator==
+
==OpenSimulator capabilities==
These are capabilities that a OpenSimulator region prepares for each client.<br>
+
These are capabilities that a OpenSimulator region can setup for each client.<br>
 
Note that this list is version dependent, and may not be up to date<br>
 
Note that this list is version dependent, and may not be up to date<br>
  
 +
===SEED the start capability===
 +
viewers connect to this with a list of the capabilities they need and service replies with the list of the URLs of those capabilities it supports<br>
 +
some Information about viewer or region may also be included on request or reply<br>
 +
some reply URLs may contain parts unique to the current client and region
 +
 +
===Other capabilities===
 
{| border="1"
 
{| border="1"
 
! Name !! Description
 
! Name !! Description
Line 59: Line 64:
 
| GetObjectPhysicsData ||
 
| GetObjectPhysicsData ||
 
|-
 
|-
| GetTexture || used to get texture data via HTTP instead of via UDP.  See [http://wiki.secondlife.com/wiki/HTTP_Texture#HTTP_API Texture capabilities].
+
| GetTexture || used to get texture data via HTTP instead of via UDP.
 
|-
 
|-
 
| GroupMemberData ||
 
| GroupMemberData ||
Line 143: Line 148:
 
| UploadObjectAsset ||
 
| UploadObjectAsset ||
 
|-
 
|-
| ViewerAsset || Main fetch for all assets, replaces llUDP methods, and caps GetTexture, GetMesh and GetMesh2  
+
| ViewerAsset || Main fetch for all assets, replaces llUDP methods, and caps GetTexture, GetMesh and GetMesh2<br><b>WARNING:</b> FireStorm version 6.0.2 does not handle this in a form compatible with opensimulator. If that viewer version use is needed, this must be disabled<br>
 +
 
 
|-
 
|-
 
| ViewerStartAuction ||
 
| ViewerStartAuction ||
Line 153: Line 159:
  
 
==Enabling and Disabling==
 
==Enabling and Disabling==
Capabilities are enabled and disabled in OpenSimulator by setting a property with the name Cap_<attachment-name> in the [ClientStack.LindenCaps] configuration setting of OpenSim.ini. Defaults are present in file OpenSimDefaults.ini<br>
+
Capabilities are enabled and disabled in OpenSimulator by setting a property with the name Cap_<capability-name> in the [ClientStack.LindenCaps] configuration setting of OpenSim.ini.<br>
 +
Default settings are present in file OpenSimDefaults.ini<br>
 
the value can be:
 
the value can be:
* "" (or the capability parameter is not present), the service is disabled.<br>
+
* "" (or the capability property is not present on any ini file), the service is disabled.<br>
 
* "localhost", the service is provided by simulator<br>
 
* "localhost", the service is provided by simulator<br>
 
* a valid URL, the service is provided by a external server<br>
 
* a valid URL, the service is provided by a external server<br>
Line 166: Line 173:
 
</source>
 
</source>
  
or better commented out (start of line with ;)<br>
 
<source lang="ini">
 
[ClientStack.LindenCaps]
 
;Cap_GetTexture = ""
 
</source>
 
 
and to enable it
 
and to enable it
  
Line 178: Line 180:
 
</source>
 
</source>
  
There are also a large number of default capabilities set up in the OpenSimDefaults.ini file.  As with other configuration settings, these will be overwritten by anything you set in the OpenSim.ini file.
+
There are a large number of default capabilities set up in the OpenSimDefaults.ini file.  As with other configuration settings, these will be overwritten by anything you set in the OpenSim.ini file.
  
 
=Mechanism=
 
=Mechanism=
Line 194: Line 196:
 
You can see the capabilities set up with the "show caps list" simulator console command.  Here's some example output from a test 0.9.2.0 Yeti.
 
You can see the capabilities set up with the "show caps list" simulator console command.  Here's some example output from a test 0.9.2.0 Yeti.
  
=== Example of Capabilities sent to viewer (0.9.2 Dev)===
+
==Example of Capabilities sent to a particular viewer (0.9.2 Dev)==
 
<pre>
 
<pre>
 
Region (root) # show caps list
 
Region (root) # show caps list
Line 255: Line 257:
 
</pre>
 
</pre>
  
Note 1: ViewerAsset cap should be disabled util Firestorm 6.0.x is replaced<br>
+
NOTE: Caps format may change
NOTE 2: Caps format may change
+
 
+
Here, the SEED capability is the initial capability from which to request the others.
+

Latest revision as of 04:33, 31 March 2021

Contents

[edit] Introduction

Capabilities are part of the communications protocol between a client and the region
This correspond to a HTTP URL a client will use to perform a particular action, for example get a texture data.
A region may provide the service for a capability, providing its URL for it, provide a URL of a external service or ignore it if not supported.

Opensimulator supports part of the capabilities that Third Part Viewers expect from Second Life, plus its own set


[edit] OpenSimulator capabilities

These are capabilities that a OpenSimulator region can setup for each client.
Note that this list is version dependent, and may not be up to date

[edit] SEED the start capability

viewers connect to this with a list of the capabilities they need and service replies with the list of the URLs of those capabilities it supports
some Information about viewer or region may also be included on request or reply
some reply URLs may contain parts unique to the current client and region

[edit] Other capabilities

Name Description
AttachmentResources appears to be associated with determining limits on scripts in agent attachments.
AvatarPickerSearch
ChatSessionRequest
CopyInventoryFromNotecard
DispatchRegionInfo
EstateAccess
EstateChangeInfo
EnvironmentSetting
EventQueueGet used for the event queue.
FetchInventory obsolete
FetchInventory2 see Inventory capabilities
FetchInventoryDescendents2 see Inventory capabilities
FetchLib2 see Inventory capabilities
FetchLibDescendents2 see Inventory capabilities.
FetchLib Obsolete
FetchLibDescendents Obsolete
GetDisplayNames
GetMesh used to get mesh data
GetMesh2 used to get mesh data
GetObjectCost
GetObjectPhysicsData
GetTexture used to get texture data via HTTP instead of via UDP.
GroupMemberData
GroupProposalBallot
HomeLocation
LandResources
MapLayer
MapLayerGod
NewFileAgentInventory
NewFileAgentInventoryVariablePrice
ObjectAdd
ObjectMedia used to get information about a media on a prim (MOAP)/shared media texture/surface.
ObjectMediaNavigate used to change web pages, etc., on a MOAP surface
ParcelPropertiesUpdate
ParcelMediaURLFilterList
ParcelNavigateMedia
ParcelVoiceInfoRequest
ProductInfoRequest
ProvisionVoiceAccountRequest
RemoteParcelRequest
RequestTextureDownload
SearchStatRequest
SearchStatTracking
SendPostcard
SendUserReport
SendUserReportWithScreenshot
ServerReleaseNotes
SetDisplayName
SimConsoleAsync used for the simulator console
SimulatorFeatures used to get information about what simulator features are available. See SimulatorFeatures for more information.
StartGroupProposal
TextureStats
UntrustedSimulatorMessage
UpdateAgentInformation
UpdateAgentLanguage
UpdateGestureAgentInventory
UpdateNotecardAgentInventory
UpdateScriptAgent
UpdateGestureTaskInventory
UpdateNotecardTaskInventory
UpdateScriptTask
UploadBakedTexture Used to upload avatar baked textures via HTTP rather than UDP
UploadObjectAsset
ViewerAsset Main fetch for all assets, replaces llUDP methods, and caps GetTexture, GetMesh and GetMesh2
WARNING: FireStorm version 6.0.2 does not handle this in a form compatible with opensimulator. If that viewer version use is needed, this must be disabled
ViewerStartAuction
ViewerStats Used to upload viewer statistics (cpu usage, fps, etc.)
WebFetchInventoryDescendents Obsolete

[edit] Enabling and Disabling

Capabilities are enabled and disabled in OpenSimulator by setting a property with the name Cap_<capability-name> in the [ClientStack.LindenCaps] configuration setting of OpenSim.ini.
Default settings are present in file OpenSimDefaults.ini
the value can be:

  • "" (or the capability property is not present on any ini file), the service is disabled.
  • "localhost", the service is provided by simulator
  • a valid URL, the service is provided by a external server

For instance, to disable the GetTexture capability, one would set

[ClientStack.LindenCaps]
Cap_GetTexture = ""

and to enable it

[ClientStack.LindenCaps]
Cap_GetTexture = "localhost"

There are a large number of default capabilities set up in the OpenSimDefaults.ini file. As with other configuration settings, these will be overwritten by anything you set in the OpenSim.ini file.

[edit] Mechanism

Here's a brief description of the mechanism by which a viewer entering a gird is provided with capability endpoints on first login. The mechanism is slightly different when user moves between regions after login. See SimulatorLoginProtocol for more details.

  1. The client requests login to the installation's login service.
  2. The login service decides destiny region, checking it it accepts the client
  3. The login service generates a seed key. This is a random key to generate a unique region URL for the client.
  4. The login service informs the destiny region about this client including the the seed key.
  5. The login service informs the client about the region access information, including a region URL for the seed (seed capability)
  6. The client establishes an initial child connection with the simulator with the UseCircuitCode UDP message. The server triggers individual modules to register capabilities as required (e.g. the GetTextureModule registers a GetTexture capability, etc.). As before, these capabilities have a random component.
  7. The client sends a HTTP request to the seed capability URL provided earlier, requesting a set of capabilities (GetTexture, etc.). The simulator replies with the required capability URLs.
  8. The client can then make requests to specific capabilites.

You can see the capabilities set up with the "show caps list" simulator console command. Here's some example output from a test 0.9.2.0 Yeti.

[edit] Example of Capabilities sent to a particular viewer (0.9.2 Dev)

Region (root) # show caps list
Region ubittest11:
** Circuit 1881454533:
   UpdateGestureTaskInventory             /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   UploadBakedTexture                     /CAPS/e7762177-b2d1-41c7-ba9d-4d5953883c1b0010/
   GroupMemberData                        /CAPS/8ba20145-932e-4545-9f41-1588b1d7120b
   AgentPreferences                       /CAPS/449dcf05-aeba-4613-9fb7-cc154a17671a
   ObjectMedia                            /CAPS/250c3ad6-6515-485a-8391-6581599163ac
   HomeLocation                           /CAPS/eda48829-7713-4f29-a873-a49ff1e28cce
   UpdateScriptAgentInventory             /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   MapLayer                               /CAPS/ff37d443-2acc-4bdc-b35f-1c14480f0132
   ServerReleaseNotes                     /CAPS/2c57351f-e9b2-4223-ba10-2324b8f807c0/
   ProvisionVoiceAccountRequest           /CAPS/e7762177-b2d1-41c7-ba9d-4d5953883c1b0108/
   ObjectMediaNavigate                    /CAPS/301278a3-49e6-46bf-a1c2-661fa97427f8
   UpdateScriptTaskInventory              /CAPS/fcc995fb-1dfb-443e-aae9-933a17f03161
   AvatarPickerSearch                     /CAPS/3d348ccb-7fda-4927-905b-e27e9d18db74/
   ExtEnvironment                         /CAPS/f8d1a848-99f0-4cac-9293-f74a790a0dff/
   UpdateScriptTask                       /CAPS/fcc995fb-1dfb-443e-aae9-933a17f03161
   GetDisplayNames                        /CAPS/bd0f7c2d-6c5a-4e96-b998-9f8a6777c715
   CopyInventoryFromNotecard              /CAPS/6fe40ffb-88f1-4483-963e-b5f94b9b60b3
   FetchInventory2                        /CAPS/72be4350-439a-41c9-9782-2f2f402ec61b
   RenderMaterials                        /CAPS/e7762177-b2d1-41c7-ba9d-4d5953883c1b/
   UpdateSettingsAgentInventory           /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   GetObjectCost                          /CAPS/3084898a-5ea9-48ab-a879-1e6c3609ade1
   UpdateNotecardAgentInventory           /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   ParcelVoiceInfoRequest                 /CAPS/e7762177-b2d1-41c7-ba9d-4d5953883c1b0107/
   GetObjectPhysicsData                   /CAPS/6f9fd433-2b8b-458f-8340-49a34ec28d77
   UpdateAgentInformation                 /CAPS/449dcf05-aeba-4613-9fb7-cc154a17671a
   UpdateSettingsTaskInventory            /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   UpdateAnimSetAgentInventory            /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   UpdateAgentLanguage                    /CAPS/449dcf05-aeba-4613-9fb7-cc154a17671a
   SimulatorFeatures                      /CAPS/fe9a00a1-2025-4243-bc20-ba780b309216
   EstateChangeInfo                       /CAPS/f8ef6e17-887c-47b2-afa4-bc6f348ac533/
   UpdateGestureAgentInventory            /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   EstateAccess                           /CAPS/c6a89434-da8c-4ca5-91ce-0f6d50b01127/
   LSLSyntax                              /CAPS/84363df8-df9d-4d20-aa6e-f898c37a4e6b
   ParcelPropertiesUpdate                 /CAPS/8c22f06e-8174-482a-8923-e553a7a26ac2
   CreateInventoryCategory                /CAPS/0464839f-a53b-40e4-ba67-e5e51ee586bd
   ObjectAdd                              /CAPS/280c3b36-e1cf-430d-ab2e-3b555d382c78/
   ResourceCostSelected                   /CAPS/9847b0d8-21da-4c23-9743-970dee156bb8
   UpdateScriptAgent                      /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   RemoteParcelRequest                    /CAPS/0939a467-aa93-42fb-b108-fd0ad4ea5c73
   NewFileAgentInventory                  /CAPS/402dbdf7-e67a-4ab4-88b4-082700407971
   SEED                                   /CAPS/e7762177-b2d1-41c7-ba9d-4d5953883c1b0000/
   CustomMenuAction                       /CAPS/3f756ad1-539e-4873-a1af-d27642fe025b/
   EnvironmentSettings                    /CAPS/e9f38618-e9aa-4bd5-86c3-dd0f8f8e5a45/
   UpdateNotecardTaskInventory            /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425
   UploadObjectAsset                      /CAPS/02c0f42f-22e6-46a2-b892-4d8fd3e12097/
   UntrustedSimulatorMessage              /CAPS/7abbc33f-9371-4e49-91bb-280843ab3210
   SimConsoleAsync                        /CAPS/abb4ded1-9132-4e29-ab53-4fa13b1e3dfa/
   MeshUploadFlag                         /CAPS/2ed68e7d-1637-4acb-8f0e-2c559fcd5238
   EventQueueGet                          /CAPS/EQG/d23c8b9e-cf17-46af-a8cb-b887e4fa9f5b/
   FetchInventoryDescendents2             /CAPS/3e19ee86-0ed1-4b20-a92a-94882652c03e/
   GetTexture                             (deleted url)/CAPS/c27e9aa2-3b78-4d90-bc60-e977e9c3f3a3/
   GetMesh                                (deleted url)/CAPS/61e945a7-c054-493e-8939-56f40ca09856/
   GetMesh2                               (deleted url)/CAPS/59b7a937-af83-4d4e-9c38-42a28e1f2160/
   ViewerAsset                            (deleted url)/CAPS/0c86e85c-4f1a-443d-8950-d1e0832db88f/

NOTE: Caps format may change

Personal tools
General
About This Wiki