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

Revert 2.1.1 v2 #1487

Closed
wants to merge 35 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
e4151cb
Revert "Merge branch 'milestone-22-signalling-211' of github.com:Agor…
Kishan-Dhakan Oct 16, 2023
b7aad26
Revert "Updates on review."
Kishan-Dhakan Oct 16, 2023
5dd08b2
Revert "pricing update"
Kishan-Dhakan Oct 16, 2023
454574e
Revert "Merge pull request #352 from AgoraIO/351-update-the-signaling…
Kishan-Dhakan Oct 16, 2023
8464041
Revert "add setup func"
Kishan-Dhakan Oct 16, 2023
d4887d0
Revert "troubleshooting update"
Kishan-Dhakan Oct 16, 2023
1129c38
Revert "add error code table, refactor (#323)"
Kishan-Dhakan Oct 16, 2023
9686156
Revert "Merge branch 'milestone-22-signalling-211' into signaling-2xx…
Kishan-Dhakan Oct 16, 2023
bd41715
Revert "add error code table, refactor"
Kishan-Dhakan Oct 16, 2023
ca8f79b
Revert "Updates on review."
Kishan-Dhakan Oct 16, 2023
d1c05b1
Revert "update to pnpm"
Kishan-Dhakan Oct 16, 2023
9b18ea6
Revert "fix comment"
Kishan-Dhakan Oct 16, 2023
b35d739
Revert "update to pnpm, add presence in gs, update older code"
Kishan-Dhakan Oct 16, 2023
c5b564c
Revert "Updates on review."
Kishan-Dhakan Oct 16, 2023
ce3d11d
Revert "Updates on review."
Kishan-Dhakan Oct 16, 2023
c9307b6
Revert "Merge pull request #305 from AgoraIO/238-storage-review-updates"
Kishan-Dhakan Oct 16, 2023
0152eb7
Revert "Merge branch 'milestone-22-signalling-211' of github.com:Agor…
Kishan-Dhakan Oct 16, 2023
18e962c
Revert "Added 2.1.1 release notes"
Kishan-Dhakan Oct 16, 2023
71e8924
Revert "Merge pull request #270 from AgoraIO/230-signaling-api-refere…
Kishan-Dhakan Oct 16, 2023
976b438
Revert "Merge pull request #266 from AgoraIO/232-update-the-product-o…
Kishan-Dhakan Oct 16, 2023
5a8add6
Revert "First stab at the get started."
Kishan-Dhakan Oct 16, 2023
26734af
Revert "Merge pull request #249 from AgoraIO/signaling-2.1.1-release-…
Kishan-Dhakan Oct 16, 2023
3c20ab2
Revert "Updates to pricing and supported platforms"
Kishan-Dhakan Oct 16, 2023
0851848
Revert "Pricing draft revised, platform support updated"
Kishan-Dhakan Oct 16, 2023
9fe53d3
Revert "Update on review."
Kishan-Dhakan Oct 16, 2023
ec98b37
Revert "Merge pull request #247 from AgoraIO/fix-signalling-gs"
Kishan-Dhakan Oct 16, 2023
acf283e
Revert "Update on review."
Kishan-Dhakan Oct 16, 2023
50fb33a
Revert "Pricing first draft"
Kishan-Dhakan Oct 16, 2023
417f5d3
Revert "Release notes revised"
Kishan-Dhakan Oct 16, 2023
0be6a05
Revert "fix versioning and formatting"
Kishan-Dhakan Oct 16, 2023
25096ba
Revert "Updates for the authentication guide."
Kishan-Dhakan Oct 16, 2023
a711265
Revert "Updates for the authentication guide."
Kishan-Dhakan Oct 16, 2023
4818ecb
redo unrelated reverts
Kishan-Dhakan Oct 16, 2023
11ed4a0
redo unrelated reverts
Kishan-Dhakan Oct 16, 2023
774f62f
redo unrelated reverts
Kishan-Dhakan Oct 16, 2023
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
8 changes: 4 additions & 4 deletions assets/images/signaling/authentication-workflow.puml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ end

