Capabilities
From OpenSimulator
(→Mechanism) |
|||
(79 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Quicklinks|Capabilities}} | ||
=Introduction= | =Introduction= | ||
− | Capabilities are the | + | Capabilities are part of the communications protocol between a client and the region<br> |
+ | This correspond to a HTTP URL a client will use to perform a particular action, for example get a texture data.<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. | ||
− | + | Opensimulator supports part of the capabilities that Third Part Viewers expect from Second Life, plus its own set<br> | |
− | |||
− | + | ==OpenSimulator capabilities== | |
− | == OpenSimulator | + | These are capabilities that a OpenSimulator region can setup for each client.<br> |
− | OpenSimulator | + | 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 26: | Line 31: | ||
|- | |- | ||
| DispatchRegionInfo || | | DispatchRegionInfo || | ||
+ | |- | ||
+ | | EstateAccess || | ||
|- | |- | ||
| EstateChangeInfo || | | EstateChangeInfo || | ||
+ | |- | ||
+ | | EnvironmentSetting || | ||
|- | |- | ||
| EventQueueGet || used for the event queue. | | EventQueueGet || used for the event queue. | ||
Line 48: | Line 57: | ||
|- | |- | ||
| GetMesh || used to get mesh data | | GetMesh || used to get mesh data | ||
+ | |- | ||
+ | | GetMesh2 || used to get mesh data | ||
|- | |- | ||
| GetObjectCost || | | GetObjectCost || | ||
Line 53: | Line 64: | ||
| GetObjectPhysicsData || | | GetObjectPhysicsData || | ||
|- | |- | ||
− | | GetTexture || used to get texture data via HTTP instead of via UDP | + | | GetTexture || used to get texture data via HTTP instead of via UDP. |
|- | |- | ||
| GroupMemberData || | | GroupMemberData || | ||
Line 109: | Line 120: | ||
| SimConsoleAsync || used for the simulator console | | SimConsoleAsync || used for the simulator console | ||
|- | |- | ||
− | | SimulatorFeatures || used to get information about what simulator features are available | + | | SimulatorFeatures || used to get information about what simulator features are available. See [[SimulatorFeatures]] for more information. |
|- | |- | ||
| StartGroupProposal || | | StartGroupProposal || | ||
Line 136: | Line 147: | ||
|- | |- | ||
| UploadObjectAsset || | | UploadObjectAsset || | ||
+ | |- | ||
+ | | 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 145: | Line 159: | ||
==Enabling and Disabling== | ==Enabling and Disabling== | ||
− | Capabilities are enabled and disabled in OpenSimulator by setting a property with the name Cap_< | + | 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: | ||
+ | * "" (or the capability property is not present on any ini file), the service is disabled.<br> | ||
+ | * "localhost", the service is provided by simulator<br> | ||
+ | * a valid URL, the service is provided by a external server<br> | ||
For instance, to disable the GetTexture capability, one would set | For instance, to disable the GetTexture capability, one would set | ||
Line 161: | Line 180: | ||
</source> | </source> | ||
− | There are | + | 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= | ||
− | Here's a brief description of the mechanism by which a viewer entering a | + | 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 client requests login to the installation's login service. | ||
− | # The 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 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 request to the seed capability provided earlier, requesting a set of capabilities (GetTexture, etc.). The simulator replies with the required capability URLs. | + | # 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. | # 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. | + | 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 a particular viewer (0.9.2 Dev)== | ||
<pre> | <pre> | ||
− | + | Region (root) # show caps list | |
− | Region | + | 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/ | |
− | ParcelPropertiesUpdate /CAPS/ | + | 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/ | |
− | EventQueueGet /CAPS/EQG/ | + | UpdateGestureAgentInventory /CAPS/8f912ed8-7072-40e6-ac27-7861f8eb5425 |
− | FetchInventoryDescendents2 /CAPS/ | + | 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/ | ||
</pre> | </pre> | ||
− | + | NOTE: Caps format may change | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 04:33, 31 March 2021
Languages: |
English Français |
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.
- 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.
[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