SimulatorLoginProtocol

From OpenSimulator

Jump to: navigation, search

(This page is a work in progress)

Contents

Process

There are 4 basic steps to the viewer login process.

Step 1

The viewer contacts the grid login service. On a viewer, this can be specified by the -loginuri command line switch or by picking a grid in the grid manager of a viewer that provides this.

The viewer sends an XMLRPC login_to_simulator message to the loginuri. This provides

  • "first" - User first name
  • "last" - User last name
  • "passwd" - Hashed password
  • "version" - Viewer version
  • "start" - Start location. If "home" then the user's home location, "last" is the user's location on previous logout. Start can also be a named region and location (see data section below for more information on this).

Step 2

If the user is authenticated, the simulator at which they want to start is contacted and told that they are coming. It is passed a circuit code for that viewer.

Step 3

If the simulator will accept the user, then the user is passed the details of this simulator (chiefly the URI to use, as well as the circuit code).

Step 4

The viewer connects directly to the simulator and is authenticated using the circuit code.

Details

The simulator exposes an XML-RPC method called login_to_simulator at the loginuri URL. This takes a number of parameters from the viewer. Here's an example call.

<?xml version="1.0"?>
<methodCall>
  <methodName>login_to_simulator</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>first</name>
            <value>
              <string>Justin</string>
            </value>
          </member>
          <member>
            <name>last</name>
            <value>
              <string>Clark-Casey</string>
            </value>
          </member>
          <member>
            <name>passwd</name>
            <value>
              <string>$1$f7583d0d-5b61-4729-91d0-6dd9a8bfc923</string>
            </value>
          </member>
          <member>
            <name>start</name>
            <value>
              <string>uri:test&amp;128&amp;128&amp;0</string>
            </value>
          </member>
          <member>
            <name>version</name>
            <value>
              <string>1.8.5.5617</string>
            </value>
          </member>
          <member>
            <name>channel</name>
            <value>
              <string>Singularity Release 64</string>
            </value>
          </member>
          <member>
            <name>platform</name>
            <value>
              <string>Win</string>
            </value>
          </member>
          <member>
            <name>mac</name>
            <value>
              <string>fcec27eea5713b37d492bfa1c54d0fdf</string>
            </value>
          </member>
          <member>
            <name>id0</name>
            <value>
              <string>dda45b4a650be300c0c9746c6d70e57a</string>
            </value>
          </member>
          <member>
            <name>skipoptional</name>
            <value>
              <string>true</string>
            </value>
          </member>
          <member>
            <name>last_exec_event</name>
            <value>
              <int>0</int>
            </value>
          </member>
          <member>
            <name>options</name>
            <value>
              <array>
                <data>
                  <value>
                    <string>inventory-root</string>
                  </value>
                  <value>
                    <string>inventory-skeleton</string>
                  </value>
                  <value>
                    <string>inventory-lib-root</string>
                  </value>
                  <value>
                    <string>inventory-lib-owner</string>
                  </value>
                  <value>
                    <string>inventory-skel-lib</string>
                  </value>
                  <value>
                    <string>initial-outfit</string>
                  </value>
                  <value>
                    <string>gestures</string>
                  </value>
                  <value>
                    <string>event_categories</string>
                  </value>
                  <value>
                    <string>event_notifications</string>
                  </value>
                  <value>
                    <string>classified_categories</string>
                  </value>
                  <value>
                    <string>adult_compliant</string>
                  </value>
                  <value>
                    <string>buddy-list</string>
                  </value>
                  <value>
                    <string>ui-config</string>
                  </value>
                  <value>
                    <string>max_groups</string>
                  </value>
                  <value>
                    <string>max-agent-groups</string>
                  </value>
                  <value>
                    <string>map-server-url</string>
                  </value>
                  <value>
                    <string>tutorial_setting</string>
                  </value>
                  <value>
                    <string>login-flags</string>
                  </value>
                  <value>
                    <string>global-textures</string>
                  </value>
                </data>
              </array>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

