@stream-io/video-client 1.27.5 → 1.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,11 +66,6 @@ export const registerEventHandlers = (call: Call, dispatcher: Dispatcher) => {
66
66
  handleRemoteSoftMute(call),
67
67
  ];
68
68
 
69
- if (call.ringing) {
70
- // these events are only relevant when the call is ringing
71
- eventHandlers.push(registerRingingCallEventHandlers(call));
72
- }
73
-
74
69
  return () => {
75
70
  eventHandlers.forEach((unsubscribe) => unsubscribe());
76
71
  };
@@ -1616,6 +1616,12 @@ export interface CallReportResponse {
1616
1616
  * @interface CallRequest
1617
1617
  */
1618
1618
  export interface CallRequest {
1619
+ /**
1620
+ *
1621
+ * @type {string}
1622
+ * @memberof CallRequest
1623
+ */
1624
+ channel_cid?: string;
1619
1625
  /**
1620
1626
  *
1621
1627
  * @type {{ [key: string]: any; }}
@@ -1677,6 +1683,12 @@ export interface CallResponse {
1677
1683
  * @memberof CallResponse
1678
1684
  */
1679
1685
  captioning: boolean;
1686
+ /**
1687
+ *
1688
+ * @type {string}
1689
+ * @memberof CallResponse
1690
+ */
1691
+ channel_cid?: string;
1680
1692
  /**
1681
1693
  * The unique identifier for a call (<type>:<id>)
1682
1694
  * @type {string}
@@ -2252,6 +2264,12 @@ export interface CallSettingsRequest {
2252
2264
  * @memberof CallSettingsRequest
2253
2265
  */
2254
2266
  geofencing?: GeofenceSettingsRequest;
2267
+ /**
2268
+ *
2269
+ * @type {IngressSettingsRequest}
2270
+ * @memberof CallSettingsRequest
2271
+ */
2272
+ ingress?: IngressSettingsRequest;
2255
2273
  /**
2256
2274
  *
2257
2275
  * @type {LimitsSettingsRequest}
@@ -2337,6 +2355,12 @@ export interface CallSettingsResponse {
2337
2355
  * @memberof CallSettingsResponse
2338
2356
  */
2339
2357
  geofencing: GeofenceSettingsResponse;
2358
+ /**
2359
+ *
2360
+ * @type {IngressSettingsResponse}
2361
+ * @memberof CallSettingsResponse
2362
+ */
2363
+ ingress?: IngressSettingsResponse;
2340
2364
  /**
2341
2365
  *
2342
2366
  * @type {LimitsSettingsResponse}
@@ -2714,6 +2738,73 @@ export interface CallUpdatedEvent {
2714
2738
  */
2715
2739
  type: string;
2716
2740
  }
2741
+ /**
2742
+ * This event is sent when a user submits feedback for a call.
2743
+ * @export
2744
+ * @interface CallUserFeedbackSubmittedEvent
2745
+ */
2746
+ export interface CallUserFeedbackSubmittedEvent {
2747
+ /**
2748
+ *
2749
+ * @type {string}
2750
+ * @memberof CallUserFeedbackSubmittedEvent
2751
+ */
2752
+ call_cid: string;
2753
+ /**
2754
+ *
2755
+ * @type {string}
2756
+ * @memberof CallUserFeedbackSubmittedEvent
2757
+ */
2758
+ created_at: string;
2759
+ /**
2760
+ * Custom data provided by the user
2761
+ * @type {{ [key: string]: any; }}
2762
+ * @memberof CallUserFeedbackSubmittedEvent
2763
+ */
2764
+ custom?: { [key: string]: any };
2765
+ /**
2766
+ * The rating given by the user (1-5)
2767
+ * @type {number}
2768
+ * @memberof CallUserFeedbackSubmittedEvent
2769
+ */
2770
+ rating: number;
2771
+ /**
2772
+ * The reason provided by the user for the rating
2773
+ * @type {string}
2774
+ * @memberof CallUserFeedbackSubmittedEvent
2775
+ */
2776
+ reason?: string;
2777
+ /**
2778
+ *
2779
+ * @type {string}
2780
+ * @memberof CallUserFeedbackSubmittedEvent
2781
+ */
2782
+ sdk?: string;
2783
+ /**
2784
+ *
2785
+ * @type {string}
2786
+ * @memberof CallUserFeedbackSubmittedEvent
2787
+ */
2788
+ sdk_version?: string;
2789
+ /**
2790
+ * Call session ID
2791
+ * @type {string}
2792
+ * @memberof CallUserFeedbackSubmittedEvent
2793
+ */
2794
+ session_id: string;
2795
+ /**
2796
+ * The type of event, "call.user_feedback" in this case
2797
+ * @type {string}
2798
+ * @memberof CallUserFeedbackSubmittedEvent
2799
+ */
2800
+ type: string;
2801
+ /**
2802
+ *
2803
+ * @type {UserResponse}
2804
+ * @memberof CallUserFeedbackSubmittedEvent
2805
+ */
2806
+ user: UserResponse;
2807
+ }
2717
2808
  /**
2718
2809
  * This event is sent when a call member is muted
2719
2810
  * @export
@@ -4044,6 +4135,230 @@ export interface ICEServer {
4044
4135
  */
4045
4136
  username: string;
4046
4137
  }
