Welcome
Welcome to the SIPSorcery demonstration for the signalrtc open source real-time communications VoIP and WebRTC signaling server.
Purpose
The purpose of this demonstration is to allow SIP and WebRTC experimentation and testing. It should not be used for production purposes.
If you have a GitHub account click Login to create your free SIP Account. Note that you don't need a SIP account unless you'd like to test SIP registrations or authenticated SIP calls . The destinations in the SIP dial plan are all publicly accessible.
SIP Tests
The server supports the following functions for SIP clients:
- Registrations.
- Calls (see dial plan below).
- OPTIONS requests for SIP pings.
The call destinations supported are as below. The dial plan is stored in a database and is a compiled on demand using the Roslyn .NET compiler.
The entries in the dialplan below can be called using the destination on each line and a host of sipsorcery.cloud. Examples:
- sip:100@sipsorcery.cloud
- sips:100@sipsorcery.cloud
- sips:helloworld@sipsorcery.cloud
If you have a publicly accessible SIP end point that you'd like to add please create an issue with the URI details.
WebRTC Tests
This server also supports some WebRTC demos and echo tests for a number of different WebRTC implementations.
Browser WebRTC + HTTP REST Signaling source
- Dual Peer Connection: Creates two peer connections within a single browser tab and sends a noise video stream between them.
Browser WebRTC + HTTP REST Signaling source
- Single Peer Connection: Creates a single peer connection capable of generating a noise video stream. Open this page in two different browser tabs or windows to send the noise video streams between them.
Browser WebRTC + SIPSorcery WebRTC (echo server source) + HTTP POST request for Signaling
- Noise Echo Test: Sends a noise video stream from the browser to an Echo Server using the SIPSorcery WebRTC library.
- Webcam Echo Test: Sends a webcam video feed from the browser to an Echo Server using the SIPSorcery WebRTC library.
Browser WebRTC + Janus WebRTC (echo server reference) + HTTP POST request for Signaling
- Noise Echo Test: Sends a noise video stream from the browser to an Echo Server using the Janus WebRTC Server.
- Webcam Echo Test: Sends a webcam video feed from the browser to an Echo Server using the Janus WebRTC Server.
Browser WebRTC + Python aiortc WebRTC (echo server source) + HTTP POST request for Signaling
- Noise Echo Test: Sends a noise video stream from the browser to an Echo Server using the aiortc WebRTC library.
- Webcam Echo Test: Sends a webcam video feed from the browser to an Echo Server using the aiortc WebRTC library.
3rd Party Integrations
The signalrtc application is, as the name implies, used for signaling only. To create and consume audio and video streams additional applications or servers are needed. The primary purpose of 3rd party integrations is to check interoperability of the SDP negotiation and the media transport.
For VoIP the goal is to provide 4 interoperability tests per server:
- IPv4 Hello World: This test is to verify an audio and/or video stream can be received from the server.
- IPv4 Echo Test: This test is to verify an audio and/or video stream can be sent to the server.
- IPv6 Hello World: Same as the previous Hello World test but over IPv4.
- IPv6 Echo Test: Same as the previous Echo test but over IPv6.
For WebRTC the goal is to provide an echo test per server.
Hosting additional servers can be done but adds to the hosting costs. If you would like to see a particular server integrated for experimentation or testing feel free to open an issue and consider sponsoring the project to help with the costs.
Currently the servers below are hosted and are accessible for the tests listed above via the dial plan or WebRTC REST signaling controller:
- Asterisk v18.2.0
- FreeSWITCH v1.10.5
- Janus master (commit 24a0... 4 Feb 2021)
Additional Features
This demonstration application is hosted on Azure and is automatically deployed using Azure DevOps. Additional features can be added by submitting pull requests to one of the open source projects below:
- sipsorcery: For SIP, WebRTC and other protocol improvements.
- signalrtc: For improvements to the ASP.NET Core application and SIP and WebRTC Servers.
Additional servers that may be integrated depending on time, resources and interest: