Mumble
From OpenSimulator
(→How it works) |
(→On viewer connection to simulator) |
||
Line 40: | Line 40: | ||
== On viewer connection to simulator == | == On viewer connection to simulator == | ||
− | + | 1. The region module sets up ProvisionVoiceAccountRequest, ParcelVoiceInfoRequest and ChatSessionRequest capabilities. The URLs for these are passed back to the viewer. | |
− | + | ||
− | + | 2. The viewer calls the ProvisionVoiceAccountRequest capability. | |
+ | |||
+ | 3. The region module returns | ||
<pre> | <pre> | ||
<llsd> | <llsd> | ||
Line 58: | Line 60: | ||
</pre> | </pre> | ||
to the viewer where voice_sip_uri_hostname is the murmur_host configured in [MurmurVoice], voice_account_server_name is the murmur_host combined with the port from murmur.ini (Murmur configuration file), username is a base64 version of the user's UUID and password is a base64 version of part of the user's UUID. | to the viewer where voice_sip_uri_hostname is the murmur_host configured in [MurmurVoice], voice_account_server_name is the murmur_host combined with the port from murmur.ini (Murmur configuration file), username is a base64 version of the user's UUID and password is a base64 version of part of the user's UUID. | ||
− | + | ||
− | + | 4. The viewer calls the ProvisionVoiceInfoRequest capability. | |
− | + | ||
+ | 5. The region module registers the user with the earlier username and password to a voice channel which has the name of the parcel UUID. If this doesn't already exist then it is created. | ||
+ | |||
+ | 6. If everything goes according to plan, then the region module returns | ||
<pre> | <pre> | ||
<llsd> | <llsd> | ||
Line 76: | Line 81: | ||
</llsd> | </llsd> | ||
</pre> | </pre> | ||
− | + | ||
− | + | 7. The viewer passes this back to the voice client. | |
+ | |||
+ | 8. The voice client connects directly to the mumble server. | ||
=Other OpenSim Voice Solutions= | =Other OpenSim Voice Solutions= |
Revision as of 11:36, 7 November 2011
Contents |
Introduction
Whisper is an alternative voice system for OpenSimulator. It consists of an OpenSimulator region module and a Vivox SLVoice.exe replacement that must be installed on every viewer accessing the region using Whisper.
Whisper is implemented using the Mumble open-source voice chat project. On the server side, the Whisper region module connects to an unaltered Murmur server (Murmur is the name of the server component of Mumble). On the client side, the Whisper executable extends the existing Mumble voice client to implement the binary message interface between the SLVoice executable and the main viewer binary. The Mumble version of SLVoice needs to look exactly the same to the viewer as the original SLVoice.exe. The Whisper client is only available for Windows (although Linux and probably Mac OSX versions can be built). The client comes with an installer which replaces SLVoice.exe with the Whisper version and stores the original executable in a same place, so that it can be restored if/when necessary.
Communication between Mumble and the Whisper client is over ICE.
Information is available via these links:
- http://whisper.vcomm.ch/forum
- Initial Version 27-Dec-2010 - http://whisper.vcomm.ch/forum/viewtopic.php?f=2&t=62
- Instructions in French - http://angefg.wordpress.com/
- http://mumble.sourceforge.net/
Firewall Information
You only need to open the port(s) mentioned in your OpenSim.ini and murmur.ini files.
- SIP Ports between viewers and the Mumble server.
- ICE Ports between simulators and the Mumble server.
Mumble/Whisper Test Regions
See whisper test region on Francogrid:
- Hypergrid link at (6995,7004) from OpenSim 0.6.9: 178.63.103.67:9011:WhisperTest
- http://whisper.vcomm.ch/forum/viewtopic.php?f=3&t=66#p102
Limitations
- Whisper does not currently work with simulators running more than one region.
- Each region using the same Mumble server must have a distinct name.
How it works
On simulator startup
- The region module establishes two connections - one to the mumble server and a callback so that the mumble server can communicate with it.
- Sets up a voice channel with the name given in the channel_name [MurmurVoice] config parameter (this must currently be the same as the region name - this is why one can only have simulators with one region when using Mumble).
On viewer connection to simulator
1. The region module sets up ProvisionVoiceAccountRequest, ParcelVoiceInfoRequest and ChatSessionRequest capabilities. The URLs for these are passed back to the viewer.
2. The viewer calls the ProvisionVoiceAccountRequest capability.
3. The region module returns
<llsd> <map> <key>username</key> <string>xKOBATaJvQKmCHmLnkDV_qg==</string> <key>password</key> <string>uBATaJvQKmCHmLnkD</string> <key>voice_sip_uri_hostname</key> <string>46.137.1.103</string> <key>voice_account_server_name</key> <string>tcp://46.137.1.103:64737</string> </map> </llsd>
to the viewer where voice_sip_uri_hostname is the murmur_host configured in [MurmurVoice], voice_account_server_name is the murmur_host combined with the port from murmur.ini (Murmur configuration file), username is a base64 version of the user's UUID and password is a base64 version of part of the user's UUID.
4. The viewer calls the ProvisionVoiceInfoRequest capability.
5. The region module registers the user with the earlier username and password to a voice channel which has the name of the parcel UUID. If this doesn't already exist then it is created.
6. If everything goes according to plan, then the region module returns
<llsd> <map> <key>parcel_local_id</key> <integer>1</integer> <key>region_name</key> <string>t3</string> <key>voice_credentials</key> <map> <key>channel_uri</key> <string>46.137.1.103:64737</string> </map> </map> </llsd>
7. The viewer passes this back to the voice client.
8. The voice client connects directly to the mumble server.
Other OpenSim Voice Solutions
FreeSWITCH - See Freeswitch_Module
Vivox - It is also possible to use the standard Vivox setup if you have access to Vivox services, and a licence to use them in your setup.