diff --git a/docusaurus/video/docusaurus/docs/api/_common_/custom-events.mdx b/docusaurus/video/docusaurus/docs/api/_common_/custom-events.mdx
new file mode 100644
index 00000000..39181e04
--- /dev/null
+++ b/docusaurus/video/docusaurus/docs/api/_common_/custom-events.mdx
@@ -0,0 +1,40 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+```js
+// send a custom event to all users watching the call
+call.sendCustomEvent({
+ custom: {
+ 'render-animation': 'balloons',
+ },
+ user_id: 'john',
+});
+```
+
+
+
+
+```py
+# send a custom event to all users watching the call
+call.send_call_event(user_id=user.id, custom={"render-animation": "balloons"})
+```
+
+
+
+
+```bash
+curl -X POST https://video.stream-io-api.com/api/v2/video/call/${CALL_TYPE}/${CALL_ID}/event?api_key=${API_KEY} \
+ -H "Authorization: ${TOKEN}" \
+ -H "stream-auth-type: jwt" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "custom": {"render-animation": "balloons"},
+ "user_id": "john"
+ }'
+```
+
+
+
diff --git a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx
index 7977268b..b8cfcba3 100644
--- a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx
+++ b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx
@@ -17,6 +17,7 @@ import CallSort from '../../../shared/video/_call-sort-fields.mdx';
import CallMemberSort from '../../../shared/video/_call-member-sort-fields.mdx';
import OpenApiModels from '../_common_/OpenApiModels';
import CallTypesSum from '../_common_/call-types-overview.mdx';
+import CustomEvents from '../_common_/custom-events.mdx';
## Creating calls
@@ -180,7 +181,15 @@ if (!callMemberGrants.includes(VideoOwnCapability.JOIN_CALL)) {
// Update the call type with the changes
await client.video.updateCallType(callTypeName, {
- grants: { user: [], call_member: [VideoOwnCapability.JOIN_CALL, VideoOwnCapability.GET_CALL, VideoOwnCapability.SEND_AUDIO, VideoOwnCapability.JOIN_CALL] },
+ grants: {
+ user: [],
+ call_member: [
+ VideoOwnCapability.JOIN_CALL,
+ VideoOwnCapability.GET_CALL,
+ VideoOwnCapability.SEND_AUDIO,
+ VideoOwnCapability.JOIN_CALL,
+ ],
+ },
});
```
@@ -594,56 +603,7 @@ curl -X POST "https://video.stream-io-api.com/api/v2/video/call/members?api_key=
It's possible to send any custom event for a call:
-
-
-
-```js
-// the custom event can be any kind of data
-await call.sendCustomEvent({
- type: 'draw',
- x: 10,
- y: 30,
-});
-```
-
-
-
-
-
-```python
-# custom events can contain arbitrary data
-call.send_call_event(
- user_id="john",
- custom={
- "type": "draw",
- "x": 10,
- "y": 30,
- },
-)
-```
-
-
-
-
-
-```bash
-curl -X POST "https://video.stream-io-api.com/api/v2/video/call/${CALL_TYPE}/${CALL_ID}/event?api_key=${API_KEY}" \
- -H "Authorization: ${TOKEN}" \
- -H "stream-auth-type: jwt" \
- -H "Content-Type: application/json" \
- -d '{
- "event": {
- "custom": {
- "type": "draw",
- "x": 10,
- "y": 30
- }
- }
- }'
-```
-
-
-
+
Sending a custom event will dispatch the `custom` WebSocket event.
@@ -719,22 +679,22 @@ You can configure all calls to have a default max duration, this can be done fro
```js
await client.video.updateCallType({
- name: 'default',
- settings: {
- limits: {
- max_duration_seconds: 3600
- }
- }
+ name: 'default',
+ settings: {
+ limits: {
+ max_duration_seconds: 3600,
+ },
+ },
});
// Disable the default session timer
await client.video.updateCallType({
- name: 'default',
- settings: {
- limits: {
- max_duration_seconds: 0
- }
- }
+ name: 'default',
+ settings: {
+ limits: {
+ max_duration_seconds: 0,
+ },
+ },
});
```
@@ -810,14 +770,14 @@ It is possible to create calls with a different max duration than the default de
```js
// or call.create
await client.call('default', 'test-outgoing-call').getOrCreate({
- data: {
- created_by_id: 'john',
- settings_override: {
- limits: {
- max_duration_seconds: 3600,
- },
- },
+ data: {
+ created_by_id: 'john',
+ settings_override: {
+ limits: {
+ max_duration_seconds: 3600,
+ },
},
+ },
});
```
@@ -876,24 +836,24 @@ It is possible to update a call and extend the session time. In that case a `cal
```js
// Update the call with session timer
await client.call.update({
- data: {
- settings_override: {
- limits: {
- max_duration_seconds: call.settings.limits.max_duration_seconds + 300,
- },
- },
+ data: {
+ settings_override: {
+ limits: {
+ max_duration_seconds: call.settings.limits.max_duration_seconds + 300,
},
+ },
+ },
});
// Disable the session timer
await client.call.update({
- data: {
- settings_override: {
- limits: {
- max_duration_seconds: 0,
- },
- },
+ data: {
+ settings_override: {
+ limits: {
+ max_duration_seconds: 0,
},
+ },
+ },
});
```
diff --git a/docusaurus/video/docusaurus/docs/api/moderation/overview.mdx b/docusaurus/video/docusaurus/docs/api/moderation/overview.mdx
index d83cb886..13872d08 100644
--- a/docusaurus/video/docusaurus/docs/api/moderation/overview.mdx
+++ b/docusaurus/video/docusaurus/docs/api/moderation/overview.mdx
@@ -137,7 +137,7 @@ You can also mute every other participant’s video or audio.
call.muteUsers({
mute_all_users: true,
audio: true,
- muted_by_id: 'john'
+ muted_by_id: 'john',
});
```
@@ -182,7 +182,7 @@ call.muteUsers({
video: true,
screenshare: true,
screenshare_audio: true,
- muted_by_id: 'john'
+ muted_by_id: 'john',
});
```
@@ -326,19 +326,19 @@ Users can be banned, when doing that they are not allowed to join or create call
client.banUser({
target_user_id: '',
user_id: '',
- reason: ''
+ reason: '',
});
// remove the ban for a user
client.unbanUser({
- targetUserId: ''
+ targetUserId: '',
});
// ban a user for 30 minutes
client.banUser({
target_user_id: '',
user_id: '',
- timeout: 30
+ timeout: 30,
});
// ban a user and all users sharing the same IP
@@ -346,7 +346,7 @@ client.banUser({
target_user_id: '',
user_id: '',
reason: '',
- ip_ban: true
+ ip_ban: true,
});
```
@@ -435,17 +435,27 @@ curl -X POST https://video.stream-io-api.com/api/v2/moderation/ban?api_key=${API
Deactivated users are no longer able to make any API call or connect to websockets (and receive updates on event of any kind).
-
+
### User blocking
Users can block other users using the API, when a user blocks another it will no longer receive ringing calls or notification from the blocked user.
-
```js
+client.blockUsers({
+ blocked_user_id: 'bob',
+ user_id: 'alice',
+});
+
+client.getBlockedUsers({ userId: 'alice' });
+
+client.unblockUsers({
+ blocked_user_id: 'bob',
+ user_id: 'alice',
+});
```
@@ -467,6 +477,30 @@ client.unblock_users(blocked_user_id=bob.id, user_id=alice.id)
```bash
+curl -X POST https://video.stream-io-api.com/api/v2/users/block?api_key=${API_KEY} \
+ -H "Authorization: ${TOKEN}" \
+ -H "stream-auth-type: jwt" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "blocked_user_id": "bob",
+ "user_id": "alice"
+ }'
+
+USER_ID='alice';
+ENCODED_USER_ID=$(echo ${USER_ID} | perl -MURI::Escape -lne 'print uri_escape($_)')
+
+curl -X GET "https://video.stream-io-api.com/api/v2/users/block?api_key=${API_KEY}&user_id=${ENCODED_USER_ID}" \
+ -H "Authorization: ${TOKEN}" \
+ -H "stream-auth-type: jwt"
+
+curl -X POST https://video.stream-io-api.com/api/v2/users/unblock?api_key=${API_KEY} \
+ -H "Authorization: ${TOKEN}" \
+ -H "stream-auth-type: jwt" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "blocked_user_id": "bob",
+ "user_id": "alice"
+ }'
```
diff --git a/docusaurus/video/docusaurus/docs/api/webhooks/overview.mdx b/docusaurus/video/docusaurus/docs/api/webhooks/overview.mdx
index e06496b0..4715b980 100644
--- a/docusaurus/video/docusaurus/docs/api/webhooks/overview.mdx
+++ b/docusaurus/video/docusaurus/docs/api/webhooks/overview.mdx
@@ -5,51 +5,14 @@ slug: /webhooks/overview
title: Overview
---
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
+import CustomEvents from '../_common_/custom-events.mdx';
## Custom events
You can send custom events to all users watching a call, events can be send client-side or server-side. It is not necessary for users to be part the call, you call objects can be "watched" before joining as well.
Client-side you can observe calls and receive events by passing the `watch:true` parameter to any of these endpoints: `GetCall`, `QueryCalls`, `JoinCall`.
-
-
-
-```js
-// send a custom event to all users watching the call
-call.sendCustomEvent({
- custom: {
- 'render-animation': 'balloons',
- },
- user_id: 'john',
-});
-```
-
-
-
-
-```py
-# send a custom event to all users watching the call
-call.send_call_event(user_id=user.id, custom={"render-animation": "balloons"})
-```
-
-
-
-
-```bash
-curl -X POST https://video.stream-io-api.com/api/v2/video/call/${CALL_TYPE}/${CALL_ID}/event?api_key=${API_KEY} \
- -H "Authorization: ${TOKEN}" \
- -H "stream-auth-type: jwt" \
- -H 'Content-Type: application/json' \
- -d '{
- "custom": {"render-animation": "balloons"},
- "user_id": "john"
- }'
-```
-
-
-
+
You can configure your Stream app to send events to your HTTP/webhook and/or to your AWS SQS queue. Webhooks are usually
the simplest way to receive events from your app and to perform additional action based on what happens to your application.