call-me

From public sources

📞 Open-source, self-hosted WebRTC click-to-call solution for websites. Add a video Call-Me button and let visitors instantly connect with your team through browser-based video communication. Ideal for customer support, sales, consultations, and remote assistance.

ApplicationCategory: Web Apps · Chat & collaboration · Helpdesk & supportOpen sourcedata checked Oct 15, 2026

Overview

  • click-to-call
  • customer-communication
  • customer-support
  • javascipt
  • live-chat
  • live-streaming
  • mirotalk
  • open-source
  • peer-to-peer
  • real-time-communication

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.
  • Official websiteFrom public sourcesfrom catalog metadata
    cme.mirotalk.com/ ↗
  • Language package registrynodejsFrom public sourcesfrom the package manifest — publication on the registry is not verified
    npm install -g call-me

    Not verified: check that this package in the registry belongs to this project before installing.

    www.npmjs.com/package/call-me ↗
  • Build from sourceFrom public sourcesfrom catalog metadata

    Build from source: no validated build recipe — follow the repository instructions.

    github.com/miroslavpejic85/call-me ↗

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
Web browserUnknown———
Server / self-hostedUnknown———
Container (OCI)Unknown———
Node.jsCompatible—package manifest: package.json name0.60

Releases

checked Oct 29, 2026
No releases found on the source.

Quality profile

algorithm quality-v1.0 · assessed Oct 15, 2026
Quality Score80
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 0 days ago
Documentation · 1515
README 11327 chars, description present
Ready to use · 159
install instructions: yes; releases: no
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 102
0 release(s)
Category confidence · 107
classifier confidence 0.65
Adoption · 107
766 stars (log-dampened, 10k = max)
License clarity · 55
SPDX AGPL-3.0
Community · 55
issues enabled, 90 forks

License

AGPL-3.0
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/miroslavpejic85/call-mePrimary★ 766 starslast activity Oct 15, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From miroslavpejic85/call-me · license AGPL-3.0 · fetched Oct 29, 2026

[GitHub Stars] [GitHub Forks]

[License: AGPLv3] [Docker Pulls] [Last Commit] [Discord] [Author]

Getting Started

Jump to: Features · Quick Start · Click to Call · Self-Hosting · Fast Integration · API · Webhooks

Features

  • End-to-End Encryption for secure and private communications.
  • Join with a username or enter a name to Call now.
  • Join a room (e.g. Support, Reception) to group users, everyone in the same room can see and call each other (defaults to Public).
  • Set your preferred language.
  • Initiate video calls by clicking the call button next to a recipient’s username.
  • Switch between cameras, microphones, and speakers during a call.
  • Chat in real time with participants.
  • Hide your video feed when needed.
  • Toggle your microphone (mute/unmute).
  • Toggle your camera (video on/off).
  • Share your screen (start/stop).
  • Share files with other participants.
  • Hang up the call when finished.
  • Enable Host Protection mode with a password.
  • Enable Web Push Notifications to get notified of incoming calls even when the app is in the background.
  • Use the REST API to retrieve connected users, rooms, availability status, active calls and server stats, or to initiate a call.
  • Receive Webhooks for call lifecycle events (user joined/left, call started/ended with duration) for external integrations.

Quick Start

[nodejs]

Install Node.js and npm

# Clone this repo
git clone https://github.com/miroslavpejic85/call-me.git

# Go to to dir call-me
cd call-me

# Copy the config file
cp public/config.template.js public/config.js

# Copy .env.template to .env
cp .env.template .env

# Install dependencies
npm install

# Start the application
npm start

[docker]

Install docker engine and docker compose

# Clone this repo
git clone https://github.com/miroslavpejic85/call-me.git

# Go to to dir call-me
cd call-me

# Copy the config file
cp public/config.template.js public/config.js

# Copy .env.template to .env
cp .env.template .env

# Create your own docker-compose.yml
cp docker-compose.template.yml docker-compose.yml

# Get official image from Docker Hub
docker-compose pull

