Open Cold Dialer
MITFree forever · open source on GitHub →

Cold calling software you actually own.

Open Cold Dialer is a free, self-hosted browser softphone with leads, campaigns, call scripts and call logs built in. Bring any SIP provider and stop paying per seat.

$git clone https://github.com/6t9xstar/Open-Cold-Dialer.git

Works with your SIP provider

  • SignalWire
  • Telnyx
  • Twilio
  • Asterisk
  • FreeSWITCH
Campaign · Q4 Outreach
SR

Sarah Reynolds

Head of Sales · Northwind Logistics

Connected

02:47

Mute Hold End

Script · Objection: "We already have a vendor"

"Totally fair. Most teams we talk to do. What would have to be true for a switch to be worth a 15-minute look?"

per user, per month, forever
$0per user, per month, forever
SIP provider: no lock-in
AnySIP provider: no lock-in
from git clone to first call
5 minfrom git clone to first call
self-hosted: your data, your server
100%self-hosted: your data, your server

Features

Everything a calling team needs. Nothing you rent.

The tools that per-seat dialers charge extra for are built in, and they run on infrastructure you control.

Browser softphone

Call straight from the browser with SIP.js over WebRTC. No desktop app, no plugins.

Any SIP provider

SignalWire, Telnyx, Twilio, Asterisk, FreeSWITCH or your own server. Never locked in.

Lead management

Create, search and filter leads by status. Import thousands at once from CSV.

Campaigns

Group leads into outbound campaigns and track progress from first dial to close.

Call scripts

Script templates with ready objection-handling responses, right next to the dialer.

Call history

Every call logged with outcome, duration and notes, so follow-ups never slip.

Live dashboard

Real-time stats on leads, calls and conversion rates for the whole team.

Auth and roles

User accounts with role-based access and JWT sessions.

Self-hosted backend

Express and SQLite. Your data stays on your server, with no cloud dependency.

Supabase option

Prefer managed? Point the frontend at Supabase instead of the bundled backend.

Docker ready

One command brings up the frontend and backend, ready to seed and dial.

REST API

A full API for leads, campaigns, call logs and scripts, ready for your integrations.

Product tour

One workspace from first dial to closed deal

  1. 01

    Import and organise leads

    Upload a CSV and every row becomes a lead you can search, filter by status and update after each call.

    Leads

    Import CSV
    Search leads…
    • Sarah ReynoldsNorthwind LogisticsInterested
    • Marcus LeeBrightline HealthCallback
    • Priya NairAtlas FreightNew
    • Tom BeckerCobalt RetailNo answer
  2. 02

    Run focused campaigns

    Group leads into outbound campaigns and watch progress as your team works through each list.

    Campaigns

    • Q4 Outreach68% dialed
    • Renewals · EMEA41% dialed
    • Webinar follow-up87% dialed
  3. 03

    Log every outcome

    Each call is saved with its duration, outcome and notes, so follow-ups and reporting take care of themselves.

    Call history

    • Sarah Reynolds4:12Meeting booked
    • Marcus Lee1:05Call back Friday
    • Priya Nair0:00Voicemail
    • Dan Ortiz6:48Sent proposal

How it works

From clone to first call in three steps

  1. 1

    Install

    Clone the repo and start it with Docker, or run the Express backend and React frontend with npm. 20 sample leads are seeded for you.

    docker compose up -d
  2. 2

    Connect SIP

    Add your SIP URI, password and WebSocket URL to .env.local. No provider yet? Calls are simulated so you can try every screen.

    VITE_SIP_URI=sip:you@…
  3. 3

    Start dialing

    Import leads from CSV, build a campaign, open a script and call from the browser. Every outcome is logged.

    POST /api/leads/import

Try it

Dial a number, right here

This is the simulated call mode the app runs before you connect a SIP provider. No call is placed, and nothing you type leaves this page.

Ready

  1. BrowserReact app + SIP.js
  2. WebRTC over WSSEncrypted signalling and audio
  3. Your SIP providerSignalWire, Telnyx, Twilio…
  4. The phone networkYour lead picks up

Compare

The features of a paid dialer, without the bill

Per-user prices as listed in the project README. Check each vendor for current pricing.

FeatureOpen Cold DialerRingCentralDialpadFive9
PriceFree$30/user/mo$25/user/mo$150+/user/mo
Self-hosted
Open source
SIP providerAnyLockedLockedLocked
Browser-based
Lead managementExtraExtraExtra
CSV import
Call scripts

Savings

What per-seat pricing costs your team

Move the slider to your team size. Open Cold Dialer costs nothing per seat; you pay only your SIP provider's call rates, which every option needs anyway.

  • vs RingCentral$3,600saved per year
  • vs Dialpad$3,000saved per year
  • vs Five9$18,000saved per year

Open stack

Built on tools your developers already know

A React and Vite frontend, an Express and SQLite backend, and SIP.js for WebRTC calling. Read every line, change anything, and extend it through the REST API.

React 18ViteTypeScriptTailwind CSSExpressSQLiteSIP.jsWebRTCTanStack QueryZodJWTDocker
Explore the REST API →
# Create a lead
curl -X POST https://dialer.example.com/api/leads \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Sarah Reynolds","phone":"+15551234567"}'

# Log the call outcome
curl -X POST https://dialer.example.com/api/call-logs \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"lead_id":1,"outcome":"interested"}'

FAQ

Questions, answered

Is Open Cold Dialer really free?

Yes. It is MIT licensed with no per-user fees. You only pay your SIP provider for the calls you make, which any dialer needs.

Which SIP providers does it work with?

Any SIP provider that offers WebSocket (WSS) access, including SignalWire, Telnyx, Twilio, Asterisk and FreeSWITCH.

Do agents need to install anything?

No. The softphone runs in the browser with SIP.js over WebRTC. Agents need a microphone, and headphones are recommended to prevent echo.

Where is my data stored?

On your own server, in SQLite, when you use the bundled Express backend. You can use Supabase instead if you prefer a managed database.

Can I try it without a SIP account?

Yes. If SIP is not configured, the app simulates connecting, ringing and active calls so you can explore every screen.

How do I deploy it?

Run docker compose up -d on any VPS, then seed the database. Guides cover Docker, VPS with Nginx and Hostinger.

Stop renting your dialer.

Self-host Open Cold Dialer today and give every rep a softphone, without a per-seat invoice.