Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

video conference #367

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/guides/conference/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"label": "Conference",
"position": 4,
"link": {
"type": "generated-index",
"description": "Conferencing with Ant Media Server"
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: Circle - Free Video Conferencing Solution
description: Circle - Free Video Conferencing Solution on top of Ant Media Server
keywords: [Conference Ant Media, Ant Media video conference, ant media conferencing, Circle]
sidebar_position: 1
---

# Circle - Free Video Conferencing Solution

Circle is a ready-to-use open-source, online video conferencing application that can be deployed on-prem, private or public cloud. If you are concerned about Privacy or being behind a firewall, this is the best solution for you.

## Key Features

* **Unlock the Number of Attendees:** Thanks to the Scalability of Ant Media Server. The Circle is built to scale the number of attendees.
* **Easy to Use:** Just let your attendees join the video call with their favorite web browsers
* **Privacy:** Deploy it into your private/public cloud or on-prem. Make sure your live video conference yours and it cannot be watched by anyone in the cloud.
* **Distribute Live to Your Large Audience:** Distribute your video call to tens of thousands of viewers as a single video through CDN, Youtube, Vimeo, etc.
* **Record:** Record your video conference to watch it later or for archiving.

# Installation on Ant Media Server

Circle is a web application that runs on Ant Media Server. To install Circle on Ant Media Server you need to have war file of Circle application. You can either build it by your self or you can download the latest war file. You can download [stable version](https://github.com/ant-media/conference-call-application/releases) or [latest snapshot](https://oss.sonatype.org/#nexus-search;gav~io.antmedia.webrtc~ConferenceCall~~~~kw,versionexpand).

## Build Circle (Optional)

If you want to build it by your self you can follow these steps. You should have maven, Java 17 SDK and node installed on your system.

* **Step 1 - Checkout Repository:**
`git clone https://github.com/ant-media/conference-call-application.git`
* **Step 2 - Run build script:**

```
cd conference-call-application
./createwar.sh
```

After running the script _ConferenceCall.war_ file should be in the target folder.

## Application Installation

First Login to Ant Media Server Management Panel.

* **Step 1:** On the Dashboard page click New Application button.
* **Step 2:** Click Chose File button and browse the war file you downloaded.
* **Step 3:** Give a name to application.
* **Step 4:** Click Create button. That's all.

![Circla App Installation](@site/static/img/conference/circle/circle-app-installation.png)

# Usage

* Visit `https://<antmediaserver_url>/<application_name>`
* Click "Create Meeting"
![](@site/static/img/conference/circle/circle-room-creation.png)
* Enter your name for yourself and join the meeting
![](@site/static/img/conference/circle/circle-room-entrance.png)
* You are in the room now
![](@site/static/img/conference/circle/circle-room.png)

# Try Now

If you want to try Circle without any installation please [click](https://meet.antmedia.io/Conference).

# Advanced Topics (for Developers)

### Customization:

You can make any changes on Circle code base and customize it for your own applications without any restriction.
If you want to change only look and feel for example button availibilities, `.env.production` file provides some configurations to customize general UI.

### Embedding into Website

If you want to embed Circle into your website as a component please follow [this guide](https://antmedia.io/docs/guides/developing-antmedia-server/circle-component-usage/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
title: Room Security
description: Video Conference room security, video conference room, details and tutorial with ant media server
keywords: [Conference Ant Media, Ant Media conference room security, ant media conference token, ant media conference room password, ant media conference room, ant media video conference room security, Ant Media video conference, ant media conferencing, Publish, Multitrack conference, Ant Media Server Documentation, Ant Media Server Tutorials]
sidebar_position: 2
---
# Room Security

In Ant Media Server, each participant and the conference room itself are treated as individual broadcasts. This means that all [Stream Security](https://antmedia.io/docs/category/stream-security/) features apply to conferencing as well.

## Secure Rooms With Tokens
To secure a conference room, enable related token security for both publishing and playing through the web panel, then generate a publish token using the room's (main track) broadcast ID.


The generated publish token must be passed to both ```.publish()``` and ```.play()``` functions in conferencing. Otherwise, the participant won't be able to join the room.

Generated token can be a [JWT](https://antmedia.io/docs/guides/stream-security/jwt-stream-security-filter/) or [One Time Token](https://antmedia.io/docs/guides/stream-security/one-time-token-control/)

### Security with JSON Web Tokens
#### Step 1: Enable JWT Security
Go to Ant Media Server web panel and enable JWT for both publish and play. For more details on how to do that, check [Enable JWT Stream Security](https://antmedia.io/docs/guides/stream-security/jwt-stream-security-filter/)
#### Step 2: Generate JWT with Room ID
Generate a JWT with payload as below:
```
{
"type":"publish",
"streamId":"roomId",
"exp": jwt_expire_timestamp
}
```

![](@site/static/img/conference/video-conference/room-security-1.png)


[Generate JWT With Room ID](https://antmedia.io/docs/guides/stream-security/jwt-stream-security-filter/#generate-jwt-token)



#### Step 3: Join The Room Using JWT
In Ant Media Server, joining a video conference room involves both publishing to the room broadcast and playing that broadcast. Therefore, it's essential to pass the generated publish token to both the ```.publish()``` and ```.play()``` functions in the Ant Media Server SDKs.

**In conferencing, eventhough token type is publish, it can be used for both publishing and playing.**

Example:
```
const joinRoom = () => {
webrtcAdaptor.current.publish(localParticipantStreamId, publishToken, null, null, localParticipantStreamId, roomId, JSON.stringify(userStatusMetaData));
webrtcAdaptor.current.play(roomId, publishToken)
}
```
[Javascript Conference Room Sample](https://github.com/ant-media/StreamApp/blob/master/src/main/webapp/conference.html#L500)

#### Step 4: Conference Room Security In Action
In this step we will use Conference Sample to do a simple room security test.


Go to
```https://{ams-url}:5443/{appName}/conference.html?token={YOUR_JWT_HERE}```

Example:

```https://test.antmedia.io:5443/LiveApp/conference.html?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eXBlIjoicHVibGlzaCIsInN0cmVhbUlkIjoidGVzdHJvb20iLCJleHAiOjk1MTYyMzkwMjJ9.Ipl8ev_jkZUfE_nPceOdj977V09qgRKu8Fc_jDCqvlA```

Conference.html sample will get the token from query parameter and pass it to ```.publish()``` and ```.play()``` functions.

Type room ID and click join room.
Remember, room ID here must be same with the ID you used while generating the JWT.

You should be able to succesfully join the room and publish, play should start.

![](@site/static/img/conference/video-conference/room-security-2.png)

Now, open another tab. This time do not pass token as query parameter. Optionally you can pass a wrong token.

Example:

```https://test.antmedia.io:5443/LiveApp/conference.html```

Type same room id and click on join.

Since there is no token, you wont be able to join the room.

![](@site/static/img/conference/video-conference/room-security-3.png)

### Security with One Time Tokens
Securing a conference room with OTTs is identical to using JWTs.

You must pass the publish type OTTs to both ```.publish()``` and ```.play()``` after enabling this feature for both publishing and playing through the web panel and generating the tokens.

To learn more about OTTs check [OTT Documentation](https://antmedia.io/docs/guides/stream-security/one-time-token-control/)






Loading