# Webrtc Timing Test

> Measure WebRTC connection timing on Daily rooms. Use when testing Daily video call connection performance, measuring ICE negotiation time, benchmarking WebRTC setup latency, or when asked to test how long a Daily room takes to connect.

- Skill: `diegosouzapw/webrtc-timing-test` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add diegosouzapw/webrtc-timing-test`
- Raw SKILL.md: https://api.skillmd.com/api/skills/diegosouzapw/webrtc-timing-test/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: diegosouzapw (https://skillmd.com/u/diegosouzapw)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/diegosouzapw/webrtc-timing-test

---


# WebRTC Connection Timing Test

Measure how long WebRTC connections take to establish on Daily video rooms.

## Prerequisites

- Chrome browser with Claude in Chrome extension
- Chrome window size: **705 x 942** pixels

## Procedure

### Step 1: Set up browser window

Resize Chrome window to 705 x 942 pixels using `mcp__claude-in-chrome__resize_window`.

### Step 2: Navigate to Daily room

Navigate to the Daily room URL (e.g., `kwindla.daily.co/gradient-ascent`). Wait for pre-join screen ("Get ready for your call") to load.

### Step 3: Inject interceptor

Execute `scripts/inject-interceptor.js` using `mcp__claude-in-chrome__javascript_tool`. This must be done BEFORE clicking Join.

### Step 4: Click Join

Execute `scripts/click-join.js` to click the Join button and record the exact time.

### Step 5: Retrieve results

Wait ~5 seconds for connection, then execute `scripts/retrieve-results.js` to get timing data.

## Key Metrics

| Metric | Description |
|--------|-------------|
| **totalConnectionTime** | Join click to `connectionState: connected` (user-perceived latency) |
| **callSetupTime** | Join click to RTCPeerConnection creation (Daily initialization) |
| **pureWebRTCTime** | RTCPeerConnection creation to connected (actual WebRTC negotiation) |
| **iceConnectionTime** | Join click to `iceConnectionState: connected` |

## Expected Results

| Metric | Typical Time |
|--------|--------------|
| callSetupTime | ~350-500ms |
| pureWebRTCTime | ~150-360ms |
| totalConnectionTime | ~500-900ms |

## Notes

- Daily creates 3 RTCPeerConnections (audio, video, data)
- The interceptor must be installed BEFORE clicking Join
- Network conditions affect ICE negotiation time
- Daily's iframe may cause timing variability between runs