# Create and start containers
docker-compose up

  1. Open your browser and visit http://localhost:8000.

  2. Join with your username or Call the recipient directly.

  3. Select the connected recipient's username and click Call.

  4. Enjoy your one-to-one video call.


Click to Call

Allows a user to join the room as a user1

Lets the user2 join the room and initiate a call to the user1

Rooms

By default everyone joins the same shared Public room. You can optionally add a room parameter to group users into separate rooms (e.g. Support, Reception). Users only see and can call others in the same room.

Join a specific room as user1

Let user2 join the same room and call the user1

[!NOTE] The call target must be in the same room as the caller. If room is omitted, users join the default Public room.

You can explore a widget example that demonstrates this functionality here.

Per-room branding (optional)

Give each room its own name, subtitle, theme color, or GitHub visibility. Uncomment and edit the rooms map in your public/config.js (created from public/config.template.js). Rooms without an entry keep the default look. Visual only — not a security feature.


Self-Hosting

[setup]

Requirements

  • A clean server running Ubuntu 22.04 or 24.04 LTS
  • Root access to the Server
  • A domain or subdomain pointing to your server’s public IPv4

Note

When prompted, simply enter your domain or subdomain. Then wait for the installation to complete.

# Install
wget -qO cme-install.sh https://docs.mirotalk.com/scripts/cme/cme-install.sh \
  && chmod +x cme-install.sh \
  && ./cme-install.sh
# Uninstall
wget -qO cme-uninstall.sh https://docs.mirotalk.com/scripts/cme/cme-uninstall.sh \
  && chmod +x cme-uninstall.sh \
  && ./cme-uninstall.sh
# Update
wget -qO cme-update.sh https://docs.mirotalk.com/scripts/cme/cme-update.sh \
  && chmod +x cme-update.sh \
  && ./cme-update.sh

Fast Integration

[iframe]

Easily integrate Call-Me into your website or application with a simple iframe. Just add the following code to your project:

<iframe
    allow="camera; microphone; speaker-selection; fullscreen; clipboard-read; clipboard-write; web-share; autoplay"
    src="https://cme.mirotalk.com/"
    style="width: 100vw; height: 100vh; border: 0px;"
></iframe>

API

Get all connected users

# Get all connected users
curl -X GET "http://localhost:8000/api/v1/users" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"
curl -X GET "https://cme.mirotalk.com/api/v1/users" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# Get connected users in a specific room (optional `room` filter)
curl -X GET "http://localhost:8000/api/v1/users?room=Support" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# Get detailed users info (room, media status, availability, connectedAt)
curl -X GET "http://localhost:8000/api/v1/users?details=true" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# Generate call links for connected users to call
curl -X GET "http://localhost:8000/api/v1/connected?user=call-me" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"
curl -X GET "https://cme.mirotalk.com/api/v1/connected?user=call-me" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# Generate call links scoped to a room (adds `&room=...` to the links)
curl -X GET "http://localhost:8000/api/v1/connected?user=call-me&room=Support" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

Get rooms, active calls and server statistics

# List active rooms with user counts and active call counts
curl -X GET "http://localhost:8000/api/v1/rooms" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# List active calls (optional `room` filter)
curl -X GET "http://localhost:8000/api/v1/calls" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"
curl -X GET "http://localhost:8000/api/v1/calls?room=Support" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

# Get aggregate server statistics (version, uptime, users, rooms, active calls)
curl -X GET "http://localhost:8000/api/v1/stats" -H "authorization: call_me_api_key_secret" -H "Content-Type: application/json"

Docs: http://localhost:8000/api/v1/docs/ or you can check it out live in prod here.


Webhooks

Get notified of call lifecycle events (user.joined, user.left, call.started, call.ended with duration) in real time for external integrations. Enable it in your .env:

WEBHOOK_ENABLED=true
WEBHOOK_URL='http://localhost:9099/webhooks/call-me'
WEBHOOK_SECRET='your-shared-secret' # optional, enables HMAC-SHA256 request signing

A ready-to-run example receiver and the full event reference (payloads, signature verification) live in webhook/. Run it in parallel with Call-Me to watch events live:

node webhook/server.js


Open the repository ↗