Skip to content
Back to skills

Webrtc Timing Test

ASecurity

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.

  • 42 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 31, 2026
developmentjavascriptgojavatestingperformance

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned May 31, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill webrtc-timing-test --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Webrtc Timing Test?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Webrtc Timing Test
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-webrtc-timing-test/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-webrtc-timing-test)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: webrtc-timing-test
description: 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.
---

# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…