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
36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# 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.
|