Capabilities
From OpenSimulator
Languages: |
English Français |
Contents |
Introduction
Capabilities are part of the communications protocol between a client and the region
Most correspond to a HTTP URL a client will use to perform a particular action, for example get a texture data.
Some others are information about the viewer or the region
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
OpenSimulator
These are capabilities that a OpenSimulator region prepares for each client.
Note that this list is version dependent, and may not be up to date
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. See Texture capabilities. |
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 |
ViewerStartAuction | |
ViewerStats | Used to upload viewer statistics (cpu usage, fps, etc.) |
WebFetchInventoryDescendents | Obsolete |
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.
Defaults are present in file OpenSimDefaults.ini
the value can be:
- "" (or the capability parameter is not present), 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 = ""
or better commented out (start of line with ;)
[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.
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.
- The client requests login to the installation's login service.
- The login service decides destiny region, checking it it accepts the client
- The login service generates a seed key. This is a random key to generate a unique region URL for the client.
- The login service informs the destiny region about this client including the the seed key.
- The login service informs the client about the region access information, including a region URL for the seed (seed capability)
- 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.
- 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.
- 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.
Example of Capabilities sent to 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 1: ViewerAsset cap should be disabled util Firestorm 6.0.x is replaced
NOTE 2: Caps format may change
Here, the SEED capability is the initial capability from which to request the others.