Implement native VivoxTest validation (#95)
Some checks failed
Native code generation / deterministic (push) Failing after 2m19s
Imaging and meshing gate / native (push) Failing after 4m24s
JPEG 2000 feature / linux (push) Successful in 2m50s
Native Rust workspace compile / compile (push) Failing after 15m31s
Skia feature / linux (push) Successful in 31m51s
Some checks failed
Native code generation / deterministic (push) Failing after 2m19s
Imaging and meshing gate / native (push) Failing after 4m24s
JPEG 2000 feature / linux (push) Successful in 2m50s
Native Rust workspace compile / compile (push) Failing after 15m31s
Skia feature / linux (push) Successful in 31m51s
This commit is contained in:
35
docs/vivox.md
Normal file
35
docs/vivox.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Native Vivox validation
|
||||
|
||||
MetaCrate's Vivox support is a cross-platform Rust implementation of the SDK
|
||||
control protocol. `VivoxControlClient` connects to a caller-supplied TCP socket,
|
||||
writes bounded XML requests terminated by the Vivox three-newline delimiter,
|
||||
correlates responses by request ID and action, and queues asynchronous login,
|
||||
session, and participant events. It does not start or ship proprietary code.
|
||||
|
||||
The client owns connector, account, and session state. Invalid ordering is
|
||||
rejected locally. `shutdown()` is idempotent and reverses active state in this
|
||||
order: sessions, account, connector, TCP writer. Response failures preserve the
|
||||
action and numeric return/status codes while passwords, handles, and URIs remain
|
||||
opaque. XML is escaped on output; input is capped at 1 MiB and rejects DTD or
|
||||
entity declarations.
|
||||
|
||||
`vivox-test --fake-script FILE` launches a deterministic fake control service on
|
||||
IPv4 loopback. It validates the same wire requests used with a real daemon,
|
||||
scripts device responses and participant events, and waits for both client and
|
||||
server teardown. Live mode additionally logs into a grid, waits for the event
|
||||
queue, requests `ProvisionVoiceAccountRequest` and `ParcelVoiceInfoRequest`, and
|
||||
then exercises the control service. Live login requires both
|
||||
`--allow-live-login` and `--confirm-live-login LOGIN`; joining audio also requires
|
||||
`--allow-session-audio`.
|
||||
|
||||
Use environment variables for live credentials so they are not copied into a
|
||||
shell history or process argument list:
|
||||
|
||||
```sh
|
||||
GRID_FIRST_NAME=... GRID_LAST_NAME=... GRID_PASSWORD=... \
|
||||
cargo run -p libremetaverse-programs --bin vivox-test -- \
|
||||
--allow-live-login --confirm-live-login LOGIN
|
||||
```
|
||||
|
||||
The Vivox daemon/SDK is proprietary and must be installed, configured, and
|
||||
started independently. MetaCrate never discovers or invokes it.
|
||||
Reference in New Issue
Block a user