• Stars
    star
    343
  • Rank 123,371 (Top 3 %)
  • Language
    C
  • Created about 9 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Smart SIP and Media Gateway to connect WebRTC endpoints to any SIP-legacy network

Source code freely provided to you by Doubango Telecom ®.
This is part of sipML5 solution and don't hesitate to test our live demo.

webrtc2sip is a smart and powerful gateway using RTCWeb and SIP to turn your browser into a phone with audio, video and SMS capabilities. The gateway allows your web browser to make and receive calls from/to any SIP-legacy network or PSTN.
As an example, you will be able to make a call from your preferred web browser to a SIP-legacy softphone (e.g. xlite) or mobile/fixed phone.
The gateway contains four modules: SIP Proxy | RTCWeb Breaker | Media Coder | Click-to-Call service..

documentation/images/architecture.png
Global architecture

SIP Proxy

The role of the SIP Proxy module is to convert the SIP transport from WebSocket protocol to UDP, TCP or TLS which are supported by all legacy networks. If your provider or hosted server supports SIP over WebSocket (e.g. Asterisk or Kamailio) then, you can bypass the module and connect the client directly to the endpoint. Bypassing the SIP Proxy is not recommended if you’re planning to use the RTCWeb Breaker or Media Coder modules as this will requires maintaining two different connections.
There are no special requirements for the end server to be able to talk to the Proxy module.

documentation/images/module_sipproxy.png
SIP Proxy architecture

RTCWeb Breaker

The RTCWeb specifications make support for ICE and DTLS/SRTP mandatory. The problem is that many SIP-legacy endpoints (e.g. PSTN network) do not support these features. It’s up to the RTCWeb Breaker to negotiate and convert the media stream to allow these two worlds to interop.
We highly recommend checking the Technical Guide to understand how to avoid security issues when using this module. For example, FreeSWITCH do not support ICE which means it requires the RTCWeb Breaker in order to be able to connect the browser to a SIP-legacy endpoint.

http://webrtc2sip.googlecode.com/svn/trunk/documentation/images/module_rtcwebbreaker.png
RTCWeb Breaker architecture

Media Coder

The RTCWeb standard defined two MTI (Mandatory To Implement) audio codecs: opus and g.711.
For now there are intense discussions about the MTI video codecs. The choice is between VP8 and H.264. VP8 is royalty-free but not widely deployed while H.264 AVC is not free but widely deployed. Google has decided to use VP8 in Chrome while Ericsson uses H.264 AVC in Bowser. Mozilla and Opera Software will probably use VP8 and Microsoft H.264 AVC. As an example, the Media Coder will allow to make video calls between Chrome and Bowser. Another example is calling a Telepresence system (e.g. Cisco) which most likely uses H.264 SVC from Chrome.

documentation/images/module_mediacoder.png
Media Coder architecture

Click-to-Call service

This is a complete SIP click-to-call solution based on the three other components. The goal is to allow any person receiving your mails, visiting your website, reading your twitts, watching your Facebook/Google+ profile to call you on your mobile phone with a single click. As an example, click here to call me on my mobile phone.
For more information: http://click2dial.org

documentation/images/module_click-to-call.png
Click-to-Call Components

Testing the gateway

