@rongcloud/plugin-call 5.2.3-enterprise.1 → 5.2.4
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.
- package/dist/index.d.ts +785 -797
- package/dist/index.esm.js +602 -558
- package/dist/index.umd.js +5 -6
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConversationType,
|
|
1
|
+
import { ILogger, ConversationType, RTCJoinType, LogLevel, LogL, IPushConfig as IPushConfig$1, IReceivedMessage, EventEmitter, RTCPluginContext, IRuntime, BasicLogger, IRTCJoinedInfo, IPluginGenerator } from '@rongcloud/engine';
|
|
2
2
|
import { RCRTCClient, IMicphoneAudioProfile, RCTrack, RCRTCCode, IRCRTCStateReport, RCRTCPingResult, RCLocalTrack, ICameraVideoProfile } from '@rongcloud/plugin-rtc';
|
|
3
3
|
export { IRCRTCStateReport } from '@rongcloud/plugin-rtc';
|
|
4
4
|
|
|
@@ -84,7 +84,11 @@ declare enum RCCallErrorCode {
|
|
|
84
84
|
/**
|
|
85
85
|
* 不在room中禁用音视频
|
|
86
86
|
*/
|
|
87
|
-
NOT_IN_ROOM_ERROR = 53312
|
|
87
|
+
NOT_IN_ROOM_ERROR = 53312,
|
|
88
|
+
/**
|
|
89
|
+
* 参数错误
|
|
90
|
+
*/
|
|
91
|
+
PARAM_ERROR = 53313
|
|
88
92
|
}
|
|
89
93
|
|
|
90
94
|
/**
|
|
@@ -280,1248 +284,1224 @@ declare enum RCCallUserState {
|
|
|
280
284
|
KEEPING = 2
|
|
281
285
|
}
|
|
282
286
|
|
|
283
|
-
|
|
287
|
+
/**
|
|
288
|
+
* 产生session的场景
|
|
289
|
+
*/
|
|
290
|
+
declare enum ProduceTypes {
|
|
284
291
|
/**
|
|
285
|
-
*
|
|
292
|
+
* 主叫
|
|
286
293
|
*/
|
|
287
|
-
|
|
294
|
+
CALLER = 1,
|
|
288
295
|
/**
|
|
289
|
-
*
|
|
296
|
+
* 被叫
|
|
290
297
|
*/
|
|
291
|
-
|
|
298
|
+
CALLEE = 2
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
declare class RCCallSession {
|
|
292
302
|
/**
|
|
293
|
-
*
|
|
303
|
+
* 状态机实例
|
|
294
304
|
*/
|
|
295
|
-
|
|
305
|
+
private _stateMachine;
|
|
296
306
|
/**
|
|
297
|
-
*
|
|
307
|
+
* rtc实例
|
|
298
308
|
*/
|
|
299
|
-
|
|
309
|
+
private readonly _rtcClient;
|
|
310
|
+
private readonly _logger;
|
|
300
311
|
/**
|
|
301
|
-
*
|
|
312
|
+
* session的其它选项
|
|
302
313
|
*/
|
|
303
|
-
|
|
314
|
+
private _options;
|
|
304
315
|
/**
|
|
305
|
-
*
|
|
316
|
+
* RTC房间实例
|
|
306
317
|
*/
|
|
307
|
-
|
|
318
|
+
private _room;
|
|
308
319
|
/**
|
|
309
|
-
*
|
|
320
|
+
* 用户传进来的 对session的监听 (要在RCCallClient的_onInvite里判断,要求执行完onSession必须注册session的监听,所以这里是public)
|
|
310
321
|
*/
|
|
311
|
-
|
|
322
|
+
_listener: ISessionListener | null;
|
|
312
323
|
/**
|
|
313
|
-
*
|
|
324
|
+
* RTC订阅、发布重试的次数
|
|
314
325
|
*/
|
|
315
|
-
|
|
316
|
-
}
|
|
317
|
-
interface IUserProfile {
|
|
326
|
+
private readonly _RETRYCOUNT;
|
|
318
327
|
/**
|
|
319
|
-
*
|
|
328
|
+
* 加入房间定时器
|
|
320
329
|
*/
|
|
321
|
-
|
|
330
|
+
private joinRoomTimer;
|
|
331
|
+
constructor(
|
|
322
332
|
/**
|
|
323
|
-
*
|
|
333
|
+
* 状态机实例
|
|
324
334
|
*/
|
|
325
|
-
|
|
335
|
+
_stateMachine: RCCallStateMachine,
|
|
326
336
|
/**
|
|
327
|
-
*
|
|
337
|
+
* rtc实例
|
|
328
338
|
*/
|
|
329
|
-
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* 通话发起者信息
|
|
333
|
-
*/
|
|
334
|
-
interface ISenderInfo extends IUserProfile {
|
|
339
|
+
_rtcClient: RCRTCClient, _logger: ILogger,
|
|
335
340
|
/**
|
|
336
|
-
*
|
|
341
|
+
* session的其它选项
|
|
337
342
|
*/
|
|
338
|
-
|
|
339
|
-
}
|
|
340
|
-
interface IUserData extends IUserProfile {
|
|
343
|
+
_options?: IRCCallSessionOptions);
|
|
341
344
|
/**
|
|
342
|
-
*
|
|
345
|
+
* 加入房间
|
|
343
346
|
*/
|
|
344
|
-
|
|
347
|
+
private _joinRoom;
|
|
345
348
|
/**
|
|
346
|
-
*
|
|
349
|
+
* (初始化房间的时候) 订阅远程的流,把远程的流抛给用户
|
|
347
350
|
*/
|
|
348
|
-
|
|
351
|
+
private _subscribeInRoomRemoteTrack;
|
|
349
352
|
/**
|
|
350
|
-
*
|
|
353
|
+
* 可以重试的订阅
|
|
354
|
+
* @param params.tracks tracks
|
|
355
|
+
* @param params.isAllowSubscribeRetry 是否允许重试
|
|
356
|
+
* @param params.count 允许重试的次数
|
|
351
357
|
*/
|
|
352
|
-
|
|
358
|
+
private _subscribeRetry;
|
|
353
359
|
/**
|
|
354
|
-
*
|
|
360
|
+
* 发布本地资源的逻辑
|
|
361
|
+
*
|
|
355
362
|
*/
|
|
356
|
-
|
|
363
|
+
private _publish;
|
|
357
364
|
/**
|
|
358
|
-
*
|
|
359
|
-
*
|
|
365
|
+
* 可以重试的发布
|
|
366
|
+
* @param params.tracks tracks
|
|
367
|
+
* @param params.isAllowPublishRetry 是否允许重试
|
|
368
|
+
* @param params.count 允许重试的次数
|
|
360
369
|
*/
|
|
361
|
-
|
|
362
|
-
}
|
|
363
|
-
interface IUserStateChangeInfo {
|
|
370
|
+
private _publishRetry;
|
|
364
371
|
/**
|
|
365
|
-
*
|
|
372
|
+
* 退出房间
|
|
366
373
|
*/
|
|
367
|
-
|
|
374
|
+
private _leaveRoom;
|
|
368
375
|
/**
|
|
369
|
-
*
|
|
376
|
+
* 出现异常后要处理的逻辑,
|
|
377
|
+
* @param endReason 原因
|
|
370
378
|
*/
|
|
371
|
-
|
|
372
|
-
}
|
|
373
|
-
interface IStateChangeInfo {
|
|
379
|
+
private _exceptionClose;
|
|
374
380
|
/**
|
|
375
|
-
*
|
|
381
|
+
* 用户调用的,注册session上的监听
|
|
376
382
|
*/
|
|
377
|
-
|
|
383
|
+
registerSessionListener(listener: ISessionListener): void;
|
|
378
384
|
/**
|
|
379
|
-
*
|
|
385
|
+
* 调RTC API 获得本地流
|
|
380
386
|
*/
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
declare type IInvitedUsers = ISenderInfo;
|
|
384
|
-
interface IMemberModifyInfo {
|
|
387
|
+
private _getLocalTrackCore;
|
|
388
|
+
private _getLocalTrack;
|
|
385
389
|
/**
|
|
386
|
-
*
|
|
390
|
+
* 通话中更换音频设备
|
|
387
391
|
*/
|
|
388
|
-
|
|
392
|
+
changeAudioDevice(audioConstraints?: IMicphoneAudioProfile): Promise<{
|
|
393
|
+
code: RCCallErrorCode;
|
|
394
|
+
}>;
|
|
389
395
|
/**
|
|
390
|
-
*
|
|
396
|
+
* 群呼叫中继续邀请
|
|
397
|
+
* @param userIds 被邀请用户 ID 列表
|
|
398
|
+
* @param options.extra 消息的扩展信息
|
|
399
|
+
* @deprecated 5.1.2 废弃 options.pushTitle 通知的标题
|
|
400
|
+
* @deprecated 5.1.2 废弃 options.pushContent 通知内容
|
|
391
401
|
*/
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
402
|
+
invite(userIds: string[], options?: IInviteOptions): Promise<{
|
|
403
|
+
code: RCCallErrorCode;
|
|
404
|
+
}>;
|
|
395
405
|
/**
|
|
396
|
-
*
|
|
406
|
+
* 同意接听
|
|
397
407
|
*/
|
|
398
|
-
|
|
408
|
+
accept(constraints?: IMediaStreamConstraints): Promise<{
|
|
409
|
+
code: RCCallErrorCode;
|
|
410
|
+
}>;
|
|
399
411
|
/**
|
|
400
|
-
*
|
|
412
|
+
* 挂断
|
|
401
413
|
*/
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
414
|
+
hungup(): Promise<{
|
|
415
|
+
code: RCCallErrorCode;
|
|
416
|
+
}>;
|
|
405
417
|
/**
|
|
406
|
-
*
|
|
407
|
-
*
|
|
418
|
+
* 通话媒体变更
|
|
419
|
+
* @param mediaType RCCallMediaType.AUDIO 改为音频通话 | RCCallMediaType.AUDIO_VIDEO 改为音视频通话
|
|
408
420
|
*/
|
|
409
|
-
|
|
421
|
+
_changeMediaType(mediaType: RCCallMediaType): Promise<{
|
|
422
|
+
code: RCCallErrorCode;
|
|
423
|
+
}>;
|
|
410
424
|
/**
|
|
411
|
-
*
|
|
412
|
-
* @param info
|
|
425
|
+
* 获得本地视频
|
|
413
426
|
*/
|
|
414
|
-
|
|
427
|
+
private _getLocalVideoTracks;
|
|
415
428
|
/**
|
|
416
|
-
*
|
|
417
|
-
* @param sender 发起用户信息
|
|
429
|
+
* 获得本地音频
|
|
418
430
|
*/
|
|
419
|
-
|
|
431
|
+
private _getLocalAudioTracks;
|
|
420
432
|
/**
|
|
421
|
-
*
|
|
422
|
-
* @param sender 发起用户信息
|
|
433
|
+
* 把通话的MediaType升级到音视频
|
|
423
434
|
*/
|
|
424
|
-
|
|
435
|
+
private _setMediaTypeToAudioAndVideo;
|
|
425
436
|
/**
|
|
426
|
-
*
|
|
437
|
+
* 把通话的MediaType降级到音频
|
|
438
|
+
* @param isSendMesssage 是否需要发消息, 默认发消息
|
|
427
439
|
*/
|
|
428
|
-
|
|
440
|
+
private _setMediaTypeToAudio;
|
|
429
441
|
/**
|
|
430
|
-
*
|
|
431
|
-
*
|
|
442
|
+
* 通话降级,目前需求只做通话降级,音视频可以降级为音频,音频不能升到音视频, 发消息成功才算降级成功
|
|
443
|
+
*
|
|
432
444
|
*/
|
|
433
|
-
|
|
445
|
+
descendAbility(): Promise<{
|
|
446
|
+
code: RCCallErrorCode;
|
|
447
|
+
}>;
|
|
434
448
|
/**
|
|
435
|
-
*
|
|
436
|
-
* @param sender 发起用户信息
|
|
449
|
+
* 禁用视频track
|
|
437
450
|
*/
|
|
438
|
-
|
|
451
|
+
disableVideoTrack(): Promise<{
|
|
452
|
+
code: RCCallErrorCode;
|
|
453
|
+
}>;
|
|
439
454
|
/**
|
|
440
|
-
*
|
|
441
|
-
* @param ifCross 是否为跨appkey通信
|
|
455
|
+
* 启用视频track
|
|
442
456
|
*/
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
* 发送邀请时的可选项
|
|
447
|
-
*/
|
|
448
|
-
interface IInviteOptions {
|
|
457
|
+
enableVideoTrack(): Promise<{
|
|
458
|
+
code: RCCallErrorCode;
|
|
459
|
+
}>;
|
|
449
460
|
/**
|
|
450
|
-
*
|
|
461
|
+
* 禁用音频track
|
|
451
462
|
*/
|
|
452
|
-
|
|
463
|
+
disableAudioTrack(): Promise<{
|
|
464
|
+
code: RCCallErrorCode;
|
|
465
|
+
} | undefined>;
|
|
453
466
|
/**
|
|
454
|
-
*
|
|
467
|
+
* 启用音频track
|
|
455
468
|
*/
|
|
456
|
-
|
|
469
|
+
enableAudioTrack(): Promise<{
|
|
470
|
+
code: RCCallErrorCode;
|
|
471
|
+
} | undefined>;
|
|
457
472
|
/**
|
|
458
|
-
*
|
|
473
|
+
* 销毁本地流
|
|
459
474
|
*/
|
|
460
|
-
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* 注释
|
|
465
|
-
* TODO
|
|
466
|
-
*/
|
|
467
|
-
declare enum MsgCallStatus {
|
|
468
|
-
OUTGOING = 1,
|
|
469
|
-
INCOMING = 2,
|
|
470
|
-
RINGING = 3,
|
|
471
|
-
CONNECTED = 4,
|
|
472
|
-
IDLE = 5,
|
|
473
|
-
ACCEPTED = 6
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
interface IOfflineRecord {
|
|
477
|
-
channelId: string;
|
|
478
|
-
conversationType: ConversationType;
|
|
479
|
-
targetId: string;
|
|
480
|
-
mediaType: RCCallMediaType;
|
|
481
|
-
callId: string;
|
|
482
|
-
inviterId: string;
|
|
483
|
-
endReason: RCCallEndReason;
|
|
484
|
-
beginTimestamp: number;
|
|
485
|
-
endTimestamp: number;
|
|
486
|
-
duration: number;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
interface ISendBaseOptions {
|
|
475
|
+
private _destroyTracks;
|
|
490
476
|
/**
|
|
491
|
-
*
|
|
477
|
+
* 向外抛出本地流
|
|
492
478
|
*/
|
|
493
|
-
|
|
479
|
+
private _notifyTrackReady;
|
|
494
480
|
/**
|
|
495
|
-
*
|
|
481
|
+
* 房间上注册事件
|
|
496
482
|
*/
|
|
497
|
-
|
|
483
|
+
private _registerRoomEventListener;
|
|
498
484
|
/**
|
|
499
|
-
*
|
|
485
|
+
* 注册房间质量数据监听器
|
|
500
486
|
*/
|
|
501
|
-
|
|
502
|
-
}
|
|
503
|
-
interface IExistedUserPofiles {
|
|
487
|
+
private _registerReportListener;
|
|
504
488
|
/**
|
|
505
|
-
*
|
|
489
|
+
* 通话唯一标识
|
|
506
490
|
*/
|
|
507
|
-
|
|
491
|
+
getSessionId(): string;
|
|
508
492
|
/**
|
|
509
|
-
*
|
|
493
|
+
* 获取房间当前会话 Id,当房间内已无成员时房间会回收,重新加入时 sessionId 将更新,(用户录制资源用的)
|
|
510
494
|
*/
|
|
511
|
-
|
|
495
|
+
getRTCSessionId(): string | null;
|
|
512
496
|
/**
|
|
513
|
-
*
|
|
497
|
+
* 目标 ID,单呼对方人员 Id, 群呼群组 Id
|
|
514
498
|
*/
|
|
515
|
-
|
|
499
|
+
getTargetId(): string;
|
|
516
500
|
/**
|
|
517
|
-
*
|
|
501
|
+
* 获取会话类型
|
|
518
502
|
*/
|
|
519
|
-
|
|
520
|
-
}
|
|
521
|
-
interface IMsgListener {
|
|
522
|
-
onInvite?: (msg: IReceivedMessage) => void;
|
|
523
|
-
onRinging?: (msg: IReceivedMessage) => void;
|
|
524
|
-
onAccept?: (msg: IReceivedMessage) => void;
|
|
525
|
-
onMemberModify?: (msg: IReceivedMessage) => void;
|
|
526
|
-
onMediaModify?: (msg: IReceivedMessage) => void;
|
|
527
|
-
onHungup?: (msg: IReceivedMessage) => void;
|
|
528
|
-
sendAccept?: (info: {
|
|
529
|
-
callId: string;
|
|
530
|
-
}) => void;
|
|
531
|
-
onOfflineRecord?: (record: IOfflineRecord) => void;
|
|
532
|
-
}
|
|
533
|
-
interface IInviteMsgOptions extends ISendBaseOptions {
|
|
503
|
+
getConversationType(): ConversationType;
|
|
534
504
|
/**
|
|
535
|
-
*
|
|
505
|
+
* 组织 ID
|
|
536
506
|
*/
|
|
537
|
-
|
|
507
|
+
getChannelId(): string;
|
|
538
508
|
/**
|
|
539
|
-
*
|
|
509
|
+
* 房间人员列表,不包含本端信息
|
|
540
510
|
*/
|
|
541
|
-
|
|
511
|
+
getRemoteUsers(): IUserData[];
|
|
542
512
|
/**
|
|
543
|
-
|
|
513
|
+
* 房间人员列表,不包含本端信息
|
|
514
|
+
*/
|
|
515
|
+
getUsers(): IUserData[];
|
|
516
|
+
/**
|
|
517
|
+
* 获取人员状态
|
|
544
518
|
*/
|
|
545
|
-
|
|
519
|
+
getUserState(userId: string): RCCallUserState;
|
|
546
520
|
/**
|
|
547
|
-
*
|
|
521
|
+
* 获取session状态
|
|
548
522
|
*/
|
|
549
|
-
|
|
523
|
+
getState(): RCCallSessionState;
|
|
550
524
|
/**
|
|
551
|
-
*
|
|
525
|
+
* 获得会话发起者id
|
|
552
526
|
*/
|
|
553
|
-
|
|
527
|
+
getCallerId(): string;
|
|
528
|
+
/**
|
|
529
|
+
* 获得mediaType
|
|
530
|
+
*/
|
|
531
|
+
getMediaType(): RCCallMediaType;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
interface ISender {
|
|
535
|
+
userId: string;
|
|
554
536
|
/**
|
|
555
|
-
*
|
|
537
|
+
* 用户名
|
|
556
538
|
*/
|
|
557
|
-
|
|
539
|
+
name?: string;
|
|
558
540
|
/**
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
541
|
+
* 用户头像地址
|
|
542
|
+
*/
|
|
543
|
+
portraitUri?: string;
|
|
544
|
+
/**
|
|
545
|
+
* user info 中附加信息
|
|
546
|
+
*/
|
|
547
|
+
extra?: string;
|
|
562
548
|
}
|
|
563
|
-
interface
|
|
549
|
+
interface IMuteUser extends ISender {
|
|
564
550
|
/**
|
|
565
|
-
*
|
|
551
|
+
* 是否禁用
|
|
566
552
|
*/
|
|
567
|
-
|
|
553
|
+
muted: boolean;
|
|
568
554
|
/**
|
|
569
|
-
*
|
|
555
|
+
* track类型
|
|
570
556
|
*/
|
|
571
|
-
|
|
557
|
+
kind: string;
|
|
572
558
|
/**
|
|
573
|
-
*
|
|
559
|
+
* trackId
|
|
574
560
|
*/
|
|
575
|
-
|
|
561
|
+
trackId: string;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* CallLib 初始化参数
|
|
565
|
+
*/
|
|
566
|
+
interface IRCCallInitOptions {
|
|
576
567
|
/**
|
|
577
|
-
*
|
|
568
|
+
* RTC实例
|
|
578
569
|
*/
|
|
579
|
-
|
|
570
|
+
rtcClient: RCRTCClient;
|
|
580
571
|
/**
|
|
581
|
-
*
|
|
572
|
+
* 收到邀请后,产生新的session
|
|
582
573
|
*/
|
|
583
|
-
|
|
574
|
+
onSession: (session: RCCallSession, extra?: string) => void;
|
|
584
575
|
/**
|
|
585
|
-
*
|
|
576
|
+
* session已关闭
|
|
586
577
|
*/
|
|
587
|
-
|
|
578
|
+
onSessionClose: (session: RCCallSession, summary?: IEndSummary) => void;
|
|
588
579
|
/**
|
|
589
|
-
*
|
|
580
|
+
* 离线期间收到的呼叫记录
|
|
581
|
+
* @param record
|
|
582
|
+
* @returns
|
|
590
583
|
*/
|
|
591
|
-
|
|
584
|
+
onOfflineRecord?: (record: IOfflineRecord) => void;
|
|
592
585
|
/**
|
|
593
|
-
*
|
|
586
|
+
* 是否允许接听新呼叫,当前正在通话,如果收到新的邀请,是直接挂断,还是允许选择, 默认值false,直接挂断新的session
|
|
587
|
+
*
|
|
588
|
+
* 暂不对外暴露
|
|
594
589
|
*/
|
|
595
|
-
pushTitle?: string;
|
|
596
590
|
/**
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
}
|
|
601
|
-
interface IRingingMsgOptions extends ISendBaseOptions {
|
|
591
|
+
* 是否允许订阅重试, 默认为false
|
|
592
|
+
*/
|
|
593
|
+
isAllowSubscribeRetry?: boolean;
|
|
602
594
|
/**
|
|
603
|
-
*
|
|
595
|
+
* 是否允许发布重试, 默认为false
|
|
604
596
|
*/
|
|
605
|
-
|
|
597
|
+
isAllowPublishRetry?: boolean;
|
|
606
598
|
/**
|
|
607
|
-
*
|
|
599
|
+
* 禁用视频时关摄像头, 默认false
|
|
608
600
|
*/
|
|
609
|
-
|
|
610
|
-
}
|
|
611
|
-
interface IAcceptMsgOptions extends ISendBaseOptions {
|
|
601
|
+
isOffCameraWhenVideoDisable?: boolean;
|
|
612
602
|
/**
|
|
613
|
-
*
|
|
603
|
+
* RTC 房间加入类型
|
|
614
604
|
*/
|
|
615
|
-
|
|
605
|
+
joinType?: RTCJoinType;
|
|
616
606
|
/**
|
|
617
|
-
*
|
|
607
|
+
* 允许降级获得流,获得音视频不成功 ,降级获得音频
|
|
618
608
|
*/
|
|
619
|
-
|
|
609
|
+
isAllowDemotionGetStream?: boolean;
|
|
620
610
|
/**
|
|
621
|
-
*
|
|
611
|
+
* 该参数已废弃,请使用 `logOutputLevel` 替代
|
|
612
|
+
* @deprecated - version 5.2.2
|
|
622
613
|
*/
|
|
623
|
-
|
|
624
|
-
}
|
|
625
|
-
interface IHungupMsgOptions extends ISendBaseOptions {
|
|
614
|
+
logLevel?: LogLevel;
|
|
626
615
|
/**
|
|
627
|
-
*
|
|
616
|
+
* 日志输出等级
|
|
617
|
+
* @since version 5.2.2
|
|
628
618
|
*/
|
|
629
|
-
|
|
619
|
+
logOutputLevel?: LogL.DEBUG | LogL.INFO | LogL.WARN | LogL.ERROR;
|
|
630
620
|
/**
|
|
631
|
-
*
|
|
621
|
+
* 该参数已废弃
|
|
622
|
+
* @deprecated - version 5.2.0
|
|
632
623
|
*/
|
|
633
|
-
|
|
624
|
+
logStdout?: (logLevel: LogLevel, content: string) => void;
|
|
634
625
|
/**
|
|
635
|
-
*
|
|
626
|
+
* 语言设置 (推送), 不传默认为中文
|
|
636
627
|
*/
|
|
637
|
-
|
|
628
|
+
lang?: RCCallLanguage;
|
|
629
|
+
}
|
|
630
|
+
declare type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
|
|
631
|
+
/**
|
|
632
|
+
* 呼叫、挂断推送信息
|
|
633
|
+
*/
|
|
634
|
+
declare type IPushConfig = Merge<IPushConfig$1, {
|
|
635
|
+
pushData?: string;
|
|
636
|
+
}>;
|
|
637
|
+
/**
|
|
638
|
+
* session上的监听
|
|
639
|
+
*/
|
|
640
|
+
interface ISessionListener {
|
|
638
641
|
/**
|
|
639
|
-
*
|
|
642
|
+
* 当对方已响铃
|
|
640
643
|
*/
|
|
641
|
-
|
|
644
|
+
onRinging: (sender: ISender, session: RCCallSession) => void;
|
|
642
645
|
/**
|
|
643
|
-
*
|
|
646
|
+
* 当对方已同意
|
|
644
647
|
*/
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
interface IMediaModifyMsgOptions extends ISendBaseOptions {
|
|
648
|
+
onAccept: (sender: ISender, session: RCCallSession) => void;
|
|
648
649
|
/**
|
|
649
|
-
*
|
|
650
|
+
* 当对方已挂断
|
|
650
651
|
*/
|
|
651
|
-
|
|
652
|
+
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => void;
|
|
652
653
|
/**
|
|
653
|
-
*
|
|
654
|
+
* 群组通话,人员改变
|
|
654
655
|
*/
|
|
655
|
-
|
|
656
|
+
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => void;
|
|
656
657
|
/**
|
|
657
|
-
*
|
|
658
|
+
* 通话降级
|
|
658
659
|
*/
|
|
659
|
-
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
declare type MsgListenerKeys = keyof IMsgListener;
|
|
663
|
-
/**
|
|
664
|
-
* 消息接收处理: 在线消息、离线消息
|
|
665
|
-
* 发送消息处理: 发送不同类型消息封装
|
|
666
|
-
*/
|
|
667
|
-
declare class CallMessageHandler extends EventEmitter {
|
|
668
|
-
private readonly _context;
|
|
669
|
-
private readonly _runtime;
|
|
670
|
-
private readonly _logger;
|
|
660
|
+
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => void;
|
|
671
661
|
/**
|
|
672
|
-
*
|
|
662
|
+
* 当接到流
|
|
673
663
|
*/
|
|
674
|
-
|
|
675
|
-
private readonly _getStateMachine;
|
|
676
|
-
private _watchers;
|
|
677
|
-
private _userInfo;
|
|
678
|
-
private _msgBufferList;
|
|
679
|
-
private _hadHandleMsgTimer;
|
|
680
|
-
private _offlineRecorder;
|
|
681
|
-
private _deviceId;
|
|
682
|
-
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger,
|
|
664
|
+
onTrackReady: (track: RCTrack, session?: RCCallSession) => void;
|
|
683
665
|
/**
|
|
684
|
-
*
|
|
666
|
+
* 关闭 或 开启 音频
|
|
685
667
|
*/
|
|
686
|
-
|
|
687
|
-
private _onMessage;
|
|
668
|
+
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
688
669
|
/**
|
|
689
|
-
*
|
|
670
|
+
* 关闭 或 开启 视频
|
|
690
671
|
*/
|
|
691
|
-
|
|
672
|
+
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
692
673
|
/**
|
|
693
|
-
|
|
694
|
-
* 1、每 20ms 检查一次 buffer list
|
|
695
|
-
* 2、取出已经延迟 200 的消息列表进行消费 | 无延迟 200ms 内消息直接递归
|
|
696
|
-
* 3、消费分为 离线消息消费逻辑、在线消息消费逻辑,消费后递归
|
|
674
|
+
* 资源订阅失败
|
|
697
675
|
*/
|
|
698
|
-
|
|
699
|
-
registerEventListener(listener: IMsgListener): void;
|
|
700
|
-
registerStateMachineEvent(callId: string, funcName: MsgListenerKeys, event: (...args: any[]) => void): void;
|
|
701
|
-
unregisterStateMachineEvent(callId: string): void;
|
|
702
|
-
registerUserInfo(userInfo: IUserProfile): void;
|
|
676
|
+
onTrackSubscribeFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
703
677
|
/**
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
678
|
+
* 资源发布失败
|
|
679
|
+
*/
|
|
680
|
+
onTrackPublishFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
707
681
|
/**
|
|
708
|
-
*
|
|
682
|
+
* 用于接收RTC状态数据报告
|
|
709
683
|
*/
|
|
710
|
-
|
|
711
|
-
code: RCCallErrorCode;
|
|
712
|
-
message?: IReceivedMessage | undefined;
|
|
713
|
-
}>;
|
|
684
|
+
onRTCStateReport?: (report: IRCRTCStateReport, session: RCCallSession) => void;
|
|
714
685
|
/**
|
|
715
|
-
*
|
|
686
|
+
* RTC 每次 Ping 结果
|
|
716
687
|
*/
|
|
717
|
-
|
|
718
|
-
code: RCCallErrorCode;
|
|
719
|
-
message?: IReceivedMessage | undefined;
|
|
720
|
-
}>;
|
|
688
|
+
onPing?: (result: RCRTCPingResult, session: RCCallSession) => void;
|
|
721
689
|
/**
|
|
722
|
-
*
|
|
690
|
+
* ~ICE 连接状态变更通知~
|
|
691
|
+
* @since version 5.1.5
|
|
723
692
|
*/
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
693
|
+
onICEConnectionStateChange?: (state: RTCIceConnectionState, session: RCCallSession) => void;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* 创建session的options
|
|
697
|
+
*/
|
|
698
|
+
interface IRCCallSessionOptions {
|
|
728
699
|
/**
|
|
729
|
-
*
|
|
700
|
+
* 本地资源,用户主动发起会话的时候,会先获得本地资源
|
|
730
701
|
*/
|
|
731
|
-
|
|
732
|
-
code: RCCallErrorCode;
|
|
733
|
-
message?: IReceivedMessage | undefined;
|
|
734
|
-
}>;
|
|
702
|
+
localTracks?: RCLocalTrack[];
|
|
735
703
|
/**
|
|
736
|
-
*
|
|
704
|
+
* 是否允许订阅重试, 默认为false
|
|
737
705
|
*/
|
|
738
|
-
|
|
739
|
-
code: RCCallErrorCode;
|
|
740
|
-
message?: IReceivedMessage | undefined;
|
|
741
|
-
}>;
|
|
706
|
+
isAllowSubscribeRetry?: boolean;
|
|
742
707
|
/**
|
|
743
|
-
*
|
|
708
|
+
* 是否允许发布重试, 默认为false
|
|
744
709
|
*/
|
|
745
|
-
|
|
746
|
-
code: RCCallErrorCode;
|
|
747
|
-
message?: IReceivedMessage | undefined;
|
|
748
|
-
}>;
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
declare class RCCallStateMachine {
|
|
752
|
-
private readonly _context;
|
|
753
|
-
private readonly _runtime;
|
|
754
|
-
private readonly _logger;
|
|
755
|
-
private readonly _callMsgHandler;
|
|
756
|
-
private readonly _channelId;
|
|
757
|
-
private readonly _conversationType;
|
|
758
|
-
private readonly _targetId;
|
|
759
|
-
private _mediaType;
|
|
760
|
-
private readonly _callId;
|
|
710
|
+
isAllowPublishRetry?: boolean;
|
|
761
711
|
/**
|
|
762
|
-
*
|
|
712
|
+
* 禁用视频时关摄像头, 默认false
|
|
763
713
|
*/
|
|
764
|
-
|
|
714
|
+
isOffCameraWhenVideoDisable?: boolean;
|
|
765
715
|
/**
|
|
766
|
-
*
|
|
716
|
+
* RTC 房间加入类型
|
|
767
717
|
*/
|
|
768
|
-
|
|
718
|
+
joinType?: RTCJoinType;
|
|
769
719
|
/**
|
|
770
|
-
*
|
|
720
|
+
* 允许降级获得流,获得音视频不成功 ,降级获得音频
|
|
771
721
|
*/
|
|
772
|
-
|
|
722
|
+
isAllowDemotionGetStream?: boolean;
|
|
773
723
|
/**
|
|
774
|
-
*
|
|
724
|
+
* 产生session的场景,是主叫产生 或 被叫产生
|
|
775
725
|
*/
|
|
776
|
-
|
|
726
|
+
produceType?: ProduceTypes;
|
|
727
|
+
isCrossAppkey?: boolean;
|
|
777
728
|
/**
|
|
778
|
-
*
|
|
729
|
+
* 呼叫推送配置
|
|
779
730
|
*/
|
|
780
|
-
|
|
731
|
+
callPushConfig?: IPushConfig;
|
|
781
732
|
/**
|
|
782
|
-
*
|
|
733
|
+
* 挂断推送配置
|
|
783
734
|
*/
|
|
784
|
-
|
|
735
|
+
hungupPushConfig?: IPushConfig;
|
|
736
|
+
}
|
|
737
|
+
interface IRCTrackBitrate {
|
|
785
738
|
/**
|
|
786
|
-
*
|
|
739
|
+
* 最大码率
|
|
787
740
|
*/
|
|
788
|
-
|
|
741
|
+
max: number;
|
|
789
742
|
/**
|
|
790
|
-
*
|
|
743
|
+
* 最小码率
|
|
791
744
|
*/
|
|
792
|
-
|
|
745
|
+
min: number;
|
|
793
746
|
/**
|
|
794
|
-
*
|
|
795
|
-
* 发起邀请为当前用户 ID
|
|
796
|
-
* 收到邀请为 senderUserId
|
|
797
|
-
* 收到人员变更邀请为消息体中 callerId
|
|
747
|
+
* 上行起始码率
|
|
798
748
|
*/
|
|
799
|
-
|
|
749
|
+
start?: number;
|
|
750
|
+
}
|
|
751
|
+
/**
|
|
752
|
+
* RCCallClient call方法的传参
|
|
753
|
+
*/
|
|
754
|
+
interface IRCCallParams {
|
|
755
|
+
targetId: string;
|
|
800
756
|
/**
|
|
801
|
-
*
|
|
802
|
-
* 发起邀请为当前用户 ID、收到邀请为 senderUserId、收到人员变更邀请为消息体中 senderUserId
|
|
757
|
+
* 音频 or 音视频, 默认音频
|
|
803
758
|
*/
|
|
804
|
-
|
|
759
|
+
mediaType: RCCallMediaType;
|
|
805
760
|
/**
|
|
806
|
-
*
|
|
761
|
+
* session上要注册的监听事件
|
|
807
762
|
*/
|
|
808
|
-
|
|
809
|
-
private _hungupPushTitle;
|
|
810
|
-
private _hungupPushContent;
|
|
811
|
-
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger, _callMsgHandler: CallMessageHandler, _channelId: string, _conversationType: ConversationType, _targetId: string, _mediaType: RCCallMediaType, _callId: string);
|
|
763
|
+
listener: ISessionListener;
|
|
812
764
|
/**
|
|
813
|
-
*
|
|
765
|
+
* 组织 Id,可选
|
|
814
766
|
*/
|
|
815
|
-
|
|
816
|
-
private _clearTimerById;
|
|
767
|
+
channelId?: string;
|
|
817
768
|
/**
|
|
818
|
-
*
|
|
769
|
+
* 用于获取己方媒体资源的参数
|
|
819
770
|
*/
|
|
820
|
-
|
|
771
|
+
constraints?: {
|
|
772
|
+
video?: ICameraVideoProfile;
|
|
773
|
+
audio: IMicphoneAudioProfile;
|
|
774
|
+
};
|
|
821
775
|
/**
|
|
822
|
-
*
|
|
776
|
+
* 消息的扩展信息
|
|
823
777
|
*/
|
|
824
|
-
|
|
825
|
-
private _otherClientHandle;
|
|
778
|
+
extra?: string;
|
|
826
779
|
/**
|
|
827
|
-
|
|
780
|
+
* 对方显示通知的标题
|
|
828
781
|
*/
|
|
829
|
-
|
|
830
|
-
private _onRinging;
|
|
831
|
-
private _onAccept;
|
|
832
|
-
private _onMediaModify;
|
|
833
|
-
private _onHungup;
|
|
782
|
+
pushTitle?: string;
|
|
834
783
|
/**
|
|
835
|
-
*
|
|
836
|
-
* @params watchers
|
|
784
|
+
* 对方显示的通知内容
|
|
837
785
|
*/
|
|
838
|
-
|
|
786
|
+
pushContent?: string;
|
|
839
787
|
/**
|
|
840
|
-
*
|
|
841
|
-
* @param message 接收消息
|
|
788
|
+
* 设置码率
|
|
842
789
|
*/
|
|
843
|
-
|
|
790
|
+
bitrate?: {
|
|
791
|
+
video?: IRCTrackBitrate;
|
|
792
|
+
audio?: number;
|
|
793
|
+
};
|
|
844
794
|
/**
|
|
845
|
-
*
|
|
846
|
-
* @param message 接收消息
|
|
795
|
+
* 是否为跨 appkey 通话
|
|
847
796
|
*/
|
|
848
|
-
|
|
797
|
+
isCrossAppkey?: boolean;
|
|
798
|
+
}
|
|
799
|
+
interface IMediaStreamConstraints {
|
|
800
|
+
video?: ICameraVideoProfile;
|
|
801
|
+
audio?: IMicphoneAudioProfile;
|
|
802
|
+
}
|
|
803
|
+
/**
|
|
804
|
+
* RCCallClient callInGroup方法的传参
|
|
805
|
+
*/
|
|
806
|
+
interface IRCCallInGroupParams {
|
|
807
|
+
targetId: string;
|
|
808
|
+
userIds: string[];
|
|
809
|
+
mediaType: RCCallMediaType;
|
|
849
810
|
/**
|
|
850
|
-
*
|
|
811
|
+
* session上要注册的监听事件
|
|
851
812
|
*/
|
|
852
|
-
|
|
813
|
+
listener: ISessionListener;
|
|
853
814
|
/**
|
|
854
|
-
*
|
|
855
|
-
* @param userIds 被邀请用户 ID 列表
|
|
856
|
-
* @param extra 消息的扩展信息
|
|
857
|
-
* @param pushTitle 通知的标题
|
|
858
|
-
* @param pushContent 通知的内容
|
|
815
|
+
* 组织 Id,可选
|
|
859
816
|
*/
|
|
860
|
-
|
|
861
|
-
code: RCCallErrorCode;
|
|
862
|
-
}>;
|
|
817
|
+
channelId?: string;
|
|
863
818
|
/**
|
|
864
|
-
*
|
|
819
|
+
* 用于获取己方媒体资源的参数
|
|
865
820
|
*/
|
|
866
|
-
|
|
867
|
-
code: RCCallErrorCode;
|
|
868
|
-
}>;
|
|
821
|
+
constraints?: IMediaStreamConstraints;
|
|
869
822
|
/**
|
|
870
|
-
*
|
|
871
|
-
* @param userIds 被邀请用户 ID 列表
|
|
823
|
+
* 消息的扩展信息
|
|
872
824
|
*/
|
|
873
|
-
|
|
874
|
-
code: RCCallErrorCode;
|
|
875
|
-
}>;
|
|
876
|
-
private _hungupHandle;
|
|
825
|
+
extra?: string;
|
|
877
826
|
/**
|
|
878
|
-
*
|
|
827
|
+
* 对方显示通知的标题
|
|
879
828
|
*/
|
|
880
|
-
|
|
881
|
-
code: RCCallErrorCode;
|
|
882
|
-
}>;
|
|
829
|
+
pushTitle?: string;
|
|
883
830
|
/**
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
changeMediaType(mediaType: RCCallMediaType): Promise<{
|
|
888
|
-
code: RCCallErrorCode;
|
|
889
|
-
}>;
|
|
831
|
+
* 对方显示的通知内容
|
|
832
|
+
*/
|
|
833
|
+
pushContent?: string;
|
|
890
834
|
/**
|
|
891
|
-
*
|
|
892
|
-
* 主叫呼叫后,未收到被叫 accept 消息,但收到了 userJoin 同样补偿更新用户、房间状态、呼叫计时器
|
|
835
|
+
* 设置码率
|
|
893
836
|
*/
|
|
894
|
-
|
|
837
|
+
bitrate?: {
|
|
838
|
+
video?: IRCTrackBitrate;
|
|
839
|
+
audio?: number;
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
interface IDeviceChangeParams {
|
|
843
|
+
audio?: IMicphoneAudioProfile;
|
|
844
|
+
video?: ICameraVideoProfile;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
interface IEndSummary {
|
|
895
848
|
/**
|
|
896
|
-
*
|
|
897
|
-
* 通话中远端用户挂断,挂断消息未到,但是监听到 rtc userLeave 同样补偿更新用户、房间状态
|
|
849
|
+
* 通话类型
|
|
898
850
|
*/
|
|
899
|
-
|
|
851
|
+
conversationType: ConversationType;
|
|
900
852
|
/**
|
|
901
|
-
*
|
|
902
|
-
* 触发时机:音视频服务异常、获取资源失败、加入 RTC 房间失败、发布|订阅失败
|
|
853
|
+
* 多组织 ID
|
|
903
854
|
*/
|
|
904
|
-
|
|
905
|
-
setHungupPushConfig(pushConfig?: string, pushContent?: string): void;
|
|
855
|
+
channelId: string;
|
|
906
856
|
/**
|
|
907
|
-
*
|
|
857
|
+
* 目标 ID
|
|
908
858
|
*/
|
|
909
|
-
|
|
859
|
+
targetId: string;
|
|
910
860
|
/**
|
|
911
|
-
*
|
|
861
|
+
* 通话媒体类型
|
|
912
862
|
*/
|
|
913
|
-
|
|
863
|
+
mediaType: RCCallMediaType;
|
|
914
864
|
/**
|
|
915
|
-
*
|
|
865
|
+
* 通话开始时间戳
|
|
916
866
|
*/
|
|
917
|
-
|
|
867
|
+
beginTimestamp: number;
|
|
918
868
|
/**
|
|
919
|
-
*
|
|
869
|
+
* 通话结束时间戳
|
|
920
870
|
*/
|
|
921
|
-
|
|
871
|
+
endTimestamp: number;
|
|
922
872
|
/**
|
|
923
|
-
*
|
|
873
|
+
* 通话时间
|
|
924
874
|
*/
|
|
925
|
-
|
|
875
|
+
duration: number;
|
|
926
876
|
/**
|
|
927
|
-
*
|
|
928
|
-
*/
|
|
929
|
-
getRemoteUsers(): IUserData[];
|
|
930
|
-
/**
|
|
931
|
-
* 获取房间状态
|
|
877
|
+
* 通话结束原因
|
|
932
878
|
*/
|
|
933
|
-
|
|
879
|
+
endReason: RCCallEndReason;
|
|
880
|
+
}
|
|
881
|
+
interface IUserProfile {
|
|
934
882
|
/**
|
|
935
|
-
*
|
|
883
|
+
* 用户名
|
|
936
884
|
*/
|
|
937
|
-
|
|
885
|
+
name?: string;
|
|
938
886
|
/**
|
|
939
|
-
*
|
|
887
|
+
* 用户头像地址
|
|
940
888
|
*/
|
|
941
|
-
|
|
889
|
+
portraitUri?: string;
|
|
942
890
|
/**
|
|
943
|
-
*
|
|
891
|
+
* user info 中附加信息
|
|
944
892
|
*/
|
|
945
|
-
|
|
893
|
+
extra?: string;
|
|
894
|
+
}
|
|
895
|
+
/**
|
|
896
|
+
* 通话发起者信息
|
|
897
|
+
*/
|
|
898
|
+
interface ISenderInfo extends IUserProfile {
|
|
946
899
|
/**
|
|
947
|
-
*
|
|
900
|
+
* 发起者 userId
|
|
948
901
|
*/
|
|
949
|
-
|
|
902
|
+
userId: string;
|
|
903
|
+
}
|
|
904
|
+
interface IUserData extends IUserProfile {
|
|
950
905
|
/**
|
|
951
|
-
*
|
|
906
|
+
* 用户 ID
|
|
952
907
|
*/
|
|
953
|
-
|
|
954
|
-
}
|
|
955
|
-
|
|
956
|
-
declare enum RCCallLanguage {
|
|
957
|
-
ZH = "zh",
|
|
958
|
-
EN = "en"
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
/**
|
|
962
|
-
* 产生session的场景
|
|
963
|
-
*/
|
|
964
|
-
declare enum ProduceTypes {
|
|
908
|
+
userId: string;
|
|
965
909
|
/**
|
|
966
|
-
*
|
|
910
|
+
* 用户 状态
|
|
967
911
|
*/
|
|
968
|
-
|
|
912
|
+
state: RCCallUserState;
|
|
969
913
|
/**
|
|
970
|
-
*
|
|
914
|
+
* 是否是通话发起者
|
|
971
915
|
*/
|
|
972
|
-
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
declare class RCCallSession {
|
|
916
|
+
isCaller: boolean;
|
|
976
917
|
/**
|
|
977
|
-
*
|
|
918
|
+
* 是否是远端用户
|
|
978
919
|
*/
|
|
979
|
-
|
|
920
|
+
isRemote: boolean;
|
|
980
921
|
/**
|
|
981
|
-
*
|
|
922
|
+
* 用户 deviceId
|
|
923
|
+
* 主要用于记录远端的用户的 deviceId, 用于处理多端消息
|
|
982
924
|
*/
|
|
983
|
-
|
|
984
|
-
|
|
925
|
+
deviceId?: string;
|
|
926
|
+
}
|
|
927
|
+
interface IUserStateChangeInfo {
|
|
985
928
|
/**
|
|
986
|
-
*
|
|
929
|
+
* 用户数据
|
|
987
930
|
*/
|
|
988
|
-
|
|
931
|
+
user: IUserData;
|
|
989
932
|
/**
|
|
990
|
-
*
|
|
933
|
+
* 挂断原因( user.state 为 RCCallUserState.NONE 时返回)
|
|
991
934
|
*/
|
|
992
|
-
|
|
935
|
+
reason?: RCCallEndReason;
|
|
936
|
+
}
|
|
937
|
+
interface IStateChangeInfo {
|
|
993
938
|
/**
|
|
994
|
-
*
|
|
939
|
+
* 状态
|
|
995
940
|
*/
|
|
996
|
-
|
|
941
|
+
state: RCCallSessionState;
|
|
997
942
|
/**
|
|
998
|
-
*
|
|
943
|
+
* state 为 RCCallSessionState.END 时返回
|
|
999
944
|
*/
|
|
1000
|
-
|
|
945
|
+
reason?: RCCallEndReason;
|
|
946
|
+
}
|
|
947
|
+
declare type IInvitedUsers = ISenderInfo;
|
|
948
|
+
interface IMemberModifyInfo {
|
|
1001
949
|
/**
|
|
1002
|
-
*
|
|
950
|
+
* 发起者信息
|
|
1003
951
|
*/
|
|
1004
|
-
|
|
1005
|
-
constructor(
|
|
952
|
+
sender: ISenderInfo;
|
|
1006
953
|
/**
|
|
1007
|
-
*
|
|
954
|
+
* 被邀请用户 ID 列表
|
|
1008
955
|
*/
|
|
1009
|
-
|
|
956
|
+
invitedUsers: IInvitedUsers[];
|
|
957
|
+
}
|
|
958
|
+
interface IMediaModifyInfo {
|
|
1010
959
|
/**
|
|
1011
|
-
*
|
|
960
|
+
* 发起者信息
|
|
1012
961
|
*/
|
|
1013
|
-
|
|
962
|
+
sender: ISenderInfo;
|
|
1014
963
|
/**
|
|
1015
|
-
*
|
|
964
|
+
* 修改后的媒体类型
|
|
1016
965
|
*/
|
|
1017
|
-
|
|
966
|
+
mediaType: RCCallMediaType;
|
|
967
|
+
}
|
|
968
|
+
interface ICallStateMachineWatchers {
|
|
1018
969
|
/**
|
|
1019
|
-
*
|
|
970
|
+
* 用户状态变更
|
|
971
|
+
* @param info
|
|
1020
972
|
*/
|
|
1021
|
-
|
|
973
|
+
onUserStateChange: (info: IUserStateChangeInfo) => void;
|
|
1022
974
|
/**
|
|
1023
|
-
*
|
|
975
|
+
* 房间状态变更
|
|
976
|
+
* @param info
|
|
1024
977
|
*/
|
|
1025
|
-
|
|
978
|
+
onStateChange: (info: IStateChangeInfo) => void;
|
|
1026
979
|
/**
|
|
1027
|
-
*
|
|
1028
|
-
* @param
|
|
1029
|
-
* @param params.isAllowSubscribeRetry 是否允许重试
|
|
1030
|
-
* @param params.count 允许重试的次数
|
|
980
|
+
* 收到响铃
|
|
981
|
+
* @param sender 发起用户信息
|
|
1031
982
|
*/
|
|
1032
|
-
|
|
983
|
+
onRinging: (sender: ISenderInfo) => void;
|
|
1033
984
|
/**
|
|
1034
|
-
*
|
|
1035
|
-
*
|
|
985
|
+
* 收到接听
|
|
986
|
+
* @param sender 发起用户信息
|
|
1036
987
|
*/
|
|
1037
|
-
|
|
988
|
+
onAccept: (sender: ISenderInfo) => void;
|
|
1038
989
|
/**
|
|
1039
|
-
*
|
|
1040
|
-
* @param params.tracks tracks
|
|
1041
|
-
* @param params.isAllowPublishRetry 是否允许重试
|
|
1042
|
-
* @param params.count 允许重试的次数
|
|
990
|
+
* 收到挂断
|
|
1043
991
|
*/
|
|
1044
|
-
|
|
992
|
+
onHungup: (sender: ISenderInfo, reason: RCCallEndReason) => void;
|
|
1045
993
|
/**
|
|
1046
|
-
*
|
|
994
|
+
* 收到人员变更
|
|
995
|
+
* @param sender 发起用户信息
|
|
1047
996
|
*/
|
|
1048
|
-
|
|
997
|
+
onMemberModify: (info: IMemberModifyInfo) => void;
|
|
1049
998
|
/**
|
|
1050
|
-
*
|
|
1051
|
-
* @param
|
|
999
|
+
* 收到通话类型变更
|
|
1000
|
+
* @param sender 发起用户信息
|
|
1052
1001
|
*/
|
|
1053
|
-
|
|
1002
|
+
onMediaModify: (info: IMediaModifyInfo) => void;
|
|
1054
1003
|
/**
|
|
1055
|
-
*
|
|
1004
|
+
* 是否跨appkey
|
|
1005
|
+
* @param ifCross 是否为跨appkey通信
|
|
1056
1006
|
*/
|
|
1057
|
-
|
|
1007
|
+
crossAppkey: (ifCross: boolean) => void;
|
|
1008
|
+
}
|
|
1009
|
+
/**
|
|
1010
|
+
* 发送邀请时的可选项
|
|
1011
|
+
*/
|
|
1012
|
+
interface IInviteOptions {
|
|
1058
1013
|
/**
|
|
1059
|
-
*
|
|
1014
|
+
* 消息的扩展信息
|
|
1060
1015
|
*/
|
|
1061
|
-
|
|
1062
|
-
private _getLocalTrack;
|
|
1016
|
+
extra?: string;
|
|
1063
1017
|
/**
|
|
1064
|
-
*
|
|
1018
|
+
* 移动端推送配置
|
|
1065
1019
|
*/
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1020
|
+
pushConfig?: IPushConfig;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/**
|
|
1024
|
+
* 注释
|
|
1025
|
+
* TODO
|
|
1026
|
+
*/
|
|
1027
|
+
declare enum MsgCallStatus {
|
|
1028
|
+
OUTGOING = 1,
|
|
1029
|
+
INCOMING = 2,
|
|
1030
|
+
RINGING = 3,
|
|
1031
|
+
CONNECTED = 4,
|
|
1032
|
+
IDLE = 5,
|
|
1033
|
+
ACCEPTED = 6
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
interface IOfflineRecord {
|
|
1037
|
+
channelId: string;
|
|
1038
|
+
conversationType: ConversationType;
|
|
1039
|
+
targetId: string;
|
|
1040
|
+
mediaType: RCCallMediaType;
|
|
1041
|
+
callId: string;
|
|
1042
|
+
inviterId: string;
|
|
1043
|
+
endReason: RCCallEndReason;
|
|
1044
|
+
beginTimestamp: number;
|
|
1045
|
+
endTimestamp: number;
|
|
1046
|
+
duration: number;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
interface ISendBaseOptions {
|
|
1069
1050
|
/**
|
|
1070
|
-
*
|
|
1071
|
-
* @param userIds 被邀请用户 ID 列表
|
|
1072
|
-
* @param options.extra 消息的扩展信息
|
|
1073
|
-
* @deprecated 5.1.2 废弃 options.pushTitle 通知的标题
|
|
1074
|
-
* @deprecated 5.1.2 废弃 options.pushContent 通知内容
|
|
1051
|
+
* 组织 ID
|
|
1075
1052
|
*/
|
|
1076
|
-
|
|
1077
|
-
code: RCCallErrorCode;
|
|
1078
|
-
}>;
|
|
1053
|
+
channelId: string;
|
|
1079
1054
|
/**
|
|
1080
|
-
*
|
|
1055
|
+
* 会话类型
|
|
1081
1056
|
*/
|
|
1082
|
-
|
|
1083
|
-
code: RCCallErrorCode;
|
|
1084
|
-
}>;
|
|
1057
|
+
conversationType: ConversationType;
|
|
1085
1058
|
/**
|
|
1086
|
-
*
|
|
1059
|
+
* 目标 ID (单聊:对方 Id;群聊: 群组 Id)
|
|
1087
1060
|
*/
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1061
|
+
targetId: string;
|
|
1062
|
+
}
|
|
1063
|
+
interface IExistedUserPofiles {
|
|
1091
1064
|
/**
|
|
1092
|
-
*
|
|
1093
|
-
* @param mediaType RCCallMediaType.AUDIO 改为音频通话 | RCCallMediaType.AUDIO_VIDEO 改为音视频通话
|
|
1065
|
+
* 用户 ID
|
|
1094
1066
|
*/
|
|
1095
|
-
|
|
1096
|
-
code: RCCallErrorCode;
|
|
1097
|
-
}>;
|
|
1067
|
+
userId: string;
|
|
1098
1068
|
/**
|
|
1099
|
-
*
|
|
1069
|
+
* 通话类型
|
|
1100
1070
|
*/
|
|
1101
|
-
|
|
1071
|
+
mediaType: RCCallMediaType;
|
|
1102
1072
|
/**
|
|
1103
|
-
*
|
|
1073
|
+
* 与移动端一致的通话状态
|
|
1104
1074
|
*/
|
|
1105
|
-
|
|
1075
|
+
callStatus: MsgCallStatus;
|
|
1106
1076
|
/**
|
|
1107
|
-
*
|
|
1077
|
+
* PC 端 mediaId 直接传 userId, mediaId iOS 需要解出来渲染视图用。
|
|
1108
1078
|
*/
|
|
1109
|
-
|
|
1079
|
+
mediaId?: string;
|
|
1080
|
+
}
|
|
1081
|
+
interface IMsgListener {
|
|
1082
|
+
onInvite?: (msg: IReceivedMessage) => void;
|
|
1083
|
+
onRinging?: (msg: IReceivedMessage) => void;
|
|
1084
|
+
onAccept?: (msg: IReceivedMessage) => void;
|
|
1085
|
+
onMemberModify?: (msg: IReceivedMessage) => void;
|
|
1086
|
+
onMediaModify?: (msg: IReceivedMessage) => void;
|
|
1087
|
+
onHungup?: (msg: IReceivedMessage) => void;
|
|
1088
|
+
sendAccept?: (info: {
|
|
1089
|
+
callId: string;
|
|
1090
|
+
}) => void;
|
|
1091
|
+
onOfflineRecord?: (record: IOfflineRecord) => void;
|
|
1092
|
+
}
|
|
1093
|
+
interface IInviteMsgOptions extends ISendBaseOptions {
|
|
1110
1094
|
/**
|
|
1111
|
-
*
|
|
1112
|
-
* @param isSendMesssage 是否需要发消息, 默认发消息
|
|
1095
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1113
1096
|
*/
|
|
1114
|
-
|
|
1097
|
+
callId: string;
|
|
1115
1098
|
/**
|
|
1116
|
-
*
|
|
1117
|
-
*
|
|
1099
|
+
* 通话媒体类型
|
|
1118
1100
|
*/
|
|
1119
|
-
|
|
1120
|
-
code: RCCallErrorCode;
|
|
1121
|
-
}>;
|
|
1101
|
+
mediaType: RCCallMediaType;
|
|
1122
1102
|
/**
|
|
1123
|
-
*
|
|
1103
|
+
* 被邀请人用户 ID 列表
|
|
1124
1104
|
*/
|
|
1125
|
-
|
|
1126
|
-
code: RCCallErrorCode;
|
|
1127
|
-
}>;
|
|
1105
|
+
inviteUserIds: string[];
|
|
1128
1106
|
/**
|
|
1129
|
-
*
|
|
1107
|
+
* 扩展信息
|
|
1130
1108
|
*/
|
|
1131
|
-
|
|
1132
|
-
code: RCCallErrorCode;
|
|
1133
|
-
}>;
|
|
1109
|
+
extra: string;
|
|
1134
1110
|
/**
|
|
1135
|
-
*
|
|
1111
|
+
* 移动端推送配置
|
|
1136
1112
|
*/
|
|
1137
|
-
|
|
1138
|
-
code: RCCallErrorCode;
|
|
1139
|
-
} | undefined>;
|
|
1113
|
+
pushConfig?: IPushConfig;
|
|
1140
1114
|
/**
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1115
|
+
* 跨appkey参数
|
|
1116
|
+
*/
|
|
1117
|
+
roomType?: number;
|
|
1118
|
+
}
|
|
1119
|
+
interface IMemberModifyMsgOptions extends ISendBaseOptions {
|
|
1146
1120
|
/**
|
|
1147
|
-
*
|
|
1121
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1148
1122
|
*/
|
|
1149
|
-
|
|
1123
|
+
callId: string;
|
|
1150
1124
|
/**
|
|
1151
|
-
*
|
|
1125
|
+
* 通话媒体类型
|
|
1152
1126
|
*/
|
|
1153
|
-
|
|
1127
|
+
mediaType: RCCallMediaType;
|
|
1154
1128
|
/**
|
|
1155
|
-
*
|
|
1129
|
+
* 被邀请人用户 ID 列表
|
|
1156
1130
|
*/
|
|
1157
|
-
|
|
1131
|
+
inviteUserIds: string[];
|
|
1158
1132
|
/**
|
|
1159
|
-
*
|
|
1133
|
+
* 获取会话发起者 Id
|
|
1160
1134
|
*/
|
|
1161
|
-
|
|
1135
|
+
callerId: string;
|
|
1162
1136
|
/**
|
|
1163
|
-
*
|
|
1137
|
+
* 当前通话中的所有人,包含未接听用户
|
|
1164
1138
|
*/
|
|
1165
|
-
|
|
1139
|
+
existedUserPofiles: IExistedUserPofiles[];
|
|
1166
1140
|
/**
|
|
1167
|
-
*
|
|
1141
|
+
* 当前通话中的所有人,包含未接听用户
|
|
1168
1142
|
*/
|
|
1169
|
-
|
|
1143
|
+
directionalUserIdList: string[];
|
|
1170
1144
|
/**
|
|
1171
|
-
*
|
|
1145
|
+
* 扩展信息
|
|
1172
1146
|
*/
|
|
1173
|
-
|
|
1147
|
+
extra: string;
|
|
1174
1148
|
/**
|
|
1175
|
-
*
|
|
1149
|
+
* 移动端推送配置
|
|
1176
1150
|
*/
|
|
1177
|
-
|
|
1151
|
+
pushConfig?: IPushConfig;
|
|
1152
|
+
}
|
|
1153
|
+
interface IRingingMsgOptions extends ISendBaseOptions {
|
|
1178
1154
|
/**
|
|
1179
|
-
*
|
|
1155
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1180
1156
|
*/
|
|
1181
|
-
|
|
1157
|
+
callId: string;
|
|
1182
1158
|
/**
|
|
1183
|
-
*
|
|
1159
|
+
* 群呼中需要接收响铃的用户 ID 列表
|
|
1184
1160
|
*/
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
*/
|
|
1189
|
-
getUsers(): IUserData[];
|
|
1161
|
+
userIds?: string[];
|
|
1162
|
+
}
|
|
1163
|
+
interface IAcceptMsgOptions extends ISendBaseOptions {
|
|
1190
1164
|
/**
|
|
1191
|
-
*
|
|
1165
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1192
1166
|
*/
|
|
1193
|
-
|
|
1167
|
+
callId: string;
|
|
1194
1168
|
/**
|
|
1195
|
-
*
|
|
1169
|
+
* 通话媒体类型
|
|
1196
1170
|
*/
|
|
1197
|
-
|
|
1171
|
+
mediaType: RCCallMediaType;
|
|
1198
1172
|
/**
|
|
1199
|
-
*
|
|
1173
|
+
* 群呼中需要接收接听消息的用户 ID 列表
|
|
1200
1174
|
*/
|
|
1201
|
-
|
|
1175
|
+
userIds: string[];
|
|
1176
|
+
}
|
|
1177
|
+
interface IHungupMsgOptions extends ISendBaseOptions {
|
|
1202
1178
|
/**
|
|
1203
|
-
*
|
|
1179
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1204
1180
|
*/
|
|
1205
|
-
|
|
1206
|
-
}
|
|
1207
|
-
|
|
1208
|
-
interface ISender {
|
|
1209
|
-
userId: string;
|
|
1181
|
+
callId: string;
|
|
1210
1182
|
/**
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1183
|
+
* 挂断原因
|
|
1184
|
+
*/
|
|
1185
|
+
reason: RCCallEndReason;
|
|
1214
1186
|
/**
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1187
|
+
* 群呼中需要接收挂断消息的用户 ID 列表
|
|
1188
|
+
*/
|
|
1189
|
+
userIds: string[];
|
|
1218
1190
|
/**
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1191
|
+
* 移动端推送配置
|
|
1192
|
+
*/
|
|
1193
|
+
pushConfig?: IPushConfig;
|
|
1222
1194
|
}
|
|
1223
|
-
interface
|
|
1195
|
+
interface IMediaModifyMsgOptions extends ISendBaseOptions {
|
|
1224
1196
|
/**
|
|
1225
|
-
*
|
|
1197
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1226
1198
|
*/
|
|
1227
|
-
|
|
1199
|
+
callId: string;
|
|
1228
1200
|
/**
|
|
1229
|
-
*
|
|
1201
|
+
* 通话媒体类型
|
|
1230
1202
|
*/
|
|
1231
|
-
|
|
1203
|
+
mediaType: RCCallMediaType;
|
|
1232
1204
|
/**
|
|
1233
|
-
*
|
|
1205
|
+
* 群呼中需要媒体变更消息的用户 ID 列表
|
|
1234
1206
|
*/
|
|
1235
|
-
|
|
1207
|
+
userIds: string[];
|
|
1236
1208
|
}
|
|
1209
|
+
|
|
1210
|
+
declare type MsgListenerKeys = keyof IMsgListener;
|
|
1237
1211
|
/**
|
|
1238
|
-
*
|
|
1212
|
+
* 消息接收处理: 在线消息、离线消息
|
|
1213
|
+
* 发送消息处理: 发送不同类型消息封装
|
|
1239
1214
|
*/
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
rtcClient: RCRTCClient;
|
|
1245
|
-
/**
|
|
1246
|
-
* 收到邀请后,产生新的session
|
|
1247
|
-
*/
|
|
1248
|
-
onSession: (session: RCCallSession, extra?: string) => void;
|
|
1215
|
+
declare class CallMessageHandler extends EventEmitter {
|
|
1216
|
+
private readonly _context;
|
|
1217
|
+
private readonly _runtime;
|
|
1218
|
+
private readonly _logger;
|
|
1249
1219
|
/**
|
|
1250
|
-
*
|
|
1220
|
+
* 离线消息处理时间间隔
|
|
1251
1221
|
*/
|
|
1252
|
-
|
|
1222
|
+
private readonly _offlineMsgItv;
|
|
1223
|
+
private readonly _getStateMachine;
|
|
1224
|
+
private _watchers;
|
|
1225
|
+
private _userInfo;
|
|
1226
|
+
private _msgBufferList;
|
|
1227
|
+
private _hadHandleMsgTimer;
|
|
1228
|
+
private _offlineRecorder;
|
|
1229
|
+
private _deviceId;
|
|
1230
|
+
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger,
|
|
1253
1231
|
/**
|
|
1254
|
-
*
|
|
1255
|
-
* @param record
|
|
1256
|
-
* @returns
|
|
1232
|
+
* 离线消息处理时间间隔
|
|
1257
1233
|
*/
|
|
1258
|
-
|
|
1234
|
+
_offlineMsgItv: number, _getStateMachine: (callId: string) => RCCallStateMachine | null);
|
|
1235
|
+
private _onMessage;
|
|
1259
1236
|
/**
|
|
1260
|
-
*
|
|
1261
|
-
*
|
|
1262
|
-
* 暂不对外暴露
|
|
1237
|
+
* 在线消息抛给状态机处理
|
|
1263
1238
|
*/
|
|
1239
|
+
private _onRecvOnlineCallMsg;
|
|
1264
1240
|
/**
|
|
1265
|
-
|
|
1241
|
+
* 消息 buffer 列表处理逻辑
|
|
1242
|
+
* 1、每 20ms 检查一次 buffer list
|
|
1243
|
+
* 2、取出已经延迟 200 的消息列表进行消费 | 无延迟 200ms 内消息直接递归
|
|
1244
|
+
* 3、消费分为 离线消息消费逻辑、在线消息消费逻辑,消费后递归
|
|
1266
1245
|
*/
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1246
|
+
private _handleBufferMsgs;
|
|
1247
|
+
registerEventListener(listener: IMsgListener): void;
|
|
1248
|
+
registerStateMachineEvent(callId: string, funcName: MsgListenerKeys, event: (...args: any[]) => void): void;
|
|
1249
|
+
unregisterStateMachineEvent(callId: string): void;
|
|
1250
|
+
registerUserInfo(userInfo: IUserProfile): void;
|
|
1272
1251
|
/**
|
|
1273
|
-
*
|
|
1252
|
+
* 发送 IM 消息
|
|
1274
1253
|
*/
|
|
1275
|
-
|
|
1254
|
+
private _sendCallMessage;
|
|
1276
1255
|
/**
|
|
1277
|
-
*
|
|
1256
|
+
* 发送邀请消息
|
|
1278
1257
|
*/
|
|
1279
|
-
|
|
1258
|
+
sendInvite(options: IInviteMsgOptions): Promise<{
|
|
1259
|
+
code: RCCallErrorCode;
|
|
1260
|
+
message?: IReceivedMessage | undefined;
|
|
1261
|
+
}>;
|
|
1280
1262
|
/**
|
|
1281
|
-
*
|
|
1263
|
+
* 发送人员变更消息
|
|
1282
1264
|
*/
|
|
1283
|
-
|
|
1265
|
+
sendMemeberModify(options: IMemberModifyMsgOptions): Promise<{
|
|
1266
|
+
code: RCCallErrorCode;
|
|
1267
|
+
message?: IReceivedMessage | undefined;
|
|
1268
|
+
}>;
|
|
1284
1269
|
/**
|
|
1285
|
-
*
|
|
1286
|
-
* @deprecated - version 5.2.2
|
|
1270
|
+
* 发送响铃消息
|
|
1287
1271
|
*/
|
|
1288
|
-
|
|
1272
|
+
sendRinging(options: IRingingMsgOptions): Promise<{
|
|
1273
|
+
code: RCCallErrorCode;
|
|
1274
|
+
message?: IReceivedMessage | undefined;
|
|
1275
|
+
}>;
|
|
1289
1276
|
/**
|
|
1290
|
-
*
|
|
1291
|
-
* @since version 5.2.2
|
|
1277
|
+
* 发送同意接听消息
|
|
1292
1278
|
*/
|
|
1293
|
-
|
|
1279
|
+
sendAccept(options: IAcceptMsgOptions): Promise<{
|
|
1280
|
+
code: RCCallErrorCode;
|
|
1281
|
+
message?: IReceivedMessage | undefined;
|
|
1282
|
+
}>;
|
|
1294
1283
|
/**
|
|
1295
|
-
*
|
|
1296
|
-
* @deprecated - version 5.2.0
|
|
1284
|
+
* 发送挂断消息
|
|
1297
1285
|
*/
|
|
1298
|
-
|
|
1286
|
+
sendHungup(options: IHungupMsgOptions): Promise<{
|
|
1287
|
+
code: RCCallErrorCode;
|
|
1288
|
+
message?: IReceivedMessage | undefined;
|
|
1289
|
+
}>;
|
|
1299
1290
|
/**
|
|
1300
|
-
*
|
|
1291
|
+
* 发送媒体变更消息
|
|
1301
1292
|
*/
|
|
1302
|
-
|
|
1293
|
+
sendMediaModify(options: IMediaModifyMsgOptions): Promise<{
|
|
1294
|
+
code: RCCallErrorCode;
|
|
1295
|
+
message?: IReceivedMessage | undefined;
|
|
1296
|
+
}>;
|
|
1303
1297
|
}
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1298
|
+
|
|
1299
|
+
declare class RCCallStateMachine {
|
|
1300
|
+
private readonly _context;
|
|
1301
|
+
private readonly _runtime;
|
|
1302
|
+
private readonly _logger;
|
|
1303
|
+
private readonly _callMsgHandler;
|
|
1304
|
+
private readonly _channelId;
|
|
1305
|
+
private readonly _conversationType;
|
|
1306
|
+
private readonly _targetId;
|
|
1307
|
+
private _mediaType;
|
|
1308
|
+
private readonly _callId;
|
|
1308
1309
|
/**
|
|
1309
|
-
*
|
|
1310
|
+
* 房间状态
|
|
1310
1311
|
*/
|
|
1311
|
-
|
|
1312
|
+
private _sessionState;
|
|
1312
1313
|
/**
|
|
1313
|
-
*
|
|
1314
|
+
* 用户状态及信息
|
|
1314
1315
|
*/
|
|
1315
|
-
|
|
1316
|
-
}
|
|
1317
|
-
/**
|
|
1318
|
-
* session上的监听
|
|
1319
|
-
*/
|
|
1320
|
-
interface ISessionListener {
|
|
1316
|
+
private _userInfo;
|
|
1321
1317
|
/**
|
|
1322
|
-
*
|
|
1318
|
+
* 用户计时器映射
|
|
1323
1319
|
*/
|
|
1324
|
-
|
|
1320
|
+
private _userTimers;
|
|
1325
1321
|
/**
|
|
1326
|
-
*
|
|
1322
|
+
* 监听器
|
|
1327
1323
|
*/
|
|
1328
|
-
|
|
1324
|
+
private _watchers;
|
|
1329
1325
|
/**
|
|
1330
|
-
*
|
|
1326
|
+
* 呼叫超时时间 (单位:毫秒)
|
|
1331
1327
|
*/
|
|
1332
|
-
|
|
1328
|
+
private _callTimeout;
|
|
1333
1329
|
/**
|
|
1334
|
-
*
|
|
1330
|
+
* 通话建立开始时间
|
|
1335
1331
|
*/
|
|
1336
|
-
|
|
1332
|
+
private _beginTimestamp;
|
|
1337
1333
|
/**
|
|
1338
|
-
*
|
|
1334
|
+
* 通话结束时间
|
|
1339
1335
|
*/
|
|
1340
|
-
|
|
1336
|
+
private _endTimestamp;
|
|
1341
1337
|
/**
|
|
1342
|
-
*
|
|
1338
|
+
* 通话结束原因
|
|
1343
1339
|
*/
|
|
1344
|
-
|
|
1340
|
+
private _endReason;
|
|
1345
1341
|
/**
|
|
1346
|
-
*
|
|
1342
|
+
* 主叫 ID
|
|
1343
|
+
* 发起邀请为当前用户 ID
|
|
1344
|
+
* 收到邀请为 senderUserId
|
|
1345
|
+
* 收到人员变更邀请为消息体中 callerId
|
|
1347
1346
|
*/
|
|
1348
|
-
|
|
1347
|
+
private _callerId;
|
|
1349
1348
|
/**
|
|
1350
|
-
*
|
|
1349
|
+
* 当次通话邀请者 ID
|
|
1350
|
+
* 发起邀请为当前用户 ID、收到邀请为 senderUserId、收到人员变更邀请为消息体中 senderUserId
|
|
1351
1351
|
*/
|
|
1352
|
-
|
|
1353
|
-
/**
|
|
1354
|
-
* 资源订阅失败
|
|
1355
|
-
*/
|
|
1356
|
-
onTrackSubscribeFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
1357
|
-
/**
|
|
1358
|
-
* 资源发布失败
|
|
1359
|
-
*/
|
|
1360
|
-
onTrackPublishFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
1352
|
+
private _inviterId;
|
|
1361
1353
|
/**
|
|
1362
|
-
*
|
|
1354
|
+
* 是否是跨 appkey
|
|
1363
1355
|
*/
|
|
1364
|
-
|
|
1356
|
+
private _isCrossAppkey;
|
|
1357
|
+
private _hungupPushConfig?;
|
|
1358
|
+
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger, _callMsgHandler: CallMessageHandler, _channelId: string, _conversationType: ConversationType, _targetId: string, _mediaType: RCCallMediaType, _callId: string);
|
|
1365
1359
|
/**
|
|
1366
|
-
*
|
|
1360
|
+
* 获取校正后超时时间
|
|
1367
1361
|
*/
|
|
1368
|
-
|
|
1362
|
+
private _getTimeout;
|
|
1363
|
+
private _clearTimerById;
|
|
1369
1364
|
/**
|
|
1370
|
-
*
|
|
1371
|
-
* @since version 5.1.5
|
|
1365
|
+
* 通知 call 层房间状态变更及原因
|
|
1372
1366
|
*/
|
|
1373
|
-
|
|
1374
|
-
}
|
|
1375
|
-
/**
|
|
1376
|
-
* 创建session的options
|
|
1377
|
-
*/
|
|
1378
|
-
interface IRCCallSessionOptions {
|
|
1367
|
+
private _notifyStateChange;
|
|
1379
1368
|
/**
|
|
1380
|
-
*
|
|
1369
|
+
* 通知 call 层人员状态变更及原因
|
|
1381
1370
|
*/
|
|
1382
|
-
|
|
1371
|
+
private _notifyUserStateChange;
|
|
1372
|
+
private _otherClientHandle;
|
|
1383
1373
|
/**
|
|
1384
|
-
*
|
|
1385
|
-
|
|
1386
|
-
|
|
1374
|
+
* 正在通话中,且不是当前已接通用户设备(deviceId)发来的消息
|
|
1375
|
+
*/
|
|
1376
|
+
private _isRemoteInvalidMsg;
|
|
1377
|
+
private _onRinging;
|
|
1378
|
+
private _onAccept;
|
|
1379
|
+
private _onMediaModify;
|
|
1380
|
+
private _onHungup;
|
|
1387
1381
|
/**
|
|
1388
|
-
*
|
|
1382
|
+
* 注册事件监听
|
|
1383
|
+
* @params watchers
|
|
1389
1384
|
*/
|
|
1390
|
-
|
|
1385
|
+
registerEventListener(watchers: ICallStateMachineWatchers): void;
|
|
1391
1386
|
/**
|
|
1392
|
-
*
|
|
1387
|
+
* 收到 invite 消息时状态机更新(CallEngine 内部调用)
|
|
1388
|
+
* @param message 接收消息
|
|
1393
1389
|
*/
|
|
1394
|
-
|
|
1390
|
+
__onInvite(message: IReceivedMessage): void;
|
|
1395
1391
|
/**
|
|
1396
|
-
*
|
|
1392
|
+
* 收到 memberModify 消息时状态机更新(CallEngine 内部调用)
|
|
1393
|
+
* @param message 接收消息
|
|
1397
1394
|
*/
|
|
1398
|
-
|
|
1395
|
+
__onMemberModify(message: IReceivedMessage): void;
|
|
1399
1396
|
/**
|
|
1400
|
-
*
|
|
1397
|
+
* 处理已有 session ,不允许再接听新会话情况
|
|
1401
1398
|
*/
|
|
1402
|
-
|
|
1399
|
+
__handleInviteInSession(): void;
|
|
1403
1400
|
/**
|
|
1404
|
-
*
|
|
1401
|
+
* 主动呼叫 (CallEngine 内部调用)
|
|
1402
|
+
* @param userIds 被邀请用户 ID 列表
|
|
1403
|
+
* @param extra 消息的扩展信息
|
|
1404
|
+
* @param pushConfig 移动端推送配置
|
|
1405
1405
|
*/
|
|
1406
|
-
|
|
1407
|
-
|
|
1406
|
+
__call(userIds: string[], extra: string | undefined, pushConfig: IPushConfig, isCrossAppkey?: boolean): Promise<{
|
|
1407
|
+
code: RCCallErrorCode;
|
|
1408
|
+
}>;
|
|
1408
1409
|
/**
|
|
1409
|
-
*
|
|
1410
|
+
* 接听
|
|
1410
1411
|
*/
|
|
1411
|
-
|
|
1412
|
+
accept(): Promise<{
|
|
1413
|
+
code: RCCallErrorCode;
|
|
1414
|
+
}>;
|
|
1412
1415
|
/**
|
|
1413
|
-
*
|
|
1416
|
+
* 群呼叫中继续邀请
|
|
1417
|
+
* @param userIds 被邀请用户 ID 列表
|
|
1414
1418
|
*/
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1419
|
+
invite(userIds: string[], options?: IInviteOptions): Promise<{
|
|
1420
|
+
code: RCCallErrorCode;
|
|
1421
|
+
}>;
|
|
1422
|
+
private _hungupHandle;
|
|
1418
1423
|
/**
|
|
1419
|
-
*
|
|
1424
|
+
* 挂断
|
|
1420
1425
|
*/
|
|
1421
|
-
|
|
1426
|
+
hungup(): Promise<{
|
|
1427
|
+
code: RCCallErrorCode;
|
|
1428
|
+
}>;
|
|
1422
1429
|
/**
|
|
1423
|
-
*
|
|
1430
|
+
* 修改通话媒体类型
|
|
1431
|
+
* @param mediaType RCCallMediaType.AUDIO 改为音频通话 | RCCallMediaType.AUDIO_VIDEO 改为音视频通话
|
|
1424
1432
|
*/
|
|
1425
|
-
|
|
1433
|
+
changeMediaType(mediaType: RCCallMediaType): Promise<{
|
|
1434
|
+
code: RCCallErrorCode;
|
|
1435
|
+
}>;
|
|
1426
1436
|
/**
|
|
1427
|
-
*
|
|
1437
|
+
* 用户加入通话补偿机制(rtc userJoin 事件触发)
|
|
1438
|
+
* 主叫呼叫后,未收到被叫 accept 消息,但收到了 userJoin 同样补偿更新用户、房间状态、呼叫计时器
|
|
1428
1439
|
*/
|
|
1429
|
-
|
|
1430
|
-
}
|
|
1431
|
-
/**
|
|
1432
|
-
* RCCallClient call方法的传参
|
|
1433
|
-
*/
|
|
1434
|
-
interface IRCCallParams {
|
|
1435
|
-
targetId: string;
|
|
1440
|
+
userJoin(userIds: string[]): void;
|
|
1436
1441
|
/**
|
|
1437
|
-
*
|
|
1442
|
+
* 用户离开通话补偿机制(rtc userLeave、kickOff 事件触发)
|
|
1443
|
+
* 通话中远端用户挂断,挂断消息未到,但是监听到 rtc userLeave 同样补偿更新用户、房间状态
|
|
1438
1444
|
*/
|
|
1439
|
-
|
|
1445
|
+
userLeave(userIds: string[]): void;
|
|
1440
1446
|
/**
|
|
1441
|
-
*
|
|
1447
|
+
* Call 层己方异常失败后调用的方法
|
|
1448
|
+
* 触发时机:音视频服务异常、获取资源失败、加入 RTC 房间失败、发布|订阅失败
|
|
1442
1449
|
*/
|
|
1443
|
-
|
|
1450
|
+
close(reason: RCCallEndReason): void;
|
|
1451
|
+
setHungupPushConfig(pushConfig: IPushConfig): void;
|
|
1444
1452
|
/**
|
|
1445
|
-
*
|
|
1453
|
+
* 通话唯一标识
|
|
1446
1454
|
*/
|
|
1447
|
-
|
|
1455
|
+
getCallId(): string;
|
|
1448
1456
|
/**
|
|
1449
|
-
*
|
|
1457
|
+
* 多组织 ID
|
|
1450
1458
|
*/
|
|
1451
|
-
|
|
1452
|
-
video?: ICameraVideoProfile;
|
|
1453
|
-
audio: IMicphoneAudioProfile;
|
|
1454
|
-
};
|
|
1459
|
+
getChannelId(): string;
|
|
1455
1460
|
/**
|
|
1456
|
-
*
|
|
1461
|
+
* 目标 ID,单呼对方人员 Id, 群呼群组 Id
|
|
1457
1462
|
*/
|
|
1458
|
-
|
|
1459
|
-
/**
|
|
1460
|
-
* 对方显示通知的标题
|
|
1461
|
-
*/
|
|
1462
|
-
pushTitle?: string;
|
|
1463
|
+
getTargetId(): string;
|
|
1463
1464
|
/**
|
|
1464
|
-
*
|
|
1465
|
+
* 获取会话类型
|
|
1465
1466
|
*/
|
|
1466
|
-
|
|
1467
|
+
getConversationType(): ConversationType;
|
|
1467
1468
|
/**
|
|
1468
|
-
*
|
|
1469
|
+
* 获取远端成员 ID 列表
|
|
1469
1470
|
*/
|
|
1470
|
-
|
|
1471
|
-
video?: IRCTrackBitrate;
|
|
1472
|
-
audio?: number;
|
|
1473
|
-
};
|
|
1471
|
+
getRemoteUserIds(): string[];
|
|
1474
1472
|
/**
|
|
1475
|
-
*
|
|
1473
|
+
* 获取远端成员信息列表
|
|
1476
1474
|
*/
|
|
1477
|
-
|
|
1478
|
-
}
|
|
1479
|
-
interface IMediaStreamConstraints {
|
|
1480
|
-
video?: ICameraVideoProfile;
|
|
1481
|
-
audio?: IMicphoneAudioProfile;
|
|
1482
|
-
}
|
|
1483
|
-
/**
|
|
1484
|
-
* RCCallClient callInGroup方法的传参
|
|
1485
|
-
*/
|
|
1486
|
-
interface IRCCallInGroupParams {
|
|
1487
|
-
targetId: string;
|
|
1488
|
-
userIds: string[];
|
|
1489
|
-
mediaType: RCCallMediaType;
|
|
1475
|
+
getRemoteUsers(): IUserData[];
|
|
1490
1476
|
/**
|
|
1491
|
-
*
|
|
1477
|
+
* 获取房间状态
|
|
1492
1478
|
*/
|
|
1493
|
-
|
|
1479
|
+
getState(): RCCallSessionState;
|
|
1494
1480
|
/**
|
|
1495
|
-
*
|
|
1481
|
+
* 获取人员状态
|
|
1496
1482
|
*/
|
|
1497
|
-
|
|
1483
|
+
getUserState(userId: string): RCCallUserState;
|
|
1498
1484
|
/**
|
|
1499
|
-
*
|
|
1485
|
+
* 获取会话发起者 Id
|
|
1500
1486
|
*/
|
|
1501
|
-
|
|
1487
|
+
getCallerId(): string;
|
|
1502
1488
|
/**
|
|
1503
|
-
*
|
|
1489
|
+
* 获取当次会话邀请者 Id
|
|
1504
1490
|
*/
|
|
1505
|
-
|
|
1491
|
+
getInviterId(): string;
|
|
1506
1492
|
/**
|
|
1507
|
-
*
|
|
1493
|
+
* 获取当前通话媒体类型
|
|
1508
1494
|
*/
|
|
1509
|
-
|
|
1510
|
-
/**
|
|
1511
|
-
* 对方显示的通知内容
|
|
1512
|
-
*/
|
|
1513
|
-
pushContent?: string;
|
|
1495
|
+
getMediaType(): RCCallMediaType;
|
|
1514
1496
|
/**
|
|
1515
|
-
*
|
|
1497
|
+
* 通话挂断后可调用
|
|
1516
1498
|
*/
|
|
1517
|
-
|
|
1518
|
-
video?: IRCTrackBitrate;
|
|
1519
|
-
audio?: number;
|
|
1520
|
-
};
|
|
1499
|
+
getSummary(): IEndSummary;
|
|
1521
1500
|
}
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1501
|
+
|
|
1502
|
+
declare enum RCCallLanguage {
|
|
1503
|
+
ZH = "zh",
|
|
1504
|
+
EN = "en"
|
|
1525
1505
|
}
|
|
1526
1506
|
|
|
1527
1507
|
declare class RCCallClient {
|
|
@@ -1544,8 +1524,14 @@ declare class RCCallClient {
|
|
|
1544
1524
|
* session列表
|
|
1545
1525
|
*/
|
|
1546
1526
|
private _sessionList;
|
|
1547
|
-
|
|
1548
|
-
|
|
1527
|
+
/**
|
|
1528
|
+
* 移动端呼叫推送配置
|
|
1529
|
+
*/
|
|
1530
|
+
private _callPushConfig?;
|
|
1531
|
+
/**
|
|
1532
|
+
* 移动端挂断推送配置
|
|
1533
|
+
*/
|
|
1534
|
+
private _hungupPushConfig?;
|
|
1549
1535
|
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: BasicLogger, _options: IRCCallInitOptions);
|
|
1550
1536
|
/**
|
|
1551
1537
|
* 监听onInvite
|
|
@@ -1644,7 +1630,9 @@ declare class RCCallClient {
|
|
|
1644
1630
|
* @param hungupPushConfig.pushTitle 挂断推送标题
|
|
1645
1631
|
* @param hungupPushConfig.pushContent 挂断推送内容
|
|
1646
1632
|
*/
|
|
1647
|
-
setPushConfig(callPushConfig
|
|
1633
|
+
setPushConfig(callPushConfig: IPushConfig, hungupPushConfig: IPushConfig): {
|
|
1634
|
+
code: RCCallErrorCode.STATE_MACHINE_EXIT | RCCallErrorCode.SEND_MSG_ERROR | RCCallErrorCode.REJECTED_BY_BLACKLIST | RCCallErrorCode.NOT_IN_GROUP | RCCallErrorCode.GET_LOCAL_AUDIO_TRACK_ERROR | RCCallErrorCode.GET_LOCAL_VIDEO_TRACK_ERROR | RCCallErrorCode.GET_LOCAL_AUDIO_AND_VIDEO_TRACK_ERROR | RCCallErrorCode.JOIN_ROOM_ERROR | RCCallErrorCode.AUDIO_PUBLISH_ERROR | RCCallErrorCode.VIDEO_PUBLISH_ERROR | RCCallErrorCode.AUDIO_AND_VIDEO_PUBLISH_ERROR | RCCallErrorCode.QUERY_JOINED_USER_INFO_ERROR | RCCallErrorCode.MISSING_VIDEO_TRACK_ERROR | RCCallErrorCode.UNPUBLISH_VIDEO_ERROR | RCCallErrorCode.CONVERSATION_NOT_GROUP_ERROR | RCCallErrorCode.NOT_IN_ROOM_ERROR | RCCallErrorCode.PARAM_ERROR;
|
|
1635
|
+
} | undefined;
|
|
1648
1636
|
}
|
|
1649
1637
|
|
|
1650
1638
|
declare const installer: IPluginGenerator<RCCallClient, IRCCallInitOptions>;
|