IMA/Thales EchoVoice (VOIP) for OpenSimulator
Frank Rulof, Seth Nygard, Lisa Laxton, Natacha Bru
Presentation Abstract: This presentation from Infinite Metaverse Alliance® (IMA) and Thales Group discusses progress towards improving open source code used in a self-hosted secure voice solution called EchoVoice. This is an alternative to ViVox which is commonly used for voice communication between avatars in OpenSimulator regions. The discussion is focused on the development work done to provide a modernized solution for HyperGrid-enabled regions as well as planned enhancements not currently available. The work of IMA and Thales is in general directed toward broadening use of the Metaverse for Public, Education, Industry and Government sectors but the community as a whole benefits from open source.
Target Audience & Outcomes: Participants from the OpenSimulator Community at large will learn about enhancements, features, and improvements IMA and Thales are working on together to deliver an open source solution that meets the needs of a broader OpenSimulator community.
@IMATalks
2. 2
The need for an “Other” VOIP application
▌ Have multiple VoIP providers because
Mostly Non-Public users require other VoIP services then the standard offered
- Privacy reasons
- Business reasons
- Security reasons
In General
- it’s good to have multiple VoIP options in case one falls away
▌ Starting requirements :
Need spatial audio
Must be Open Source
Integration with OpenSim must be possible
3. 3
The need for an “Other” VOIP application
▌ Use cases
Vivox is a third-party unencrypted voice that could be intercepted from a security
perspective.
VOIP services should not go via a public VOIP provider dependent on the information
that is shared.
- Training examples are
– All training that contains private information of the participants
– Military training in general
- Business examples are
– Meetings that should be kept internal to the company (company private information)
– Which contain company competition sensitive information
4. 4
The need for an “Other” VOIP application
▌ Use cases
- Security examples are
– Meetings where health of persons is discussed
– Any meetings where sensitive private issues of people are discussed (Banks , Court)
– Any meeting which contains classified information (government, military …., examples MOSES and
Thales)
– In-world counseling and education in the US FERPA and HIPPA compliance must be met - this
applies to European laws as well
▌ Cost perspective
The cost to set up your own VOIP service would be less expensive.
▌ Echo Voice delivers an integrated encrypted audio stream solution with
OpenSim/Scenegate Viewer under the control of the Grid/Region Owner.
5. 5
Viewer
Client PC (W10)
Whisper
Connection requests
Device settings
3D positions
Participant Notifications
Speaker indication
Device lists
OpenSim Murmur
Server (UBUNTU)
Avatar Positions
Connection credentials
Connection request
Connection Ack
Participant to channel
Acknowledgment
Register Users
Shift Users to Channels
Vivox client API
SL protocol
Murmur API
Murmur protocol
The initial set-up made on Thales local network
6. 6
Solution
▌ Open source VoIP server ( based upon mumble/murmur)
▌ Which Provides
Spatial audio
Better noise cancellation
Parcel Audio
Encrypted audio streams
Self Hosting and lower cost
▌ Not supported yet
IM Audio via the VoIP
Group Audio via the VoIP
Apple and Linux viewers
We name the application Echo Voice Based
named after the Greek goddess echo
7. 7
Current Roadmap road map for Echo
▌ Package build modernization
Current application is built using very old libraries and parts of which some of them even
became obsolete
Has no functional changes but is refactored to modern software packages
Improved security and need for compliance with GDRP
Considerations for public and Hypergrid Open Simulator regions
Considerations for off-line voice chat channels
Support Apple and Linux viewers
▌ Provide IM VoIP in world
Add voice in IM to allow private audio between two avatars
▌ Provide Group VoIP in world
Add voice in IM to allow private audio in groups
▌ Investigate Text to Speech in real time and Speech to Text functionality on
the viewer audio channel
8. 8
Current Roadmap road map for Echo
▌ Current selection of VoIP providers in the SceneGate viewers
Currently viewers and OpenSim do support VIVOX/FreeSwitch as VOIP sources
With a trick the murmur based VOIP is added to the configuration
What to add
- Others may want to connect their own VoIP service so OpenSim (HELIOS) and the
SceneGate viewer would allow multiple VoIP services to select from
- Be able to menu select the VoIP service that will be used
▌ VOIP communication between non-avatars and avatars,
This would allow users that are not able to join with a viewer to still be part of the in-world
voice exchange. These changes include voice in public, in IM and in group IM. Clients
could be web-linked or available mumble clients.
Thought should be given to how to represent those non-avatars in world.
9. 9
Development steps made till now
▌ (step 1) : vComm in Switzerland did the initial job to create a possible
instance for OpenSim
vComm has had it working for quite some time in their own modified OpenSim instance
and viewer Aula (makes it proprietary).
Thales worked together with vComm to bring the solution to the Open Source community
on the existing OpenSim development line.
▌ (step 2) : Thales created a working solution on her own intranet with the
possibility to build the different applications for the viewer/server set-up
▌ (step 3) : IMA extended the work of Thales by testing it for deploying the
VOIP service over the internet and provide the framework to supply it to the
community.
10. 10
Current and future development
▌If your interested in joining the development
team please let us know, would like to extend
the development team to realize the roadmap
and the community wishes
11. 11
Current Status of development
▌ Development ongoing to realize an internet-based solution as soon as
possible
▌ Already looking at step one (“Package build modernization”) of the
roadmap
▌ Topics in development
Component overview of the internet-based solution
Component characteristics
Development process
13. 13
Mumble Features
- low latency + noise reduction + proven codec(s) = high quality voice
- encrypted voice and control channels = improved privacy
- open source project with large user base
- support for Windows, Linux, and Mac OS operating systems
- existing, well documented project with an active development team
- spatial volume control = good immersion in 3D world
Echo Voice Components
14. 14
Echo Voice Components
Echo Voice Bridge
- emulates SLVoice.exe command line
- support for Windows, Linux, and Mac OS operating systems
- written in modern C++
- a single install can be used with multiple viewers
- works as a transparent TCP proxy
- supports modified mumble client and original Vivox SLVoice.exe
- currently working with Firestorm, Alchemy, and Singularity viewers
- works with 32 and 64 bit viewers
15. 15
Echo Voice Components
Murmur Overview
Murmur
Server
Open Simulator
Region Instance
+ Add-on module
Database
Voice Users
Monitoring Tools
Future Tools
ZeroC ICE
ZeroC ICE
SQL
ZeroC ICE
- Murmur can be installed on the grid, region, and/or separate server
- Multiple instances can be installed on the same server if desired
- ZeroC ICE supports firewalls to provide secure control links
16. 16
Echo Voice Components
Bridge - Initial
EchoVoice
Bridge
Transparent
TCP Proxy
Viewer
SLVoice
Vivox Agent
EchoVoice
Mumble Agent
XML
XML
XML
- user selected operating mode: Vivox or Mumble
- works with old Mumble version 1.2.1 + Vcomm and new modifications
17. 17
Echo Voice Components
Bridge - Future
EchoVoice
Bridge
XML
Abstraction
TCP Proxy
Viewer
SLVoice
Vivox Agent
EchoVoice
Mumble Agent
Control API
XML
XML
Mumble Link
- auto selected operating mode: Vivox or Mumble
- refactor for compatibility with current and future Mumble versions
- future support for other voice agents
- future possible integration into viewer source code if desired
18. 18
- Determine community requirements
- Review previous and existing works
- Create working base-line(s)
01Investigation
02Design/Development
- Setup working public demo/test regions
- Document installation, usage, and build
- Provide downloads and links to community
03Deployment
- Determine practical improvements
- Invite developers and testers
- Proof-of-concept and ongoing testing
- Write code and unit testing
- Feature road map
Current development process
19. 19
Thank you for your attention
Panel Discussion
Frank Rulof - frank.rulof@hotmail.com
Seth Nygard - sethnygard@gmail.com
Lisa Laxton - lisa@infinitemetaverse.com