Let's say the webrtc2sip gateway and SIP server are running on two different PCs with IP addresses equal to 192.168.0.1 and 192.168.0.2 respectively.

  1. Open http://sipml5.org/expert.htm in your browser
  2. Fill “WebSocket Server URL” field with the IP address and port where your webrtc2sip gateway is listening for incoming Websocket connections (e.g ws://192.168.0.1:10060 or wss://192.168.0.1:10062). IMPORTANT: Do not forget the url scheme (ws:// or wss://).
  3. The “SIP outbound Proxy URL” is used to set the destination IP address and Port to use for all outgoing requests regardless the domain name (a.k.a realm). This is a good option for developers using a SIP domain name without valid DNS A/NAPTR/SRV records. E.g. udp://192.168.0.2:5060.
  4. Check “Enable RTCWeb Breaker” if you want to call a SIP-legacy endpoint.

Security Issues

We highly recommend checking the Technical Guide to understand how to avoid security issues when using our gateway.

Technical help

Please check our issue tracker, developer group and technical guide if you have any problem.

© 2012-2015 Doubango Telecom
Inspiring the future

More Repositories

1

sipml5

The world's first HTML5 SIP client (WebRTC)
JavaScript
944
star
2

ultimateALPR-SDK

World's fastest ANPR / ALPR implementation for CPUs, GPUs, VPUs and NPUs using deep learning (Tensorflow, Tensorflow lite, TensorRT, OpenVX, OpenVINO). Multi-Charset (Latin, Korean, Chinese) & Multi-OS (Jetson, Android, Raspberry Pi, Linux, Windows) & Multi-Arch (ARM, x86).
C++
625
star
3

doubango

Doubango VoIP framework
C
399
star
4

imsdroid

High Quality Video SIP/IMS client for Google Android
Java
296
star
5

FaceLivenessDetection-SDK

3D Passive Face Liveness Detection (Anti-Spoofing) & Deepfake detection. A single image is needed to compute liveness score. 99,67% accuracy on our dataset and perfect scores on multiple public datasets (NUAA, CASIA FASD, MSU...).
C++
208
star
6

compv

Insanely fast Open Source Computer Vision library for ARM and x86 devices (Up to #50 times faster than OpenCV)
C++
193
star
7

ultimateMRZ-SDK

Machine-readable zone/travel document (MRZ / MRTD) detector and recognizer using deep learning
C++
178
star
8

telepresence

the open source SIP TelePresence system
C++
148
star
9

idoubs

SIP/IMS VideoPhone for iOS (iPhone, iPad and iPod Touch) and MAC OS X
Objective-C++
111
star
10

webrtc-audioproc

WebRTC AudioProc (AEC, VAD, NS...)
C
99
star
11

ultimateCreditCard-SDK

Bank credit card deep layout analysis, fields extraction and recognition/OCR (ScanToPay) using deep learning
C++
99
star
12

tesseractMRZ

Ready-to-use MRZ / MRTD (Machine-readable zone/travel documents) dataset and models for tesseract v4
91
star
13

ultimateMICR-SDK

Bank check information extraction/OCR from Magnetic Ink Character Recognition [MICR] (E-13B & CMC-7) using deep learning
C++
52
star
14

boghe

IMS/RCS client for WP8, Surface and Desktop with support for CUDA, Intel Quick Sync, DXVA2...
C#
36
star
15

click-2-dial

SIP WebRTC click-to-call service
HTML
34
star
16

KYC-Documents-Verif-SDK

KYC (Know Your Customer) Documents recognition & verification. 5,000+ (and counting) formats, 140+ languages, 250+ countries/territories ...
C++
29
star
17

g729

experimental version of G.729 codec for ARM devices
C
24
star
18

tesseractMICR

Ready-to-use Magnetic ink character recognition (MICR E-13B & CMC-7) datasets and *.traineddata for tesseract v4 + evaluation app
C++
24
star
19

thialgou

Codec bitstream analyzer (H.264 AVC/SVC)
C++
14
star
20

HuaweiFaceLiveness

Open Source Face Liveness detection using Huawei ML Kit (Anti-Spoofing)
Java
14
star
21

webrtc-plugin

WebRTC plugin for IE
C++
12
star
22

ultimateKYC-SDK

Know Your Customer (KYC) implementation using identity document OCR, face match, biometric liveness detection for Anti-Spoofing and much more
10
star
23

webrtc4all

Automatically exported from code.google.com/p/webrtc4all
C++
9
star
24

LicenseManager-SDK

Client SDK used to manage runtime licenses
C
8
star
25

ANPR

Automatic Number Plate Recognition (ANPR) using deep learning
6
star
26

openvnc

VNC stack
C++
6
star
27

libsigcomp

libSigComp: Open Source SigComp API
C
5
star
28

libvpx_fast

Highly optimized libvpx version for Intel Atom CPUs (embedded devices)
C
4
star
29

flash2ims

Automatically exported from code.google.com/p/flash2ims
3
star
30

libyuv_mt

Multithreaded libyuv version
C++
3
star
31

ultimateText-SDK

Realtime text detection and recognition in natural scene images (in the wild) using artificial-intelligence
3
star
32

sincity

Automatically exported from code.google.com/p/sincity
C++
2
star
33

xbox-voip

Audio/Video conferencing, messaging and presence on Xbox 360 using SIP
C#
2
star
34

ultimateAdas-SDK

Realtime Advanced driver-assistance systems (ADAS) Framework using artificial-intelligence
2
star
35

webrtc4ie

Automatically exported from code.google.com/p/webrtc4ie
C++
2
star
36

ultimateID-SDK

2
star
37

ultimateBlind-SDK

2
star
38

cloudencia

Automatically exported from code.google.com/p/cloudencia
C
1
star
39

ultimateTranslator-SDK

1
star
40

data

data
Shell
1
star