Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miroslavpejic85/call-me
🟢 Call-Me: Your Go-To for Instant Video Calls!
https://github.com/miroslavpejic85/call-me
click-to-call decentralized docker javascript live-streaming nodejs open-source peer-to-peer real-time-communication self-hosted video-conferencing webdev webrtc webrtc-signaling websockets
Last synced: about 18 hours ago
JSON representation
🟢 Call-Me: Your Go-To for Instant Video Calls!
- Host: GitHub
- URL: https://github.com/miroslavpejic85/call-me
- Owner: miroslavpejic85
- License: agpl-3.0
- Created: 2024-09-12T18:03:13.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-01-24T10:35:51.000Z (9 days ago)
- Last Synced: 2025-01-25T07:04:26.802Z (8 days ago)
- Topics: click-to-call, decentralized, docker, javascript, live-streaming, nodejs, open-source, peer-to-peer, real-time-communication, self-hosted, video-conferencing, webdev, webrtc, webrtc-signaling, websockets
- Language: JavaScript
- Homepage: https://cme.mirotalk.com
- Size: 6.03 MB
- Stars: 243
- Watchers: 6
- Forks: 35
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
- awesome-webrtc - call-me - Your Go-To for Instant Video Calls! (Projects / Video Conference)
README
# Call-Me
This project enables easy one-to-one video calls directly from your web browser using WebRTC technology.
![callme](./assets/doc/callme.png)
## Getting Started
### Overview
This project allows you to:
- `Sign in` with a username.
- `Make video calls` by entering the recipient's username.
- `Toggle` the visibility of your video feed.
- `Switch` between cameras.
- `Enable/Disable` your video.
- `Enable/Disable` your audio.
- `Hang up` the call when finished.
- `Use a REST API` to retrieve a list of all connected users.---
### Quick Start
- #### Using NodeJs
![nodejs](public/assets/nodejs.png)
**[Install Node.js and npm](https://nodejs.org/en/download)**
```shell
# 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
```---
- #### Using Docker
![docker](public/assets/docker.png)
Install [docker engine](https://docs.docker.com/engine/install/) and [docker compose](https://docs.docker.com/compose/install/)
```shell
# Clone this repo
git clone https://github.com/miroslavpejic85/call-me.git# Go to to dir call-me
cd call-me# 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](http://localhost:8000).
2. `Sign in` with your username.
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`
- [http://localhost:8000/join?user=user1](http://localhost:8000/join?user=user1) (dev)
- [https://cme.mirotalk.com/join?user=user1](https://cme.mirotalk.com/join?user=user1) (prod)Lets the `user2 join` the room and initiate a `call` to the `user1`
- [http://localhost:8000/join?user=user2&call=user1](http://localhost:8000/join?user=user2&call=user1) (dev)
- [https://cme.mirotalk.com/join?user=user2&call=user1](https://cme.mirotalk.com/join?user=user2&call=user1) (prod)You can explore a `widget` example that demonstrates this functionality [here](./integration/widget.html).
---
## Fast Integration
![iframe](public/assets/iframe.png)
Easily integrate `Call-Me` into your website or application with a [simple iframe](https://codepen.io/Miroslav-Pejic/pen/qEWBaKP). Just add the following code to your project:
```html
```
---
## API
Get all connected users
```shell
# 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"# 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"
```Docs: http://localhost:8000/api/v1/docs/ or you can check it out live in prod [here](https://cme.mirotalk.com/api/v1/docs/).
---
## Self-Hosting
To install this on your VPS, VDS, or personal server, please follow the instructions in **[the self-hosting documentation](./doc/self-hosting.md)**.
---