4138
+ /**
4139
+ *
4140
+ * @export
4141
+ * @interface IngressAudioEncodingOptionsRequest
4142
+ */
4143
+ export interface IngressAudioEncodingOptionsRequest {
4144
+ /**
4145
+ *
4146
+ * @type {number}
4147
+ * @memberof IngressAudioEncodingOptionsRequest
4148
+ */
4149
+ bitrate: number;
4150
+ /**
4151
+ *
4152
+ * @type {number}
4153
+ * @memberof IngressAudioEncodingOptionsRequest
4154
+ */
4155
+ channels: IngressAudioEncodingOptionsRequestChannelsEnum;
4156
+ /**
4157
+ *
4158
+ * @type {boolean}
4159
+ * @memberof IngressAudioEncodingOptionsRequest
4160
+ */
4161
+ enable_dtx?: boolean;
4162
+ }
4163
+
4164
+ /**
4165
+ * @export
4166
+ */
4167
+ export const IngressAudioEncodingOptionsRequestChannelsEnum = {
4168
+ NUMBER_1: 1,
4169
+ NUMBER_2: 2,
4170
+ } as const;
4171
+ export type IngressAudioEncodingOptionsRequestChannelsEnum =
4172
+ (typeof IngressAudioEncodingOptionsRequestChannelsEnum)[keyof typeof IngressAudioEncodingOptionsRequestChannelsEnum];
4173
+
4174
+ /**
4175
+ *
4176
+ * @export
4177
+ * @interface IngressAudioEncodingResponse
4178
+ */
4179
+ export interface IngressAudioEncodingResponse {
4180
+ /**
4181
+ *
4182
+ * @type {number}
4183
+ * @memberof IngressAudioEncodingResponse
4184
+ */
4185
+ bitrate: number;
4186
+ /**
4187
+ *
4188
+ * @type {number}
4189
+ * @memberof IngressAudioEncodingResponse
4190
+ */
4191
+ channels: number;
4192
+ /**
4193
+ *
4194
+ * @type {boolean}
4195
+ * @memberof IngressAudioEncodingResponse
4196
+ */
4197
+ enable_dtx: boolean;
4198
+ }
4199
+ /**
4200
+ *
4201
+ * @export
4202
+ * @interface IngressSettingsRequest
4203
+ */
4204
+ export interface IngressSettingsRequest {
4205
+ /**
4206
+ *
4207
+ * @type {IngressAudioEncodingOptionsRequest}
4208
+ * @memberof IngressSettingsRequest
4209
+ */
4210
+ audio_encoding_options?: IngressAudioEncodingOptionsRequest;
4211
+ /**
4212
+ *
4213
+ * @type {boolean}
4214
+ * @memberof IngressSettingsRequest
4215
+ */
4216
+ enabled?: boolean;
4217
+ /**
4218
+ *
4219
+ * @type {{ [key: string]: IngressVideoEncodingOptionsRequest; }}
4220
+ * @memberof IngressSettingsRequest
4221
+ */
4222
+ video_encoding_options?: {
4223
+ [key: string]: IngressVideoEncodingOptionsRequest;
4224
+ };
4225
+ }
4226
+ /**
4227
+ *
4228
+ * @export
4229
+ * @interface IngressSettingsResponse
4230
+ */
4231
+ export interface IngressSettingsResponse {
4232
+ /**
4233
+ *
4234
+ * @type {IngressAudioEncodingResponse}
4235
+ * @memberof IngressSettingsResponse
4236
+ */
4237
+ audio_encoding_options?: IngressAudioEncodingResponse;
4238
+ /**
4239
+ *
4240
+ * @type {boolean}
4241
+ * @memberof IngressSettingsResponse
4242
+ */
4243
+ enabled: boolean;
4244
+ /**
4245
+ *
4246
+ * @type {{ [key: string]: IngressVideoEncodingResponse; }}
4247
+ * @memberof IngressSettingsResponse
4248
+ */
4249
+ video_encoding_options?: { [key: string]: IngressVideoEncodingResponse };
4250
+ }
4251
+ /**
4252
+ *
4253
+ * @export
4254
+ * @interface IngressVideoEncodingOptionsRequest
4255
+ */
4256
+ export interface IngressVideoEncodingOptionsRequest {
4257
+ /**
4258
+ *
4259
+ * @type {Array<IngressVideoLayerRequest>}
4260
+ * @memberof IngressVideoEncodingOptionsRequest
4261
+ */
4262
+ layers: Array<IngressVideoLayerRequest>;
4263
+ }
4264
+ /**
4265
+ *
4266
+ * @export
4267
+ * @interface IngressVideoEncodingResponse
4268
+ */
4269
+ export interface IngressVideoEncodingResponse {
4270
+ /**
4271
+ *
4272
+ * @type {Array<IngressVideoLayerResponse>}
4273
+ * @memberof IngressVideoEncodingResponse
4274
+ */
4275
+ layers: Array<IngressVideoLayerResponse>;
4276
+ }
4277
+ /**
4278
+ *
4279
+ * @export
4280
+ * @interface IngressVideoLayerRequest
4281
+ */
4282
+ export interface IngressVideoLayerRequest {
4283
+ /**
4284
+ *
4285
+ * @type {number}
4286
+ * @memberof IngressVideoLayerRequest
4287
+ */
4288
+ bitrate: number;
4289
+ /**
4290
+ *
4291
+ * @type {string}
4292
+ * @memberof IngressVideoLayerRequest
4293
+ */
4294
+ codec: IngressVideoLayerRequestCodecEnum;
4295
+ /**
4296
+ *
4297
+ * @type {number}
4298
+ * @memberof IngressVideoLayerRequest
4299
+ */
4300
+ frame_rate_limit: number;
4301
+ /**
4302
+ *
4303
+ * @type {number}
4304
+ * @memberof IngressVideoLayerRequest
4305
+ */
4306
+ max_dimension: number;
4307
+ /**
4308
+ *
4309
+ * @type {number}
4310
+ * @memberof IngressVideoLayerRequest
4311
+ */
4312
+ min_dimension: number;
4313
+ }
4314
+
4315
+ /**
4316
+ * @export
4317
+ */
4318
+ export const IngressVideoLayerRequestCodecEnum = {
4319
+ H264: 'h264',
4320
+ VP8: 'vp8',
4321
+ } as const;
4322
+ export type IngressVideoLayerRequestCodecEnum =
4323
+ (typeof IngressVideoLayerRequestCodecEnum)[keyof typeof IngressVideoLayerRequestCodecEnum];
4324
+
4325
+ /**
4326
+ *
4327
+ * @export
4328
+ * @interface IngressVideoLayerResponse
4329
+ */
4330
+ export interface IngressVideoLayerResponse {
4331
+ /**
4332
+ *
4333
+ * @type {number}
4334
+ * @memberof IngressVideoLayerResponse
4335
+ */
4336
+ bitrate: number;
4337
+ /**
4338
+ *
4339
+ * @type {string}
4340
+ * @memberof IngressVideoLayerResponse
4341
+ */
4342
+ codec: string;
4343
+ /**
4344
+ *
4345
+ * @type {number}
4346
+ * @memberof IngressVideoLayerResponse
4347
+ */
4348
+ frame_rate_limit: number;
4349
+ /**
4350
+ *
4351
+ * @type {number}
4352
+ * @memberof IngressVideoLayerResponse
4353
+ */
4354
+ max_dimension: number;
4355
+ /**
4356
+ *
4357
+ * @type {number}
4358
+ * @memberof IngressVideoLayerResponse
4359
+ */
4360
+ min_dimension: number;
4361
+ }
4047
4362
  /**
4048
4363
  *
4049
4364
  * @export
@@ -4154,6 +4469,75 @@ export interface JoinCallResponse {
4154
4469
  */
4155
4470
  stats_options: StatsOptions;
4156
4471
  }
4472
+ /**
4473
+ * KickUserRequest is the payload for kicking a user from a call. Optionally block the user as well.
4474
+ * @export
4475
+ * @interface KickUserRequest
4476
+ */
4477
+ export interface KickUserRequest {
4478
+ /**
4479
+ * If true, also block the user from rejoining the call
4480
+ * @type {boolean}
4481
+ * @memberof KickUserRequest
4482
+ */
4483
+ block?: boolean;
4484
+ /**
4485
+ * The user to kick
4486
+ * @type {string}
4487
+ * @memberof KickUserRequest
4488
+ */
4489
+ user_id: string;
4490
+ }
4491
+ /**
4492
+ * KickUserResponse is the payload for kicking a user from a call.
4493
+ * @export
4494
+ * @interface KickUserResponse
4495
+ */
4496
+ export interface KickUserResponse {
4497
+ /**
4498
+ * Duration of the request in milliseconds
4499
+ * @type {string}
4500
+ * @memberof KickUserResponse
4501
+ */
4502
+ duration: string;
4503
+ }
4504
+ /**
4505
+ * This event is sent to call participants to notify when a user is kicked from a call. Clients should make the kicked user leave the call UI.
4506
+ * @export
4507
+ * @interface KickedUserEvent
4508
+ */
4509
+ export interface KickedUserEvent {
4510
+ /**
4511
+ *
4512
+ * @type {string}
4513
+ * @memberof KickedUserEvent
4514
+ */
4515
+ call_cid: string;
4516
+ /**
4517
+ *
4518
+ * @type {string}
4519
+ * @memberof KickedUserEvent
4520
+ */
4521
+ created_at: string;
4522
+ /**
4523
+ *
4524
+ * @type {UserResponse}
4525
+ * @memberof KickedUserEvent
4526
+ */
4527
+ kicked_by_user?: UserResponse;
4528
+ /**
4529
+ * The type of event: "call.kicked_user" in this case
4530
+ * @type {string}
4531
+ * @memberof KickedUserEvent
4532
+ */
4533
+ type: string;
4534
+ /**
4535
+ *
4536
+ * @type {UserResponse}
4537
+ * @memberof KickedUserEvent
4538
+ */
4539
+ user: UserResponse;
4540
+ }
4157
4541
  /**
4158
4542
  *
4159
4543
  * @export
@@ -4223,6 +4607,18 @@ export interface LimitsSettingsRequest {
4223
4607
  * @memberof LimitsSettingsRequest
4224
4608
  */
4225
4609
  max_participants?: number;
4610
+ /**
4611
+ *
4612
+ * @type {boolean}
4613
+ * @memberof LimitsSettingsRequest
4614
+ */
4615
+ max_participants_exclude_owner?: boolean;
4616
+ /**
4617
+ *
4618
+ * @type {Array<string>}
4619
+ * @memberof LimitsSettingsRequest
4620
+ */
4621
+ max_participants_exclude_roles?: Array<string>;
4226
4622
  }
4227
4623
  /**
4228
4624
  *
@@ -4242,6 +4638,18 @@ export interface LimitsSettingsResponse {
4242
4638
  * @memberof LimitsSettingsResponse
4243
4639
  */
4244
4640
  max_participants?: number;
4641
+ /**
4642
+ *
4643
+ * @type {boolean}
4644
+ * @memberof LimitsSettingsResponse
4645
+ */
4646
+ max_participants_exclude_owner?: boolean;
4647
+ /**
4648
+ *
4649
+ * @type {Array<string>}
4650
+ * @memberof LimitsSettingsResponse
4651
+ */
4652
+ max_participants_exclude_roles: Array<string>;
4245
4653
  }
4246
4654
  /**
4247
4655
  * List devices response
@@ -4513,6 +4921,7 @@ export const OwnCapability = {
4513
4921
  JOIN_BACKSTAGE: 'join-backstage',
4514
4922
  JOIN_CALL: 'join-call',
4515
4923
  JOIN_ENDED_CALL: 'join-ended-call',
4924
+ KICK_USER: 'kick-user',
4516
4925
  MUTE_USERS: 'mute-users',
4517
4926
  PIN_FOR_EVERYONE: 'pin-for-everyone',
4518
4927
  READ_CALL: 'read-call',
@@ -4543,6 +4952,12 @@ export type OwnCapability = (typeof OwnCapability)[keyof typeof OwnCapability];
4543
4952
  * @interface OwnUserResponse
4544
4953
  */