The parameters are as follows

  • first - First name of the user.
  • last - Last name of the user.
  • passwd - MD5 hash of the user's password with the string "$1$" prepended.
  • start - The region in which the user should start upon login. This is one of
    • "home" - start in the user's home location.
    • "last" - start in the location from which the user last logged out.
    • A specific location. This is in the format "uri:<region-name>&<x-coord>&<y-coord>&<z-coord>". For instance, the string "uri:test&128&128&0" above signals that the user should login to the center of the region named test (the avatar is placed on the ground if given a z-coordinate below terrain).
  • version - Version number of the viewer/client connecting.
  • channel - Name of the viewer/client connecting.
  • platform - Probably the platform of the client/viewer. Currently ignored by OpenSimulator. This is probably not particularly important anyway - Singularity 1.8.5.5617, for instance, has this set to "Win" even on the Linux platform.
  • mac - MAC address of the network card used by the client/viewer to make the connection.
  • id0 - A GUID. Function unknown. Currently unused by OpenSimulator.
  • skipoptional - A boolean. Function unknown. Currently unused by OpenSimulator.
  • last_exec_event - An integer. Function unknown. Currently unused by OpenSimulator.
  • options - A list of strings. Function unknown, though probably used in many cases to control the data sent back by the login service. Currently unused by OpenSimulator which just sends back all data every time.

Here's an example response to the example call above. If you are looking to use this information in code, I recommend that you start by using only the parameters that you actually need. There are likely many parameters here that are historical and actually no longer or never used by viewers (and which one day should be cleaned up).

