Mumble

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{Quicklinks|Mumble}}
 +
<br />
 +
 
=Introduction=
 
=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 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 [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.
+
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.
  
 
Communication between Mumble and the Whisper client is over ICE.
 
Communication between Mumble and the Whisper client is over ICE.
Line 14: Line 17:
 
* http://mumble.sourceforge.net/
 
* http://mumble.sourceforge.net/
  
=Firewall Information=
+
= Firewall Information =
  
 
You only need to open the port(s) mentioned in your OpenSim.ini and murmur.ini files.
 
You only need to open the port(s) mentioned in your OpenSim.ini and murmur.ini files.
  
* SIP Ports
+
* SIP Ports between viewers and the Mumble server.
* ICE Ports
+
* ICE Ports between simulators and the Mumble server.
  
=Mumble/Whisper Test Regions=
+
= Mumble/Whisper Test Regions =
  
 
See whisper test region on Francogrid:
 
See whisper test region on Francogrid:
  
* Hypergrid link at (6995,7004) from OpenSim 0.6.9: 178.63.103.67:9011:WhisperTest
+
* 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
 
* http://whisper.vcomm.ch/forum/viewtopic.php?f=3&t=66#p102
  
=Limitations=
+
= Limitations =
  
* Whisper does not currently work with simulators running more than one region.
+
* 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).
  
=Other OpenSim Voice Solutions=
+
= How it works =
  
[http://freeswitch.org/ FreeSWITCH] - See [[Freeswitch_Module]]
+
== 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.
  
[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.
+
== 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]]
 
[[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