mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
80 lines
2.1 KiB
Bash
80 lines
2.1 KiB
Bash
#!/bin/bash
|
|||
|
|
# voice-test.sh — LiveKit voice integration smoke test
|
||
|
|
#
|
||
|
|
# Prerequisites:
|
||
|
|
# - LiveKit CLI: go install github.com/livekit/livekit-cli/cmd/lk@latest
|
||
|
|
# - OwnCord server running with LiveKit enabled
|
||
|
|
# - LIVEKIT_URL and LIVEKIT_API_KEY/SECRET set (or pass via flags)
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# ./voice-test.sh
|
||
|
|
# LIVEKIT_URL=ws://remote:7880 ./voice-test.sh
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
LIVEKIT_URL="${LIVEKIT_URL:-ws://localhost:7880}"
|
||
|
|
API_KEY="${LIVEKIT_API_KEY:-devkey}"
|
||
|
|
API_SECRET="${LIVEKIT_API_SECRET:-secret}"
|
||
|
|
TEST_ROOM="voice-test-$(date +%s)"
|
||
|
|
|
||
|
|
echo "=== LiveKit Voice Integration Test ==="
|
||
|
|
echo "URL: $LIVEKIT_URL"
|
||
|
|
echo "Room: $TEST_ROOM"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Verify lk CLI is available
|
||
|
|
if ! command -v lk &>/dev/null; then
|
||
|
|
echo "ERROR: lk (LiveKit CLI) not found."
|
||
|
|
echo "Install: go install github.com/livekit/livekit-cli/cmd/lk@latest"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 1. Create a test room
|
||
|
|
echo "[1/4] Creating test room..."
|
||
|
|
lk room create "$TEST_ROOM" \
|
||
|
|
--url "$LIVEKIT_URL" \
|
||
|
|
--api-key "$API_KEY" \
|
||
|
|
--api-secret "$API_SECRET" \
|
||
|
|
2>/dev/null && echo " OK" || echo " SKIP (room may not need explicit creation)"
|
||
|
|
|
||
|
|
# 2. Generate tokens for 2 test participants
|
||
|
|
echo "[2/4] Generating participant tokens..."
|
||
|
|
TOKEN_A=$(lk token create \
|
||
|
|
--api-key "$API_KEY" \
|
||
|
|
--api-secret "$API_SECRET" \
|
||
|
|
--join --room "$TEST_ROOM" \
|
||
|
|
--identity "test-user-a" \
|
||
|
|
--valid-for 5m 2>/dev/null)
|
||
|
|
echo " Token A: ${TOKEN_A:0:20}..."
|
||
|
|
|
||
|
|
TOKEN_B=$(lk token create \
|
||
|
|
--api-key "$API_KEY" \
|
||
|
|
--api-secret "$API_SECRET" \
|
||
|
|
--join --room "$TEST_ROOM" \
|
||
|
|
--identity "test-user-b" \
|
||
|
|
--valid-for 5m 2>/dev/null)
|
||
|
|
echo " Token B: ${TOKEN_B:0:20}..."
|
||
|
|
|
||
|
|
# 3. Load test with synthetic participants
|
||
|
|
echo "[3/4] Running load test (2 publishers, 2 subscribers, 10s)..."
|
||
|
|
lk load-test \
|
||
|
|
--url "$LIVEKIT_URL" \
|
||
|
|
--api-key "$API_KEY" \
|
||
|
|
--api-secret "$API_SECRET" \
|
||
|
|
--room "$TEST_ROOM" \
|
||
|
|
--audio-publishers 2 \
|
||
|
|
--subscribers 2 \
|
||
|
|
--duration 10s \
|
||
|
|
2>&1 | tail -5
|
||
|
|
|
||
|
|
# 4. Cleanup
|
||
|
|
echo "[4/4] Cleaning up test room..."
|
||
|
|
lk room delete "$TEST_ROOM" \
|
||
|
|
--url "$LIVEKIT_URL" \
|
||
|
|
--api-key "$API_KEY" \
|
||
|
|
--api-secret "$API_SECRET" \
|
||
|
|
2>/dev/null && echo " OK" || echo " SKIP"
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Voice test complete ==="
|