Difference between revisions of "Voice"

From Second Life Wiki
Jump to navigation Jump to search
(Updated tech notes)
(→‎Technical: descriptions of executable files)
Line 11: Line 11:
==Technical==
==Technical==


Voice in Second Life uses [http://www.vivox.com/ Vivox] technology that is based on RTP (using the [http://www.linphone.org/index.php/eng/code_review/ortp oRTP] library), SIP (using the amsip library from [http://www.antisip.com/ Antisip]), [http://www.openal.org/ OpenAL], [http://tinyxpath.sourceforge.net/ TinyXPath], OpenSSL, and [http://curl.haxx.se/ libcurl] for the transmission of voice data. The positional 3D audio is achieved with technology from [http://www.dw.com/about.php DiamondWare]. These technologies are contained in external daemon software that is started and stopped by the Second Life client.
Voice in Second Life uses [http://www.vivox.com/ Vivox] technology that is based on RTP (using the [http://www.linphone.org/index.php/eng/code_review/ortp oRTP] library), SIP (using the amsip library from [http://www.antisip.com/ Antisip]), [http://www.openal.org/ OpenAL], [http://tinyxpath.sourceforge.net/ TinyXPath], [http://www.openssl.org/ OpenSSL], and [http://curl.haxx.se/ libcurl] for the transmission of voice data. The positional 3D audio is achieved with technology from [http://www.dw.com/about.php DiamondWare]. These technologies are contained in external daemon software that is started and stopped by the Second Life client.


* SLVoice
The SecondLife viewer handles configuration, control, and display functions, but the voice streams (from the microphone and from the Vivox voice server) do not enter the viewer.  Unfortunately the source code for the external SLVoice daemon is not available due to contractual obligations between Linden Labs and Vivox.
** Thin wrapper around the Vivox SDK
 
The executables can be found in the Program Files\SecondLife directory of the runtime and in the linden\indra\newview\vivox-runtime\(platform) directory of the source distribution.
 
* SLVoice.exe
** Thin wrapper around the [http://www.vivox.com/ Vivox] SDK
** Launched when voice is enabled in SL
** Launched when voice is enabled in SL
** Runs a TCP server that listens and replies to commands and queries using an XML format
** Runs a TCP server that listens and replies to commands and queries using an XML format
* SLVoiceAgent
* SLVoiceAgent.exe
** Actually called the DiamondWare Thin Voice Client
** Actually called the [http://www.dw.com/about.php DiamondWare] Thin Voice Client
** Launched by SLVoice
** Unclear how this fits in the communication chain
** Unclear how this fits in the communication chain
* vivoxsdk
* vivoxsdk.dll
** The [http://www.vivox.com/ Vivox] SDK
** Used by SLVoice.exe
** Uses a solution from [http://www.antisip.com/ Antisip] for SIP, RTP, and G.711
** Uses a solution from [http://www.antisip.com/ Antisip] for SIP, RTP, and G.711
** Uses OpenAL for playing and recording audio
** Uses [http://www.openal.org/ OpenAL] for playing and recording audio
** Additionally implements the [http://www.itu.int/rec/T-REC-G.722.1-200505-I/en G.722.1/C] (aka Siren14) codec
** Additionally implements the [http://www.itu.int/rec/T-REC-G.722.1-200505-I/en G.722.1/C] (aka Siren14) codec
* ortp.dll
** Real-time Transport Protocol (RFC3550) stack under LGPL
** Used by vivoxsdk.dll
** Originally from [http://www.linphone.org/index.php/eng/code_review/ortp Linphone]
** Distributed as part of amsip by [http://www.antisip.com/ Antisip]
* wrap_oal.dll
** [http://www.openal.org/ OpenAL], a cross-platform 3D audio API
** Used by vivoxsdk.dll
* alut.dll
** The [http://openal.org/openal_webstf/specs/alut.html OpenAL Utility Toolkit (ALUT)]
** Used by vivoxsdk.dll
* ssleay32.dll and libeay32
** From the [http://www.openssl.org/ OpenSSL Project], a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library.
** Used by SLVoiceAgent.dll
* tntk.dll and srtp.dll
** Part of the [http://www.dw.com/about.php DiamondWare] distribution
** Apparently not used
See also: [[Third Party Libraries]]





Revision as of 09:54, 8 September 2007

Voice is a feature that made its debut on its own grid and beta viewer in March of 2007[1].

Frequently Asked Questions

There's an exhaustive Voice FAQ which provides answers to many questions about the new voice feature.

Groups

The Voice Mentors group and Voice in SL: A Community Forum are advocacy and help groups for users having problems adjusting to the new system.

Technical

Voice in Second Life uses Vivox technology that is based on RTP (using the oRTP library), SIP (using the amsip library from Antisip), OpenAL, TinyXPath, OpenSSL, and libcurl for the transmission of voice data. The positional 3D audio is achieved with technology from DiamondWare. These technologies are contained in external daemon software that is started and stopped by the Second Life client.

The SecondLife viewer handles configuration, control, and display functions, but the voice streams (from the microphone and from the Vivox voice server) do not enter the viewer. Unfortunately the source code for the external SLVoice daemon is not available due to contractual obligations between Linden Labs and Vivox.

The executables can be found in the Program Files\SecondLife directory of the runtime and in the linden\indra\newview\vivox-runtime\(platform) directory of the source distribution.

  • SLVoice.exe
    • Thin wrapper around the Vivox SDK
    • Launched when voice is enabled in SL
    • Runs a TCP server that listens and replies to commands and queries using an XML format
  • SLVoiceAgent.exe
    • Actually called the DiamondWare Thin Voice Client
    • Launched by SLVoice
    • Unclear how this fits in the communication chain
  • vivoxsdk.dll
    • The Vivox SDK
    • Used by SLVoice.exe
    • Uses a solution from Antisip for SIP, RTP, and G.711
    • Uses OpenAL for playing and recording audio
    • Additionally implements the G.722.1/C (aka Siren14) codec
  • ortp.dll
    • Real-time Transport Protocol (RFC3550) stack under LGPL
    • Used by vivoxsdk.dll
    • Originally from Linphone
    • Distributed as part of amsip by Antisip
  • wrap_oal.dll
    • OpenAL, a cross-platform 3D audio API
    • Used by vivoxsdk.dll
  • alut.dll
  • ssleay32.dll and libeay32
    • From the OpenSSL Project, a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library.
    • Used by SLVoiceAgent.dll
  • tntk.dll and srtp.dll
    • Part of the DiamondWare distribution
    • Apparently not used


See also: Third Party Libraries