group Renew token
API -> APP: Trigger event: token privilege will expire
APP -> TS: Request an RTM token using:\n App Id, user ID
TS -> TS: Validate request against internal security\n and generate token
TS -> APP: Return RTM token to App
API <- APP: Send RTM token to Signaling with a \ncall to renew token
APP -> TS: Request a token using:\n App Id, user ID
TS -> TS: Validate against internal security\n and generate token
TS -> APP: Return token to App
API -> APP: Send token to Signaling with a \ncall to renew token
API -> API: Validate the token
API -> APP: Trigger callback
end
Expand Down
2 changes: 1 addition & 1 deletion assets/images/signaling/authentication-workflow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions assets/images/signaling/get-started-workflow.puml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ end box
group Initialize
USR -> APP: Open app
APP -> APP: Create a signalingEngine instance
APP -> APP: Add event callbacks
APP -> APP: Add user event callbacks
APP -> APP: Set the authentication token
APP -> API: Log in to Signaling
end

group Messages

USR -> APP: Publish message
APP -> API: signalingEngine.publish
APP -> APP: Listen for message events
API -> APP: message
USR -> APP: Send message
APP -> API: sendMessageToPeer
APP -> APP: listen for message events
API -> APP: MessageFromPeer
APP -> USR: Receive message
end