<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>home</name>
            <value>
              <string>{'region_handle':[r256000,r256000], 'position':[r50,r100,r200], 'look_at':[r1,r0,r0]}</string>
            </value>
          </member>
          <member>
            <name>look_at</name>
            <value>
              <string>[r0.171732,r0.9851437,r0]</string>
            </value>
          </member>
          <member>
            <name>agent_access_max</name>
            <value>
              <string>A</string>
            </value>
          </member>
          <member>
            <name>seed_capability</name>
            <value>
              <string>http://192.168.1.2:9000/CAPS/da4b15ea-1d97-4140-afe3-2dd1ce5560710000/</string>
            </value>
          </member>
          <member>
            <name>region_x</name>
            <value>
              <i4>256000</i4>
            </value>
          </member>
          <member>
            <name>region_y</name>
            <value>
              <i4>256000</i4>
            </value>
          </member>
          <member>
            <name>circuit_code</name>
            <value>
              <i4>697482820</i4>
            </value>
          </member>
          <member>
            <name>inventory-root</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>login-flags</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>stipend_since_login</name>
                        <value>
                          <string>N</string>
                        </value>
                      </member>
                      <member>
                        <name>ever_logged_in</name>
                        <value>
                          <string>Y</string>
                        </value>
                      </member>
                      <member>
                        <name>daylight_savings</name>
                        <value>
                          <string>Y</string>
                        </value>
                      </member>
                      <member>
                        <name>gendered</name>
                        <value>
                          <string>Y</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>message</name>
            <value>
              <string>Welcome, Avatar!</string>
            </value>
          </member>
          <member>
            <name>inventory-lib-root</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>first_name</name>
            <value>
              <string>Justin</string>
            </value>
          </member>
          <member>
            <name>ui-config</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>allow_first_life</name>
                        <value>
                          <string>Y</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>event_categories</name>
            <value>
              <array>
                <data/>
              </array>
            </value>
          </member>
          <member>
            <name>classified_categories</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Shopping</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Land Rental</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Property Rental</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Special Attraction</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>4</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>New Products</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>5</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Employment</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>6</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Wanted</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>7</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Service</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>8</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>category_name</name>
                        <value>
                          <string>Personal</string>
                        </value>
                      </member>
                      <member>
                        <name>category_id</name>
                        <value>
                          <i4>9</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>seconds_since_epoch</name>
            <value>
              <i4>1411075065</i4>
            </value>
          </member>
          <member>
            <name>inventory-skeleton</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>004d663b-9980-46ae-8559-bb60e9d67d28</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>5cb09cb9-5080-4bf4-8ba0-86b6197fcc74</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Camera Test</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>-1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>011a8b68-b4d9-47ea-b023-c519b1db8946</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Current Outfit</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>46</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>046b1797-5552-4375-93d9-50849bca87dd</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Animations</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>20</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>06753608-f89c-c20b-0244-e99fe6c09c5b</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>25861b47-97db-ed70-86b7-ad4aa5bcc16a</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>All</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>12a57fa9-d1a1-45eb-accb-5b4861dfaa0d</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Notecards</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>7</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>21ad8f1f-d6f8-480e-8b58-d5cf4d2b3fc2</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Lost And Found</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>16</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>25861b47-97db-ed70-86b7-ad4aa5bcc16a</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>f2821449-9d7d-4bc4-adb1-7058dac1c63f</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Friends</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>2a0516f8-937f-462d-92c7-6662543ba515</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Textures</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>0</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>2d186de7-ba32-5087-217e-d0cc39e9938c</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Current Outfit</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>46</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>49</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>2f28be55-5d23-56b3-f098-978c376f4755</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>fd5bad85-ac24-f5c5-6c52-04dee026faeb</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>#AO</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>-1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000000-0000-0000-0000-000000000000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>My Inventory</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>9</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>19</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>3fed208b-122a-42de-b22d-b536c741ce8e</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Notecards</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>7</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>5cb09cb9-5080-4bf4-8ba0-86b6197fcc74</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Objects</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>6</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>47</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>5fefc6a1-406a-401c-b086-b01febd33818</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Textures</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>0</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>603a7df0-e1b7-4985-9a59-c5ddadbd3843</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Calling Cards</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>64d429e0-1436-45e5-9fcf-8eab3a0c9b79</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Objects</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>6</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>66903e66-bb68-4949-8051-887e84161ee9</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Favorites</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>23</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>784dbfcd-74fa-4985-ae00-260dea2d40bb</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Clothing</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>5</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>7d044355-fa12-4467-b8d3-5ae1303eb7e6</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Gestures</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>21</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>7ff30412-fcdd-443d-816c-fab3d3ad30fa</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Lost And Found</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>16</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>My Suitcase</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>8</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>17</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>850fdfee-8a46-db99-578d-644953d4314a</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Favorites</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>23</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>8c4a959f-1eca-41dc-baab-99410f7f882e</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Trash</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>14</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>63</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>97cc95a1-c461-49d4-92b4-697ff6df8ca7</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Scripts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>a37421eb-0fd4-46c0-b563-38e79975fa97</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Landmarks</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>4</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>a4fc58a0-5bec-417a-84a8-e192dc20457c</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Trash</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>14</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>c7084808-79fe-4f74-82c9-8d6cd1f172ab</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Body Parts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>13</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>33</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>ce71217a-67cf-4f0f-980a-c0ea47b19896</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Body Parts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>13</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>cebd40c2-6543-4ff3-b1f8-c478409820dc</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Sounds</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>cff574b0-e7fb-4f07-81f2-745afb9b2a79</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Landmarks</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>d97674ab-3acc-4b2c-9cc8-c193332a1167</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Clothing</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>5</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>dd0d5bda-1a68-48ed-a8e5-fdd59618758c</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>5cb09cb9-5080-4bf4-8ba0-86b6197fcc74</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Alien 1b</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>-1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>28</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>de152023-6383-43ae-ba6a-3f736d41f588</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Gestures</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>21</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>df67809c-bd2f-4b1f-aa72-33b7816faae9</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Sounds</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>e9850612-0ebc-4b65-97b1-26ea5bc8cde9</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>5cb09cb9-5080-4bf4-8ba0-86b6197fcc74</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>OKC Racer Kit v0.186X</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>-1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>13</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>ec6ebd81-c62a-4715-ad33-b2db49dc13c4</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Scripts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>ef4a9f8c-7835-4a3c-9ebe-cc313bd263d0</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Photo Album</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>15</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>f2821449-9d7d-4bc4-adb1-7058dac1c63f</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Calling Cards</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>2</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>4</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>f37b1f72-7a9d-4bbd-9532-203c769731e6</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Photo Album</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>15</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>fd5bad85-ac24-f5c5-6c52-04dee026faeb</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>37c4cfe3-ea39-4ef7-bda3-bee73bd46d95</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>#Firestorm</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>-1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>feacf8b1-5617-416c-b508-1b9049a6bff3</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>82d978e0-8892-4be1-a1f2-10dce0091021</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Animations</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>20</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>sim_ip</name>
            <value>
              <string>192.168.1.2</string>
            </value>
          </member>
          <member>
            <name>map-server-url</name>
            <value>
              <string>http://192.168.1.2:8002/</string>
            </value>
          </member>
          <member>
            <name>buddy-list</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>buddy_id</name>
                        <value>
                          <string>04c259b7-94bc-4822-b099-745191ffc247</string>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_given</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_has</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>buddy_id</name>
                        <value>
                          <string>c87dfbb1-2c7b-4335-9042-9c2a375625fd</string>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_given</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_has</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>buddy_id</name>
                        <value>
                          <string>fb5f2e30-c264-4e9d-99fb-83340b14cc4f</string>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_given</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>buddy_rights_has</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>gestures</name>
            <value>
              <array>
                <data/>
              </array>
            </value>
          </member>
          <member>
            <name>http_port</name>
            <value>
              <i4>0</i4>
            </value>
          </member>
          <member>
            <name>sim_port</name>
            <value>
              <i4>9000</i4>
            </value>
          </member>
          <member>
            <name>start_location</name>
            <value>
              <string>last</string>
            </value>
          </member>
          <member>
            <name>inventory-lib-owner</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>agent_id</name>
                        <value>
                          <string>11111111-1111-0000-0000-000100bba000</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>initial-outfit</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>folder_name</name>
                        <value>
                          <string>Nightclub Female</string>
                        </value>
                      </member>
                      <member>
                        <name>gender</name>
                        <value>
                          <string>female</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>inventory-skel-lib</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000000-0000-0000-0000-000000000000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>OpenSim Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>8</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>f0908f10-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Animations Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>20</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>d499e5e0-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>BodyParts Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>13</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>b75056e0-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Clothing Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>5</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>8e1e3a30-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Gestures Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>21</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>6bcd48e0-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Landmarks Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>3</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>33cbd240-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Notecards Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>7</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>1576c6b0-b9bf-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Objects Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>6</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>cf7e2db0-b9be-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Photos Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>15</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Scripts Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>c1284980-b9be-11dc-95ff-0800200c9a66</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Sounds Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba001</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>00000112-000f-0000-0000-000100bba000</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>Texture Library</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>0</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba003</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>A</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba004</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>B</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba017</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>R</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba018</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>S</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>284858c8-9391-6bf1-ddf5-b936f73de853</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>OpenSim Specific Scripts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba024</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>.Kan-ED Scripts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>folder_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba025</string>
                        </value>
                      </member>
                      <member>
                        <name>parent_id</name>
                        <value>
                          <string>30000112-000f-0000-0000-000100bba002</string>
                        </value>
                      </member>
                      <member>
                        <name>name</name>
                        <value>
                          <string>.Other testing scripts</string>
                        </value>
                      </member>
                      <member>
                        <name>type_default</name>
                        <value>
                          <i4>10</i4>
                        </value>
                      </member>
                      <member>
                        <name>version</name>
                        <value>
                          <i4>1</i4>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>session_id</name>
            <value>
              <string>6ac2e761-f490-4122-bf6c-7ad8fbb17002</string>
            </value>
          </member>
          <member>
            <name>region_size_x</name>
            <value>
              <i4>256</i4>
            </value>
          </member>
          <member>
            <name>region_size_y</name>
            <value>
              <i4>256</i4>
            </value>
          </member>
          <member>
            <name>agent_id</name>
            <value>
              <string>f2f493c0-27d3-4cf2-be97-b44dfdad13b6</string>
            </value>
          </member>
          <member>
            <name>event_notifications</name>
            <value>
              <array>
                <data/>
              </array>
            </value>
          </member>
          <member>
            <name>global-textures</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>cloud_texture_id</name>
                        <value>
                          <string>dc4b9f0b-d008-45c6-96a4-01dd947ac621</string>
                        </value>
                      </member>
                      <member>
                        <name>sun_texture_id</name>
                        <value>
                          <string>cce0f112-878f-4586-a2e2-a8f104bba271</string>
                        </value>
                      </member>
                      <member>
                        <name>moon_texture_id</name>
                        <value>
                          <string>ec4b9f0b-d008-45c6-96a4-01dd947ac621</string>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
          <member>
            <name>login</name>
            <value>
              <string>true</string>
            </value>
          </member>
          <member>
            <name>agent_access</name>
            <value>
              <string>M</string>
            </value>
          </member>
          <member>
            <name>secure_session_id</name>
            <value>
              <string>fe210274-9056-467a-aff7-d95f60bacccc</string>
            </value>
          </member>
          <member>
            <name>last_name</name>
            <value>
              <string>Clark-Casey</string>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodResponse>

