Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/innovailable/calling-signaling
A WebRTC signaling server with support for rooms, calling and invitations
https://github.com/innovailable/calling-signaling
signaling webrtc
Last synced: about 1 month ago
JSON representation
A WebRTC signaling server with support for rooms, calling and invitations
- Host: GitHub
- URL: https://github.com/innovailable/calling-signaling
- Owner: Innovailable
- Created: 2015-12-26T23:37:20.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-06-12T09:53:11.000Z (over 3 years ago)
- Last Synced: 2024-11-07T08:31:25.245Z (3 months ago)
- Topics: signaling, webrtc
- Language: CoffeeScript
- Homepage:
- Size: 159 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# calling-signaling
## What is this?
This is a (WebRTC) signaling server with support for calling. It is developed
and tested with [rtc-lib](https://github.com/Innovailable/rtc-lib).* rooms
* abstraction of a multi or single user signaling session
* support of multiple rooms using one connection
* status objects
* status on rooms and users
* can be changed during a session and will be updated on other clients
* users have a global state which can be overwritten in rooms
* namespaces
* used to announce users and rooms
* subscribe to get updates on a namespace
* register to get announced to subscribers
* subscribers will receive messages on new users/rooms and changed state
* can be subscribed to multiple namespaces
* can be registered to multiple namespaces
* invitations
* invite users into a room
* invited users will be listed in the room as pending
* can be accepted or denied by receiving user
* can be cancelled by sending user
* protocol
* can be used over any channel with any serialization
* JSON over WebSockets transport layer included
* requests receive an answer or an error message from the server
* async handling using transaction ids
* modularized
* each feature (rooms, invitations, ...) is implemented in seperate module
* as few dependencies as possible
* easily extendable
* feature set can be adapted to use case## How to use?
### Standalone with npm
Install with
npm install -g calling-signaling
And run with
calling-signaling
### Standalone from git
Install the dependencies with
npm install
and run the server with
coffee src/main.coffee
### As library
To integrate the library into you node project install with
npm install calling-signaling
And require in your source files
var calling = require('calling-signaling')
new calling.CallingWebsocketServer(8080, "0.0.0.0")You can also integrate the signaling server into express
var calling = require('calling-signaling');
var calling_server = new calling.CallingServer();
require('express-ws')(app);
app.ws('/signaling', function(ws) {
var channel = new WebsocketChannel(ws);
calling_server.create_user(channel);
});You can create servers with custom transports, custom feature sets and
integrate your own modules. See `calling_server.coffee` to find out how to
write your own server.