Difference between revisions of "Voice"
(→Technical: descriptions of executable files) |
(→Technical: SLVoice section added) |
||
Line 53: | Line 53: | ||
See also: [[Third Party Libraries]] | See also: [[Third Party Libraries]] | ||
===SLVoice=== | |||
SLVoice is started from the viewer in SLVoiceClient::stateMachine() using: | |||
:'''SLVoice.exe -p tcp -h -c -ll <''VivoxDebugLevel, default -1''>''' | |||
usage: '''SLVoice [''flags'']''' | |||
valid flags are: | |||
: [-ll <log-level>] 0-5, or -1 for no logging | |||
: [-lf <log-folder>] | |||
: [-lp <log-file prefix>] | |||
: [-ls <log-file suffix>] | |||
: [-p tcp] | |||
: [-i <address>] application sends requests to this address | |||
: [-o <address>] gateway sends responses and events to this address] | |||
: [-vo] vivox only functionality | |||
: [-ov] (undocumented and unused) | |||
: [-c] (undocumented but used) | |||
: [-h] (undocumented but used) | |||
: [-r] (undocumented and unused) | |||
SLVoice.exe was called vivox-gw.exe in the beta release, so you may still see some references to the old name. | |||
====IP Address==== | |||
The SecondLife viewer uses IP address 127.0.0.1 (localhost), port 44124 to communicate with SLVoice, the voice client gateway. | |||
It is possible to connect to a client gateway running on another host. This is useful for testing. To do this, launch the gateway on a nearby host, | |||
: '''SLVoice.exe -p tcp -i 0.0.0.0:44124''' | |||
and modify the code in SLVoiceClient::stateMachine() to set the host IP address, '''mDaemonHost'''. | |||
====Logging==== | |||
The logging for SLVoice is controlled by a viewer variable, VivoxDebugLevel. You can set it directly in your '''Documents and Settings\<user>\Application Data\SecondLife\user_settings\settings.xml''' file | |||
:: <nowiki><!</nowiki>--Logging level to use when launching the vivox daemon--> | |||
:: <VivoxDebugLevel value="5 -lf myDirectory -lp myPrefix -ls .txt"/> | |||
or you can set it from the viewer. | |||
[[Category:Voice]] | [[Category:Voice]] | ||
[[Category:Features]] | [[Category:Features]] |
Revision as of 09:33, 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
- ortp.dll
- wrap_oal.dll
- OpenAL, a cross-platform 3D audio API
- Used by vivoxsdk.dll
- alut.dll
- The OpenAL Utility Toolkit (ALUT)
- Used by vivoxsdk.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
SLVoice
SLVoice is started from the viewer in SLVoiceClient::stateMachine() using:
- SLVoice.exe -p tcp -h -c -ll <VivoxDebugLevel, default -1>
usage: SLVoice [flags]
valid flags are:
- [-ll <log-level>] 0-5, or -1 for no logging
- [-lf <log-folder>]
- [-lp <log-file prefix>]
- [-ls <log-file suffix>]
- [-p tcp]
- [-i <address>] application sends requests to this address
- [-o <address>] gateway sends responses and events to this address]
- [-vo] vivox only functionality
- [-ov] (undocumented and unused)
- [-c] (undocumented but used)
- [-h] (undocumented but used)
- [-r] (undocumented and unused)
SLVoice.exe was called vivox-gw.exe in the beta release, so you may still see some references to the old name.
IP Address
The SecondLife viewer uses IP address 127.0.0.1 (localhost), port 44124 to communicate with SLVoice, the voice client gateway.
It is possible to connect to a client gateway running on another host. This is useful for testing. To do this, launch the gateway on a nearby host,
- SLVoice.exe -p tcp -i 0.0.0.0:44124
and modify the code in SLVoiceClient::stateMachine() to set the host IP address, mDaemonHost.
Logging
The logging for SLVoice is controlled by a viewer variable, VivoxDebugLevel. You can set it directly in your Documents and Settings\<user>\Application Data\SecondLife\user_settings\settings.xml file
- <!--Logging level to use when launching the vivox daemon-->
- <VivoxDebugLevel value="5 -lf myDirectory -lp myPrefix -ls .txt"/>
or you can set it from the viewer.