Mumble

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Limitations)
m (Robot: Cosmetic changes)
Line 1: Line 1:
 
=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 14:
 
* 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.
Line 21: Line 21:
 
* ICE Ports between simulators and the Mumble server.
 
* 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:
Line 28: Line 28:
 
* 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 =
  
 
* Please list any limitations here.
 
* 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).
 
* 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=
+
= How it works =
  
 
== On simulator startup ==
 
== On simulator startup ==
Line 39: Line 39:
  
 
== 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.
+
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.
 
2. The viewer calls the ProvisionVoiceAccountRequest capability.
Line 62: Line 62:
 
4. The viewer calls the ProvisionVoiceInfoRequest capability.
 
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.
+
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
 
6. If everything goes according to plan, then the region module returns
Line 85: Line 85:
 
8. The voice client connects directly to the mumble server.
 
8. The voice client connects directly to the mumble server.
  
=Other OpenSim Voice Solutions=
+
= Other OpenSim Voice Solutions =
  
[http://freeswitch.org/ FreeSWITCH] - See [[Freeswitch_Module]]
+
[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.
 
[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]]

Revision as of 20:36, 3 March 2012

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:

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:

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

  1. 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

<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.

Personal tools
General
About This Wiki