Prerequisites - Agentic Avatars SDK
Prerequisites
Before you start integrating Kaltura Avatar, make sure you have the following requirements in place.
1. Kaltura Session (KS)
You'll need a Kaltura Session to authenticate with the Kaltura Avatar service.
Generate a KS: Follow the Kaltura Session Guide
Never expose your Kaltura Session in client-side code. Always keep it on your backend server.
2. Node.js (for SDK usage)
- Node.js version 20.0 or above
- npm or yarn package manager
Check your Node.js version:
node --version
3. Modern Browser (for avatar display)
The Client SDK requires a modern browser with WebRTC support:
| Browser | Minimum Version |
|---|---|
| Chrome | 80+ |
| Edge | 80+ |
| Firefox | 75+ |
| Safari | 14+ |
You can verify browser WebRTC support at webrtc.org's test page.
4. HTTPS (Production)
For production deployments, your application must be served over HTTPS. WebRTC requires secure contexts for:
- getUserMedia (if using audio input)
- Reliable connection establishment
- TURN server communication
localhost works over HTTP for development, but production requires HTTPS.
Network Requirements
Firewall Configuration
Ensure the following are accessible from your users' browsers:
-
Your API server (for session creation and control)
-
TURN servers - You MUST whitelist the following IP range for TURN server access:
TURN Server Range3.41.177.176/29This IP range is essential for WebRTC connectivity. Without it, avatar streaming will fail.
Ports
WebRTC typically uses UDP and TCP ports: 80, 443 (for STUN/TURN).
Some corporate firewalls block WebRTC traffic. TURN servers help circumvent these restrictions.
Optional Requirements
Backend Server (for API-based control)
For API-based control (recommended in production), you need:
- A backend server that can make HTTP requests
- A secure environment to store the Kaltura Session
- A server framework such as Express, Fastify, or similar
TypeScript (Optional)
The SDK ships with full TypeScript type definitions. If you use TypeScript:
- Version 4.5 or above is recommended
- Types come bundled in the package — no separate
@typesinstallation needed
Next Steps
After confirming all prerequisites are met, choose your integration approach:
- Choosing Your Approach — SDK-only vs API-based control
- SDK Quick Start — get started with SDK-based control
- API Quick Start — get started with API-based control