<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robsmart</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robsmart"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Robsmart"/>
		<updated>2026-04-21T12:07:06Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2010-05-13T08:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* Errors &amp;amp; Solutions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Template:Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
'''&lt;br /&gt;
please ensure you compile from the freeswitch trunk for now until we can post a minimum version number (there are known issues with older versions)'''&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can also use this [http://madhawa.com/?p=10 guide] for setting it up in a quick way -- [[User:Fly-man-|Fly-man-]]&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
=== enable mod_xml_curl ===&lt;br /&gt;
&lt;br /&gt;
Next, do not forget to activate mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml. mod_xml_curl is disabled by default on fresh install.&lt;br /&gt;
&lt;br /&gt;
uncomment the lines...&lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_xml_curl&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_siren&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== configure mod_xml_curl === &lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-credentials&amp;quot; value=&amp;quot;freeswitch:password&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-credentials&amp;quot; value=&amp;quot;freeswitch:password&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G7221@32000h,G722,PCMU,PCMA,GSM&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
=== configure conference.conf.xml ===&lt;br /&gt;
By default, FreeSwitch plays hold music when there is only one avatar in the conference and beeps for everyone when avatars arrive and leave.  To disable, edit /usr/local/freeswitch/conf/autoload_configs/conference.conf.xml.  Locate the &amp;quot;default&amp;quot; profile and comment out the following lines as shown below:&lt;br /&gt;
 &lt;br /&gt;
       [...]&lt;br /&gt;
       &amp;amp;lt;!-- File to play if you are alone in the conference --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- &amp;amp;lt;param name=&amp;quot;alone-sound&amp;quot; value=&amp;quot;conference/conf-alone.wav&amp;quot;/&amp;amp;gt; --&amp;amp;gt;&lt;br /&gt;
       [...]&lt;br /&gt;
       &amp;amp;lt;!-- File to play when you're alone (music on hold)--&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- &amp;amp;lt;param name=&amp;quot;moh-sound&amp;quot; value=&amp;quot;$${hold_music}&amp;quot;/&amp;amp;gt; --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- File to play when you join the conference --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- &amp;amp;lt;param name=&amp;quot;enter-sound&amp;quot; value=&amp;quot;tone_stream://%(200,0,500,600,700)&amp;quot;/&amp;amp;gt; [^] --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- File to play when you leave the conference --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- &amp;amp;lt;param name=&amp;quot;exit-sound&amp;quot; value=&amp;quot;tone_stream://%(500,0,300,200,100,50,25)&amp;quot;/&amp;amp;gt; [^] --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- File to play when you ae ejected from the conference --&amp;amp;gt;&lt;br /&gt;
       &amp;amp;lt;!-- &amp;amp;lt;param name=&amp;quot;kicked-sound&amp;quot; value=&amp;quot;conference/conf-kicked.wav&amp;quot;/&amp;amp;gt; --&amp;amp;gt;&lt;br /&gt;
       [...]&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;br /&gt;
&lt;br /&gt;
It appears to work better if the IP address you put in for &amp;quot;youropensimexternalIP&amp;quot; also appears in all the subsequent slots in place of 192.168.0.2.&lt;br /&gt;
&lt;br /&gt;
== Errors &amp;amp; Solutions ==&lt;br /&gt;
''' NOTE: Do not post FreeSwitch errors on Mantis, since 'melanie' will close the thread and treat you like a moron. '''&lt;br /&gt;
&lt;br /&gt;
--'''[ERR] mod_xml_curl.c:230 xml_url_fetch() Received HTTP error 0 trying to fetch''': To solve this error, get the last GIT of FreeSwitch, follow this instructions (for Ubuntu) [http://wiki.freeswitch.org/wiki/Ubuntu_Quick_Start#Updating_direct_from_Git here].&lt;br /&gt;
--'''mod_event_socket.c -&amp;gt; Socket Error Could not listen on 127.0.0.1:8021''': This means something is using the port 8021, usually freeswitch is already running, on Ubuntu, try the following command: netstat -npl | grep 8021 &lt;br /&gt;
&lt;br /&gt;
If freeswitch is running, close is with: sudo freeswitch -stop OR sudo invoke-rc.d freeswitch stop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MAKE SURE the OpenSim region you point Freeswitch at IS NOT running when you start FreeSwitch.&lt;br /&gt;
&lt;br /&gt;
ALSO make sure that you have enabled voice in the &amp;quot;About Land&amp;quot;-&amp;gt;&amp;quot;Voice&amp;quot;  dialogue in the region, you will need to be a region admin to do this.&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/AuthorizationService</id>
		<title>AuthorizationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/AuthorizationService"/>
				<updated>2009-09-16T12:51:20Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* Message Formats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Authorization service is currently just a skeleton to be later expanded, however in grid mode it can be used to communicate an external authorization service. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
To point your region at an external Authorization service edit the file&lt;br /&gt;
&lt;br /&gt;
'''bin/config-include/GridCommon.ini'''&lt;br /&gt;
&lt;br /&gt;
add a section such as the following, altering the URI to point to your authorization server&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    [AuthorizationService]&lt;br /&gt;
    ;&lt;br /&gt;
    ; change this to your grid-wide authorization server&lt;br /&gt;
    ;&lt;br /&gt;
    AuthorizationServerURI = &amp;quot;http://localhost/auth.php&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Formats ==&lt;br /&gt;
&lt;br /&gt;
When a user attempts to enter a region an HTTP POST will be made to the AuthorizationServerURI you specified in the config. The body of the POST will be an XML serialized&lt;br /&gt;
AuthorizationRequest object.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;AuthorizationRequest xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ID&amp;gt;decc5198-9de2-11de-be89-00145eecaa9a&amp;lt;/ID&amp;gt;&lt;br /&gt;
        &amp;lt;FirstName&amp;gt;Rob&amp;lt;/FirstName&amp;gt;&lt;br /&gt;
        &amp;lt;SurName&amp;gt;Smart&amp;lt;/SurName&amp;gt;&lt;br /&gt;
        &amp;lt;Email&amp;gt;user@host.com&amp;lt;/Email&amp;gt;&lt;br /&gt;
        &amp;lt;RegionName&amp;gt;test region&amp;lt;/RegionName&amp;gt;&lt;br /&gt;
        &amp;lt;RegionID&amp;gt;e276e142-a099-4d6d-8f2d-0aad91ede958&amp;lt;/RegionID&amp;gt;&lt;br /&gt;
    &amp;lt;/AuthorizationRequest&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authorization service needs to respond with an XML message that matches an XML serialized AuthorizationResponse object.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;AuthorizationResponse xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;IsAuthorized&amp;gt;true&amp;lt;/IsAuthorized&amp;gt;&lt;br /&gt;
        &amp;lt;Message&amp;gt;Rob Smart has been authorized for the region test region.&amp;lt;/Message&amp;gt;&lt;br /&gt;
    &amp;lt;/AuthorizationResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''IsAuthorized''' element must contain either the string '''true''' or the string '''false'''. The '''Message''' element can contain any string, at the moment this message&lt;br /&gt;
will only be shown on the OpenSim region console.&lt;br /&gt;
&lt;br /&gt;
== Example PHP ==&lt;br /&gt;
A basic php example for parsing the Authorization XML and responding.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        &lt;br /&gt;
    class AuthorizationResponse&lt;br /&gt;
    {&lt;br /&gt;
    	private $m_isAuthorized;&lt;br /&gt;
    	private $m_message;&lt;br /&gt;
    	&lt;br /&gt;
    	public function AuthorizationResponse($isAuthorized,$message)&lt;br /&gt;
    	{&lt;br /&gt;
    		$this-&amp;gt;m_isAuthorized = $isAuthorized;&lt;br /&gt;
    		$this-&amp;gt;m_message = $message;&lt;br /&gt;
    	}&lt;br /&gt;
    	&lt;br /&gt;
    	public function toXML()&lt;br /&gt;
    	{&lt;br /&gt;
    		return '&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&amp;lt;AuthorizationResponse xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&amp;lt;IsAuthorized&amp;gt;'. $this-&amp;gt;m_isAuthorized .'&amp;lt;/IsAuthorized&amp;gt;&amp;lt;Message&amp;gt;'. $this-&amp;gt;m_message .'&amp;lt;/Message&amp;gt;&amp;lt;/AuthorizationResponse&amp;gt;';&lt;br /&gt;
    		&lt;br /&gt;
    	}&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class AuthorizationRequest&lt;br /&gt;
    {&lt;br /&gt;
    	private $m_isAuthorized;&lt;br /&gt;
    	private $m_message;    	&lt;br /&gt;
    	public $ID;&lt;br /&gt;
    	public $FirstName;&lt;br /&gt;
    	public $SurName;&lt;br /&gt;
    	public $Email;&lt;br /&gt;
    	public $RegionName;&lt;br /&gt;
    	public $RegionID;    	&lt;br /&gt;
    	&lt;br /&gt;
    	public function parseRequest($request)&lt;br /&gt;
    	{&lt;br /&gt;
    		$reader = new XMLReader();&lt;br /&gt;
&lt;br /&gt;
                $reader-&amp;gt;XML($request);&lt;br /&gt;
			while ($reader-&amp;gt;read()) &lt;br /&gt;
			{&lt;br /&gt;
      			if ($reader-&amp;gt;nodeType == XMLReader::ELEMENT) &lt;br /&gt;
      			{&lt;br /&gt;
      				switch($reader-&amp;gt;name)&lt;br /&gt;
      				{&lt;br /&gt;
      					case 'AuthorizationRequest':&lt;br /&gt;
      						//$log-&amp;gt;write(&amp;quot;AuthorizationRequest element&amp;quot;);&lt;br /&gt;
      					break;	&lt;br /&gt;
      					case 'ID':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;ID = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      					case 'FirstName':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;FirstName = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      					case 'SurName':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;SurName = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      					case 'Email':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;Email = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      					case 'RegionName':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;RegionName = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      					case 'RegionID':&lt;br /&gt;
      						$reader-&amp;gt;read();&lt;br /&gt;
      						$this-&amp;gt;RegionID = $reader-&amp;gt;value;&lt;br /&gt;
      					break;&lt;br /&gt;
      				}&lt;br /&gt;
      	&lt;br /&gt;
      			}&lt;br /&gt;
      			&lt;br /&gt;
			}&lt;br /&gt;
    	}	&lt;br /&gt;
    	&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    $request = @file_get_contents('php://input');&lt;br /&gt;
&lt;br /&gt;
    $authReq = new AuthorizationRequest();&lt;br /&gt;
    $authReq-&amp;gt;parseRequest($request);&lt;br /&gt;
&lt;br /&gt;
    $authResp = new AuthorizationResponse(&amp;quot;true&amp;quot;,&amp;quot;You are authorized&amp;quot;);&lt;br /&gt;
    echo $authResp-&amp;gt;toXML();&lt;br /&gt;
&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/AuthorizationService</id>
		<title>AuthorizationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/AuthorizationService"/>
				<updated>2009-09-11T18:50:56Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Authorization service is currently just a skeleton to be later expanded, however in grid mode it can be used to communicate an external authorization service. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
To point your region at an external Authorization service edit the file&lt;br /&gt;
&lt;br /&gt;
'''bin/config-include/GridCommon.ini'''&lt;br /&gt;
&lt;br /&gt;
add a section such as the following, altering the URI to point to your authorization server&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    [AuthorizationService]&lt;br /&gt;
    ;&lt;br /&gt;
    ; change this to your grid-wide authorization server&lt;br /&gt;
    ;&lt;br /&gt;
    AuthorizationServerURI = &amp;quot;http://localhost/auth.php&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Formats ==&lt;br /&gt;
&lt;br /&gt;
When a user attempts to enter a region an HTTP POST will be made to the AuthorizationServerURI you specified in the config. The body of the POST will be an XML serialized&lt;br /&gt;
AuthorizationRequest object.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;AuthorizationRequest xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ID&amp;gt;decc5198-9de2-11de-be89-00145eecaa9a&amp;lt;/ID&amp;gt;&lt;br /&gt;
        &amp;lt;FirstName&amp;gt;Rob&amp;lt;/FirstName&amp;gt;&lt;br /&gt;
        &amp;lt;SurName&amp;gt;Smart&amp;lt;/SurName&amp;gt;&lt;br /&gt;
        &amp;lt;Email&amp;gt;user@host.com&amp;lt;/Email&amp;gt;&lt;br /&gt;
        &amp;lt;RegionName&amp;gt;test region&amp;lt;/RegionName&amp;gt;&lt;br /&gt;
        &amp;lt;RegionID&amp;gt;e276e142-a099-4d6d-8f2d-0aad91ede958&amp;lt;/RegionID&amp;gt;&lt;br /&gt;
    &amp;lt;/AuthorizationRequest&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The authorization service needs to respond with an XML message that matches an XML serialized AuthorizationResponse object.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;AuthorizationResponse xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;IsAuthorized&amp;gt;true&amp;lt;/IsAuthorized&amp;gt;&lt;br /&gt;
        &amp;lt;Message&amp;gt;Rob Smart has been authorized for the region test region.&amp;lt;/Message&amp;gt;&lt;br /&gt;
    &amp;lt;/AuthorizationResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''IsAuthorized''' element must contain either the string '''true''' or the string '''false'''. The '''Message''' element can contain any string, at the moment this message&lt;br /&gt;
will only be shown on the OpenSim region console.&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/AuthorizationService</id>
		<title>AuthorizationService</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/AuthorizationService"/>
				<updated>2009-09-11T18:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: New page: The Authorization service is currently just a skeleton to be later expanded, however in grid mode it can be used to communicate an external authorization service.    == Configuration == To...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Authorization service is currently just a skeleton to be later expanded, however in grid mode it can be used to communicate an external authorization service. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
To point your region at an external Authorization service edit the file&lt;br /&gt;
&lt;br /&gt;
'''bin/config-include/GridCommon.ini'''&lt;br /&gt;
&lt;br /&gt;
add a section such as the following, altering the URI to point to your authorization server&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    [AuthorizationService]&lt;br /&gt;
    ;&lt;br /&gt;
    ; change this to your grid-wide authorization server&lt;br /&gt;
    ;&lt;br /&gt;
    AuthorizationServerURI = &amp;quot;http://localhost/auth.php&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-22T21:21:24Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* FreeSwitch Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
'''&lt;br /&gt;
please ensure you compile from the freeswitch trunk for now until we can post a minimum version number (there are known issues with older versions)'''&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can also use this [http://madhawa.com/?p=10 guide] for setting it up in a quick way -- [[User:Fly-man-|Fly-man-]]&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
=== enable mod_xml_curl ===&lt;br /&gt;
&lt;br /&gt;
Next, do not forget to activate mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml. mod_xml_curl is disabled by default on fresh install.&lt;br /&gt;
&lt;br /&gt;
uncomment the lines...&lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_xml_curl&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_siren&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
are uncommented&lt;br /&gt;
&lt;br /&gt;
=== configure mod_xml_curl === &lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Configuration</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Configuration"/>
				<updated>2009-04-20T09:15:29Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenSim Command line options ==&lt;br /&gt;
To run OpenSim in somewhat customized environments it's often helpful to modify the programs behaviour via command line arguments.&lt;br /&gt;
OpenSim knows a just a few of these as most parts of the behaviour are controlled via an .INI-File (see below).&lt;br /&gt;
&lt;br /&gt;
The following command line switches are known:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Switch !! Meaning/Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| background || needs to be explained&lt;br /&gt;
|-&lt;br /&gt;
| gridmode || If =true forces OpenSim.exe to operate in grid mode. If =false forces OpenSim.exe to operate in standalone mode. If omitted defaults to OpenSim.ini setting.&lt;br /&gt;
|-&lt;br /&gt;
| gui || &amp;quot;old-style&amp;quot; console&lt;br /&gt;
|-&lt;br /&gt;
| hypergrid || If =true enables hypergrid peer-to-peer communication with other hypergrid enabled grids. Also changes map module to display hypergrid links.&lt;br /&gt;
|-&lt;br /&gt;
| inifile || changes the name (Path) of the inifile. See below for details&lt;br /&gt;
|-&lt;br /&gt;
| inimaster || allows to read in a master config file. See below for details&lt;br /&gt;
|-&lt;br /&gt;
| physics || explain me&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==OpenSim configuration file==&lt;br /&gt;
The simulator configuration is managed using a file called [[OpenSim.ini]]. This file is used regardless of whether the sim is running in standalone or grid mode. Detailed information on the options available for setttings in this file can be found [[OpenSim.ini|here]].&lt;br /&gt;
Please note, that the name OpenSim.ini can be changed via command line arguments (see above).  Also, note that the default SVN download does not include an OpenSim.ini file, but rather provide an example file.  To get started editing your ini file, please cd into opensim/bin/ and copy OpenSim.ini.example to OpenSim.ini.&lt;br /&gt;
&lt;br /&gt;
It is also possible to distribute the inifile settings over two files. This is useful if you want to run several OpenSim processes where most of your settings are identical but some settings differ.&lt;br /&gt;
The master file is read first, then the inifile is read. Settings given in the inifile overrule settings given in the master file.&lt;br /&gt;
The master file has the same format and the same keywords as the inifile, so the same documentation applies.&lt;br /&gt;
&lt;br /&gt;
== Logging ==&lt;br /&gt;
Usually you don't have a debugger and the source code at hand when a situation comes up. OpenSim does some logging to give you information about how it works.&lt;br /&gt;
This is done by use of the [http://logging.apache.org/log4net/index.html log4net-package]. The obvious console output of OpenSim as well as the OpenSim.log output are done via this package and come readily configured out of the box. But you can also make extended use of all other options this package can give you.&lt;br /&gt;
&lt;br /&gt;
OpenSim makes use of the .NET System.Configuration API which means that the file that holds all the logging configuration is bin/OpenSim.exe.config .&lt;br /&gt;
&lt;br /&gt;
More information on how to configure log4net can be found on the [http://logging.apache.org/log4net/release/manual/configuration.html log4net web pages].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
Opensim's supports the following database-engines:&lt;br /&gt;
* SQLite (default - a lightweight database that comes bundled with OpenSim and can be used without requiring any extra configuration.  It is mostly intended to get you up and running quickly, not for production use.)&lt;br /&gt;
* MySQL (fully supported)&lt;br /&gt;
* MSSQL (partially supported - some recent OpenSim features may not yet be implemented)&lt;br /&gt;
* Postgresql (fully supported - Still in Beta phase but working)&lt;br /&gt;
&lt;br /&gt;
More information on database support can be found on the [[OpenSim Database support]] page.&lt;br /&gt;
&lt;br /&gt;
==Script engine==&lt;br /&gt;
OpenSim supports multiple script engines. See [[ScriptEngines]] for details&lt;br /&gt;
&lt;br /&gt;
==Permissions Configuration==&lt;br /&gt;
OpenSim has a quite elaborate set of permissions. See [[OpenSim:Permissions(Server)]] for for details.&lt;br /&gt;
&lt;br /&gt;
==Standalone vs. Grid==&lt;br /&gt;
We recommend that you first get OpenSim running in standalone mode before you attempt to connect it to a grid, either your own grid or a public grid.  An OpenSim configuration consists of regions (run by region simulators) and 5 core backend services (which manage users, the grid, assets, inventories, and grid-wide messaging, collectively known as UGAIM).&lt;br /&gt;
&lt;br /&gt;
A system running in '''standalone mode''' (that is, one  with OpenSim.ini configured such that gridmode = false) -- also known as &amp;quot;sandbox mode&amp;quot; -- runs everything (all UGAIM services and one or more regions) in a single executable (OpenSim.exe).  External regions cannot be added to an OpenSim running in this mode.&lt;br /&gt;
&lt;br /&gt;
In '''grid mode''', the five services ([[User Server|User]], [[Grid Server|Grid]], [[Asset Server|Asset]], [[Inventory Server|Inventory]], [[Messaging Server|Messaging]], or UGAIM) are each started as separate executables.  This means that they can be run either on the same machine or spread out across multiple computers.  In this mode, OpenSim.exe serves one or more regions, which communicate with the core servers.  This mode even allows region servers run by other people on their own machines to connect, if you wish.&lt;br /&gt;
&lt;br /&gt;
Naturally, this means that running in grid mode is somewhat more complicated than running in standalone mode.  It requires an understanding of UUID, X,Y location, server handshake passwords, master avatars, and a couple of other settings. These are not difficult, but do require a little more care in setting things up.&lt;br /&gt;
&lt;br /&gt;
If you want to run a grid of your own (either private or public) you would start the core services up before connecting a region simulator.  If you want to connect your region server to a grid that someone else is running, you need only start the region server in grid mode (with the necessary security keys and location information mentioned in the last paragraph).&lt;br /&gt;
&lt;br /&gt;
OpenSim.exe responds to various command line arguments. These include &amp;quot;-inifile&amp;quot;, &amp;quot;-configfile&amp;quot;, &amp;quot;-gridmode&amp;quot;, &amp;quot;-physics&amp;quot;, &amp;quot;-config&amp;quot; &amp;amp; &amp;quot;-noverbose&amp;quot;. When starting OpenSim in either Windows or Linux, one could, for example, add &amp;quot;-physics=OpenDynamicsEngine&amp;quot; to run the OpenDynamicsEngine instead of basicphysics, or use &amp;quot;-gridmode=true&amp;quot; to force opensim.exe to run as a region server (the rest of the grid services have their own executables).  As many of these settings are normally controlled by OpenSim.ini, most users (especially in standalone mode) will not add any command line arguments.&lt;br /&gt;
&lt;br /&gt;
===Standalone mode===&lt;br /&gt;
&lt;br /&gt;
When you start OpenSim in standalone mode, it will ask you several questions at the console. The first set of prompts that start with &amp;quot;NETWORK SERVERS INFO&amp;quot;, you can just hit return to accept the defaults if you will be running in standalone mode. The prompts that start with &amp;quot;DEFAULT REGION CONFIG&amp;quot; are where you need to start paying attention. Some are self-explanatory. Here are explanations for the others:&amp;lt;br&amp;gt;&lt;br /&gt;
* Grid Location. OpenSim regions can be placed anywhere on a 65536 by 65536 grid. In standalone mode, it is safe to leave these X and Y locations at their defaults for the first region (additional regions will need different coordinates, of course).&lt;br /&gt;
* Filename for local storage. Safe to leave at default.&lt;br /&gt;
* Internal IP address; This should always be 0.0.0.0 (0.0.0.0 means &amp;quot;listen for connections on any interface&amp;quot;, basically a wildcard)&lt;br /&gt;
* Internal IP port for incoming UDP client connection. You can make this any port you want, but it is safe to leave at the default 9000.&lt;br /&gt;
* External host name. If you will only be attaching to your sim from a SecondLife client on the same machine, you can leave this at the default 127.0.0.1. If you will be wanting to connect to it from a client on another machine, this should be the IP address or hostname of the machine you are running this sim on. It appears that this must actually be the External Host IP Address, not the Domain Name. (Hmm - Tried hostname (the one resolved by dns) and it worked out oke.)&lt;br /&gt;
* Be aware of [http://osgrid.org/forums/viewtopic.php?f=5&amp;amp;t=400&amp;amp;start=0&amp;amp;st=0&amp;amp;sk=t&amp;amp;sd=a loopback] problems when Running viewer &amp;amp; server(s) on the same machine (LAN) but using the &amp;quot;external&amp;quot; configuration. (You might notice endless waiting for region handshake.) See also [http://opensimulator.org/wiki/Troubleshooting troubleshoot hints]&lt;br /&gt;
To connect to your new sim, start up secondlife with the following command line switches:&lt;br /&gt;
 -loginuri http://127.0.0.1:9000/ -loginpage http://127.0.0.1:9000/?method=login &lt;br /&gt;
This assumes you are running the secondlife client on the same box. If you are running it on a separate box, substitute the IP address of your sim machine.&amp;lt;br&amp;gt;&lt;br /&gt;
To create a user:&amp;lt;br&amp;gt;&lt;br /&gt;
type ''create user &amp;lt;first&amp;gt; &amp;lt;last&amp;gt; &amp;lt;password&amp;gt; &amp;lt;x_loc&amp;gt; &amp;lt;y_loc&amp;gt;'' in the server console.&lt;br /&gt;
&lt;br /&gt;
===Grid mode===&lt;br /&gt;
You want to run your own grid. Great! Assuming that you already got your sim running in standalone mode, here is what you need to do:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Current builds of OpenSim grid mode are using mysql to store the grid information. You must have this installed and configured if you want to run your own grid. See [[mysql-config]] for more information.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Four of the servers should be started in a certain order. UGAI: UserServer, GridServer, AssetServer, InventoryServer. The MessagingServer can be started at any point after the GridServer, and the RegionServer(s) should always come last.  These are all found in the bin directory. In windows, you can just double-click on the executables to start them. In Linux and Mac OS X type &amp;quot;mono filename&amp;quot; from a prompt. The executable names, in order, are:&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
3. Start the UserServer. If you will be running the GridServer on the same box, hit enter to accept the defaults, until it gives you the prompt&lt;br /&gt;
 OpenUser#&lt;br /&gt;
This is the main prompt for the user server. If you will be running the GridServer on another box, change the Default Grid Server URI as appropriate.&amp;lt;br&amp;gt;&lt;br /&gt;
4. Start the GridServer. Again, you can hit return at all the prompts if you are running them all on the same machine. If not, change the URIs for the Asset Server and User server to point to where you are running them. You will finally get to the console prompt for the GridServer which looks like this:&lt;br /&gt;
 OpenGrid#&lt;br /&gt;
5. Start the AssetServer. The console prompt for this server will be:&lt;br /&gt;
 OpenAsset#&lt;br /&gt;
6. Start the InventoryServer. The console prompt for this server will be:&lt;br /&gt;
 INVENTORY#&lt;br /&gt;
7. Start the MessagingServer.  The console prompt for this is:&lt;br /&gt;
 Messaging#&lt;br /&gt;
8. If you are running all of these servers on the same box, which would be the normal configuration, you should be ready to start up your sim.  The mode that OpenSim.exe starts in is normally controlled by a setting in your OpenSim.ini.  It defaults to standalone mode if that setting is not specified or the file is not found.  If you wish, you can force opensim to start in gridmode on the command line as follows:&lt;br /&gt;
 OpenSim.exe -gridmode=true&lt;br /&gt;
or:&lt;br /&gt;
 mono OpenSim.exe -gridmode=true&lt;br /&gt;
With any luck, everything will come up without too many errors.&amp;lt;br&amp;gt;&lt;br /&gt;
9. Go to the UserServer console, and type 'create user' to create a new avatar. It will prompt you for the name and password, and the X and Y of the sim that should be his home location. Use 1000 and 1000, or wherever you told your sim to live when you brought it up in standalone mode. At the console of any of these servers, you should be able to type 'help' to get a list of commands.&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to your new grid with your secondlife client. You need to tell your client to point at the UserServer rather than directly at the sim, though:&lt;br /&gt;
 secondlife -loginuri http://127.0.0.1:8002/&lt;br /&gt;
8002 is the default port for the UserServer, and that IP address should be changed to the server you are running the UserServer on, if they are not all on the same box.  Happy OpenSimming!&amp;lt;br&amp;gt;&lt;br /&gt;
''Note: if you are using Windows Vista, remember to start servers as Admin. If not it will prompt you an error in console like &amp;quot;Error - Access denied&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
==Multiple regions==&lt;br /&gt;
&lt;br /&gt;
Using Physical Prim with the OpenDynamicsEngine on *nix, it's recommended that you set your stack reserve level higher then default with the following command;&lt;br /&gt;
&amp;lt;tt&amp;gt;ulimit -s 262144&amp;lt;/tt&amp;gt; Or, run the opensim-ode.sh to start up OpenSimulator.&lt;br /&gt;
&lt;br /&gt;
A powerful region generator is available at: [[RegionGenerator]]&lt;br /&gt;
&lt;br /&gt;
For running multiple regions on the same box, you simply make multiple copies of the 'default.xml' file inside the &amp;lt;tt&amp;gt;bin/Regions/&amp;lt;/tt&amp;gt; directory.  You can do this by typing &amp;lt;tt&amp;gt;create region&amp;lt;/tt&amp;gt; at the OpenSim command prompt, using the script &amp;lt;tt&amp;gt;make.php&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;share/regions&amp;lt;/tt&amp;gt;, or you can generate the files by hand.&lt;br /&gt;
&lt;br /&gt;
If you want to create the files by hand:&lt;br /&gt;
&lt;br /&gt;
:first copy the default.xml file in the &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory, and name them anything you want (I name mine region.x.y.xml, where region is the name of the region, and x and y are the grid coords.)&lt;br /&gt;
:Open each xml file and edit the uuid (a generator can be found at [http://www.famkruithof.net/uuid/uuidgen uuidgen webpage] or on unix, use the uuidgen command), region name, x &amp;amp; y positions, and internal IP port.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!'''  Regardless of the method you use to create your new region, the UUID, name, and grid coordinates ''must'' be unique for each region on a grid.  The port assignment must be unique for each region that is running on a particular machine. The internal IP ''address'' and external host name must be the same for all regions.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt; should be adjacent integers if you want your regions to be adjacent, so you can run back and forth between them.  '''IMPORTANT: THESE GRID COORDINATES ARE ''NOT'' IN METERS.  THEY ARE SIM POSITIONS.'''  (1000, 1000) is next to (1001,1000), (1000, 1001), and so forth.  1256, 2000, 2048 and similar values are '''not''' adjacent to 1000, they are very far away, so you would not see your sims from one another.&lt;br /&gt;
&lt;br /&gt;
Once you have 2 or more xml files in the bin/Regions folder, running a ''single'' copy of &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; will start up all of your sims! If you come across any errors, there is most likely an error in your xml files.&lt;br /&gt;
&lt;br /&gt;
As of 6-Feb-2008, take care NOT to leave editor backup copies of the files in this directory e.g. emacs style backup names like Regionname.xml~. These are loaded by opensim.exe as if they are legitimate region descriptions, and will therefore give errors indicating you are trying to re-use the socket for that region.&lt;br /&gt;
&lt;br /&gt;
==Attaching your sim to someone else's grid==&lt;br /&gt;
To set up the region server (i.e., &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;) to connect to an external grid, you should edit the &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; file in the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory.  In that file, there is a &amp;lt;tt&amp;gt;[Network]&amp;lt;/tt&amp;gt; section with URLs for the grid, user, and asset servers, as well as send and receive keys (for a basic level of security).  The addresses and send/receive keys will vary depending on the grid you are connecting to, and the grid operator should tell you what values to use.&lt;br /&gt;
&lt;br /&gt;
The other file you may have to change is in your &amp;lt;tt&amp;gt;bin/Regions&amp;lt;/tt&amp;gt; directory. This is where your individual region config files are. If you only have one region, it will by default be called &amp;lt;tt&amp;gt;default.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This can be edited with any text editor. The grid owner may tell you what X and Y location you can place your sim at (you can't have multiple sims at the same location on the grid). If so, the fields you will need to change in this file are &amp;lt;tt&amp;gt;sim_location_x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;sim_location_y&amp;lt;/tt&amp;gt;.  And the &amp;lt;tt&amp;gt;external_host_name&amp;lt;/tt&amp;gt; should be set to the hostname or IP address of your simulation server (i.e., the machine that is running &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt;).&lt;br /&gt;
A list of public grids that you can attach your sim to is at [[OpenSim: Grids]]&lt;br /&gt;
&lt;br /&gt;
==Running==&lt;br /&gt;
&lt;br /&gt;
===StandAlone===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
On Windows Vista, it may be necessary to explicitly &amp;quot;Run as administrator&amp;quot; for opensim.exe to accept connections from a client, even when running as an administrator user. Navigate to the opensim\bin directory, right click opensim.exe, and select &amp;quot;Run as administrator&amp;quot;.&lt;br /&gt;
Connect: opensim://localhost:9000 , or opensim://127.0.0.1:9000, or opensim://myipadress:9000&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
===Local Grid===&lt;br /&gt;
'''&amp;lt;u&amp;gt;Windows&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 OpenSim.Grid.UserServer.exe&lt;br /&gt;
 OpenSim.Grid.GridServer.exe&lt;br /&gt;
 OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Linux&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;OSX&amp;lt;/u&amp;gt;'''&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.Grid.UserServer.exe&lt;br /&gt;
 mono OpenSim.Grid.GridServer.exe&lt;br /&gt;
 mono OpenSim.Grid.AssetServer.exe&lt;br /&gt;
 mono OpenSim.Grid.InventoryServer.exe&lt;br /&gt;
 mono OpenSim.Grid.MessagingServer.exe&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
Connect: opensim://myipaddress:9000&lt;br /&gt;
&lt;br /&gt;
===Note About Mono===&lt;br /&gt;
&lt;br /&gt;
If you're using mono, you should increase the value of the mono environment variable MONO_THREADS_PER_CPU from its default of 5 to some number that works for your sim. The exact number depends on many factors including: the number of CPUs in your machine, what else you use that machine for, how many regions you have in your sim, how many of them are adjacent, how many scripts you have, and how many avatars you expect to serve at the same time. As a reference, Wright Plaza in OSGrid, which is running as a single region on a sim and routinely hosts meetings with 20 avatars, uses the value 125. &lt;br /&gt;
&lt;br /&gt;
If this number is too low, the operation of your sim will start to break in all sorts of different ways. A common symptom is the freezing of all activity upon login of a new avatar. Other symptoms are a lot more subtle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration of region modules ==&lt;br /&gt;
&lt;br /&gt;
* [[IRCBridgeModule]]&lt;br /&gt;
&lt;br /&gt;
* [[Freeswitch_Module]]&lt;br /&gt;
&lt;br /&gt;
== Configuration of Metaverse Exchange Protocol (MXP) ==&lt;br /&gt;
&lt;br /&gt;
* [[Metaverse Exchange Protocol]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-19T23:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can also use this [http://madhawa.com/?p=10 guide] for setting it up in a quick way -- [[User:Fly-man-|Fly-man-]]&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
=== enable mod_xml_curl ===&lt;br /&gt;
&lt;br /&gt;
Next, do not forget to activate mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml. mod_xml_curl is disabled by default on fresh install.&lt;br /&gt;
&lt;br /&gt;
uncomment the lines...&lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_xml_curl&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_siren&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
are uncommented&lt;br /&gt;
&lt;br /&gt;
=== configure mod_xml_curl === &lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-19T23:05:27Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can also use this [http://madhawa.com/?p=10 guide] for setting it up in a quick way -- [[User:Fly-man-|Fly-man-]]&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
=== enable mod_xml_curl ===&lt;br /&gt;
&lt;br /&gt;
Next, do not forget to activate mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml. mod_xml_curl is disabled by default on fresh install.&lt;br /&gt;
&lt;br /&gt;
uncomment the lines...&lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_xml_curl&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_siren&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is uncommented&lt;br /&gt;
&lt;br /&gt;
=== configure mod_xml_curl === &lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-19T20:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can also use this [http://madhawa.com/?p=10 guide] for setting it up in a quick way -- [[User:Fly-man-|Fly-man-]]&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
=== enable mod_xml_curl ===&lt;br /&gt;
&lt;br /&gt;
Next, do not forget to activate mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml. mod_xml_curl is disabled by default on fresh install.&lt;br /&gt;
&lt;br /&gt;
uncomment the line...&lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_xml_curl&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
also check that &lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;load module=&amp;quot;mod_siren&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
is uncommented&lt;br /&gt;
&lt;br /&gt;
=== configure mod_xml_curl === &lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitchdialplan.xml&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-18T00:35:08Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
== FreeSwitch Install == &lt;br /&gt;
&lt;br /&gt;
Follow the instructions [http://wiki.freeswitch.org/wiki/Installation_Guide here] on how to compile from source. We need to enable two specific modules.&lt;br /&gt;
&lt;br /&gt;
When you get to the part in the instructions where it says  &amp;quot;'''Edit modules.conf so that it will build the modules you desire.'''&amp;quot; edit the modules.conf file and uncomment out the entries for xml_curl and the siren14 codec&lt;br /&gt;
&lt;br /&gt;
    codecs/mod_siren&lt;br /&gt;
    and&lt;br /&gt;
    xml_int/mod_xml_curl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitchdialplan.xml&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-18T00:15:18Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitchdialplan.xml&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec&lt;br /&gt;
&lt;br /&gt;
search within vars.xml for the global_codec_prefs and change the line to read&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;X-PRE-PROCESS cmd=&amp;quot;set&amp;quot; data=&amp;quot;global_codec_prefs=G722,PCMU,PCMA,GSM,G7221@32000h&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
G7221@32000h is the siren14 codec&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-18T00:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml  found in /usr/local/freeswitch/conf/autoload_configs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitchdialplan.xml&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Freeswitch_Module</id>
		<title>Freeswitch Module</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Freeswitch_Module"/>
				<updated>2009-04-18T00:00:20Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: New page: The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)   ==FreeSwitch Config==  Install and compile...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The FreeSwitch module enables voice in opensim with no changes required to the SL or Hippo clients (must be over 1.22 for SL and 0.5 for Hippo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==FreeSwitch Config==&lt;br /&gt;
&lt;br /&gt;
Install and compile Freeswitch, making sure you enable the xml_curl module and also the siren14 codec.&lt;br /&gt;
&lt;br /&gt;
the xml_curl module configuration should point to an opensim region that has the freeswitch voice module enabled (voice also needs to be enabled in the estate setting for all regions)&lt;br /&gt;
&lt;br /&gt;
example xml_curl.conf.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;configuration name=&amp;quot;xml_curl.conf&amp;quot; description=&amp;quot;cURL XML Gateway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;bindings&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;example&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitch-config&amp;quot; bindings=&amp;quot;directory&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
        &amp;lt;binding name=&amp;quot;local&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;gateway-url&amp;quot; value=&amp;quot;http://youropensimregion:9000/api/freeswitchdialplan.xml&amp;quot; bindings=&amp;quot;dialplan&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;param name=&amp;quot;disable-100-continue&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/binding&amp;gt;&lt;br /&gt;
  &amp;lt;/bindings&amp;gt;&lt;br /&gt;
  &amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenSim Config==&lt;br /&gt;
&lt;br /&gt;
Add the following section to OpenSim.ini. You will also need to enable voice in the regions estate settings. Make sure the freeswitch server is started BEFORE bringing the region up.&lt;br /&gt;
&lt;br /&gt;
    [FreeSwitchVoice]&lt;br /&gt;
    enabled = true&lt;br /&gt;
    ;FreeSwitch server is going to contact us and ask us all&lt;br /&gt;
    ;sorts of things.&lt;br /&gt;
    freeswitch_server_user = freeswitch&lt;br /&gt;
    freeswitch_server_pass = password&lt;br /&gt;
    freeswitch_api_prefix = /api&lt;br /&gt;
    ;The  IP address of your opensim voice region&lt;br /&gt;
    freeswitch_service_server = youropensimexternalIP&lt;br /&gt;
    ;the port your region is running on&lt;br /&gt;
    freeswitch_service_port = 9000 &lt;br /&gt;
    ;your freewitch IP address&lt;br /&gt;
    freeswitch_realm = 192.168.0.2&lt;br /&gt;
    freeswitch_sip_proxy = 192.168.0.2:5060&lt;br /&gt;
    freeswitch_attempt_stun = false&lt;br /&gt;
    freeswitch_stun_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_server = 192.168.0.2&lt;br /&gt;
    freeswitch_echo_port = 50505&lt;br /&gt;
    freeswitch_well_known_ip = 192.168.0.2&lt;br /&gt;
    freeswitch_default_timeout = 5000&lt;br /&gt;
    freeswitch_subscribe_retry = 120&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2009-02-27T13:27:42Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:left;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Threat Level&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int refreshTimer);&lt;br /&gt;
| Loads a web texture on a prim. Should work for any image URL (including php scripts) that Opensim can render. [Note refreshTimer may not yet be implemented, use a timer event and recall the function to get  the same effect]&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
[[osSetDynamictextureURL_example2|example 2]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;1024&amp;quot;, 0);&lt;br /&gt;
| Writes text and vector graphics onto a prim face. See list of implemented [[OSSL_TextureDrawing|Functions]]. NOTE:As of r8206 (above v0.6.2) width,height and alpha value can be passed e.g.  osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;width:64,height:1024:alpha:0&amp;quot;, 0);&lt;br /&gt;
To turn off the alpha layer completely use &amp;quot;alpha:false&amp;quot; in the optional parameters&lt;br /&gt;
| [[osSetDynamicdata_example1|example 1]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|&lt;br /&gt;
| VeryHigh&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
| [[osParseJSON_example1|example 1]]&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMessageObject(key objectId, string message);&lt;br /&gt;
| sends a string to the object identified by objectId, the receiving object requires to implement the method dataserver( key queryid, string data ) in a contained script(s). The queryid passed will be the id of the calling object.&lt;br /&gt;
|&lt;br /&gt;
| Low&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, string regionName, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to region ''regionName'', region-local position ''position'', with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination''). This function works only in scripts '''owned by''' the region's master-avatar.&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to position ''position'' in the same region, with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination''). This function works only in scripts '''owned by''' the region's master-avatar.&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osConsoleCommand(string command);&lt;br /&gt;
| Issues command as if from the server console. &amp;quot;Severe&amp;quot; threat level. Eg.: osConsoleCommand(&amp;quot;link-region X Y URL port&amp;quot;).&lt;br /&gt;
|&lt;br /&gt;
| Severe&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMakeNotecard(string cardname, list cardlines);&lt;br /&gt;
| Writes a new notecard into the containing prim's inventory. The list parameter may contain only strings. Eg.: osMakeNotecard(&amp;quot;new card&amp;quot;, [&amp;quot;line-1&amp;quot;, &amp;quot;line-2&amp;quot;, &amp;quot;line-3&amp;quot;]).&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| string osGetGridNick();&lt;br /&gt;
| Return the nick name of the grid as per the config .ini file.&lt;br /&gt;
|&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| string osGetGridName();&lt;br /&gt;
| Return the name of the grid as per the config .ini file.&lt;br /&gt;
|&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| string osGetGridLoginURI();&lt;br /&gt;
| Return the Login URI of the grid as per the config .ini file.&lt;br /&gt;
|&lt;br /&gt;
| Moderate&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2009-02-02T12:22:26Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:left;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Threat Level&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int refreshTimer);&lt;br /&gt;
| Loads a web texture on a prim. Should work for any image URL (including php scripts) that Opensim can render. [Note refreshTimer may not yet be implemented, use a timer event and recall the function to get  the same effect]&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
[[osSetDynamictextureURL_example2|example 2]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;1024&amp;quot;, 0);&lt;br /&gt;
| Writes text and vector graphics onto a prim face. See list of implemented [[OSSL_TextureDrawing|Functions]]. NOTE:As of r8206 (above v0.6.2) width,height and alpha value can be passed e.g.  osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;width:64,height:1024:alpha:0&amp;quot;, 0);&lt;br /&gt;
| [[osSetDynamicdata_example1|example 1]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|&lt;br /&gt;
| VeryHigh&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
| [[osParseJSON_example1|example 1]]&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMessageObject(key objectId, string message);&lt;br /&gt;
| sends a string to the object identified by objectId, the receiving object requires to implement the method dataserver( key queryid, string data ) in a contained script(s). The queryid passed will be the id of the calling object.&lt;br /&gt;
|&lt;br /&gt;
| Low&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, string regionName, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to region ''regionName'', region-local position ''position'', with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination'')&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to position ''position'' in the same region, with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination'')&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osConsoleCommand(string command);&lt;br /&gt;
| Issues command as if from the server console. &amp;quot;Severe&amp;quot; threat level. Eg.: osConsoleCommand(&amp;quot;link-region X Y URL port&amp;quot;).&lt;br /&gt;
|&lt;br /&gt;
| Severe&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMakeNotecard(string cardname, list cardlines);&lt;br /&gt;
| Writes a new notecard into the containing prim's inventory. The list parameter may contain only strings. Eg.: osMakeNotecard(&amp;quot;new card&amp;quot;, [&amp;quot;line-1&amp;quot;, &amp;quot;line-2&amp;quot;, &amp;quot;line-3&amp;quot;]).&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2009-02-02T12:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:left;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Threat Level&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int refreshTimer);&lt;br /&gt;
| Loads a web texture on a prim. Should work for any image URL (including php scripts) that Opensim can render. [Note refreshTimer may not yet be implemented, use a timer event and recall the function to get  the same effect]&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
[[osSetDynamictextureURL_example2|example 2]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;1024&amp;quot;, 0);&lt;br /&gt;
| Writes text and vector graphics onto a prim face. See list of implemented [[OSSL_TextureDrawing|Functions]] As of r8206 (above v0.6.2) width,height and alpha value can be passed e.g.  osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;width:64,height:1024:alpha:0&amp;quot;, 0);&lt;br /&gt;
| [[osSetDynamicdata_example1|example 1]]&lt;br /&gt;
| VeryLow&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|&lt;br /&gt;
| VeryHigh&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
| [[osParseJSON_example1|example 1]]&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMessageObject(key objectId, string message);&lt;br /&gt;
| sends a string to the object identified by objectId, the receiving object requires to implement the method dataserver( key queryid, string data ) in a contained script(s). The queryid passed will be the id of the calling object.&lt;br /&gt;
|&lt;br /&gt;
| Low&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, string regionName, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to region ''regionName'', region-local position ''position'', with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination'')&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osTeleportAgent(key agentId, vector position, vector lookAt);&lt;br /&gt;
| Teleports agent ''agentId'' to position ''position'' in the same region, with looking direction ''lookAt'' without asking the user first (in contrast to ''llMapDestination'')&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osConsoleCommand(string command);&lt;br /&gt;
| Issues command as if from the server console. &amp;quot;Severe&amp;quot; threat level. Eg.: osConsoleCommand(&amp;quot;link-region X Y URL port&amp;quot;).&lt;br /&gt;
|&lt;br /&gt;
| Severe&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMakeNotecard(string cardname, list cardlines);&lt;br /&gt;
| Writes a new notecard into the containing prim's inventory. The list parameter may contain only strings. Eg.: osMakeNotecard(&amp;quot;new card&amp;quot;, [&amp;quot;line-1&amp;quot;, &amp;quot;line-2&amp;quot;, &amp;quot;line-3&amp;quot;]).&lt;br /&gt;
|&lt;br /&gt;
| High&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsSetDynamicdata_example1</id>
		<title>OsSetDynamicdata example1</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsSetDynamicdata_example1"/>
				<updated>2009-02-02T12:07:20Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// osTextBoard.lsl from standard Opensim Librray Scripts&lt;br /&gt;
&lt;br /&gt;
string title = &amp;quot;&amp;quot;;&lt;br /&gt;
string subtitle = &amp;quot;&amp;quot;;&lt;br /&gt;
string text = &amp;quot;&amp;quot;;&lt;br /&gt;
string add = &amp;quot;&amp;quot;;&lt;br /&gt;
integer channel = 0; // if this is &amp;gt;= 0, llSay on that channel on updates&lt;br /&gt;
&lt;br /&gt;
push_text()&lt;br /&gt;
{&lt;br /&gt;
    compile_text();&lt;br /&gt;
    draw_text();    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
compile_text()&lt;br /&gt;
{&lt;br /&gt;
    title = &amp;quot;Some Title&amp;quot;;&lt;br /&gt;
    subtitle = &amp;quot;Some subtitle&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    text = &amp;quot;Plenty of text for the main body.\n&amp;quot;;&lt;br /&gt;
    text += &amp;quot;You need to manual do line breaks\n&amp;quot;;&lt;br /&gt;
    text += &amp;quot;here.  No word wrap yet.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    add = &amp;quot;Additional text at the bottom&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
draw_text()&lt;br /&gt;
{&lt;br /&gt;
    string drawList = &amp;quot;MoveTo 40,80; PenColour RED; FontSize 48; Text &amp;quot; + title + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;MoveTo 160,160; FontSize 32; Text &amp;quot; + subtitle + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;PenColour BLACK; MoveTo 40,220; FontSize 24; Text &amp;quot; + text + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;PenColour RED; FontName Times New Roman; MoveTo 40,900; Text &amp;quot; + add + &amp;quot;;&amp;quot;; &lt;br /&gt;
    osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;width:1024,height:1024:alpha:255&amp;quot;, 0);  // prior to r8206 (0.6.2 and below) you may only use an integer param e.g. &amp;quot;1024&amp;quot; or &amp;quot;setAlpha&amp;quot; as the optional parameters instead of &amp;quot;width:1024,height:1024:alpha:255&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        push_text();    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        push_text();&lt;br /&gt;
        if (channel &amp;gt;= 0) {&lt;br /&gt;
            llSay(channel, text);    &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsSetDynamicdata_example1</id>
		<title>OsSetDynamicdata example1</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsSetDynamicdata_example1"/>
				<updated>2009-02-02T12:04:34Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
// osTextBoard.lsl from standard Opensim Librray Scripts&lt;br /&gt;
&lt;br /&gt;
string title = &amp;quot;&amp;quot;;&lt;br /&gt;
string subtitle = &amp;quot;&amp;quot;;&lt;br /&gt;
string text = &amp;quot;&amp;quot;;&lt;br /&gt;
string add = &amp;quot;&amp;quot;;&lt;br /&gt;
integer channel = 0; // if this is &amp;gt;= 0, llSay on that channel on updates&lt;br /&gt;
&lt;br /&gt;
push_text()&lt;br /&gt;
{&lt;br /&gt;
    compile_text();&lt;br /&gt;
    draw_text();    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
compile_text()&lt;br /&gt;
{&lt;br /&gt;
    title = &amp;quot;Some Title&amp;quot;;&lt;br /&gt;
    subtitle = &amp;quot;Some subtitle&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    text = &amp;quot;Plenty of text for the main body.\n&amp;quot;;&lt;br /&gt;
    text += &amp;quot;You need to manual do line breaks\n&amp;quot;;&lt;br /&gt;
    text += &amp;quot;here.  No word wrap yet.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    add = &amp;quot;Additional text at the bottom&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
draw_text()&lt;br /&gt;
{&lt;br /&gt;
    string drawList = &amp;quot;MoveTo 40,80; PenColour RED; FontSize 48; Text &amp;quot; + title + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;MoveTo 160,160; FontSize 32; Text &amp;quot; + subtitle + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;PenColour BLACK; MoveTo 40,220; FontSize 24; Text &amp;quot; + text + &amp;quot;;&amp;quot;;&lt;br /&gt;
    drawList += &amp;quot;PenColour RED; FontName Times New Roman; MoveTo 40,900; Text &amp;quot; + add + &amp;quot;;&amp;quot;; &lt;br /&gt;
    osSetDynamicTextureData(&amp;quot;&amp;quot;, &amp;quot;vector&amp;quot;, drawList, &amp;quot;width:1024,height:1024:alpha:255&amp;quot;, 0);  // use alpha 0 to make background texture fully transparent&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
default {&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        push_text();    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    touch_start(integer count)&lt;br /&gt;
    {&lt;br /&gt;
        push_text();&lt;br /&gt;
        if (channel &amp;gt;= 0) {&lt;br /&gt;
            llSay(channel, text);    &lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2008-11-05T09:43:20Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:center;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,int timer);&lt;br /&gt;
| Loads a webtexture on a prim&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
| [[osParseJSON_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| osMessageObject(key objectId, string message);&lt;br /&gt;
| sends a string to the object identified by objectId, the receiving object requires to implement the method dataserver( key queryid, string data ) in a contained script(s). The queryid passed will be the id of the calling object.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsParseJSON_example1</id>
		<title>OsParseJSON example1</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsParseJSON_example1"/>
				<updated>2008-10-10T13:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: fixed declaration of requestID, was previously LSL_Types.key is now LSL_Types.LSLString due to changes in the script engine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
//c#&lt;br /&gt;
// This script is written as an example use of the osParseJSON method&lt;br /&gt;
// it uses the Google translate API&lt;br /&gt;
// ensure you have read the terms and conditions of the Google translate API&lt;br /&gt;
// http://code.google.com/apis/ajaxlanguage/documentation/&lt;br /&gt;
&lt;br /&gt;
LSL_Types.LSLString requestID;&lt;br /&gt;
string sourceLang = &amp;quot;en&amp;quot;;&lt;br /&gt;
string targetLang = &amp;quot;fr&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
public void default_event_state_entry()&lt;br /&gt;
{&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/1 sentence' to translate something&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/2 source langage' to change target language e.g. '/2 fr'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/3 target langage' to change source language e.g. '/3 en'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/4 help', to list languages&amp;quot;); &lt;br /&gt;
     llListen(1, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(2, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(3, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(4, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void default_event_touch_start(LSL_Types.LSLInteger total_number) &lt;br /&gt;
{&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/1 sentence' to translate something&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/2 source langage' to change target language e.g. '/2 fr'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/3 target langage' to change source language e.g. '/3 en'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/4 help', to list languages&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void default_event_http_response(LSL_Types.LSLString request_id, LSL_Types.LSLInteger status, LSL_Types.list metadata, LSL_Types.LSLString body)&lt;br /&gt;
{ &lt;br /&gt;
        if (requestID == request_id)&lt;br /&gt;
        {&lt;br /&gt;
            // the Google JSON string returned wil be of the format&lt;br /&gt;
            //  {&amp;quot;responseData&amp;quot;: {&amp;quot;translatedText&amp;quot;:&amp;quot;Bonjour&amp;quot;}, &amp;quot;responseDetails&amp;quot;: null, &amp;quot;responseStatus&amp;quot;: 200}&lt;br /&gt;
            // call the osParseJSON method so we can read the contents &lt;br /&gt;
            System.Collections.Hashtable response = (System.Collections.Hashtable) osParseJSON(body); &lt;br /&gt;
            System.Collections.Hashtable responsedata = (System.Collections.Hashtable) response[&amp;quot;responseData&amp;quot;];&lt;br /&gt;
            &lt;br /&gt;
            llSay(0,(string)responsedata[&amp;quot;translatedText&amp;quot;]);  &lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public void default_event_listen(LSL_Types.LSLInteger channelIn, LSL_Types.LSLString name, LSL_Types.LSLString id, LSL_Types.LSLString message)&lt;br /&gt;
{&lt;br /&gt;
    if(channelIn==1)&lt;br /&gt;
    {&lt;br /&gt;
        string toTranslate = (string) message;&lt;br /&gt;
        requestID = llHTTPRequest( &amp;quot;http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=&amp;quot;+toTranslate+&amp;quot;&amp;amp;langpair=&amp;quot;+sourceLang+&amp;quot;%7C&amp;quot;+targetLang, new LSL_Types.list(), &amp;quot;&amp;quot; );  &lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==2)&lt;br /&gt;
    {&lt;br /&gt;
        sourceLang = (string) message;&lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==3)&lt;br /&gt;
    {&lt;br /&gt;
        targetLang = (string)message;&lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==4)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;LANGUAGE (CODE)&amp;quot;); &lt;br /&gt;
        llOwnerSay(&amp;quot;*  Arabic (ar)&amp;quot;); &lt;br /&gt;
        llOwnerSay(&amp;quot;* Bulgarian (bg)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Chinese (zh)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Croatian (hr)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Czech (cs)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Danish (da)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Dutch (nl)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* English (en)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Finnish (fi)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* French (fr)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* German (de)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Greek (el)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Hindi (hi)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Italian (it)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Japanese (ja)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Korean (ko)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Norwegian(no) &amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Polish (pl)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Portuguese (pt-PT)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Romanian (ro)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Russian (ru)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Spanish (es)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Swedish (sv)&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Scripting_Library</id>
		<title>Scripting Library</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Scripting_Library"/>
				<updated>2008-09-22T21:41:56Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* OSSL/LSL Mix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pure LSL==&lt;br /&gt;
&lt;br /&gt;
==OSSL/LSL Mix==&lt;br /&gt;
* [[Web image on a prim]] - Creates dynamic textures on a prim&lt;br /&gt;
* [[Messageboard]] - Uses vector drawing to create text&lt;br /&gt;
* [[OSSL Drawfunctions]] - Some custom texture draw functions supported in OSSL&lt;br /&gt;
* [[OsParseJSON_example1 | Language Translation]] - uses the JSON parsing function to call Googles Translation API&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OsParseJSON_example1</id>
		<title>OsParseJSON example1</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OsParseJSON_example1"/>
				<updated>2008-09-12T23:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: New page: &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; //c# // This script is written as an example use of the osParseJSON method // it uses the Google translate API // ensure you have read the terms and conditions of th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
//c#&lt;br /&gt;
// This script is written as an example use of the osParseJSON method&lt;br /&gt;
// it uses the Google translate API&lt;br /&gt;
// ensure you have read the terms and conditions of the Google translate API&lt;br /&gt;
// http://code.google.com/apis/ajaxlanguage/documentation/&lt;br /&gt;
&lt;br /&gt;
LSL_Types.key requestID;&lt;br /&gt;
string sourceLang = &amp;quot;en&amp;quot;;&lt;br /&gt;
string targetLang = &amp;quot;fr&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
public void default_event_state_entry()&lt;br /&gt;
{&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/1 sentence' to translate something&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/2 source langage' to change target language e.g. '/2 fr'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/3 target langage' to change source language e.g. '/3 en'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/4 help', to list languages&amp;quot;); &lt;br /&gt;
     llListen(1, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(2, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(3, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
     llListen(4, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void default_event_touch_start(LSL_Types.LSLInteger total_number) &lt;br /&gt;
{&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/1 sentence' to translate something&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/2 source langage' to change target language e.g. '/2 fr'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/3 target langage' to change source language e.g. '/3 en'&amp;quot;);&lt;br /&gt;
     llSay(0,&amp;quot;translator running say '/4 help', to list languages&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void default_event_http_response(LSL_Types.LSLString request_id, LSL_Types.LSLInteger status, LSL_Types.list metadata, LSL_Types.LSLString body)&lt;br /&gt;
{ &lt;br /&gt;
        if (requestID == request_id)&lt;br /&gt;
        {&lt;br /&gt;
            // the Google JSON string returned wil be of the format&lt;br /&gt;
            //  {&amp;quot;responseData&amp;quot;: {&amp;quot;translatedText&amp;quot;:&amp;quot;Bonjour&amp;quot;}, &amp;quot;responseDetails&amp;quot;: null, &amp;quot;responseStatus&amp;quot;: 200}&lt;br /&gt;
            // call the osParseJSON method so we can read the contents &lt;br /&gt;
            System.Collections.Hashtable response = (System.Collections.Hashtable) osParseJSON(body); &lt;br /&gt;
            System.Collections.Hashtable responsedata = (System.Collections.Hashtable) response[&amp;quot;responseData&amp;quot;];&lt;br /&gt;
            &lt;br /&gt;
            llSay(0,(string)responsedata[&amp;quot;translatedText&amp;quot;]);  &lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public void default_event_listen(LSL_Types.LSLInteger channelIn, LSL_Types.LSLString name, LSL_Types.LSLString id, LSL_Types.LSLString message)&lt;br /&gt;
{&lt;br /&gt;
    if(channelIn==1)&lt;br /&gt;
    {&lt;br /&gt;
        string toTranslate = (string) message;&lt;br /&gt;
        requestID = llHTTPRequest( &amp;quot;http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&amp;amp;q=&amp;quot;+toTranslate+&amp;quot;&amp;amp;langpair=&amp;quot;+sourceLang+&amp;quot;%7C&amp;quot;+targetLang, new LSL_Types.list(), &amp;quot;&amp;quot; );  &lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==2)&lt;br /&gt;
    {&lt;br /&gt;
        sourceLang = (string) message;&lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==3)&lt;br /&gt;
    {&lt;br /&gt;
        targetLang = (string)message;&lt;br /&gt;
    }&lt;br /&gt;
    else if(channelIn==4)&lt;br /&gt;
    {&lt;br /&gt;
        llOwnerSay(&amp;quot;LANGUAGE (CODE)&amp;quot;); &lt;br /&gt;
        llOwnerSay(&amp;quot;*  Arabic (ar)&amp;quot;); &lt;br /&gt;
        llOwnerSay(&amp;quot;* Bulgarian (bg)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Chinese (zh)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Croatian (hr)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Czech (cs)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Danish (da)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Dutch (nl)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* English (en)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Finnish (fi)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* French (fr)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* German (de)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Greek (el)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Hindi (hi)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Italian (it)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Japanese (ja)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Korean (ko)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Norwegian(no) &amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Polish (pl)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Portuguese (pt-PT)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Romanian (ro)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Russian (ru)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Spanish (es)&amp;quot;);&lt;br /&gt;
        llOwnerSay(&amp;quot;* Swedish (sv)&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2008-09-12T23:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:center;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,int timer);&lt;br /&gt;
| Loads a webtexture on a prim&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
| [[osParseJSON_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2008-09-12T22:39:27Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:center;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,int timer);&lt;br /&gt;
| Loads a webtexture on a prim&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents (c# only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Implemented</id>
		<title>OSSL Implemented</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Implemented"/>
				<updated>2008-09-12T22:38:40Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1 style=&amp;quot;border-collapse:collapse;th background-color:#666;width:100%;text-align:center;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Function&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Explanation&lt;br /&gt;
! style=&amp;quot;background-color:#D2ECD2;&amp;quot; | Examples&lt;br /&gt;
|-&lt;br /&gt;
| string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,int timer);&lt;br /&gt;
| Loads a webtexture on a prim&lt;br /&gt;
| [[osSetDynamicTextureURL_example1|example 1]]&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| double osTerrainGetHeight(int x, int y);&lt;br /&gt;
| Gets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osTerrainSetHeight(int x, int y);&lt;br /&gt;
| Sets height of terrain&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| int osRegionRestart(double seconds);&lt;br /&gt;
| Restarts the region&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| void osRegionNotice(string msg);&lt;br /&gt;
| Sends a notice to the region&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| (c# only)&lt;br /&gt;
| System.Collections.Hashtable osParseJSON(string JSON);&lt;br /&gt;
| returns a hashtable containing the structured JSON contents&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Troubleshooting</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Troubleshooting"/>
				<updated>2008-09-04T22:59:36Z</updated>
		
		<summary type="html">&lt;p&gt;Robsmart: /* System.DllNotFoundException: gdiplus.dll */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Users]]&lt;br /&gt;
This page gives any system-specific configuration settings that may be useful, and advice for problems that might be encountered.&lt;br /&gt;
&lt;br /&gt;
== System-specific configuration ==&lt;br /&gt;
=== CentOS 5 ===&lt;br /&gt;
&lt;br /&gt;
To install mono and nant, you can use the &amp;quot;Linux Installer for x86&amp;quot; found at http://www.mono-project.com/Downloads.&lt;br /&gt;
&lt;br /&gt;
SVN can be installed by:&lt;br /&gt;
&lt;br /&gt;
 yum install subversion&lt;br /&gt;
&lt;br /&gt;
Mono defaults to installing into &amp;lt;tt&amp;gt;/opt&amp;lt;/tt&amp;gt;, so you may have to add this path to your environment variables, for example, in your &amp;lt;tt&amp;gt;~/.bashrc&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 export PATH=&amp;quot;/opt/mono-1.2.5/bin:$PATH&amp;quot;&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;/opt/mono-1.2.5/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
 export MANPATH=&amp;quot;/opt/mono-1.2.5/share/man:$MANPATH&amp;quot;&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;/opt/mono-1.2.5/lib:$LD_LIBRARY_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After changing &amp;lt;tt&amp;gt;LD_LIBRARY_PATH&amp;lt;/tt&amp;gt;, you should update the dynamic linker cache:&lt;br /&gt;
&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
You may still encounter the &amp;quot;The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file.&amp;quot; error listed below.  In that case, this may fix this:&lt;br /&gt;
&lt;br /&gt;
 yum install glib&lt;br /&gt;
&lt;br /&gt;
If you are running a firewall as well (i.e., if &amp;lt;tt&amp;gt;iptables -L&amp;lt;/tt&amp;gt; shows a list of ACCEPT and REJECT rules), you'll have to open the necessary ports if you want to access the sim from other machines.  For standalone mode:&lt;br /&gt;
&lt;br /&gt;
 iptables -I RH-Firewall-1-INPUT -p tcp --dport 9000 -j ACCEPT&lt;br /&gt;
 iptables -I RH-Firewall-1-INPUT -p udp --dport 9000 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
=== Debian 4.0r0 ===&lt;br /&gt;
&lt;br /&gt;
If you set your system to use unstable sources, and then install some packages listed below, everything should just work.  To use unstable sources, modify your &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; file, replacing 'etch' or 'stable' with 'unstable':&lt;br /&gt;
&lt;br /&gt;
 deb ftp://ftp.debian.org/debian/ unstable main&lt;br /&gt;
 deb-src ftp://ftp.debian.org/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
Then update your packages to the new versions:&lt;br /&gt;
&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
&lt;br /&gt;
This will probably change a large number of packages, and may break things.&lt;br /&gt;
In my experience, however, if you do not use unstable sources then the packages are not up to date enough, and you run into version issues, which lead to two DllNotFoundException errors below appearing in the console output: gdiplus.dll and libopenjpeg-libsl-2.1.2.0.so.&lt;br /&gt;
&lt;br /&gt;
Once the sources are updated, we need to install the necessary packages to be able to build OpenSim:&lt;br /&gt;
&lt;br /&gt;
 apt-get install subversion mono nant mono-gmcs mono-mjs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil&lt;br /&gt;
&lt;br /&gt;
If any of these packages are missing, you'll probably encounter one of the errors listed below.  However, with these packages, OpenSim should build cleanly.&lt;br /&gt;
&lt;br /&gt;
Please note: If you are using mysql as storage on unstable you may get the following error:-&lt;br /&gt;
&lt;br /&gt;
 Exception: System.NotSupportedException: CodePage 1252 not supported&lt;br /&gt;
  at System.Text.Encoding.GetEncoding (Int32 codePage) [0x00000] &lt;br /&gt;
&lt;br /&gt;
To get it to work, try installing the libmono-i18n2.0-cil package&lt;br /&gt;
&lt;br /&gt;
 apt-get install libmono-i18n2.0-cil&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
some Mono dependency &amp;amp; latest Mono itself may use &amp;quot;~x86&amp;quot; masked packages (assuming x86 is your platform, change may be made to reflect your ex:&amp;quot;~amd64&amp;quot; for 64bits). You could check for USE parameter with:&lt;br /&gt;
&lt;br /&gt;
 ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge -vp subversion nant mono libgdiplus&lt;br /&gt;
&lt;br /&gt;
Then install with:&lt;br /&gt;
&lt;br /&gt;
 ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge subversion nant mono libgdiplus&lt;br /&gt;
&lt;br /&gt;
N.B: The ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; can be set in Gentoo /etc/make.conf file, but that turn up all the emerges in testing/unstable, using it at the begining of emerge command line use it only for current emerge process&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
This assumes you're using the universal binary for mono from the [http://www.mono-project.com/ Mono Project] site.&lt;br /&gt;
&lt;br /&gt;
If you are using OS X 10.4, you should also install X11 from the OS X install CDs.&lt;br /&gt;
In OS X 10.5, this is not required.&lt;br /&gt;
&lt;br /&gt;
If you get errors about the 2.0 framework not being supported, you may need to update your &amp;lt;tt&amp;gt;pkg-config&amp;lt;/tt&amp;gt; path.&lt;br /&gt;
I set this in &amp;lt;tt&amp;gt;~/.bash_profile&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Errors and fixes ==&lt;br /&gt;
&lt;br /&gt;
=== Build workarounds due to non-functionality or bugs: ===&lt;br /&gt;
&lt;br /&gt;
==== Disappearing prims due to duplicate UID's ====&lt;br /&gt;
Generally this problem occurs when a save-xml/load-xml file is loaded into the same sim without using the -newUID switch to generate new UUID's for the objects. This switch is documented in the [[Running#General OpenSim server commands|general server commands]] section. (&amp;lt;nowiki&amp;gt;load-xml &amp;lt;filename&amp;gt; -newUID&amp;lt;/nowiki&amp;gt;). But if this does not work, the other way is to shift-copy your build and drag it up into the air.. then delete the one in the air, (which is actually the copy). This will generate new UID's on all your prims.. you can now leave that build, and load your original load-xml file in another region.&lt;br /&gt;
&lt;br /&gt;
==== Linked objects not scaling/editing properly ====&lt;br /&gt;
From Mantis [[http://opensimulator.org/mantis/view.php?id=135 # 135]] and [[http://opensimulator.org/mantis/view.php?id=223 # 223]]: &amp;lt;br /&amp;gt;&lt;br /&gt;
Linked objects: while linking/unlinking objects seems to work fine, the editing of single prims inside a linked object doesn't work correctly. You have to check the box &amp;quot;Edit linked parts&amp;quot;, then you can select a single prim and edit it, but in most cases the changes in size- and/or postion-parameters are not accepted and revert immediately to the original ones. It is not completely reproducible, as it may work in some single case though.&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Workaround:''' unlink the whole object, make the changes, and relink the whole thing again. &amp;lt;br /&amp;gt; ''note:'' re-scaling unlinked objects in grid mode seems to work better than in standalone. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exception and loss of ode physics System.EntryPointNotFoundException: dSpaceLockQuery ===&lt;br /&gt;
&lt;br /&gt;
The following is usually caused by using the wrong version of libode.  First try find / -name &amp;quot;libode.so&amp;quot; to see if you have other copies of the ode physics engine.  Then make sure you have the latest version of this.&lt;br /&gt;
&lt;br /&gt;
[SCENE] [02-01 22:20:40] System.EntryPointNotFoundException: dSpaceLockQuery&lt;br /&gt;
  at (wrapper managed-to-native) Ode.NET.d:SpaceLockQuery (intptr)&lt;br /&gt;
  at OpenSim.Region.Physics.OdePlugin.OdeScene.waitForSpaceUnlock (IntPtr space) [0x00000] &lt;br /&gt;
  at OpenSim.Region.Physics.OdePlugin.OdeCharacter.AvatarGeomAndBodyCreation (Single npositionX, Single npositionY, Single npositionZ, Single tensor) [0x00000] &lt;br /&gt;
  at OpenSim.Region.Physics.OdePlugin.OdeCharacter..ctor (System.String avName, OpenSim.Region.Physics.OdePlugin.OdeScene parent_scene, OpenSim.Region.Physics.Manager.PhysicsVector pos) [0x00000] &lt;br /&gt;
  at OpenSim.Region.Physics.OdePlugin.OdeScene.AddAvatar (System.String avName, OpenSim.Region.Physics.Manager.PhysicsVector position) [0x00000] &lt;br /&gt;
  at OpenSim.Region.Environment.Scenes.ScenePresence.AddToPhysicalScene () [0x00000] &lt;br /&gt;
  at OpenSim.Region.Environment.Scenes.ScenePresence.MakeRootAgent (LLVector3 pos, Boolean isFlying) [0x00000] &lt;br /&gt;
  at OpenSim.Region.Environment.Scenes.Scene.AgentCrossing (UInt64 regionHandle, LLUUID agentID, LLVector3 position, Boolean isFlying) [0x00000]&lt;br /&gt;
=== MySQL connection errors after about 6-8 hours ===&lt;br /&gt;
&lt;br /&gt;
MySQL has a timeout which drops the connection after 28,800 seconds (8 hours) of inactivity, which will probably result in failure to login after the User server has been sitting idle for an extended period.  If you have this problem, increase the timeout to something larger, like 604800 (1 week) or 31536000 (1 year).  From the mysql console, type:&lt;br /&gt;
&lt;br /&gt;
 set global wait_timeout=604800;&lt;br /&gt;
&lt;br /&gt;
=== System.DllNotFoundException: gdiplus.dll ===&lt;br /&gt;
&lt;br /&gt;
First, check to make sure that &amp;lt;tt&amp;gt;libgdiplus.so&amp;lt;/tt&amp;gt; is known to the dynamic linker:&lt;br /&gt;
&lt;br /&gt;
 /sbin/ldconfig -p | grep libgdiplus&lt;br /&gt;
&lt;br /&gt;
If nothing is found, make sure that the directory libgdiplus.so exists in is either in your &amp;lt;tt&amp;gt;LD_LIBRARY_PATH&amp;lt;/tt&amp;gt; environment variable or listed in a *.conf file (e.g., gdiplus.conf) in /etc/ld.so.conf.d/.  Then run &amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt; to update the cache.  Then it should be able to find the library.&lt;br /&gt;
&lt;br /&gt;
You may still have the above error, however, since libgdiplus also depends on other dynamic libraries, and if they fail to load, libgdiplus will fail.  To test for this, run OpenSim with debugging information turned on:&lt;br /&gt;
&lt;br /&gt;
 MONO_LOG_LEVEL=debug mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
{It may show errors loading other libraries, like &amp;lt;tt&amp;gt;libexif.so.9&amp;lt;/tt&amp;gt;.  In that case, linking to an existing version of the offending library may work:&lt;br /&gt;
&lt;br /&gt;
 ln -s libexif.so.12 libexif.so.9&lt;br /&gt;
&lt;br /&gt;
On Mac OS X - check the following file exists... /opt/local/lib/libgdiplus.dylib if it does then as root user edit the file /opt/local/etc/mono/config &lt;br /&gt;
and add the line &lt;br /&gt;
 &amp;lt;dllmap dll=&amp;quot;gdiplus.dll&amp;quot; target=&amp;quot;/opt/local/lib/libgdiplus.dylib&amp;quot; os=&amp;quot;!windows&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''(Is there a cleaner solution than this?)''} **see below for alternative/cleaner fix**&lt;br /&gt;
&lt;br /&gt;
== When installing mono or libgdiplus0 you may get dependency missing libexif.so.9 == &lt;br /&gt;
&lt;br /&gt;
This was noticed on Centos5 but may occur on other systems, download ftp://rpmfind.net/linux/conectiva/snapshot/i386/RPMS.extra/libexif9-0.5.12-47547cl.i386.rpm and install problem solved. You will now be able to install mono (as long as nothing else goes wrong )&lt;br /&gt;
&lt;br /&gt;
=== The assembly mscorlib.dll was not found or could not be loaded ===&lt;br /&gt;
&lt;br /&gt;
This indicates that you are missing one of the mscor libs that comes with nant.  This is easily solved by getting NAnt, which comes with both versions 1.0 and 2.0 of the required lib.&lt;br /&gt;
&lt;br /&gt;
 apt-get install nant&lt;br /&gt;
&lt;br /&gt;
=== External Program Failed: /usr/lib/pkgconfig/../../lib/mono/2.0/gmcs.exe === &lt;br /&gt;
&lt;br /&gt;
This is quickly fixed by retrieving mono-gmcs.&lt;br /&gt;
&lt;br /&gt;
 apt-get install mono-gmcs&lt;br /&gt;
&lt;br /&gt;
=== The type or namespace name JScript does not exist in the namespace Microsoft ===&lt;br /&gt;
&lt;br /&gt;
Note that it says Jscript over and over again.  Hint perhaps?&lt;br /&gt;
&lt;br /&gt;
 apt-get install mono-mjs libmono-microsoft8.0-cil&lt;br /&gt;
&lt;br /&gt;
On Fedora, the needed package is mono-jscript&lt;br /&gt;
&lt;br /&gt;
=== The type or namespace name Tcp does not exist in the namespace System.Runtime.Remoting.Channels ===&lt;br /&gt;
&lt;br /&gt;
This one is taken care of with a quick install:&lt;br /&gt;
&lt;br /&gt;
 apt-get install libmono-system-runtime2.0-cil&lt;br /&gt;
&lt;br /&gt;
=== Missing: libopenjpeg-libsl-2.1.2.0-x86_64.so ===&lt;br /&gt;
  You are on 64bit linux machine and my need to follow these instructions: [[Installing_and_running_on_x86-64 |Installing and running on x86-64 ]]&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
=== error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file ===&lt;br /&gt;
&lt;br /&gt;
If you start with a base Debian system as we did at the top of the page, but instead of using the apt version of mono you use the installer from their website, then you may encounter this issue.&lt;br /&gt;
&lt;br /&gt;
After getting the .bin file from http://www.mono-project.com/Downloads, and executing it as per its instructions, upon finishing, you may find that if you try to run `mono --version` you are presented with this message. This one means you need to install libglib2.0-0.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libglib2.0-0&lt;br /&gt;
&lt;br /&gt;
=== The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file. ===&lt;br /&gt;
&lt;br /&gt;
This one seems to be fixed by retrieving the apt version of nant.&lt;br /&gt;
&lt;br /&gt;
 apt-get install nant&lt;br /&gt;
&lt;br /&gt;
This can also be due to &amp;lt;tt&amp;gt;pkg-config&amp;lt;/tt&amp;gt; not being able to locate the &amp;lt;tt&amp;gt;mono.pc&amp;lt;/tt&amp;gt; file.  Adding the directory containing this file to the environment variable &amp;lt;tt&amp;gt;PKG_CONFIG_PATH&amp;lt;/tt&amp;gt; may solve this.&lt;br /&gt;
&lt;br /&gt;
== Networking and config issues ==&lt;br /&gt;
   [[OpenSim:Running |See Running section]]&lt;br /&gt;
&lt;br /&gt;
=== You are able to log in, but not connect to a Region from a remote client ===&lt;br /&gt;
&lt;br /&gt;
    Look in your OpenSimulator/bin/Regions folder &lt;br /&gt;
    1) Try 0.0.0.0 for the internal_ip_address in your region.xml(default.xml) file&lt;br /&gt;
         (you'll have one of those files *per* region you've created)&lt;br /&gt;
    2) external_host_name=&amp;quot;127.0.0.1&amp;quot; will need to be changed to the accessable DNS name&lt;br /&gt;
        such as &amp;quot;opensim.example-host.com&amp;quot; or &amp;quot;71.6.131.152&amp;quot; (your public accessable ip)&lt;br /&gt;
&lt;br /&gt;
==Building OpenSim==&lt;br /&gt;
===I can't find any build files or solution files===&lt;br /&gt;
* If you're on Windows, run &amp;lt;tt&amp;gt;runprebuild.bat&amp;lt;/tt&amp;gt; - on Linux/Mac/FreeBSD, run &amp;lt;tt&amp;gt;runprebuild.sh&amp;lt;/tt&amp;gt;&lt;br /&gt;
=== VS2005 won't open the .sln file ===&lt;br /&gt;
* Try running VS2005 C#. You are probably running VS2005 C++. This is a C# project.&lt;br /&gt;
&lt;br /&gt;
==Running OpenSim==&lt;br /&gt;
=== Running OpenSim.exe from a Cygwin shell has access denied for some dll's ===&lt;br /&gt;
* Do a '&amp;lt;tt&amp;gt;cd bin&amp;lt;/tt&amp;gt;' followed by '&amp;lt;tt&amp;gt;chmod a+x *&amp;lt;/tt&amp;gt;' to make all dll files executable.&lt;br /&gt;
===I cannot start my sim===&lt;br /&gt;
* See [[Configuration]]&lt;br /&gt;
&lt;br /&gt;
==Something Has Gone Wrong!==&lt;br /&gt;
=== I get errors concerning 'owner_uuid' when starting up my grid after updating from svn beyond r3254 ===&lt;br /&gt;
When updating to recent revisions after r3254, we are now using the unused owner_uuid. There are some grids whose mysql tables were created during a time when this field was inadvertently removed from the .sql script that initializes the regions table. Logging in to your mysql instance and executing this SQL query to add the missing owner_uuid should solve this issue:&lt;br /&gt;
 alter table `regions` add column `owner_uuid` varchar(36) default '00000000-0000-0000-0000-000000000000' not null, comment 'Rev.2';&lt;br /&gt;
The punctuation around regions and owner_uuid is &amp;quot;grave accent&amp;quot;. The punctuation around the default value and the comment is the single quote. The &amp;quot;grave accent&amp;quot; is the one generally to the left of the One button, under the tilde and the single-quote, is, well, underneath the double quote. I think this matters to mysql.&lt;br /&gt;
&lt;br /&gt;
=== I get errors concerning 'State' when starting up my grid after updating from svn beyond r3786 ===&lt;br /&gt;
After r3786, a new 'State' field has been added to the 'primshapes' table on SQLite. This field is used to persist trees and grass.&lt;br /&gt;
You may have an empty region at startup, because OpenSim does not find this 'State' field and does not know what to do.&lt;br /&gt;
The best is to use SQLiteBrowser or another SQLite table editor (download it at [http://sqlitebrowser.sourceforge.net/ http://sqlitebrowser.sourceforge.net/]) to create the missing field:&lt;br /&gt;
 alter table primshapes add column State integer default 0&lt;br /&gt;
Just launch SQLiteBrowser, use File/Open database, then browse to OpenSim.db file and open it. Then, go to the &amp;quot;Execute SQL&amp;quot; tab, copy/paste the command above in the &amp;quot;SQL string&amp;quot; textbox, then hit the &amp;quot;Execute query&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== I get a timeout during region handshake ===&lt;br /&gt;
* Do you have the correct IP in your Regions\* config files?&lt;br /&gt;
* Do you have multiple interfaces on the server running OpenSim? OpenSim will not bind outgoing UDP packets to a specific IP, its default IP to reach you will be what the Region answers UDP with. If you have configured the region for another IP you will get a timeout during connect.&lt;br /&gt;
&lt;br /&gt;
=== I cannot connect to my OpenSim ===&lt;br /&gt;
* See [[OpenSim: Connecting]]&lt;br /&gt;
&lt;br /&gt;
===I can connect but cannot move===&lt;br /&gt;
If the client connects but the avatar can only spin in place and not move, then the sim is not correctly configured. It completed the initial login function, but packets are not being exchanged between the client and the sim, probably due to a network configuration error on the sim.&lt;br /&gt;
* See [[OpenSim: Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== From time to time my Avatar seems to get stuck ===&lt;br /&gt;
Right now there is a bottle neck when syncing prims off to the database.  This will cause small (5 - 10 second) apparent hangs of the Avatar, but it will recover fine once the data is synced.  It is a known issue based on legacy architecture of some of the data storage code.  We hope this will be removed soon.&lt;br /&gt;
&lt;br /&gt;
=== I have problems with viewing the worldmap ===&lt;br /&gt;
* This may happen when running OpenSim on a Linux server, both in grid or standalone mode.&lt;br /&gt;
* Symptoms: when opening the worldmap window in the SL-viewer, the sims are not displayed grahically in the worldmap, the server console shows some error related to openjpeg, the current session freezes...&lt;br /&gt;
* Reason: your svn source trunk does not have the correct (or whatever...) &amp;lt;tt&amp;gt;libopenjpeg-libsl&amp;lt;/tt&amp;gt; library.&lt;br /&gt;
* Other reason: the file &amp;quot;defaultstripe.png&amp;quot; does not exists in the same OpenSim folder, or is corrupted.&lt;br /&gt;
* Solution: get the newest code from libsecondlife (&amp;lt;tt&amp;gt;svn co svn://opensecondlife.org/libsl/trunk&amp;lt;/tt&amp;gt;), '&amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;' manually in the subdir &amp;lt;tt&amp;gt;openjpeg-libsl&amp;lt;/tt&amp;gt;, and copy the resulting &amp;lt;tt&amp;gt;libopenjpeg-libsl-2.1.2.0.so&amp;lt;/tt&amp;gt; into your OpenSim &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; subdir, overwriting the existing one.&lt;br /&gt;
* Recompile &amp;amp; restart OpenSim&lt;br /&gt;
&lt;br /&gt;
==Exceptions on the Console==&lt;br /&gt;
This is a list of Exceptions that you may see on the console, what they mean, and if they are a problem.&lt;br /&gt;
&lt;br /&gt;
===System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so===&lt;br /&gt;
 Failed generating terrain map: System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so&lt;br /&gt;
 at (wrapper managed-to-native) OpenJPEGNet.OpenJPEG:LibslAllocDecoded OpenJPEGNet.OpenJPEG/LibslImage&amp;amp;)&lt;br /&gt;
 at OpenJPEGNet.OpenJPEG.Encode (System.Byte[] decoded, Int32 width, Int32 height, Int32 components, Boolean lossless) [0x00000]&lt;br /&gt;
 at OpenJPEGNet.OpenJPEG.EncodeFromImage (System.Drawing.Bitmap bitmap, Boolean lossless) [0x00000]&lt;br /&gt;
 at OpenSim.Region.Terrain.TerrainEngine.ExportJpegImage (System.String gradientmap) [0x00000]&lt;br /&gt;
&lt;br /&gt;
You are on Linux, and the native lib libopenjpeg-libsl-2.1.2.0.so is not compatible with your system for one of the following reasons:&lt;br /&gt;
* You have an old processor (libopenjpeg has been compiled with optimizations)&lt;br /&gt;
* You are running in 64bit mode (none of the native libs are built for 64bit)&lt;br /&gt;
&lt;br /&gt;
You can rebuild your own libopenjpeg from source, or run in a compatible environment.&lt;br /&gt;
You can do this by:&lt;br /&gt;
 svn co svn://opensecondlife.org/libsl/trunk libsl&lt;br /&gt;
 cd libsl/openjpeg-libsl/&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
then copy libopenjpeg-libsl-2.1.2.0.so into OpenSim bin-folder.&lt;br /&gt;
&lt;br /&gt;
==Grid Mode==&lt;br /&gt;
Note: Grid Mode isn't officially supported yet.  As such, you are pretty much on your own if you are trying to get OpenSim up and running in Grid Mode.&lt;br /&gt;
&lt;br /&gt;
=== I start the sim and it doesn't connect to any grid ===&lt;br /&gt;
&lt;br /&gt;
When OpenSim is first started, it needs configuration.&lt;br /&gt;
&lt;br /&gt;
* See [[OpenSim: Configuration]].&lt;br /&gt;
&lt;br /&gt;
===I start the OpenSim.Grid.UserServer.exe and it gives an error===&lt;br /&gt;
If this error is access denied for &amp;lt;tt&amp;gt;username@localhost&amp;lt;/tt&amp;gt;, the mysql database is not set up.&lt;br /&gt;
It will print some text and wait for input - either an enter to accept a default value, or another value you can supply.&lt;br /&gt;
* See [[OpenSim: Configuration]].&lt;br /&gt;
&lt;br /&gt;
===I want to run my own Local Grid but one or more servers fail to start===&lt;br /&gt;
* Be sure that you're able to start &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; alone, in Standalone mode, and to be able to login.&lt;br /&gt;
* Start the servers in the correct UGAS order and answer the questions as recommended (see [[OpenSim: Configuration]]).&lt;br /&gt;
* Set all the external URI's to the correct IP: 127.0.0.1 if running on your local machine, or aaa.bbb.ccc.ddd if running on a remote server.&lt;br /&gt;
* Check again all the &amp;lt;tt&amp;gt;*.xml&amp;lt;/tt&amp;gt; configuration files for any wrong settings or typing errors...!&lt;br /&gt;
* Don't forget to connect with your SL-viewer to port 8002 (Grid User-Server) instead of 9000 (Standalone OpenSim-Server).&lt;br /&gt;
* Delete all &amp;lt;tt&amp;gt;*.xml&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;*.yap&amp;lt;/tt&amp;gt; files in the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory if you want to run a full reconfiguration again.&lt;br /&gt;
&lt;br /&gt;
===I get a bunch of asset not found errors, while connected to a online grid, and my inventory doesn't seem to work right===&lt;br /&gt;
*Make sure your opensim.ini has '      asset_database = &amp;quot;grid&amp;quot;      ' otherwise it will not work correctly.&lt;br /&gt;
[[Category:Users]]&lt;/div&gt;</summary>
		<author><name>Robsmart</name></author>	</entry>

	</feed>