ApiRTC Developer Center

Getting started


ApiRTC is a library which allows a developer to easily integrate real-time communications (chat, audio, video) into a web or mobile application. 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.

ApiRTC is the entry point of our platform that will manage all connection establishments for you including user connection, user presence and media establishment.

ApiRTC library is available in different format depending of the integration you need :

  • Web or Hybrid Application : Javascript
  • Native Application : Swift for iOS, Java for Android

ApiRTC enables you to exchange different media content type :

  • Chat
  • Voice
  • Video
  • Screensharing
  • Whiteboard
  • Datachannel (files ...)
  • JSON data

And manage important features such as :

  • Conference
  • Media optimization
  • Firewall traversal
  • Network and QoS testing
  • Presence
  • SIP interconnection
  • Call recording and replay

ApiRTC call anatomy

Step 1: Initialize connection

Let'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 call

Now 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 able to “talk” to each other: the signaling server is essentially useless now. They are now able to exchange their media (audio/video) flux between each other.

Step 3: Peer to peer media exchange

As 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.