This getting started page will guide you through your first ApiRTC implementation.

Load ApiRTC library

In your .html file, load the ApiRTC js library from the <head>...</head> tag:

In your project directory, run:

In your project directory, run:

In your project directory, run:

In build.gradle, add:

CocoaPods installation

Use Podfile post_install setup to properly link dependencies:


Before we start coding... let's walk through the main concepts and classes:

  • First, each run of a client application instantiates one UserAgent representing the local individual,
  • A Session must be opened with ApiRTC's servers to create a Conversation to which individuals can join,
  • In a Conversation, individuals can chat, watch, listen and/or share real-time audio, video, data, screen...,
  • A Stream is audio, and/or video captured from sources available from browser and published on a Conversation.

UserAgent

As the entry point to ApiRTC, UserAgent is instantiated using the apiKey associated to your enterprise account on https://cloud.apirtc.com open_in_new.

UserAgent

Stream

When UserAgent.createStream(options) is called, a popup opens in the browser to request user acceptance for using media devices. The returned Promise resolves with an instance of Stream, which carries media stream from computer device through the browser.

The method Stream.attachToElement(domElement) binds the media stream to a DOM <video> element in order to display it in the web page.

createstream

Session

To use ApiRTC's connected features, a userAgent must register to get a session. This can be done with or without authentication.

Simply using UserAgent.register() without authentication details registers a userAgent with ApiRTC's servers without authentication.

register

The session grants access to connected features such like conversations.

Conversation

An instance of Conversation is obtained from Session.getOrCreateConversation(name).

getOrCreateConversation

Join

Calling Conversation.join() makes the userAgent used to create the Session used to create this instance of Conversation (through it's Session) join the conversation.

join

Publish Streams

Once a conversation joined, a userAgent can publish a stream using Conversation.publish(stream) method:

publish

Subscribe to Streams

Subscribing to peer streams shall be implemented as followed:

  • Listen on Conversation 'streamListChanged' event to get notified of streams published to the conversation. The data provided by the event is a StreamInfo: It gives information on streams published in the conversation such as the id (StreamInfo.streamId) of the stream. StreamInfo.listEventType property tells whether the event is triggered for and addition (value 'added') or a removal.

  • Calling conversation.subscribeToStream(streamId) with the StreamInfo.streamId of an added remote stream makes this conversation subscribe to a stream.

  • Finally, listening on Conversation 'streamAdded' notifies with a remote Stream instance which can be attached to web page for display.

subscribe