Mumble

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
(26 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Initial Wiki page on development of an alternative voice module for OpenSim
+
{{Quicklinks|Mumble}}
 +
<br />
  
  Mumble - Murmur - Whisper
+
=Introduction=
  
Initial information is available via these links:
+
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.
  
http://whisper.vcomm.ch/forum
+
Whisper is implemented using the [http://mumble.sourceforge.net/ 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.
* http://blog.knowsense.co.uk/blog/_archives/2010/8/16/4604621.html
+
  
The Whisper solution from vComm was the idea of Volker Gaessler, founder of vComm, and works by replacing the SLVoice.exe executable with a Mumble client that looks exactly the same to the viewer process.  A process to change between the standard Vivox SLVoice.exe executable and the Mumble one within any specific viewer installation is available.
+
Communication between Mumble and the Whisper client is over ICE.
  
You will use the unchanged Mumble server (called Murmur) and a region module called MurmurVoice. Communication is over ICE. The module including instructions will be available when the source code is published.
+
Information is available via these links:
  
==Firewall Information==
+
* 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/
  
* SIP Ports
+
= Firewall Information =
* ICE Ports
+
  
==Other OpenSim Voice Solutions==
+
You only need to open the port(s) mentioned in your OpenSim.ini and murmur.ini files.
  
See also [[Freeswitch_Module]]
+
* SIP Ports between viewers and the Mumble server.
 +
* ICE Ports between simulators and the Mumble server.
  
It is also possible to use the satdbnard Vivox setup if you have access to Vivox services, and a licence to use them in your setup.
+
= Mumble/Whisper Test Regions =
 +
 
 +
See whisper test region on Francogrid:
 +
 
 +
* Hypergrid link at (6995,7004) from OpenSimulator 0.6.9: 178.63.103.67:9011:WhisperTest
 +
* http://whisper.vcomm.ch/forum/viewtopic.php?f=3&t=66#p102
 +
 
 +
= Limitations =
 +
 
 +
* Please list any limitations here.
 +
* Whisper can ONLY run on one region per opensim server, meaning that if you want whisper to work on all your regions each region must have its own opensim server(opensim.exe).
 +
 
 +
= 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.
 +
 
 +
== 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>
 +
<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>
 +
</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.
 +
 
 +
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>
 +
<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>
 +
</pre>
 +
 
 +
7. The viewer passes this back to the voice client.
 +
 
 +
8. The voice client connects directly to the mumble server.
 +
 
 +
= Other OpenSimulator Voice Solutions =
 +
 
 +
[http://freeswitch.org/ FreeSWITCH] - See [[Freeswitch Module]]
 +
 
 +
[http://vivox.com/ 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.
 +
 
 +
[[Category:Voice]]

Latest revision as of 14:34, 8 February 2023


Contents

[edit] 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:

[edit] 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.

[edit] Mumble/Whisper Test Regions

See whisper test region on Francogrid:

[edit] Limitations

  • Please list any limitations here.
  • Whisper can ONLY run on one region per opensim server, meaning that if you want whisper to work on all your regions each region must have its own opensim server(opensim.exe).

[edit] How it works

[edit] On simulator startup

  1. The region module establishes two connections - one to the mumble server and a callback so that the mumble server can communicate with it.

[edit] 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.

[edit] Other OpenSimulator 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.

Personal tools
General
About This Wiki