The parameters are as follows:

  • home - The home location of the user. This is in the format "{'region_handle':[r<x-grid-coord>,r<y-grid-coord>], 'position':[r<x-region-coord>,r<y-region-coord>,r<z-region-coord>], 'look_at':[r<x-coord>,r<y-coord>,r<z-coord>]}. For example "{'region_handle':[r256000,r256000], 'position':[r50,r100,r200], 'look_at':[r1,r0,r0]}".
    • region_handle gives the grid-coordinates in meters. So for a region located that the 1000,1000 co-ordinate on the map, this is 256000, 256000.
    • position is the position in the region.
    • look_at is the direction the avatar should be facing. This is a unit vector so (0, 1, 0) is facing straight north, (1, 0, 0) is east, (0,-1, 0) is south and (-1, 0, 0) is west.
  • look_at - The direction in which the avatar should be facing upon login. This is a unit vector so (0, 1, 0) is facing straight north, (1, 0, 0) is east, (0,-1, 0) is south and (-1, 0, 0) is west.
  • agent_access - The current maturity access level of the user. OpenSimulator currently always sets this to "M" (probably mature). Probably unused.
  • agent_access_max - The maximum level of region that user can access. OpenSimulator currently always sets this to "A" (probably adult). Probably unused.
  • seed_capability - The URL that the viewer should use to request further capabilities.
  • first_name - First name of this user.
  • last_name - Last name of this user.
  • agent_id - The ID of this user.
  • sim_ip - The IP to use to communicate with the receiving simulator.
  • sim_port - The UDP port to use to communicate with the receiving simulator.
  • http_port - Function unknown. OpenSimulator currently always sets this to 0. The port given directly for capabilities is used instead.
  • start_location - The parameter given in the start parameter in the login request ("last", "home", or an explicit region location).
  • region_x - The x grid coordinate of the start region in meters. So a region at map co-ordinate 1000 will have a grid co-ordinate of 256000.
  • region_y - The y grid coordinate of the start region in meters.
  • region_size_x - The x size of the start region in meters. Usually this will be 256 but with a varregion this can be a multiple of 256.
  • region_size_y - The y size of the start region in meters. Usually this will be 256 but with a varregion this can be a multiple of 256.
  • circuit_code - Circuit code to use for all UDP connections.
  • session_id - The UUID of this session.
  • secure_session_id - The secure UUID of this session.
  • inventory-root - The ID of the user's root folder (which appears as the "My Inventory" folder in most viewers).
  • inventory-skeleton - Details about the child folders of the root folder. Each entry has the following parameters.
    • folder_id - The ID of the folder.
    • parent_id - The ID of the containing folder.
    • name - The name of the folder.
    • type_default - The type of the folder. These values correspond to the InventoryType class in libopenmetaverse, where -1 is an ordinary untyped folder.
    • version - The version number of the folder. This is increment on operations that change the folder's contents. A viewer can cache these version numbers and other inventory information so that it can reduce the amount of inventory data that it has to request.
  • inventory-lib-root - The ID of the library root folder (which appears as the "OpenSim Library" folder in most viewers).
  • inventory-skel-lib - Details about the child folders of the library root folder. Has the same format as inventory-skeleton above.
  • inventory-lib-owner - The ID of the user that owns the library.
  • map-server-url - URL from which to request map tiles.
  • buddy-list - The user's friend list. This contains an entry for each friend (buddy). These entries have the following parameters.
  • gestures - The gestures that the user currently has active. If there any, each entry has the following parameters
    • item_id - The item ID of the gesture in the user's inventory.
    • asset_id - The asset ID of the gesture.
  • initial-outfit - You would think this would correspond to user's initial outfit. However, OpenSimulator always sends back an entry with folder_name "Nightclub Female" and gender "female" with no obvious ill effect. Can probably be ignored.
  • global-textures - Unknown if this is used any longer. OpenSimulator always sets
    • cloud_texture_id as dc4b9f0b-d008-45c6-96a4-01dd947ac621.
    • sun_texture_id as cce0f112-878f-4586-a2e2-a8f104bba271.
    • moon_texture_id as ec4b9f0b-d008-45c6-96a4-01dd947ac621.
  • login - Function unknown. OpenSimulator always sets this to "true".
  • login-flags - Some extra information about login. Of these
    • stipend_since_login - probably shows whether a user received stipend money since their last login. OpenSimulator always sets this to "N".
    • ever_logged_in - indicates whether the account has ever logged in. Currently, OpenSimulator always sets this to "Y" even if the user has never logged in before.
    • seconds_since_epoch - server time in Unix seconds since epoch format (i.e. seconds since 1970).
    • daylight_savings - whether daylight savings is considered to be in effect for the grid time. OpenSimulator can set this to "Y" or "N".
    • gendered - Function unknown, possibly relating to avatars. OpenSimulator always sets this to "Y".
  • message - Message that can be displayed to the user when logging in.
  • ui-config - Function unknown. OpenSimulator only has one setting here.
    • allow_first_life - always set to "Y" by OpenSimulator. Could possibly control whether the First Life tab is shown for user profiles (now obsolete in some circumstances).
  • event_categories - Function unknown, probably relates to events. OpenSimulator does not currently set this.
  • classified_categories - Classified categories. OpenSimulator currently always adds the categories
            AddClassifiedCategory((Int32) 1, "Shopping");
            AddClassifiedCategory((Int32) 2, "Land Rental");
            AddClassifiedCategory((Int32) 3, "Property Rental");
            AddClassifiedCategory((Int32) 4, "Special Attraction");
            AddClassifiedCategory((Int32) 5, "New Products");
            AddClassifiedCategory((Int32) 6, "Employment");
            AddClassifiedCategory((Int32) 7, "Wanted");
            AddClassifiedCategory((Int32) 8, "Service");
            AddClassifiedCategory((Int32) 9, "Personal");

but usefulness is unknown.

Code

The parts of OpenSimulator that handle steps 1 and 2 can be found in OpenSim.Services.LLLoginService package.

References

http://justincc.org/blog/2011/05/26/opensimulators-login-process-and-common-login-problems/ provides some diagrams that illustrate the login process.

Personal tools
General
About This Wiki