4545
4954
  export interface OwnUserResponse {
4955
+ /**
4956
+ *
4957
+ * @type {number}
4958
+ * @memberof OwnUserResponse
4959
+ */
4960
+ avg_response_time?: number;
4546
4961
  /**
4547
4962
  *
4548
4963
  * @type {Array<string>}
@@ -7056,6 +7471,12 @@ export interface UserRequest {
7056
7471
  * @interface UserResponse
7057
7472
  */
7058
7473
  export interface UserResponse {
7474
+ /**
7475
+ *
7476
+ * @type {number}
7477
+ * @memberof UserResponse
7478
+ */
7479
+ avg_response_time?: number;
7059
7480
  /**
7060
7481
  *
7061
7482
  * @type {Array<string>}
@@ -7153,6 +7574,12 @@ export interface UserResponse {
7153
7574
  * @interface UserResponsePrivacyFields
7154
7575
  */
7155
7576
  export interface UserResponsePrivacyFields {
7577
+ /**
7578
+ *
7579
+ * @type {number}
7580
+ * @memberof UserResponsePrivacyFields
7581
+ */
7582
+ avg_response_time?: number;
7156
7583
  /**
7157
7584
  *
7158
7585
  * @type {Array<string>}
@@ -7319,6 +7746,7 @@ export type VideoEvent =
7319
7746
  | ({
7320
7747
  type: 'call.hls_broadcasting_stopped';
7321
7748
  } & CallHLSBroadcastingStoppedEvent)
7749
+ | ({ type: 'call.kicked_user' } & KickedUserEvent)
7322
7750
  | ({ type: 'call.live_started' } & CallLiveStartedEvent)
7323
7751
  | ({ type: 'call.member_added' } & CallMemberAddedEvent)
7324
7752
  | ({ type: 'call.member_removed' } & CallMemberRemovedEvent)
@@ -7360,6 +7788,7 @@ export type VideoEvent =
7360
7788
  | ({ type: 'call.transcription_stopped' } & CallTranscriptionStoppedEvent)
7361
7789
  | ({ type: 'call.unblocked_user' } & UnblockedUserEvent)
7362
7790
  | ({ type: 'call.updated' } & CallUpdatedEvent)
7791
+ | ({ type: 'call.user_feedback_submitted' } & CallUserFeedbackSubmittedEvent)
7363
7792
  | ({ type: 'call.user_muted' } & CallUserMutedEvent)
7364
7793
  | ({ type: 'connection.error' } & ConnectionErrorEvent)
7365
7794
  | ({ type: 'connection.ok' } & ConnectedEvent)
@@ -425,6 +425,7 @@ export class CallState {
425
425
  this.eventHandlers = {
426
426
  // these events are not updating the call state:
427
427
  'call.frame_recording_ready': undefined,
428
+ 'call.kicked_user': undefined,
428
429
  'call.moderation_blur': undefined,
429
430
  'call.moderation_warning': undefined,
430
431
  'call.permission_request': undefined,
@@ -434,6 +435,7 @@ export class CallState {
434
435
  'call.rtmp_broadcast_stopped': undefined,
435
436
  'call.stats_report_ready': undefined,
436
437
  'call.transcription_ready': undefined,
438
+ 'call.user_feedback_submitted': undefined,
437
439
  'call.user_muted': undefined,
438
440
  'connection.error': undefined,
439
441
  'connection.ok': undefined,