Expand Down
2 changes: 1 addition & 1 deletion assets/images/signaling/get-started-workflow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 41 additions & 29 deletions shared/common/_core-concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,42 +36,62 @@ The App ID is a random string generated within [<Vg k="CONSOLE" />](https://cons

<Vg k="COMPANY" /> uses this App ID to identify each app, provide billing and other statistical data services.


<ProductWrapper notAllowed={["extensions-marketplace","agora-analytics","video-calling", "voice-calling",
"interactive-live-streaming", "broadcast-streaming","signaling"]}>
<ProductWrapper notAllowed="extensions-marketplace">
<ProductWrapper notAllowed="agora-analytics">
<ProductWrapper notAllowed="video-calling">
<ProductWrapper notAllowed="voice-calling">
<ProductWrapper notAllowed="interactive-live-streaming">
<ProductWrapper notAllowed="broadcast-streaming">
For applications requiring high security in a production environment, you must choose a App ID + Token mechanism for [user authentication](../develop/authentication-workflow) when creating a new project. Without an authentication token, your environment is open to anyone with access to your App ID.
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>

<ProductWrapper product="agora-analytics">
For applications requiring high security in a production environment, you must choose a App ID + Token mechanism for user authentication when creating a new project. Without an authentication token, your environment is open to anyone with access to your App ID.
</ProductWrapper>

<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming","signaling"]}>
<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming"]}>
For applications requiring high security in a production environment, you must choose a App ID + Token mechanism for [user authentication](../get-started/authentication-workflow) when creating a new project. Without an authentication token, your environment is open to anyone with access to your App ID.
</ProductWrapper>

## App certificate

An App certificate is a string generated by <Vg k="CONSOLE" /> to enable token authentication. It is required for generating an <Vg k="VSDK" /> or <Vg k="MESS" /> authentication token. To get your app certificate from <Vg k="CONSOLE" />, see [Manage app certificates](../reference/manage-agora-account#get-the-app-certificate).

<ProductWrapper notAllowed={["extensions-marketplace","agora-analytics","video-calling", "voice-calling",
"interactive-live-streaming", "broadcast-streaming","signaling"]}>
<ProductWrapper notAllowed="extensions-marketplace">
<ProductWrapper notAllowed="agora-analytics">
<ProductWrapper notAllowed="video-calling">
<ProductWrapper notAllowed="voice-calling">
<ProductWrapper notAllowed="interactive-live-streaming">
<ProductWrapper notAllowed="broadcast-streaming">
To use your App certificate for setting up a token server, see [Create and run a token server.](../develop/authentication-workflow#create-and-run-a-token-server)
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>

<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming","signaling"]}>
<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming"]}>
To use your App certificate for setting up a token server, see [Create and run a token server.](../get-started/authentication-workflow#create-and-run-a-token-server)
</ProductWrapper>



## Channel

<ProductWrapper notAllowed="signaling">
<Vg k="COMPANY" /> uses the *channel name* to identify a channel. Users who specify the same *channel name* join a common channel and interact with each other. A channel is created when the first user joins. It ceases to exist when the last user leaves.

You create a channel by calling the methods for transmitting real-time data. <Vg k="COMPANY" /> uses different channels to transmit different types of data. The <Vg k="VSDK" /> channel transmits audio or video data, while the <Vg k="MESS" /> channel transmits messaging or signaling data. The <Vg k="VSDK" /> and <Vg k="MESS" /> channels are independent of each other.

Additional components provided by <Vg k="COMPANY" />, such as On-Premise Recording and Cloud Recording, join the <Vg k="VSDK" /> channel and provide real-time recording, transmission acceleration, media playback, and content moderation.

<ProductWrapper notAllowed="signaling">

## Channel profile

The SDK applies different optimization methods according to the selected channel profile. <Vg k="COMPANY" /> supports the following channel profiles:
Expand All @@ -83,25 +103,11 @@ The SDK applies different optimization methods according to the selected channel

</ProductWrapper>

<ProductWrapper product="signaling">

A data transfer management mechanism for passing data from one device to another. Any user who subscribes to or joins a channel can receive messages or events transmitted in that channel. Clients can subscribe to or join multiple channels at the same time.

<Vg k="MESS" /> includes the following types of channels:

| Channel type | Main features | Applicable scenario|
|---------------|---------------|--------------------|
| Message | Follows the industry-standard pub/sub model. Channels do not need to be created in advance, and there is no upper limit on the number of publishers and subscribers in a channel.|Multi-device management and command exchange in the IoT industry, location tracking in smart devices, etc.|
| Stream |Follows the chat room model. Users need to join the channel to send and receive event notifications. Messages are managed and delivered through topics, and a single channel allows up to 1000 users to join at the same time. Supports channel sharing and synchronous transmission of audio and video data.|High-frequency and large concurrent data transmission or co-channel and synchronous transmission with audio and video data, such as metaverse, cloud games, etc.|

</ProductWrapper>

## Device

A physical or virtual device that connects to <Vg k="AGORA_BACKEND" />. For example, a mobile device, computer,
smart watch, or IoT device.

<ProductWrapper notAllowed="signaling">
## Stream

A stream is a sequence of digitally-encoded coherent signals that contains audio or video data. Users in a channel [publish](#publish) local streams and [subscribe](#subscribe) to remote streams from other users.
Expand All @@ -116,19 +122,25 @@ After successfully publishing a stream, the SDK continues sending media data to
Subscribing is the act of receiving media streams published by remote users to the channel. A user receives audio and video data from other users by subscribing to one or more of their streams. You either directly play the subscribed streams or process incoming data for other purposes such as recording or capturing screenshots.

For further details, on how to create, manage and update your <Vg k="COMPANY" /> account, see [Manage your <Vg k="COMPANY" /> account](../reference/manage-agora-account).
</ProductWrapper>

## Token

A token is a dynamic key that is used by the <Vg k="COMPANY" /> authentication server to check user permissions. You use <Vg k="CONSOLE" /> to generate a temporary token for testing purposes during the development process. In a production environment, you implement a token server in your security infrastructure to control access to your channels.


<ProductWrapper notAllowed={["extensions-marketplace","agora-analytics","video-calling", "voice-calling",
"interactive-live-streaming", "broadcast-streaming","signaling"]}>
For more information, see [Secure authentication with tokens](../get-started/authentication-workflow).
<ProductWrapper notAllowed="extensions-marketplace">
<ProductWrapper notAllowed="agora-analytics">
<ProductWrapper notAllowed="video-calling">
<ProductWrapper notAllowed="voice-calling">
<ProductWrapper notAllowed="interactive-live-streaming">
<ProductWrapper notAllowed="broadcast-streaming">
For more information, see [Secure authentication with tokens](../develop/authentication-workflow).
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>
</ProductWrapper>

<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming","signaling"]}>
<ProductWrapper product={["video-calling", "voice-calling", "interactive-live-streaming", "broadcast-streaming"]}>
For more information, see [Secure authentication with tokens](../get-started/authentication-workflow).
</ProductWrapper>

Expand Down
74 changes: 1 addition & 73 deletions shared/common/_supported-platforms.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import * as data from '@site/data/variables';

This section lists the platforms and products you use to develop apps that interact with <Vg k="AGORA_BACKEND" />.

<ProductWrapper notAllowed="signaling,cloud-recording">

<PlatformWrapper platform="web">
- *Android*:
Expand All @@ -23,14 +22,14 @@ This section lists the platforms and products you use to develop apps that inter
|Windows|<ul><li>Chrome</li><li>Firefox</li><li>Edge</li></ul>|Supported |Supported|
|ChromeOS |Chrome |Supported |Supported|


To ensure the best user experience, best practice is to use the latest version each browser on the latest version of the operating system. Download the latest version of:

- [Chrome](https://www.google.com/intl/en/chrome/)
- [Firefox](https://www.mozilla.org/firefox/new/)
- [Edge](https://microsoft.com/edge)
- [Safari](https://support.apple.com/en-hk/HT201541)


</PlatformWrapper>

<PlatformWrapper platform="android">
Expand Down Expand Up @@ -178,74 +177,3 @@ To ensure the best user experience, best practice is to use the latest version e
- [Edge](https://microsoft.com/edge)
- [Safari](https://support.apple.com/en-hk/HT201541)
</ProductWrapper>

<ProductWrapper product="signaling">

### Supported browsers


<Vg k="MESS_SDK"/> supports the following browsers:

- *Android*
| Browser or application | Minimum supported version |
|----------------------------------|---------------------------|
| Chrome | 86.0.4240 |
| Firefox (x64, ARM64, IA-32, ARMv7| 83.0 |

- *iOS*:
| Browser or application | Minimum supported version |
|------------------------|---------------------------|
| Chrome | 86.0.4240 |
| Firefox | 29.0 |

- *Desktop*:
|Operating system |Browser |Minimum supported version |
|-----------------|--------------|--------------------------|
|Windows |Firefox |83.0 |
|Windows |Chrome |86.0.4240 |
|Windows |Microsoft Edge|87.0.664.60 |
|macOS |Chrome |86.0.4240 |
|macOS |Firefox |83.0 |
|macOS |Safari |13.0 |
|Linux |Firefox |83.0 |
|Linux |Chrome |86.0.4240 |
|OpenBSD |Firefox |83.0 |

### Dependencies

When you integrate <Vg k="MESS"/> features into your <Vpl k="CLIENT" />, <Vg k="MESS_SDK"/> has the following
dependencies:

| Name | Minimum version | License | Dependency |
|---|---|---|---|
| @thi.ng/cache | 1.0.70 | Apache 2.0 | Transitive |
| @types/format-util | 1.0.1 | MIT | Transitive |
| @types/google-closure-compiler | 0.0.18 | MIT | Transitive |
| @types/node-forge | 1.3.1 | BSD 2-Clause | Transitive |
| abortcontroller-polyfill | 1.7.1 | MIT | Transitive |
| console-polyfill | 0.3.0 | MIT | Transitive |
| core-js | 3.9.0 | MIT | Transitive |
| debug | 4.3.4 | MIT | Transitive |
| dotenv | 8.2.0 | BSD 2-Clause | Transitive |
| events | 3.2.0 | MIT | Transitive |
| format-util | 1.0.5 | MIT | Transitive |
| gud | 1.0.0 | MIT | Transitive |
| is-mobile | 3.1.1 | MIT | Transitive |
| is-what | 3.14.1 | MIT | Transitive |
| lodash | 4.17.21 | MIT | Transitive |
| long | 4.0.0 | Apache 2.0 | Transitive |
| lru-cache | 6.0.0 | ISC | Transitive |
| never throw | 5.0.1 | MIT | Transitive |
| node-forge | 1.3.1 | BSD 3-Clause or GPL 2 | Transitive |
| promise-polyfill | 8.2.0 | MIT | Transitive |
| protobufjs | 6.10.2 | MIT | Transitive |
| regenerator-runtime | 0.13.9 | MIT | Transitive |
| rxjs | 6.6.3 | Apache 2.0 | Transitive |
| rxjs-etc | 10.6.0 | MIT | Transitive |
| rxjs-websockets | 8.0.1 | ISC | Transitive |
| safe-json-stringify | 1.2.0 | MIT | Transitive |
| tslib | 2.1.0 | BSD Zero Clause | Transitive |
| uuid | 3.4.0 | MIT | Transitive |
| webcrypto-shim | 0.1.6 | MIT | Transitive |

</ProductWrapper>
31 changes: 14 additions & 17 deletions shared/common/manage-agora-account/_get-appid-token.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,31 +57,28 @@ To generate a set of Customer ID and Customer Secret, do the following:

#### Generate a temporary token

To ensure communication security, best practice is to use tokens to authenticate the users who log in to
<Vg k="MESS" /> from your <Vpl k="CLIENT" />.
When a user attempts to join a channel, your app passes an encrypted authentication token to <Vg k="AGORA_BACKEND" />, this token is unique for each channel. It is generated using the App ID of your project and the channel name. In a test or production environment, your app retrieves the token from a token server. However, for local testing, you can generate a temporary token in <Vg k="CONSOLE" />.

To generate a temporary <Vg k="MESS" /> token:
1. In <Vg k="CONSOLE" />, open [Project Management](https://console.agora.io/projects), select your project and click **Config**.

1. In [<Vg k="CONSOLE" /> > Project Management](https://console.agora.io/projects), select your project and click
**Configure**.
2. Under **Features**, click **Generate temp <Vg k="VSDK" /> token**.

1. In your browser, navigate to the [<Vg k="COMPANY" /> token builder](https://agora-token-generator-demo.vercel.app/).
3. Type the **Channel Name**, then click **Generate**.

1. Choose the <Vg k="COMPANY" /> product your user wants to log in to. Fill in *App ID* and *App Certificate* with the
details of your project in <Vg k="CONSOLE" />.
<Vg k="CONSOLE" /> generates a token valid to join **Channel Name** only.

1. Customize the token for each user. The required fields are visible in <Vg k="COMPANY" /> token builder.
4. Click **Copy**.

<ProductWrapper product="signaling">
In <Vg k="MESS" />, each authentication token you create is specific for a user ID in your <Vpl k="CLIENT" />. You create
a token for each user in the channel. When you call `login` using <Vg k="MESS_SDK" />, ensure that the UID is the same
as you used to create the token.
**Temp Token** is added to the clipboard of your development machine.

</ProductWrapper>
#### Generate an <Vg k="MESS" /> token

1. Click **Generate Token**
Applicable products of <Vg k="MESS" /> tokens include <Vg k="MESS" /> and Flexible Classroom.

The token appears in Token Builder.
To ensure communication security, Agora recommends using tokens to authenticate users logging in to an <Vg k="MESS" /> system.

1. Add the token to your <Vpl k="CLIENT" />.
For testing purposes, Agora Console supports generating <Vg k="MESS" /> tokens. To generate an <Vg k="MESS" /> token:

1. Visit [token builder](https://webdemo.agora.io/token-builder).

2. Fill in the App ID, App certificate, and user ID to log in to the <Vg k="MESS" /> system. You need to specify the user ID yourself (for example, "test"). The generated <Vg k="MESS" /> token is showed on the screen. When calling the `login` method later, ensure that the user ID is the same with the one that you use to generate the <Vg k="MESS" /> token.
19 changes: 8 additions & 11 deletions shared/common/project-setup/web.mdx
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
<PlatformWrapper platform="web">

1. **Clone the repository**:
<ProductWrapper product="signaling" >
1. Clone the [<Vpd k="SDK" /> sample code repository](https://github.com/AgoraIO/signaling-sdk-samples-web) to
`<samples-root>` in your development environment:

To clone the repository to your local machine, open Terminal and navigate to the directory where you want to clone the repository. Then, use the following command:

<ProductWrapper product="signaling" >
```bash
git clone https://github.com/AgoraIO/signaling-sdk-samples-web
```
</ProductWrapper>

1. **Install the dependencies**:

Navigate to the root directory of the cloned repository and run the following command:
1. Install the dependencies. Open Terminal in the root directory of the cloned repository and run the following command:

```bash
pnpm install
npm install
```

By default <Vpd k="SDK" /> is installed automatically. However, you can also [Install <Vpd k="SDK" /> manually](../reference/downloads#through-the-agora-website).

</PlatformWrapper>
</ProductWrapper>

</PlatformWrapper>
28 changes: 0 additions & 28 deletions shared/common/project-test/android.mdx

This file was deleted.

Loading
Loading