WebRTC technology

webrtc

ApiRTC is a library that allows a developer to easily integrate real-time communications (chat, audio, video) into a web or mobile application, using HTML and JavaScript.
Behind the scenes, the WebRTC technology is used : this means that the media flows are encrypted and exchanged in peer-to-peer when possible. Otherwise a media relay (TURN server) may be required

Anatomy of ApiRTC Call

Step 1: Initialize the connection

intro1_cmpLet's say that we have a mobile user that wants to call a desktop user (Client 1 calling Client 2). The signaling offer of the Client 1 goes through the signaling server (CCS), and is relayed to the desktop client who can choose to accept or refuse the call

Step 2: Initiate a call

intro2_cmpNow both clients are aware of the capabilities of each other (audio/video codecs supported for instance). In a typical scenario they will at this point also be capable to “talk” to each other: the signaling server is essentially useless now. They are now capable to exchange their media (audio/video) flux between each other.

Step 3: Peer to peer media exchange

intro3_cmpAs we see with this simple example, the signalisation phase is absolutely crucial to establish calls. There are also many factors not presented in this simple example (differences between browsers, media constraints, fallback if there are firewalls…), but this simple scenario is helpful to understand the following tutorials.

How to use the demos :

Each demo represents an apiRTC Client. To establish a call you need to open two clients.
You can open it on a different computer with a different browser or you can use two tabs on the same browser.
We have added a button on the right of each demo to open a new client.
Your client will be assigned a random Identifier, that you will need to use to establish the call.
Our demos are all available on Github.

Access the different demos :

Looking for iOS or Android solution ? Check our online tutorial to build your first apiRTC application

1-BASIC

Basic video client

2-UI JQUERY

Video client with JQuery

3-UI MATERIAL

Video client with Material and a complete separation between UI and apiRTC

Client also support multiple simultaneous calls

4-ACCEPT/REFUSE

Video client with Accept/Refuse call buttons

5-SCREEN SHARE

ApiRTC client with screenSharing feature

6-IE/SAFARI

ApiRTC client compatible with IE and Safari

7-RECORD

ApiRTC client with recording feature done on server side

8-SELECT MEDIA

ApiRTC client with select media feature

9-SELECT VIDEO RESOLUTION

ApiRTC client with video resolution modifcation feature

10-GROUP CALL

ApiRTC client for N to N conference communications

11-VIDEO CALL STREAMING

ApiRTC client for 1 to N conference communications

12-GROUP CALL - ADVANCED

ApiRTC client to publish, unpublish, subscribe, unsubscribe streams

13-RECALL

ApiRTC client to recall after media device change

14-SNAPSHOT & DATACHANNEL

ApiRTC client to take snapshot on local or remote side and transfer using datachannel

15-GROUP CALL & RECORD

ApiRTC client to publish, unpublish, subscribe, unsubscribe streams and record and play streams

16-SAFARI V11 - NEW

ApiRTC video client compatible with the new Safari version

Our demos are all using HTTPS as HTTPS is now mandatory in Chrome > 47