ansgar and i have been working on an asterisk voice module that will allow
us to couple opensim with an asterisk VoIP gateway.
the patch below consists of
* AsteriskVoiceModule region module: alternative to the plain-vanilla
VoiceModule, will make XmlRpc calls out to an asterisk-opensim
frontend
* asterisk-opensim.py frontend, living in share/python/asterisk, takes
XmlRpc calls from the AsteriskVoiceModule
* account_update: to update/create a new SIP account (on
ProvisionVoiceAccountRequest)
* region_update: to update/create a new "region" conference call
(on ParcelVoiceInfo)
* a asterisk-opensim test client, living in share/python/asterisk, to
exercise astersik-opensim.py
this still does not give us voice in OpenSim, but it's another step on
this path...
attached is a patch set that
* adds further robustness checks for the CreateUser and CreateRegion
XmlRpc
* fixes SceneManager.TryGetScene(IPEndPoint, Scene) --- contrary to my
expectation IPEndPoint.Address is not sufficient for a comparision,
IPEndPoint.Address.Address (the long representation) does work
however.
* add [RemoteAdmin] section to OpenSim.ini.example
* fixes XML doc comments
good night,
dirk
* A few things for testing.
* This makes a modification to the region registration with the grid server so that the region can send it a chosen password to identify itself. It will not cause any errors, if either one are not updated.
* Several people have asked for a way to limit uploads, so I've decided to show people how to do this in the BetaGridLikeMoneyModule.
* Configure it in OpenSim.ini using the [Economy] header. See the bottom of the OpenSim.ini.example for more information.
* This also fleshes out the Economy API a bit more.
* This patch removes voice code into a region module. This required the implementation of events and other code to allow region modules to register their own caps handlers, and should allow different voice module implementations.
* CAVEAT: This does not provide complete voice support, it merely provides the hooks so that it can be plugged in.
* (and Ansgar/Ansi)
* Fleshes out the voice stubs to better interact with the viewer CAPS requests - no actual voice support yet!
* In his own words
"the attached patch enhances the existing voice support by returning a proper voice account user and password and is preparing the config file so that we can specify a SIP server (not yet working). currently the SIP is hardcoded. the next step is to refactor voice support into a region module. working on that. "
* Added the new mapper to the mapper factory
* Made choice of mapper configurable
* This means, in hteory, that we can persist avatar appearance on MSSQL as well
* If you compile your own libraries, be sure to follow the updated directions on http://opensimulator.org/wiki/PhysicsEngines
* The previous libs are now -debug for people who wish to work on the ODELibrary and want the feedback.
* See OpenSim.ini.example for more details
* The old sqlite/mssql settings were redundant and effectively ignored anyway. Hence, there's no need for you to change your current settings, which will still work
* In fact, asset_database should probably be moved to [Network] since it's meaningless for standalone installations
* Added the DataBlockExtended From the Message Template Data Block to the Media Update Request manually.
* Set TickCount public from internal (whenever LibSL regenerates _packets_.cs this needs to be done)
Changed the public IsAdministrator back to protected,
now checks Config to see whether it is allowed to run or not.
Defaults to false (not allowed).
To use add the following to OpenSim.ini
[LL-Functions]
AllowosConsoleCommand=true
Added some info to failure on GridServices listening port so people can see what actually went wrong.
Moved most of the function/event execution module to a baseclass so other execution methods (instead of reflection) can be used with custom script modules run by ScriptEngine.Common.
+ some accumulated patches
* Patch 1 stops OpenSim.32BitLaunch.exe and ScriptEngines/Default.lsl being deleted on nant clean
* Patch 2 resolves a building problem with pCampBot
* This will require a prebuild rerun
* Made regions table name configurable (MSSQL only)
* Added a note in ini.example pointing out that the sql resources have to change if you change table names
* Removed duplicate picker method from GridData interface
[Provided by openlifegrid.com]
* Updated the ode.dll for windows with a more reasonable stack space reserve. Linux users will need to type ulimit -s 262144 before starting up OpenSimulator if using Physical Prim to protect against stack collisions. or run the included ./bin/opensim-ode.sh to start up OpenSimulator in ODE mode.
* Added internal collision score and am keeping track of 'high usage' prim.
* Tweaked collisions some more
* Tested up to 460 physical prim in extremely close quarters (which was previously impossible in OpenSim). After 460 in tight quarters, physics slows down enough to make it hard to do any moving, however.. non physics things still work, such as logging on to the simulator, etc.
To use, see the appearance section in opensim.ini.example, set "persist = true", then add the correct connection string for your database.(see mysql-AvatarAppearance.sql in share folder for a example of the table mysql table structure).
This could possible be used in a very small grid, but would mean each region server would need to connect to the same mysql database.
But the work to move the code to one of the grid servers shouldn't be too much.
CONFIG SET section key value value value
CONFIG GET section key
CONFIG SAVE (it saves, but does it save correctly?:)
ScriptEngine will react correctly to any config change made while it is running.
Added option to try alternate UDP ports if the one configured is in use.
UDP packets are now bound to the actual outside IP address and hopefully won't "randomly" select IP on multihomed systems.
OpenSim.32BitLaunch.exe is a 32-bit application that loads OpenSim.exe using .Net framework, hence it is JIT-compiled to 32-bit.
Use this app to start OpenSim on 64-bit systems (works great on Vista 64 :))
Added VISUAL BASIC.NET-support
//cs, //lsl and //vb as first characters of script will determine what compiler is used.
Compile warnings are no longer treated as errors. Script will still run.
Added a few useless and useful config options:
Write script source to harddisk for debug, Default compile language, Allowed compilers (languages), compile in release or debug mode, clean up old scripts on startup
Loads of warnings for incorrect config
Added comments and regions, restructured code
Changed a lot of AppDomain junk from console from using Console.Write to Log.Verbose and set it to #if DEBUG
All modules should now refresh their configuration runtime
Made all logging in ScriptEngine.Common get script name from actual engine
Renamed LSLLongCmdHandler to AsyncLSLCommandManager
Added auto-recover with 5 sec throttle for new MaintenanceThread
Bugfix: Scripts exceeding max and set to be killed were not killed, only removed.
Added ability to re-read configuration while OpenSim is running
All regions now sharing one MaintenanceThread
New MaintenanceThread:
- checks for script execution timeout
- re-reads config
- starts/stops threads if thread active count becomes too high/low compared to config
Speed increase on event execution:
- Reuse of try{}catch{} blocks
- Time calculation on event execution
* Persistence of things apart from scripts will be implemented later on - I at least want to do some work with asset server stats so loading can be monitored first.
* No MSSQL implementation as of yet
* Progress can be followed at http://opensimulator.org/wiki/OpenSim:Prim_Inventory_Persistence
* Please let me know if you see issues resulting from this change.
* Don't forget, you need -loginuri *and* -loginpage
* Ex: -loginpage http://10.1.1.2:8002/?method=login -loginuri http://10.1.1.2:8002/
* The ?method=login is important, don't forget to add it
* If you customize your http_loginform.html file, be sure to keep the form post address as is.
namespace to mirror what is done with MySQL. This will require a
configuration change for people using SQLite for prims which is given
as an example in OpenSim.ini.example
* Added the web_login_key to the users table
* Added happy configurable http error message pages
* This update is large enough to have 'awe' value.. so backup your users or weep.
* Not tested on MSSQL, even though I added code to update the tables!
* You can add and remove a friend in grid mode now within the same simulator. It doesn't save yet.
* I got rid of Mr. OpenSim as a friend.. he bothers me /:b...
* This patch addresses a regression where 5 default textures, including the default "new prim" texture, would not be shown unless in viewer cache.
* Further, it supplies a new plywood texture as the base texture, which is purpose-made from locally photo-sourced material (means i took a picture and made it into a tile), which is closer in appearance and color to the Linden one.
* It changes the default new prim texture UUID to match the UUID generated by the viewer when "default" is clicked, which is a texture UUID hardcoded in some scripts as well, so it would cause compatibility issues if not addressed.
* The patch fixes a number of UUID duplications (same UUID for asset and inventory items) and capitalization issues in the XML files.
* It also includes new versions of 4 other textures, which were no longer loadable in grid mode.
are not displaying (which is why default cubes are coming up as grey plywood unless you happen to have that texture cached). These
were working before so they must have broken in the last month. Might be something to do with the fact that these identify (using file
under linux) as jpeg2000 files, while all the other working textures identify simply as data.
* after some tweaking to the UDPServer all appears to be well
* Added what 'was' the GetType(bytes,packetEnd,zeroBuffer) to the UDPServer. (it was removed as a static method from Packet)
This patch makes some enhancements to the llRemoteData functions. The
module is now a shared module, and allows remote data channels to be
created among multiple regions in the same sim. The port is controlled
from the remoteDataPort property under the [Network] section in
OpenSim.ini. If this setting is not present or = 0, the module is
disabled and no port is opened. llRemoteData commands have not effect
when module is disabled.
Nant files now obey the target out of prebuild.xml, so Linux users will be able to build as Debug
Nant clean target now does the right thing (doesn't wipe out all of bin/)
Prebuild's own prebuild system is broken due to the .exe workaround added a while ago, will
register a bug for that seperately.
* Now moved region storage from region to application, so we have one storage per application, instead of one per region.
* Changed so that the region store providers use connectionstrings, not filenames
* Removed various unfit fields and properties (call me Darwin)
* ODE - Fixed the iscolliding property to report a static true when colliding.
* Added reporting of collisions to call UpdateMovementAnimations
* Added Jump - air animation (with arms outstretched).
* Added Fall Animations
* ODE - Added a small amount of X, Y motion control while jumping or Falling
* ODE - Avatar movement animations are still a bit odd sometimes, and had to get this up there.
* Addition of Gerhard's ZeroMesher.
* Addition of meshing OpenSim.ini parameter
* Some modifications to the Meshmerizer
* Meshmerizer set to default meshing plugin because ZeroMesher needs a memory locking fix. We'll switch it back after the memory locking issue is resolved.
* Added a ThrottleUpdates member to PhysicsActor to expose 'throttle' ability to the Scene.
* Updated the ode.dll file with a fix to invalid data passed to ODE's heightfield collision calculator.
* Sqlite Storage Engine now supports terrain -- however be aware that every terrain revision stored will at 512KB to your database file. At the moment it is storing every revision from the first.
* Fixed an issue where by noverbose mode would display lots of useless junk. Noverbose mode is now quite usable.
* Fixed a whole bunch of console message issues such as naming and categorisation
Fixed it so now when you move a script to a Prim or delete a script from a prim the change should show up in the prims inventory straight away (without having to close the edit window and reopen it).
When linking prims, all parts except for the root part of the new group are removed from the physics engine, as currently we only really support root parts in the physics engine.
added a serverside_object_permissions = false entry (set to true to enable permission checking on prim editing etc).
set the default for standalone account authentication to be turned on (so we don't get lots of people asking why inventory doesn't work). Just remember to use "create user" to create the accounts.
Changed "ObjectID" in ScriptEngine to IScriptHost reference. Events will now be queued based on IScriptHost reference instead of string ID of object. Removed "root" object reference in script.
*By default, it is set to startup_commands.txt. Simply add a list of commands separated by a new line to be run or change the file by changing the path of a startup commands file in OpenSim.ini
In standalone mode, if you have account authenticate turned on (setting in opensim.ini) then when you create a new account, a set of inventory is created for that account and stored in database (currently only a set of empty folders). Then during login the database is search for that set and sent to the client in the login response.
More functions will be added soon, like creating new folders (and a bit later items) from the client inventory window.
Temporary have had to rename the OpenSim.DataStore.MonoSqlite project to OpenSim.DataStore.MonoSqlite1, as I'm not sure what was done to stop the old project name being included in the VS2005 solution.
Also some config changes:
OpenSim now has a INI (OpenSim.ini) file that it will read some config settings from (if the ini file exists).
Added Mono.Data.SqliteClient.dll so that we can use the same code for sqlite on Windows and mono/linux. (from what I can tell Mono class libraries have a MIT license so there should be no problems with us including this dll).
So now to get the basic prim storage working , you need to first create the sqlite database file from the sqlite3-prims.sql in share directory. Then in the OpenSim.ini file, change the storage_plugin so it points to OpenSim.DataStore.MonoSqlite1.dll (storage_plugin = OpenSim.DataStore.MonoSqlite1.dll). Then in your region.xml files change the DataStore value so it is the name of your database file (at the moment you need a different sqlite3 database file for each region).
We also need better clothing for the new ruth and to edit the body shape.
To get this working you will need to delete your asset yap file and also in grid mode the user server needs to be updated.
Also might have messed up some of the SVN properties on some of the folders, so if the cleaning lady has to come in again, I just hope she doesn't moan.