Files

80 lines
2.1 KiB
Bash
Raw Permalink Normal View History

#!/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 ==="