http://opensimulator.org/index.php?title=Special:RecentChanges&feed=atomOpenSimulator - Recent changes [en]2024-03-19T06:04:35ZTrack the most recent changes to the wiki in this feed.MediaWiki 1.19.9http://opensimulator.org/index.php?title=OsGetInventoryItemKeys&diff=54106&oldid=54059OsGetInventoryItemKeys2024-03-19T05:47:24Z<p>Clarified GetInventoryKey/GetInventoryItemKey difference</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 05:47, 19 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 84:</td>
<td colspan="2" class="diff-lineno">Line 84:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|description=</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|description=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Return a list of the items UUIDs by type (or INVENTORY_ALL) located in the host or child prim prim inventory.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Return a list of the items UUIDs by type (or INVENTORY_ALL) located in the host or child prim prim inventory.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Note that unlike llGetInventoryKey, this function returns the item ID, not ID of its asset.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|additional_info=Added in 0.9.3.0</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|additional_info=Added in 0.9.3.0</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}}</div></td></tr>
</table>JeffKelleyhttp://opensimulator.org/index.php?title=OsGetInventoryItemKey&diff=54105&oldid=54049OsGetInventoryItemKey2024-03-19T05:47:21Z<p>Clarified GetInventoryKey/GetInventoryItemKey difference</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 05:47, 19 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 58:</td>
<td colspan="2" class="diff-lineno">Line 58:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div></source></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div></source></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>|description=Returns id(key) of a inventory item within a prim inventory.<br> If name is not unique result maybe unpredictable.<br> Note that unlike this function<del class="diffchange diffchange-inline">, llGet*InventoryItemKey do not return </del>the item ID <del class="diffchange diffchange-inline">but the </del>ID of its asset.<br>Returns NULL_KEY if the item is not found or Owner has no rights</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>|description=Returns id(key) of a inventory item within a prim inventory.<br> If name is not unique result maybe unpredictable.<br> Note that unlike <ins class="diffchange diffchange-inline">llGetInventoryKey, </ins>this function <ins class="diffchange diffchange-inline">returns </ins>the item ID<ins class="diffchange diffchange-inline">, not </ins>ID of its asset<ins class="diffchange diffchange-inline">.</ins>.<br>Returns NULL_KEY if the item is not found or Owner has no rights</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|additional_info=osGetInventoryItemKey added in 0.9.1.0 Dev, Implemented August, 16 2019 <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>|additional_info=osGetInventoryItemKey added in 0.9.1.0 Dev, Implemented August, 16 2019 <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>osGetLinkInventoryKey added in 0.9.3.0 Dev, March 2024</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>osGetLinkInventoryKey added in 0.9.3.0 Dev, March 2024</div></td></tr>
</table>JeffKelleyhttp://opensimulator.org/index.php?title=Hauptseite&diff=54104&oldid=54062Hauptseite2024-03-17T19:51:04Z<p><span dir="auto"><span class="autocomment">Was ist der OpenSimulator: </span> </span></p>
<a href="http://opensimulator.org/index.php?title=Hauptseite&diff=54104&oldid=54062">Show changes</a>Mannihttp://opensimulator.org/index.php?title=Freeswitch_Module/de&diff=54090&oldid=54078Freeswitch Module/de2024-03-15T10:40:09Z<p><span dir="auto"><span class="autocomment">Notizen zur Einrichtung von FreeSwitch auf Openvue Grid: </span> </span></p>
<a href="http://opensimulator.org/index.php?title=Freeswitch_Module/de&diff=54090&oldid=54078">Show changes</a>Mannihttp://opensimulator.org/index.php?title=Freeswitch_Module/de&diff=54078&oldid=0Freeswitch Module/de2024-03-15T10:06:15Z<p>Created page with "{{Quicklinks|Freeswitch_Module}} <br /> {{thirdparty}} The FreeSWITCH module enables voice in OpenSimulator with no changes required to the Linden Labs Second Life viewer. ..."</p>
<p><b>New page</b></p><div>{{Quicklinks|Freeswitch_Module}} <br /> <br />
<br />
{{thirdparty}}<br />
<br />
The FreeSWITCH module enables voice in OpenSimulator with no changes required to the Linden Labs Second Life viewer. For OpenSimulator 0.7.0.2 and earlier, the viewer must be between versions 1.22 and 1.23.5. For OpenSimulator 0.7.1 and later 2.x viewers will also work.<br />
<br />
A little history on the development of the FreeSWITCH module is given here: <br />
<br />
* http://zaki.asia/2009/04/28/freeswitch-module-in-opensim.html<br />
<br />
How To Install FreeSwitch PBX on Ubuntu 20.04 and 18.04<br />
* https://computingforgeeks.com/how-to-install-freeswitch-pbx-on-ubuntu/<br />
<br />
== FreeSwitch Install ==<br />
<br />
Follow the [https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/#Compiling_and_Installation compilation instructions in the FreeSWITCH wiki]. '''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)'''. For OpenSim's purposes, we need to enable two specific modules. <br />
<br />
Make sure to [https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/#Compile_and_Install_Sounds install the hold music] if you are not going to disable it in the "configure conference.conf.xml" section below.<br />
<br />
When you get to "'''Edit modules.conf'''" section of the Freeswitch build instructions, edit the modules.conf file and uncomment to make active the entries for xml_curl and the siren14 codec <br />
<br />
codecs/mod_siren<br />
and<br />
xml_int/mod_xml_curl<br />
<br />
''Note: Freeswitch Git master as of 18th April 2011 already has codecs/mod_siren configured''<br />
<br />
<u>January 2019 update</u> : The Freeswitch wiki is now at https://freeswitch.org/confluence/. As stated, « The sprint that copied remaining pages from the old mediawiki to Confluence has given us all the documentation fit to print, however they are not organized well. Search is your friend. » <br />
<br />
The installation page may be found at https://freeswitch.org/confluence/display/FREESWITCH/Installation. <br />
<br />
Configuration page : https://freeswitch.org/confluence/display/FREESWITCH/Configuring+FreeSWITCH<br />
<br />
Note that Debian, Ubuntu and CentOS/RHEL have packages as explained respectively <br />
[https://freeswitch.org/confluence/display/FREESWITCH/Debian+9+Stretch here],<br />
[https://freeswitch.org/confluence/display/FREESWITCH/Ubuntu+16.04+Xenial here],<br />
and [https://freeswitch.org/confluence/display/FREESWITCH/CentOS+7+and+RHEL+7 here].<br />
<br />
== FreeSwitch Config ==<br />
<br />
=== enable mod_xml_curl ===<br />
<br />
Once you've compiled and installed Freeswitch, you will need to activate mod_siren and mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml, since it's disabled by default on a fresh install. <br />
<br />
uncomment the lines... <br />
<br />
&lt;load module="mod_xml_curl"/&gt;<br />
<br />
and <br />
<br />
&lt;load module="mod_siren"/&gt;<br />
<br />
''Note: Freeswitch Git master as of 18th April 2011 already has mod_siren configured''<br />
<br />
=== configure mod_xml_curl ===<br />
<br />
mod_xml_curl is a freeswitch module which enables dynamic configuration of freeswitch from a web server. In this case, it is the opensim region server. <br />
<br />
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 you wish to be supported). <br />
<br />
You can set this up by editing /usr/local/freeswitch/conf/autoload_configs/xml_curl.conf.xml. <br />
<br />
==== OpenSimulator 0.7.1 and later ====<br />
You can replace the existing config with the following settings, or just add the directory and dialplan bindings. The IP address is used by the Freeswitch server to reach the OpenSimulator freeswitch service to fetch its configuration details. If you're running everything on a single server and your system has only one IP address, this can simply be localhost. If you're running freeswitch on another server or you have multiple IP addresses then this explicitly needs to be your standalone's address.<br />
<br />
You will also need to change the port number if you're using a different standalone HTTP port from the default (9000).<br />
<br />
On grid grid mode you will need to replace '''localhost''' with the ip of the ROBUST instance running the FreeSwitch grid service, and replace the port with the service port (usually 8004).<br />
<br />
This configuration tells freeswitch where to obtain the "dialplan" and "directory" configuration from opensim (as mentioned by the bindings attributes). More details on mod_xml_curl module can be found [http://wiki.freeswitch.org/wiki/Mod_xml_curl here].<br />
<br />
&lt;configuration name="xml_curl.conf" description="cURL XML Gateway"&gt;<br />
&lt;bindings&gt;<br />
&lt;binding name="directory"&gt;<br />
&lt;param name="gateway-url" value="http://localhost:9000/fsapi/freeswitch-config" bindings="directory"/&gt;<br />
&lt;param name="gateway-credentials" value="freeswitch:password"/&gt;<br />
&lt;param name="disable-100-continue" value="true"/&gt;<br />
&lt;/binding&gt;<br />
&lt;binding name="dialplan"&gt;<br />
&lt;param name="gateway-url" value="http://localhost:9000/fsapi/freeswitch-config" bindings="dialplan"/&gt;<br />
&lt;param name="gateway-credentials" value="freeswitch:password"/&gt;<br />
&lt;param name="disable-100-continue" value="true"/&gt;<br />
&lt;/binding&gt;<br />
&lt;/bindings&gt;<br />
&lt;/configuration&gt;<br />
<br />
==== OpenSimulator 0.7.0.2 and earlier ====<br />
<br />
For OpenSimulator 0.7.0.2 and earlier the setup is identical except that the gateway-url paths start with /api rather than /fsapi.<br />
<br />
&lt;configuration name="xml_curl.conf" description="cURL XML Gateway"&gt;<br />
&lt;bindings&gt;<br />
&lt;binding name="directory"&gt;<br />
&lt;param name="gateway-url" value="http://localhost:9000/api/freeswitch-config" bindings="directory"/&gt;<br />
&lt;param name="gateway-credentials" value="freeswitch:password"/&gt;<br />
&lt;param name="disable-100-continue" value="true"/&gt;<br />
&lt;/binding&gt;<br />
&lt;binding name="dialplan"&gt;<br />
&lt;param name="gateway-url" value="http://localhost:9000/api/freeswitch-config" bindings="dialplan"/&gt;<br />
&lt;param name="gateway-credentials" value="freeswitch:password"/&gt;<br />
&lt;param name="disable-100-continue" value="true"/&gt;<br />
&lt;/binding&gt;<br />
&lt;/bindings&gt;<br />
&lt;/configuration&gt;<br />
<br />
=== configure vars.xml ===<br />
<br />
''Note: Freeswitch Git master as of 18th April 2011 already has this configured''<br />
<br />
The /usr/local/freeswitch/conf/vars.xml requires modification to enable the siren14 codec <br />
<br />
search within vars.xml for the global_codec_prefs and change the line to read <br />
<br />
&lt;X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G722,PCMU,PCMA,GSM"/&gt; <br />
<br />
or <br />
<br />
&lt;X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM"/&gt;<br />
<br />
G7221@32000h is the siren14 codec<br />
<br />
=== configure conference.conf.xml ===<br />
<br />
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 "default" profile and comment out the sound file lines, as shown in the example below.<br />
<br />
<pre><br />
<!-- Profiles are collections of settings you can reference by name. --><br />
<profiles><br />
<!--If no profile is specified it will default to "default"--><br />
<profile name="default"><br />
...<br />
<!-- If TTS is enabled all audio-file params beginning with --><br />
<!-- 'say:' will be considered text to say with TTS --><br />
<!-- Override the default path here, after which you use relative paths in the other sound params --><br />
<!-- Note: The default path is the conference's first caller's sound_prefix --><br />
<!--<param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/>--><br />
<!-- File to play to acknowledge succees --><br />
<!--<param name="ack-sound" value="beep.wav"/>--><br />
<!-- File to play to acknowledge failure --><br />
<!--<param name="nack-sound" value="beeperr.wav"/>--><br />
<!-- File to play to acknowledge muted --><br />
<!-- <param name="muted-sound" value="conference/conf-muted.wav"/> --><br />
<!-- File to play to acknowledge unmuted --><br />
<!-- <param name="unmuted-sound" value="conference/conf-unmuted.wav"/> --><br />
<!-- File to play if you are alone in the conference --><br />
<!-- <param name="alone-sound" value="conference/conf-alone.wav"/> --><br />
<!-- File to play endlessly (nobody will ever be able to talk) --><br />
<!--<param name="perpetual-sound" value="perpetual.wav"/>--><br />
<!-- File to play when you're alone (music on hold)--><br />
<!-- <param name="moh-sound" value="$${hold_music}"/> --><br />
<!-- File to play when you join the conference --><br />
<!-- <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/> --><br />
<!-- File to play when you leave the conference --><br />
<!-- <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/> --><br />
<!-- File to play when you ae ejected from the conference --><br />
<!-- <param name="kicked-sound" value="conference/conf-kicked.wav"/> --><br />
<!-- File to play when the conference is locked --><br />
<!-- <param name="locked-sound" value="conference/conf-locked.wav"/> --><br />
<!-- File to play when the conference is locked during the call--><br />
<!-- <param name="is-locked-sound" value="conference/conf-is-locked.wav"/> --><br />
<!-- File to play when the conference is unlocked during the call--><br />
<!-- <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/> --><br />
<!-- File to play to prompt for a pin --><br />
<!-- <param name="pin-sound" value="conference/conf-pin.wav"/> --><br />
<!-- File to play to when the pin is invalid --><br />
<!-- <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/> --><br />
...<br />
</profile><br />
...<br />
</profiles><br />
</pre><br />
<br />
== OpenSimulator config ==<br />
<br />
=== Config for OpenSimulator 0.7.1 onwards ===<br />
<br />
==== Standalone ====<br />
<br />
The configuration is explained in OpenSim.ini.example. Here's one example<br />
<br />
[FreeSwitchVoice]<br />
Enabled = true<br />
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService<br />
<br />
[FreeswitchService]<br />
ServerAddress = 192.168.1.2<br />
<br />
In this case, the FreeSWITCH server is running on 192.168.1.2 and only viewers on the local LAN need to access it. If people needed to access the standalone (and hence the voice service) externally, then this IP would have to be one that could be reached from the outside (e.g. 80.175.122.1). No other files need to be configured.<br />
<br />
==== Grid Mode ====<br />
In grid mode, [FreeSwitchVoice] in OpenSim.ini and [FreeswitchService] in Robust.ini or Robust.HG.ini need to be configured. Configurations details are shown in both OpenSim.ini.example, Robust.ini.example and Robust.HG.ini.example. Here is an example configuration for OpenSim.ini.<br />
<br />
[FreeSwitchVoice]<br />
Enabled = true<br />
LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector<br />
FreeswitchServiceURL = http://192.168.1.3:8004/fsapi<br />
<br />
Add for Robust.ini/Robust.HG.ini<br />
<br />
[FreeswitchService]<br />
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService<br />
ServerAddress = http://192.168.1.4<br />
<br />
In this case, the grid service is running on 192.168.1.3 and the FreeSWITCH server is running on 192.168.1.4.<br />
<br />
For more details on FreeSWITCH config for this version you may want to refer to <br />
<br />
* http://opensimulator.org/mantis/view.php?id=5267<br />
* http://opensimulator.org/mantis/view.php?id=5274<br />
<br />
=== OpenSimulator 0.7.0.2 and earlier ===<br />
<br />
==== Standalone ====<br />
<br />
Add the following to your OpenSim.ini<br />
<br />
[FreeSwitchVoice]<br />
Enabled = true<br />
LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"<br />
<br />
[FreeswitchService]<br />
ServerAddress = youropensimregionip<br />
Realm = "youropensimregionip"<br />
<br />
==== Grid Mode ====<br />
Add the following to your OpenSim.ini<br />
<br />
[FreeSwitchVoice]<br />
Enabled = true<br />
LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector<br />
FreeswitchServiceURL = http://ip.of.your.robust.server.for.freeswitch.connector:8004/fsapi<br />
<br />
Add the following to your Robust.ini or Robust.HG.ini<br />
<br />
[FreeswitchService]<br />
LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService<br />
ServerAddress = ip.of.your.robust.server.for.freeswitch.connector<br />
Realm = "ip.of.your.robust.server.for.freeswitch.connector"<br />
<br />
If your Freeswitch complains about an unknown domain, you have probably mixed ips and host names. You should always use dotted quad IP addresses, as there are string compares done on them in Freeswitch code and a name and it's corresponding address are not considered to be the same!<br />
<br />
== Firewall Config ==<br />
<br />
Basically open ports 1720 and 5060, and maybe 50505 must be open for listening.<br />
<br />
Make sure that the ports used by Freeswitch are accessible though your firewall(s). In the example above the main port used is 5060 though other ports may be used for call initiation (port 1720 for H.323 Call Signalling) and dynamically assigned ports for specific call traffic. The usual H.323 and SIP traffic dynamic port handling on modern firewalls usually enables this. <br />
<br />
Is port 50505 actually used, or is it just something that must be<br />
reported by OpenSimulator when the Freeswitch service makes contact?<br />
<br />
<br /> More details on the Freeswitch ports used and firewall configuration details are at http://wiki.freeswitch.org/wiki/Firewall <br />
<br />
If you have problems with NAT/Routers look at using STUN (Simple Traversal of UDP through NATs). More information at http://wiki.freeswitch.org/wiki/NAT_Traversal<br />
<br />
== Starting everything up ==<br />
<br />
1. Freeswitch fetches OpenSimulator related configuration from the OpenSimulator freeswitch voice module and service that we set up earlier. Therefore, you need to start OpenSimulator first. On startup you should see the lines<br />
<br />
21:45:33 - [FreeSwitchVoice]: using FreeSwitch server <your ip address><br />
21:45:33 - [FreeSwitchVoice]: plugin enabled<br />
<br />
2. Start freeswitch. This will complain about<br />
<br />
<pre><br />
[ERR] mod_xml_curl.c:302 Error Parsing Result! [http://localhost:9000/fsapi/freeswitch-config] data: [hostname=fruitfly&section=directory&tag_name=&key_name=&key_value=&Event-Name=REQUEST_PARAMS&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A03&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A03%20GMT&Event-Date-Timestamp=1317069963782065&Event-Calling-File=sofia.c&Event-Calling-Function=config_sofia&Event-Calling-Line-Number=3965&purpose=gateways&profile=external]<br />
</pre><br />
<br />
and<br />
<br />
[ERR] mod_xml_curl.c:305 Received HTTP error 404 trying to fetch http://localhost:9000/fsapi/freeswitch-config data: [hostname=fruitfly&section=directory&tag_name=domain&key_name=name&key_value=192.168.1.2&Event-Name=GENERAL&Core-UUID=8cdac78a-e880-11e0-a320-3324fcf85684&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2021%3A46%3A05&Event-Date-GMT=Mon,%2026%20Sep%202011%2020%3A46%3A05%20GMT&Event-Date-Timestamp=1317069965442975&Event-Calling-File=switch_core.c&Event-Calling-Function=switch_load_network_lists&Event-Calling-Line-Number=1173&domain=192.168.1.2&purpose=network-list]<br />
<br />
You can ignore these errors for now - they should be fixed in the future but will not prevent Freeswitch from working.<br />
<br />
On the OpenSimulator region (on standalone) or grid console (on grid) you should see the lines <br />
<br />
[FreeSwitchVoice]: Received request for config section directory, event calling function 'config_sofia'<br />
[FreeSwitchVoice]: Received request for config section directory, event calling function 'config_sofia'<br />
[FreeSwitchVoice]: Received request for config section directory, event calling function 'switch_load_network_lists'<br />
<br />
3. Now, make sure your parcel in the region has voice enabled in the parcel dialog. You may need to change this and then restart OpenSimulator if it wasn't previously set.<br />
<br />
4. Login your client. Make sure you have voice enabled and it's working (probably by testing on another grid first).<br />
<br />
5. If everything has gone according to plan, you should see something like the line<br />
<br />
[FreeSwitchVoice]: OnRegisterCaps() called with agentID 0fe223e7-370a-46da-b935-b0831ddf6d08 caps OpenSim.Framework.Capabilities.Caps in scene test2<br />
<br />
amongst others on the OpenSimulator region console. And on the freeswitch console you should see something like<br />
<br />
<pre><br />
2011-09-26 22:10:09.866918 [WARNING] sofia_reg.c:1241 SIP auth challenge (REGISTER) on sofia profile 'internal' for [xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] from ip 192.168.1.2<br />
2011-09-26 22:10:10.046904 [ERR] mod_xml_curl.c:305 Received HTTP error 404 trying to fetch http://localhost:9000/fsapi/freeswitch-config<br />
data: [hostname=fruitfly&section=directory&tag_name=domain&key_name=name&key_value=192.168.1.2&Event-Name=GENERAL&Core-UUID=da41cd40-e883-11e0-b7d8-07a2aa0d33c8&FreeSWITCH-Hostname=fruitfly&FreeSWITCH-Switchname=fruitfly&FreeSWITCH-IPv4=192.168.1.2&FreeSWITCH-IPv6=%3A%3A1&Event-Date-Local=2011-09-26%2022%3A10%3A10&Event-Date-GMT=Mon,%2026%20Sep%202011%2021%3A10%3A10%20GMT&Event-Date-Timestamp=1317071410046904&Event-Calling-File=mod_voicemail.c&Event-Calling-Function=resolve_id&Event-Calling-Line-Number=1284&action=message-count&key=id&user=xD-Ij5zcKRtq5NbCDHd9tCA%3D%3D&domain=192.168.1.2]<br />
2011-09-26 22:10:10.466949 [WARNING] sofia_reg.c:1241 SIP auth challenge (INVITE) on sofia profile 'internal' for [conf-xZGQ1Yjc3ZjgtYmY4OC00NWFjLWFhY2UtMzViZDc2NDI2Yzgx@192.168.1.2] from ip 192.168.1.2<br />
2011-09-26 22:10:10.646923 [NOTICE] switch_channel.c:816 New Channel sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 [eb426488-e883-11e0-b7e2-07a2aa0d33c8]<br />
2011-09-26 22:10:10.646923 [INFO] mod_dialplan_xml.c:331 Processing Justin Clark-Casey <xD-Ij5zcKRtq5NbCDHd9tCA==>->conf-xZGQ1Yjc3ZjgtYmY4OC00NWFjLWFhY2UtMzViZDc2NDI2Yzgx in context default<br />
2011-09-26 22:10:10.646923 [NOTICE] mod_dptools.c:930 Channel [sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2] has been answered<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6561 using channel sound prefix: /usr/local/freeswitch/sounds/en/us/callie<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '0' to 'mute'<br />
2011-09-26 22:10:10.646923 [INFO] switch_ivr_async.c:163 Digit parser mod_conference: Setting realm to conf<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '*' to 'deaf mute'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '9' to 'energy up'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '8' to 'energy equ'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '7' to 'energy dn'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '3' to 'vol talk up'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '2' to 'vol talk zero'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '1' to 'vol talk dn'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '6' to 'vol listen up'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '5' to 'vol listen zero'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '4' to 'vol listen dn'<br />
2011-09-26 22:10:10.646923 [INFO] mod_conference.c:6924 sofia/internal/xD-Ij5zcKRtq5NbCDHd9tCA==@192.168.1.2 binding '#' to 'hangup'<br />
</pre><br />
<br />
With any luck, the voice buttons on your client will now be active and working.<br />
<br />
== Issues and Solutions ==<br />
<br />
Make sure that you have enabled voice in the "About Land"-&gt;"Voice" dialogue in the region, you will need to be a region admin to do this. <br />
<br />
Check the plot also has voice enabled. You must be a plot owner or have suitable permisison to do this. Recent Linden Labs Second Life viewers do not offer this option, so use Hippo or another client which does. <br />
<br />
{| cellspacing="1" cellpadding="1" border="1" align="left" style="width: 1010px; height: 66px;"<br />
|-<br />
! scope="col" | Issue <br /> <br />
! scope="col" | Resolution<br /><br />
|-<br />
| --[ERR] mod_xml_curl.c:230 xml_url_fetch() Received HTTP error 0 trying to fetch:<br /> <br />
| To solve this error, get the last GIT of FreeSwitch, follow this instructions (for Ubuntu)&nbsp; [http://wiki.freeswitch.org/wiki/Ubuntu_Quick_Start#Updating_direct_from_Git here]<br /><br />
|-<br />
| --mod_event_socket.c -&gt; Socket Error Could not listen on 127.0.0.1:5060:<br /> <br />
| This means something is using the port 5060, usually freeswitch is already running, on Ubuntu, try the following command: netstat -npl &#124; grep 85060 If freeswitch is running, close is with: sudo freeswitch -stop OR sudo invoke-rc.d freeswitch stop <br /><br />
|-<br />
| --[ERR] [WARNING] sofia_reg.c:1540 sofia_reg_parse_auth()Can't find user [x8cOXAiIzTVC6xqf-nquLkw==@"some ip or domain here"] etc ...<br />
| a solutions to this error is, mod your vars.xml replacing the domain lines <X-PRE-PROCESS cmd="set" data="domain=whatever is in the realm setting of your freeswitch config"/> <X-PRE-PROCESS cmd="set" data="domain_name=whatever is in the realm setting of your freeswitch config"/> - Now this will most likely break your freeswitch for anything other than your opensim. But should get you closer<br /><br />
|-<br />
| --[WARNING] mod_local_stream.c:393 Unknown source moh, trying 'default'<br />
[ERR] mod_local_stream.c:402 Unknown source default<br />
| If you see these log messages continuously on the Freeswitch console, then you have either not disabled the conference sounds or you have not installed them (see earlier).<br />
|}<br />
<br />
<br /><br />
<br clear=all><br />
<br />
Use some of the debugging features in FreeSWITCH:<br />
<br />
* conference list <--- to see if you have any conferences setup (note you have to be inworld when you try this)<br />
* xml_curl debug_on <--- this command will dump the transactions between OpenSimulator and FreeSWITCH into a file (on linux it is in /tmp)<br />
* xml_curl debug_off <-- turn it off after you login/logout a few times<br />
<br />
== Notes from Openvue Grid setup for FreeSwitch ==<br />
<br />
Using Windows Vista 32 bit OS. Works with FreeSwitch 1.0.4 and later (for a specific tested example, FreeSWITCH Version 1.0.head (git-e0c37c1 2010-11-05 18-20-09 -0500)).<br />
<br />
Additional notes that might help:<br />
<br />
1. We established a simple OpenSim.exe on the SAME host as the FreeSwitch.exe service and put a single simple island on that (we called it "Talk") as some folks observed that FreeSwitch had problems with connecting if it was CONFIGURED to link to another server, but we don't believe this is necessary.<br />
<br />
2. FreeSwitch provides service to all OpenSim.exe instances on any servers you wish even though its only configured for one.<br />
<br />
3. There is one FreeSwitch channel per region, change regions and you change channel. So all users to talk must be on the same region. All plots on one region share the same single region channel.<br />
<br />
4. You appear as one user in the SL Viewers, ALL other users appear as a single "user" with a coded name for the other users on the channel - something like conf-x9999999999999999999.<br />
<br />
5. You must have voice enabled at the region, AND the plot level. This is a pain, as the default setting in OpenSimulator is that PLOTS have voice turned off. The standard viewers 1.23 and 2.x do not allow you to turn this back on, so you must use a third party viewer to turn on PLOT voice. I have asked before that we change the default setting when a plot is created to have this on by default (or on if the region voice is on - which it is by default).<br />
<br />
6. We are not sure if you MUST start FreeSwitch.exe before the regions that you want voice to work on. But we do so for safety. It works fine over OpenSim.exe restarts without FreeSwitch being started again.<br />
<br />
7. If you wish to use FreeSwitch beyond your local network, remember to configure for EXTERNALLY accessible IP addresses. Use IP numbers for FreeSwitch... and if there are 192.168.x.x style local net addresses in there you will not get FreeSwitch to work with external users. It can work through a range of firewalls with suitable mechanisms such as port forwarding or DMZs, so long as you definitely map to the externally visible IP address. Ensure you have the appropriate ports open in your Firewall(s). See separate section in Wiki on ports required. <br />
<br />
8. There are some red errors on startup of FreeSwitch - at least in our setup - which appears to be related to a missing config file that FreeSwitch tries to retrieve from OpenSimulator (opensim-region-server-url:port/api/freeswitch-config) that is not in the OpenSimulator setup... We have (safely?) ignored those without problems...<br />
<br />
2010-11-13 14:42:55.252361 [ERR] mod_xml_curl.c:252 Received HTTP error 0 trying<br />
to fetch http://129.215.219.143:9000/api/freeswitch-config<br />
data: [hostname=shuna&section=directory&tag_name=domain&key_name=name&key_value=<br />
129.215.219.143&Event-Name=GENERAL&Core-UUID=cb64ea40-aa92-494b-be13-65d9c468efe<br />
c&FreeSWITCH-Hostname=shuna&FreeSWITCH-IPv4=129.215.219.143&FreeSWITCH-IPv6=2002<br />
%3A81d7%3Adb8f%3A%3A81d7%3Adb8f&Event-Date-Local=2010-11-13%2014%3A42%3A54&Event<br />
-Date-GMT=Sat,%2013%20Nov%202010%2014%3A42%3A54%20GMT&Event-Date-Timestamp=12896<br />
59374247361&Event-Calling-File=switch_core.c&Event-Calling-Function=switch_load_<br />
network_lists&Event-Calling-Line-Number=984&domain=129.215.219.143&purpose=network-list]<br />
<br />
9. 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 "default" profile and comment out the relevant lines. See examples above on this Wiki page.<br />
<br />
[[Category:Voice]]</div>Mannihttp://opensimulator.org/index.php?title=Chat_log_from_the_meeting_on_2024-03-12&diff=54077&oldid=0Chat log from the meeting on 2024-03-122024-03-12T19:15:13Z<p>Created page with "<pre style="white-space: pre-wrap;word-wrap: break-word;"> [11:00 AM PT] Andrew Hellershanks: Hello, everyone. [11:01 AM PT] Ubit Umarov: who was shyfy linden? [11:01 AM PT]..."</p>
<p><b>New page</b></p><div><pre style="white-space: pre-wrap;word-wrap: break-word;"><br />
[11:00 AM PT] Andrew Hellershanks: Hello, everyone.<br />
[11:01 AM PT] Ubit Umarov: who was shyfy linden?<br />
[11:01 AM PT] Andrew Hellershanks: Someone needs to fix the typo in the chat logger.<br />
[11:01 AM PT] Joe Magarac: Hello all.<br />
[11:01 AM PT] Andrew Hellershanks: Hello, Joe.<br />
[11:01 AM PT] Ubit Umarov: hi<br />
[11:01 AM PT] Gavin.Hird @grid.xmir.org:8002: Hi<br />
[11:01 AM PT] Gavin.Hird @grid.xmir.org:8002: shyfly?<br />
[11:02 AM PT] Gavin.Hird @grid.xmir.org:8002: shyfy*<br />
[11:02 AM PT] Ubit Umarov: https://www.reddit.com/r/secondlife/comments/1b1qg3d/linden_lab_departures_mojo_and_styfy_linden/?force_seo=1<br />
[11:02 AM PT] Gavin.Hird @grid.xmir.org:8002: dunno<br />
[11:02 AM PT] Ubit Umarov: not patch but that one<br />
[11:03 AM PT] Ubit Umarov: https://danielvoyager.wordpress.com/2024/03/06/mojo-linden-and-styfy-linden-leaves-linden-lab/<br />
[11:03 AM PT] Gavin.Hird @grid.xmir.org:8002: whoever wrote that, I will not miss Mojo<br />
[11:03 AM PT] Gavin.Hird @grid.xmir.org:8002: VP of Marketing apparently<br />
[11:03 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Linden bashing was always low hanging fruit, but dang they manage on their own to be ten times worse<br />
[11:04 AM PT] Andrew Hellershanks: Hello, Jamie.<br />
[11:04 AM PT] Andrew Hellershanks: Hello, Kayaker.<br />
[11:04 AM PT] Gavin.Hird @grid.xmir.org:8002: I geuss they did not meet some promised dealines, so the VCs got impatient<br />
[11:04 AM PT] Jamie.Jordan @grid.kitely.com:8002: Hi everybody<br />
[11:04 AM PT] Kayaker Magic: Hi all!<br />
[11:05 AM PT] Gavin.Hird @grid.xmir.org:8002: could explain the desperate early release of PBR viewer<br />
[11:05 AM PT] Vincent.Sylvester @hg.zetaworlds.com: hehehe<br />
[11:05 AM PT] Joe Magarac: There are no VCs at this point. The current owners are long-term investors from real estate and banking.<br />
[11:05 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Not sure that's better<br />
[11:06 AM PT] Gavin.Hird @grid.xmir.org:8002: exactly<br />
[11:06 AM PT] Andrew Hellershanks: Wow. I don't know what is on that wordpress page but it requires you to login as part of proving you are over 18 in order to see the posting.<br />
[11:06 AM PT] Joe Magarac: Me either, but the Waterfield people haven't done anything really stupid.<br />
[11:06 AM PT] Vincent.Sylvester @hg.zetaworlds.com: That tells you all you gotta know really, it's a trainwreck that registered on the Richter scale<br />
[11:08 AM PT] Joe Magarac: Anyway.<br />
[11:08 AM PT] Vincent.Sylvester @hg.zetaworlds.com: To more pleasant matters. I spent last week picking apart the migration system and after I pulled my hair out I decided it just needs something a bit less... dangerous. So I wrote a new system that migrates each table rather than making large assumptions on the state of tables based on some version info<br />
[11:09 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Extending from the already present validations to include a way to move from the old to the new system and even, if nothing is present, create the required tables directly, which should speed migrations up when first starting<br />
[11:09 AM PT] Gavin.Hird @grid.xmir.org:8002: but there still needs to be versioning on the tables<br />
[11:09 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Eventually the plan is to have a new system storing version info in the table comments for each table and migrate and validate them at each step<br />
[11:09 AM PT] Andrew Hellershanks: I wonder how people wind up with tables that don't match the layout they are supposed to have based on their migration level.<br />
[11:10 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Either through making their own additions, which can be useful or through the migrations failing and nothing actually noticing that one step failed for whatever reason<br />
[11:10 AM PT] Gavin.Hird @grid.xmir.org:8002: combination of failed migration (partial) and tinkering with the tables<br />
[11:10 AM PT] Vincent.Sylvester @hg.zetaworlds.com: It just runs the sql and then tries to start without checking<br />
[11:11 AM PT] Andrew Hellershanks: Are migrations not done via a transaction?<br />
[11:11 AM PT] Gavin.Hird @grid.xmir.org:8002: I hope they are<br />
[11:11 AM PT] Andrew Hellershanks: As do I.<br />
[11:11 AM PT] Vincent.Sylvester @hg.zetaworlds.com: They are sort of, but even if that fails it just continues as if nothing happened<br />
[11:11 AM PT] Vincent.Sylvester @hg.zetaworlds.com: There is nothing that stops them if they report failure, it's fire and forget<br />
[11:11 AM PT] Andrew Hellershanks: That should have been dealt with.<br />
[11:12 AM PT] Gavin.Hird @grid.xmir.org:8002: but transaction is at table level and not for the total successful migration up to a known level<br />
[11:12 AM PT] Andrew Hellershanks: If there was a failure was anything reported to the console?<br />
[11:12 AM PT] Gavin.Hird @grid.xmir.org:8002: I think...<br />
[11:12 AM PT] Vincent.Sylvester @hg.zetaworlds.com: There was some indication on the console, but guess what, there is so much text there after you usually don't see that<br />
[11:12 AM PT] Gavin.Hird @grid.xmir.org:8002: yes, console spew hard to decipher<br />
[11:12 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Migration runs and then all the module messages mask the errors within seconds<br />
[11:13 AM PT] Andrew Hellershanks: More so when it isn't shown in red text or you see it after by reading the log file.<br />
[11:13 AM PT] Ubit Umarov: no they are not done on a transaction<br />
[11:13 AM PT] Vincent.Sylvester @hg.zetaworlds.com: No red text either<br />
[11:13 AM PT] Ubit Umarov: thye are slow enough without one<br />
[11:13 AM PT] Andrew Hellershanks: ok. That is at least three problems with migrations.<br />
[11:13 AM PT] Lyr Lobo: Hello *smiles*<br />
[11:13 AM PT] Andrew Hellershanks: Hello, Lyr.<br />
[11:14 AM PT] Gavin.Hird @grid.xmir.org:8002: Hi Lyr<br />
[11:14 AM PT] Cuga.Rajal @rajal.org:9000: Hi Lyr<br />
[11:14 AM PT] Gavin.Hird @grid.xmir.org:8002: the postgres ones were on transaction<br />
[11:16 AM PT] Andrew Hellershanks: Good. Unfortunately it isn't the DB system that is used that often.<br />
[11:16 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I still have to test the changes on existing tables and might have to just ditch the old system entirely using the new system from the start, that remains to be seen<br />
[11:17 AM PT] Vincent.Sylvester @hg.zetaworlds.com: For now I have the old stuff in there in case anyone still needs to run them, after which the new migration takes over, which does everything per table, per version with a validation afterwards to make sure they conform to what they should look like<br />
[11:17 AM PT] Gavin.Hird @grid.xmir.org:8002: ok<br />
[11:17 AM PT] Vincent.Sylvester @hg.zetaworlds.com: The schema is just in a file so those that made changes to tables for their own system can edit them and make the validation succeed<br />
[11:17 AM PT] Andrew Hellershanks: Vincent, does your new system also verify that the connection strings are valid?<br />
[11:17 AM PT] Vincent.Sylvester @hg.zetaworlds.com: That's the only thing that already throws an exception at least<br />
[11:19 AM PT] Andrew Hellershanks: Unless it has changed OS has had a tendency to attempt to use a database even when the credentials in the connection strings were invalid. The program would eventually throw lots of red text but long after the point where it tried to establish a link to the database(s).<br />
[11:19 AM PT] Gavin.Hird @grid.xmir.org:8002: :_)<br />
[11:20 AM PT] Vincent.Sylvester @hg.zetaworlds.com: On the grid side that tends to happen, but a hard failure on the connection still just throws an exception, some modules they will attempt to connect and it does do that when you restart the database while it is still running as well. Graceful handling of that doesn't exist<br />
[11:20 AM PT] Vincent.Sylvester @hg.zetaworlds.com: My main sticking point is whether I should leave the old system in place or make the effort to turn the existing migrations into per-table ones and use the new system for everything<br />
[11:21 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Not sure which is the better option<br />
[11:21 AM PT] Andrew Hellershanks: I've been meaning to look at the code where the DB links are made and at the very least make it throw red text as soon as it fails to establish a link to a database or table.<br />
[11:22 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Most modules that directly connect do throw red text, just not terminate the whole thing<br />
[11:22 AM PT] Gavin.Hird @grid.xmir.org:8002: I might be wrong, but in my experience both robust and the simulator already do that<br />
[11:23 AM PT] Gavin.Hird @grid.xmir.org:8002: also sim start fails immediately the connection is failing<br />
[11:23 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Yeah they will throw exception on startup if connect fails and during runtime the console goes red and yellow when it loses connection<br />
[11:23 AM PT] Gavin.Hird @grid.xmir.org:8002: very red<br />
[11:24 AM PT] Andrew Hellershanks: I'll have to try it. I never noticed red text at the time of an attempted DB connection.<br />
[11:24 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Think it is only the modules that can have different connection strings that might not throw exceptions<br />
[11:25 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Generally what's happening more is that it starts and optional modules fail to load and you get errors in main modules<br />
[11:25 AM PT] Vincent.Sylvester @hg.zetaworlds.com: It'll happily work without inventory module working, but that creates issues with assets pretty quickly<br />
[11:26 AM PT] Andrew Hellershanks: In the past when people have reported problems getting OS running, or seeing lots of red text, I used to tell them to check the connection strings.<br />
[11:27 AM PT] Vincent.Sylvester @hg.zetaworlds.com: It is either that or just bad config in the modules. If you enable a module in one ini file you gotta also uncomment some things in another, some miss that<br />
[11:27 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Technically you could just combine it all into one config, it's what the system does anyways<br />
[11:27 AM PT] Vincent.Sylvester @hg.zetaworlds.com: With includes you can basically include any text and it'll load that in and override based on what's loaded last<br />
[11:28 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Doesn't even check if it is a .ini heh<br />
[11:28 AM PT] Gavin.Hird @grid.xmir.org:8002: wasted cpu cycles<br />
[11:29 AM PT] Ubit Umarov: ini files are merged into a big config thing<br />
[11:29 AM PT] Ubit Umarov: well most of them, except regions.ini<br />
[11:29 AM PT] Gavin.Hird @grid.xmir.org:8002: is the merge logged somewhere?<br />
[11:30 AM PT] Ubit Umarov: nahh<br />
[11:30 AM PT] Gavin.Hird @grid.xmir.org:8002: or the result rather<br />
[11:30 AM PT] Vincent.Sylvester @hg.zetaworlds.com: You can do "config get" on console to see the current running config<br />
[11:30 AM PT] Ubit Umarov: nahh<br />
[11:30 AM PT] Ubit Umarov: :)<br />
[11:30 AM PT] Gavin.Hird @grid.xmir.org:8002: :-)<br />
[11:30 AM PT] Kayaker Magic: config show or config show section_name<br />
[11:30 AM PT] Gavin.Hird @grid.xmir.org:8002: might be easier to debug the resulting one than individial files<br />
[11:31 AM PT] Ubit Umarov: well you can see the result<br />
[11:31 AM PT] Gavin.Hird @grid.xmir.org:8002: right<br />
[11:31 AM PT] Ubit Umarov: would be a bit large log<br />
[11:32 AM PT] Ubit Umarov: well and since we do use a tool for it, possible not that visible<br />
[11:32 AM PT] Andrew Hellershanks: It isn't just a module problem. The main system has the problem with connection strings if the credentials aren't valid.<br />
[11:32 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Thing that I would like some comments on. I currently have the code to do the old migrations and only after they are done using the new system. I wonder if I should change this and just use the new system directly, converting the existing migrations to the new style instead. I'm not sure what's going to work better for most people<br />
[11:34 AM PT] Gavin.Hird @grid.xmir.org:8002: I have never experienced the existing system as particularly catastrophic, but it would be an improvement to run each statement as a transaction<br />
[11:34 AM PT] Cuga.Rajal @rajal.org:9000: Maybe switch to the new system after some testing? Use a test DB, mess up a table intentionally by hand, then start up OS and see new system work.<br />
[11:35 AM PT] Gavin.Hird @grid.xmir.org:8002: drop table if exist; -woops there goes your data<br />
[11:36 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I'll add proper transaction to the handling. Right now I just run the sql and check if the query returned an error code or not. After all migrations the schema checks if the table looks as it should<br />
[11:36 AM PT] Ubit Umarov: what would be the help of a trans on that?<br />
[11:36 AM PT] Andrew Hellershanks: vincent, How do you determine whether tables have been migrated to the new system? Are you using a new table to track the changes?<br />
[11:36 AM PT] Ubit Umarov: data would be gone anyway<br />
[11:36 AM PT] Ubit Umarov: transastcion only assures that all happens..<br />
[11:37 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I run old migrations up till they report no pending migration and then set the table version to zero, after that I validate the table schema<br />
[11:37 AM PT] Ubit Umarov: ans on some operations, to keep track of all operations to revert, would possible be a bit big thing..<br />
[11:37 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I could add a validation in between to check if the tables are of the design they should be after running the old migrations<br />
[11:38 AM PT] Gavin.Hird @grid.xmir.org:8002: version to zero?<br />
[11:38 AM PT] Vincent.Sylvester @hg.zetaworlds.com: set table comment Version:0<br />
[11:38 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Each new migration after just increments that, one sql file per version per table, so any failure can specifically state what went wrong<br />
[11:38 AM PT] Andrew Hellershanks: ok<br />
[11:39 AM PT] Gavin.Hird @grid.xmir.org:8002: but there are dependecies on table versions and actual code the grid or simulator runs<br />
[11:39 AM PT] Ubit Umarov: current migration thing, does make sense... but ofc, in time juat gets 2 large and heavy<br />
[11:39 AM PT] Ubit Umarov: you cna't jsut compare the columns you want to the ones present<br />
[11:40 AM PT] Ubit Umarov: in several cases you do need the full path..<br />
[11:40 AM PT] Ubit Umarov: how you got there..<br />
[11:40 AM PT] Gavin.Hird @grid.xmir.org:8002: agreed Ubit<br />
[11:40 AM PT] Ubit Umarov: that is the cost of soem flexiblility<br />
[11:40 AM PT] Ubit Umarov: some--<br />
[11:41 AM PT] Vincent.Sylvester @hg.zetaworlds.com: full path?<br />
[11:41 AM PT] Ubit Umarov: yes.. history path..<br />
[11:41 AM PT] Gavin.Hird @grid.xmir.org:8002: table creation history<br />
[11:41 AM PT] Lyr Lobo: Heya Orbert!<br />
[11:41 AM PT] Ubit Umarov: ot that yes :)<br />
[11:41 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Ah yes, that's why so far I kept the old system and only switch to new after those finish<br />
[11:42 AM PT] Ubit Umarov: ofc we do have thigns like the need to install a sequence of opensim versions to updated the dbs<br />
[11:42 AM PT] Ubit Umarov: like neeed 0.8x then 0.9x..<br />
[11:42 AM PT] Ubit Umarov: to update a older one<br />
[11:42 AM PT] Vincent.Sylvester @hg.zetaworlds.com: The new system checks if a migration file exists to change a table to a new version. Checks first if the table might not already be up to date and then applies the migration. Should it throw an error code it'll terminate telling the user to fix the table manually<br />
[11:42 AM PT] Gavin.Hird @grid.xmir.org:8002: yes, that too<br />
[11:43 AM PT] Ubit Umarov: wel and same db backends may not even have tools do compare schemas<br />
[11:43 AM PT] Ubit Umarov: to...<br />
[11:43 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I could write a schema file for each version to check as well<br />
[11:44 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I check for columns via information schema, grab the indexes for the keys and indexes and check charset<br />
[11:44 AM PT] Ubit Umarov: you need to get and compare a lot..<br />
[11:44 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Enough information to create the table directly in the most up to date version<br />
[11:44 AM PT] Ubit Umarov: for example data types.. dimensions.. etc<br />
[11:44 AM PT] Ubit Umarov: all their props..<br />
[11:45 AM PT] Vincent.Sylvester @hg.zetaworlds.com: column_name,data_type,is_nullable,column_default,column_key,character_set_name,collation_name<br />
[11:45 AM PT] Ubit Umarov: yeap<br />
[11:45 AM PT] Ubit Umarov: and when there is a change.. what is the proper update comand?<br />
[11:46 AM PT] Ubit Umarov: think we stil have one case where a complex sql "program" was run...<br />
[11:46 AM PT] Vincent.Sylvester @hg.zetaworlds.com: You can technically use sql directly to only insert a field if it doesn't already exist for example<br />
[11:47 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Though I check before doing migrations if the table is not already up to date according to latest schema to avoid that<br />
[11:47 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Db should throw error codes if the sql command fails though, so if it returns one I bail immediately<br />
[11:47 AM PT] Gavin.Hird @grid.xmir.org:8002: yes but there might be cases where you have to do actual data migration, even to other tables or fields and format conversion in the ugrade<br />
[11:47 AM PT] Gavin.Hird @grid.xmir.org:8002: upgrade<br />
[11:48 AM PT] Ubit Umarov: at a point some tables will need to be split<br />
[11:48 AM PT] Cuga.Rajal @rajal.org:9000: assets, LOL<br />
[11:48 AM PT] Ubit Umarov: i avoid one case, by converting nonsense double to float<br />
[11:48 AM PT] Ubit Umarov: otherwise the table was overloaded<br />
[11:49 AM PT] Gavin.Hird @grid.xmir.org:8002: so even if just updating or adding single fields will work most of the time, there is a need to to have the flexibility to do complext migration<br />
[11:49 AM PT] Joe Magarac: While we're discussing version issues, I brought up last time that those of us on the viewer dev side need more clarity about OS versions, so we can figure out what to support. Any progress on that?<br />
[11:49 AM PT] Ubit Umarov: there are limits to number of fileds per row :)<br />
[11:49 AM PT] Vincent.Sylvester @hg.zetaworlds.com: It still just runs any sql you throw at it, so it could still do that just fine<br />
[11:50 AM PT] Ubit Umarov: joe we do have release versions..<br />
[11:50 AM PT] Ubit Umarov: those are identified by version number alone<br />
[11:50 AM PT] Ubit Umarov: like 0.9.2.2 release<br />
[11:50 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Handling new tables, hm may have to look at that<br />
[11:50 AM PT] Ubit Umarov: btu we have devel versions...<br />
[11:50 AM PT] Ubit Umarov: those also need the commit hash for full id<br />
[11:51 AM PT] Ubit Umarov: liek you can see on the green overtext at ly right<br />
[11:51 AM PT] Ubit Umarov: my..<br />
[11:51 AM PT] Cuga.Rajal @rajal.org:9000: Joe, for the short term you could build-in git in the app and then do git command on the version hash to get the commit date<br />
[11:52 AM PT] Ubit Umarov: osgrid also adds the date yes<br />
[11:52 AM PT] Joe Magarac: That's ridiculous..<br />
[11:52 AM PT] Ubit Umarov: Version: OpenSim 0.9.3.0 Nessie Dev b70b5c07e3: 2024-03-11 00:18:05 0000 (SIM-0.3/0.8)<br />
[11:52 AM PT] Joe Magarac: Everything is 0.9.3.0.<br />
[11:52 AM PT] Cuga.Rajal @rajal.org:9000: sequential beta numbers does have some merit....<br />
[11:53 AM PT] Joe Magarac: That's the problem.<br />
[11:53 AM PT] Ubit Umarov: it is Dev..<br />
[11:53 AM PT] Joe Magarac: So what's Production?<br />
[11:53 AM PT] Ubit Umarov: 0.9.2.2<br />
[11:53 AM PT] Ubit Umarov: only one..<br />
[11:53 AM PT] Joe Magarac: OK.<br />
[11:53 AM PT] Joe Magarac: When will there be a new Production version?<br />
[11:54 AM PT] Ubit Umarov: while 0.9.3.0 Dev is still "a oprn basket"<br />
[11:54 AM PT] Ubit Umarov: while 0.9.3.0 Dev is still "a open basket"<br />
[11:54 AM PT] Ubit Umarov: ofc osgrid only runs dev versions :p<br />
[11:54 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Sql would create the new table and move the data, after which it just runs the validation as normal. May have to play with the mapping a bit and version that too. Could move that into a file also or simply use a different one if the new table is present. It's always a bit of a balance between assumptions and blindly running things. That's always going to be an issue, but it currently is even more so<br />
[11:54 AM PT] Ubit Umarov: so osgrid does list the commit number ( and date)<br />
[11:54 AM PT] Gavin.Hird @grid.xmir.org:8002: I do too. :-)<br />
[11:55 AM PT] Ubit Umarov: i mesn osgrid own releases<br />
[11:55 AM PT] Cuga.Rajal @rajal.org:9000: Can it be found programatically with lsl?<br />
[11:55 AM PT] Ubit Umarov: https://www.osgrid.org/download.php<br />
[11:55 AM PT] Cuga.Rajal @rajal.org:9000: I mean, not necc lsl, programatically,<br />
[11:56 AM PT] Joe Magarac: Perhaps more thought needs to be given to deployment strategy. As a viewer dev, I have no idea what to target.<br />
[11:56 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Last release and master dev<br />
[11:56 AM PT] Joe Magarac: That's reasonable.<br />
[11:56 AM PT] Vincent.Sylvester @hg.zetaworlds.com: Everyone running ancient software, tough luck, can't backwards compatible into the stone age<br />
[11:57 AM PT] Gavin.Hird @grid.xmir.org:8002: At the development stage you are in, possibly the release version ans that is a known entity<br />
[11:57 AM PT] Ubit Umarov: sadly git hash is not that easy to glue into runcode<br />
[11:57 AM PT] Jagga Meredith: Maybe test for ancient then say it can't be done<br />
[11:57 AM PT] Ubit Umarov: currently we do look for a file .version or the git repo data as present on a normal clone<br />
[11:58 AM PT] Ubit Umarov: osgrid uses .version file<br />
[11:58 AM PT] Cuga.Rajal @rajal.org:9000: I may have made a bad assumption about the hash being accessible to viewer and not date<br />
[11:58 AM PT] Andrew Hellershanks: It isn't that hard to do. Save it to a file when a build is run and then include that file in the source.<br />
[11:58 AM PT] Joe Magarac: Right now, I get good results with the version at Ubittest, and less good results with other dev versions elsewhere on OSGrid. That's why I bring this up.<br />
[11:59 AM PT] Andrew Hellershanks: IIRC, The dev versions of GIMP have a way to get that info and build it in to the info shown on the About box.<br />
[11:59 AM PT] Gavin.Hird @grid.xmir.org:8002: other dev versions?<br />
[11:59 AM PT] Ubit Umarov: on crossings you should get similar thins on all 0.9x running ubode<br />
[11:59 AM PT] Vincent.Sylvester @hg.zetaworlds.com: I haven't updated your Sharpview regions since I set those up a couple weeks ago, if they need an update please poke me<br />
[11:59 AM PT] Cuga.Rajal @rajal.org:9000: A viewer needs to query the version without access to files on the server<br />
[11:59 AM PT] Ubit Umarov: on otther things.. well version alone is just impossible<br />
[11:59 AM PT] Ubit Umarov: ll protocol did add soem flags to let viewers know regions features<br />
[12:00 PM PT] Ubit Umarov: but ll does not keep them<br />
[12:00 PM PT] Ubit Umarov: there should be a flag for pbr for example<br />
[12:00 PM PT] Ubit Umarov: but ll just changes the viewers at the same time :)<br />
[12:01 PM PT] Cuga.Rajal @rajal.org:9000: Joe are there specific features you could look for, perhaps added to capabilities, without knowing version?<br />
[12:01 PM PT] Ubit Umarov: also uses presence of some capabilities<br />
[12:01 PM PT] Vincent.Sylvester @hg.zetaworlds.com: Cuga, yeah that's usually one way to get a bit better idea, but not 100% either<br />
[12:01 PM PT] Ubit Umarov: as region, i also use the caps viewer asks for, for example to detect eep viewers versus windlight<br />
[12:02 PM PT] Ubit Umarov: there is also the opensimextras<br />
[12:02 PM PT] Ubit Umarov: on simulator features<br />
[12:03 PM PT] Vincent.Sylvester @hg.zetaworlds.com: I think release should have an additional one in there for the alias urls, not sure if they are reported if empty, but that would be one way, there are a few recent additions to simulator features<br />
[12:03 PM PT] Andrew Hellershanks: Let's pause the talk on migrations for just a moment.<br />
[12:03 PM PT] Gavin.Hird @grid.xmir.org:8002: My viewer in About displays:<br />
[12:03 PM PT] Gavin.Hird @grid.xmir.org:8002: You are at 484.9, 531.9, 24.7 in Dev Outreach located at (23.175.144.141:9301)<br />
SLURL: hop://grid.xmir.org:8002/Dev Outreach/255/255/25<br />
(global coordinates 2839270.0, 2560530.0, 24.7)<br />
In region Dev Outreach at (11089, 10000) <br />
OpenSim 0.9.3.0 Nessie Dev b70b5c0 (X64/Unix/DotNet)<br />
[12:03 PM PT] Andrew Hellershanks: We are at the top of the hour. Does anyone have a question to ask that is not about databases and/or migrations?<br />
[12:04 PM PT] Gavin.Hird @grid.xmir.org:8002: so the last line is not that waht you are looking for Joe?<br />
[12:04 PM PT] Andrew Hellershanks: I'm not seeing anyone typing so I will take that as no other questions for today. You may continue. :)<br />
[12:04 PM PT] Joe Magarac: I need something that is ordered.<br />
[12:05 PM PT] Joe Magarac: Can't tell from the commit hash alone.<br />
[12:05 PM PT] Vincent.Sylvester @hg.zetaworlds.com: Also commit hash on a fork you get nothing out of that either<br />
[12:06 PM PT] Vincent.Sylvester @hg.zetaworlds.com: Just targeting release and master dev and any issues that come up through old OpenSim versions just tell them to update their stuff<br />
[12:06 PM PT] Ubit Umarov: actually viewers should pay attention to simualtor features on HG<br />
[12:06 PM PT] Vincent.Sylvester @hg.zetaworlds.com: Sounds harsh, but yeah, can't live in the past forever<br />
[12:06 PM PT] Ubit Umarov: to findout grids changes etc<br />
[12:07 PM PT] Joe Magarac: I've said enough for today. Next meeting. Bye.<br />
[12:08 PM PT] Joe Magarac: Thanks.<br />
[12:08 PM PT] Vincent.Sylvester @hg.zetaworlds.com: FS will tell you you cannot go somewhere when that doesn't support bento... or was it bom... I don't remember anymore<br />
[12:08 PM PT] Cuga.Rajal @rajal.org:9000: Take care Joe<br />
[12:08 PM PT] Jamie.Jordan @grid.kitely.com:8002: thanks yall<br />
[12:09 PM PT] Andrew Hellershanks: ok, Joe. Thanks for dropping by.<br />
[12:09 PM PT] Lyr Lobo: bye Jamie!<br />
[12:09 PM PT] Jagga Meredith: gotta run<br />
[12:09 PM PT] Andrew Hellershanks: ok, Jagga. See you next week.<br />
[12:09 PM PT] Orbert.Tatham @hg.zetaworlds.com: Talk to you all later<br />
[12:10 PM PT] Kayaker Magic: Buy all!<br />
[12:10 PM PT] Cuga.Rajal @rajal.org:9000: Gavin, I;m trying to get a date for the server version hash you posted, b70b5c0. Got not happy with that as short hash<br />
[12:10 PM PT] Cuga.Rajal @rajal.org:9000: Git*<br />
[12:10 PM PT] Andrew Hellershanks: With so many people needing to head out it is about time to close the meeting for today.<br />
[12:10 PM PT] Lyr Lobo: Thank you! Take care!<br />
[12:11 PM PT] Andrew Hellershanks: Any last comments before I officially draw this gathering to a close?<br />
[12:11 PM PT] Gavin.Hird @grid.xmir.org:8002: Cuga, the info I have is the same as you see on the Sim ver script<br />
[12:11 PM PT] Vincent.Sylvester @hg.zetaworlds.com: Remember next week and the week after will be ealier for the EU folks, then it's back to normal times after the 30th<br />
[12:11 PM PT] Lyr Lobo: *smiles*<br />
[12:11 PM PT] Cuga.Rajal @rajal.org:9000: I believe you, just wondering why got can;t resolve it<br />
[12:12 PM PT] Ubit Umarov: 31 not 30<br />
[12:12 PM PT] Andrew Hellershanks: Ah, yes. The twice yearly time change.<br />
[12:12 PM PT] Ubit Umarov: we wil change at 31<br />
[12:12 PM PT] Lyr Lobo: we went forward March 10<br />
[12:12 PM PT] Andrew Hellershanks: North America changed this past weekend.<br />
[12:13 PM PT] Lyr Lobo: Have a great week!<br />
[12:13 PM PT] Ubit Umarov: you 2 :)<br />
[12:13 PM PT] Gavin.Hird @grid.xmir.org:8002: IDK how the code was deployed to this sim, but it is probalby built on it, so it is most likely a local hash<br />
[12:13 PM PT] Andrew Hellershanks: The people attending this meeting have gotten good about handling the time change.<br />
[12:13 PM PT] Andrew Hellershanks: I'll call this meeting to a close. Thank you all for coming. See you again next week.<br />
[12:13 PM PT] Cuga.Rajal @rajal.org:9000: ah ok, so that would confirm that the version can't be derived directly from that...<br />
[12:13 PM PT] Gavin.Hird @grid.xmir.org:8002: I will not be here next week, and the week after I should have internet again<br />
[12:14 PM PT] Andrew Hellershanks: ok, Gavin.<br />
[12:14 PM PT] Gavin.Hird @grid.xmir.org:8002: no the hash could be anything really<br />
[12:14 PM PT] Lyr Lobo: Thank goodness on the return of Internet, Gavin<br />
[12:14 PM PT] Andrew Hellershanks: Hm... can you handle time without Internet access? You might have to go and spend some time outside. ;)<br />
[12:14 PM PT] Lyr Lobo: I cannot imagine life without it<br />
</pre></div>Tampahttp://opensimulator.org/index.php?title=Office_hours&diff=54076&oldid=54046Office hours2024-03-12T16:51:09Z<p><span dir="auto"><span class="autocomment">2024: </span> </span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 16:51, 12 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 33:</td>
<td colspan="2" class="diff-lineno">Line 33:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>| style="vertical-align:top;max-width:15rem;text-align:center;" align="top" text-align="center" |</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>| style="vertical-align:top;max-width:15rem;text-align:center;" align="top" text-align="center" |</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== 2024 ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== 2024 ===</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">[[Chat log from the meeting on 2024-03-12 | 2024-03-12]]<br></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Chat log from the meeting on 2024-03-05 | 2024-03-05]]<br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Chat log from the meeting on 2024-03-05 | 2024-03-05]]<br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Chat log from the meeting on 2024-02-27 | 2024-02-27]]<br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Chat log from the meeting on 2024-02-27 | 2024-02-27]]<br></div></td></tr>
</table>Tampa