Terminology
Become familiar with the following concepts and terminology to help you get started with EnableX features and services:
Rooms
A virtual room is a shared space for online collaboration hosted by a cloud service. An EnableX room is one such virtual meeting space that can be created using EnableX APIs to host WebRTC sessions. EnableX supports the following types of rooms:
Permanent Room
A permanent room is room is always available for use once it is created.
Scheduled Room
A scheduled room is only available for a particular period of time, which must be specified with a scheduled time and duration.
Adhoc Room
An adhoc room is instantly created. It is only available for a single call.
Stream
A stream represents a user's audio, video, or a data stream.
Events
An event represents an action or occurrence originating asynchronously from client-side entities. Events can be classified as:
-
Room Events: Represent events related to room connection.
-
Stream Events: Represent events related to streams within a room.
Player
A player represents the customisable UI element that can be used to render the stream in the DOM or View handler in the browser or mobile SDK respectively.
Token
A token acts like an electronic key for a client endpoint to join an RTC session on the EnableX platform.
Numbers
Shared Number
A shared number allows users to instantly purchase a valid phone number for Caller Line Identification (CLI). Users can use this number as an inbound PSTN for calling into an EnableX room.
Dedicated Number
Subscribers can purchase dedicated phone numbers from the EnableX portal or order them for their specified countries. Once a phone number is allocated to a subscriber, the default system IVR is not necessary as the calls are directly handed over to the voice service application.
Virtual Number
Virtual numbers are PSTN numbers, which are displayed as CLI on an end user's phone when the voice service application performs a voice call. Virtual numbers are also the dial-in phone numbers that an end-user calls to join a voice conference.
Webhooks
Webhooks are asynchronous APIs that allow the EnableX servers to send you data on a defined event. A webhook may be the result of an earlier voice API call. For example, when the call is answered and your application needs to act on this event. Webhooks are also used to notify your application of events such as an incoming call.
Bridging
The EnableX platform can bridge incoming PSTN calls with an outgoing PSTN call without a room. In this scenario, it combines two calls via the EnableX application or platform.
Text-to-Speech
EnableX provides the option of generating AI-generated speech through its own Text-to-Speech engine. The generated speech can be customized based on gender, accent, tone, and so on based on your requirements.
Recording
EnableX rooms are designed for recording audio inputs from a PSTN caller or in-room conversations of callers.
Endpoints
EnableX endpoints are physical devices that connect to the EnableX network system such as servers, virtual machines, embedded devices, mobile devices, and desktop computers. They include customer endpoints or their client endpoints.
Voice Terminology
Virtual Numbers
Virtual numbers are PSTN numbers, which are displayed as CLI on an end user's phone when the voice service application performs a voice call. Virtual numbers are also the dial-in phone numbers that an end-user calls to join a voice conference or an EnableX room conference.
Webhooks
Webhooks are asynchronous APIs that allow the EnableX servers to send you data on a defined event. A webhook may be the result of an earlier voice API call. For example, when the call is answered and your application needs to act on this event. Webhooks are also used to notify your application of events such as an incoming call.
Bridging
EnableX platform can bridge incoming PSTN calls with an outgoing PSTN call without an EnableX room. In this scenario, it combines two calls via the EnableX application or platform.
Text-to-Speech
EnableX provides its own Text-To-Speech engine that can be used to play machine-generated speech for your callers.
Recording
You can record an audio input from a PSTN caller or record the conversations of multiple callers in an EnableX room.
Endpoints
You can connect a call to a SIP endpoint in case your PABX supports the SIP interface.
Shared Number
EnableX provides the facility of sharing the same phone number. This number can be instantly purchased as a valid phone number for CLI and used as an inbound PSTN number for calling into an EnableX room.
SMS Terminology
Sender-ID
An alphanumeric Sender-ID
allows you to set your company name or brand as the Sender-ID
or the originator phone number when sending one-way SMS messages to many countries. In some countries like India and Indonesia, Sender-ID
must be pre-registered for messages to be successfully sent. Some countries (for example, MY, US, Canada) do not allow Sender-ID
. In these cases, the customerx must purchase long code for sending messages.
Shared Sender ID
EnableX allows users to rent pre-registered Sender-ID
so that they can send SMS messages right away without waiting for approvals.
Webhooks
Webhooks are an extension of an API to allow EnableX servers to send data to you. The SMS API makes HTTP requests to your application web server so that you can act upon them. For example, inbound SMS and delivery receipts.
Long Code
Long code is also known as a phone number. The difference is that the long code phone number is not associated with a SIM card. You can use a long code phone number to send and receive SMS. A message received on this phone number is routed to the EnableX platform where it is posted to a webhook URL for the specified user to receive and process it.
Short Code
A short code, as the name implies, is a shortened long code that usually comprises of 5 or 6 digits. As compared to long code, a short code can generally handle larger volume of messages per second. You can use a short code number to send and receive SMS. A message received on a short code phone number is routed to the EnableX platform where it is posted to a webhook URL for the specified user to receive and process it.
Shared Number
EnableX shared number is a long code that allows users to instantly rent a valid phone number for sending and receiving SMS messages. With a shared long code shared number, the sender must provide a keyword in order to route the incoming messages to the correct application.
Video Terminology
Active Talker
Set of publishers who are speaking at a given point in time. In context of EnableX, endpoints receive a list of 6 Active-Talkers in a JSON Format with an event named active-talkers-updated
whenever there is a change in the talkers list. This list helps in handling UI and to play audio/video streams from remote users. For more information, see Additional Features.
Adhoc Room
An adhoc room is a type of a room that is suited for hosting "On Demand" RTC sessions. Adhoc rooms are only used for single sessions and deleted once all participants leave the room.
API Authentication
To use the EnableX service, you need to use the Server API, which is a REST API service. The Server API uses the HTTP Basic authentication protocol for authentication. To pass through the authentication process, use APP ID
and APP KEY
of your application generated through the EnableX portal as authentication credentials (Username and Password).
APP ID
The APP ID is a unique identifier assigned to each project within EnableX Service Administration (CPaaS). It serves as an identification code that distinguishes one project from another. The APP ID is required when making API calls to ensure that the request is associated with the correct project.
APP KEY
The APP KEY is a secret key or a token associated with a project. It is used as a security measure to authenticate and authorize API requests made on behalf of the project. The APP KEY acts as a shared secret between the project and the API, ensuring that only authorized requests from the project are accepted.
Client ID
All users who connect to a session hosted on the EnableX platform are individually assigned a unique Id, which is referred as Client ID. The EnableX server and the associated APIs use the Client ID of users to update their actions during an RTC Session.
Conference
An EnableX hosted session is also referred to as a conference.
Conference Number
An EnableX hosted session is also referred to as a conference. Each hosted conference is assigned and referred using a unique conference number. API responses refer the conference number as conf-num
.
Group Mode
The Group mode represents a type of a session that is suited for participant interaction. It provides finer-level control on every publisher and subscriber stream in a video room. All participants are allowed to publish their streams into the room and subscribe to all the available streams. Note that the current implementation of the EnableX server automatically enables the "Active Talker" feature in the Group Mode. This allows a maximum of 6 active talker streams to be available to all participants (excluding own stream) in a room. To enable the Group Mode, add the following entries in the JSON payload of the Server API:
{settings: {mode: 'group'}}
Lecture Mode
The Lecture mode is suited for hosting RTC sessions with a limited number of concurrent publishers (less than 6)
and a large number of subscribers. A room configured in the Lecture mode includes a moderator who has the administrative rights for the room. The moderator administrative rights include muting remote participants, force disconnect of remote participants, approve publishing of remote participant's streams. In this mode, participants are allowed to publish their streams into the room when they are explicitly granted the "floor access" permission by the moderator. When each participant is connected to this room, the participants subscribe to the moderator's stream and any other participant's stream that is being published in the room. Participants can raise their hand seeking floor access, which the moderator might grant or reject. To enable the Lecture mode, add the following entries in the JSON payload of the Server API:
{settings: {mode: 'lecture'}}
Moderator
EnableX assigns role-based privileges for users connected to a session. A user with the Moderator role has extra privileges compared to the uses with the Participant role. A user with the Moderator role can record, mute and disconnect participants, mute all participants, and so on. You can define a role for a user while creating a token for the user who is looking for joining a session. To create a token, add the { role: 'moderator' }
entry in the JSON payload of the Server API.
Owner Reference
Owner Reference or Owner Ref represent the reference data or ID of the owner of a room. EnableX does not maintain the data of the users joining the EnableX sessions. However, you might need to track the users owning a room or using a session. Usage reports (for example CDR) include Owner Ref, which helps you map session usage against your users. You can use User ID or Reference Number of users from your own Information System and pass it in the JSON payload as { owner-ref: 'String' }
while creating a room.
Participant
EnableX assigns role-based privileges for users connected to a session. A user with the Participant role has less privileges compared to a user with the Moderator role. You can define a role for a user while creating a token for the user who is looking for joining a session. To create a token, add the { role: 'participant' }
entry in the JSON payload of the Server API.
Permanent Room
Its one type of room which can be used to carry out conference anytime you want. A permanent room is always avaiiable unless deleted explicitly using a Server API Call. During its lifetime, a permanent room can be used any number of times to carry out a conference. To define a permanent room, add the following entry in JSON payload of the Server API.
{settings: {scheduled: false,adhoc: false}}
Publishing
Publishing is the process of sending a local media stream, such as audio, video, or screen, to the EnableX Media server from a user's endpoint. Once the process is successfully completed, the stream is made available to others in the same room so that they can play it. Note that a connected user may not need to publish a stream. A user who is publishing a stream is known as a publisher.
Room
To establish an RTC session or host a conference, you first need a room. A room can be created by using the Server API call. Users who want to talk to each other need a token and require to join the same room. You can create three different type of rooms: Permanent, Scheduled, and Adhoc.
Room ID
Every room that you create by using the Server API is asigned a Room ID. The Room ID contains a string of alphanumeric characters. It is received in the Server API response JSON as { room-id: 'String' }
. It is required to modify or delete a room; to get a token for a room; and also to get the post usage reports and archive the files for a room.
Stream
A stream is a multi-media content flow that can be played locally in an audio video player or transferred (published) to a server or a peer. A stream may contain different types of media tracks. For example, audio, video, screen, and so on through the initialization process as:
var streamConfig = {audio: true,video: true,data: true,screen: false};// To intiializevar stream = EnxRtc.EnxStream(streamConfig);// To publish into roomroom.publish(stream);
Subscription
It is a process in which an endpoint requests the EnableX platform to send remote users media to it. When the endpoint is successfully subscribed to receive the user media, EnableX sends the subscribed streams to the endpoint. When a stream is received by the endpoint, the stream can be played in a player. As part of Active Talker implementation in EnableX, every endpoint get 6+2 dummy streams to subscribe. The actual media flow on those subscribed streams is dynamically decided by EnableX depending on the audio strength of the users publishing those streams. To subscribe a stream, use the room.subscribe(stream) method
. A user who is subscribing a stream is known as a subscriber.
Token
To join an EnableX-hosted session, a user or an endpoint requires a token. A token is temporary in nature, for one-time use, with a life-span of 120 minutes. Endpoints must connect to a room using a token within its life-span. When the token is validated, the endpoint is connected to the room. For a scheduled room, the token is shared 15 minutes prior to the scheduled start of the room. Tokens are not issued when the users disconnect from the room past the scheduled duration of the room. To create a token using the Server API, use the JSON payload as:
{name: 'String',user_ref: 'String',role: 'String'}
For role
, you can specify moderator
or participant
.