All projects
B
Telecom / Call center

NestJS + Socket.IO + WebRTC (third-party SDK), skills-based agent scoring, push notifications

WebRTC dialer with a NestJS backend, Socket.IO for push notifications, a decisioning engine based on multi-level skills scoring, and a third-party WebRTC SDK.

WebRTC Calls
Multi Scoring levels
Real-time Socket.IO
Lead Role

The routing engine uses multi-level skills scoring: each of an agent's skills is rated by their level of mastery. When a call arrives, the engine computes the score of each available agent on the required skills and selects the best match. Queued calls are re-evaluated at every change in availability.

Integrating a third-party WebRTC SDK lets agents place and receive calls directly in the browser. The NestJS backend handles the business logic: session creation, call-state tracking (ringing, in progress, on hold, ended), and recording. Socket.IO pushes real-time notifications to connected clients.

The architecture separates the dialer (the calling component) from the routing logic. The dialer is a standalone frontend module that communicates with the backend over WebSocket. Routing is an independent NestJS service that can be modified without affecting the calling interface. Call states are managed by a server-side state machine.

Technical architecture

NestJS backend with call modules (a complete state machine), real-time notification modules (Socket.IO gateway), and decision modules (skills-based scoring).

Agent-scoring engine: weighting by skill level across multiple tiers, with round-robin fallback.

Socket.IO WebSocket gateway: agent registration, targeted push notifications with call and caller information, and status broadcasts.

Integration of a third-party WebRTC SDK into the React portal: session establishment, audio-stream handling, and mute/hold/hangup controls.

Prisma schema for calls, agents, skills, and dispositions with KPI tracking.

Technical highlights

Skills scoring

Multi-level weighting with round-robin fallback

Socket.IO gateway

Targeted real-time push notifications

WebRTC

Third-party SDK integrated into React for in-browser calls

Technical stack

TypeScript
NestJS
React
Socket.IO
WebRTC
Prisma
PostgreSQL
VoIP
Role Lead Developer
Duration 2025
Engagement Contract (Tier B)

A similar technical engagement?

A brief, a repo, or a quick call - whatever works.