@rongcloud/plugin-call 5.2.3 → 5.2.5
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 +784 -801
- package/dist/index.esm.js +651 -653
- package/dist/index.umd.js +5 -6
- package/package.json +2 -2
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,1222 @@ 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
|
+
/**
|
|
631
|
+
* 呼叫、挂断推送信息
|
|
632
|
+
*/
|
|
633
|
+
interface IPushConfig extends Partial<IPushConfig$1> {
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* session上的监听
|
|
637
|
+
*/
|
|
638
|
+
interface ISessionListener {
|
|
638
639
|
/**
|
|
639
|
-
*
|
|
640
|
+
* 当对方已响铃
|
|
640
641
|
*/
|
|
641
|
-
|
|
642
|
+
onRinging: (sender: ISender, session: RCCallSession) => void;
|
|
642
643
|
/**
|
|
643
|
-
*
|
|
644
|
+
* 当对方已同意
|
|
644
645
|
*/
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
interface IMediaModifyMsgOptions extends ISendBaseOptions {
|
|
646
|
+
onAccept: (sender: ISender, session: RCCallSession) => void;
|
|
648
647
|
/**
|
|
649
|
-
*
|
|
648
|
+
* 当对方已挂断
|
|
650
649
|
*/
|
|
651
|
-
|
|
650
|
+
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => void;
|
|
652
651
|
/**
|
|
653
|
-
*
|
|
652
|
+
* 群组通话,人员改变
|
|
654
653
|
*/
|
|
655
|
-
|
|
654
|
+
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => void;
|
|
656
655
|
/**
|
|
657
|
-
*
|
|
656
|
+
* 通话降级
|
|
658
657
|
*/
|
|
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;
|
|
658
|
+
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => void;
|
|
671
659
|
/**
|
|
672
|
-
*
|
|
660
|
+
* 当接到流
|
|
673
661
|
*/
|
|
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,
|
|
662
|
+
onTrackReady: (track: RCTrack, session?: RCCallSession) => void;
|
|
683
663
|
/**
|
|
684
|
-
*
|
|
664
|
+
* 关闭 或 开启 音频
|
|
685
665
|
*/
|
|
686
|
-
|
|
687
|
-
private _onMessage;
|
|
666
|
+
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
688
667
|
/**
|
|
689
|
-
*
|
|
668
|
+
* 关闭 或 开启 视频
|
|
690
669
|
*/
|
|
691
|
-
|
|
670
|
+
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
692
671
|
/**
|
|
693
|
-
|
|
694
|
-
* 1、每 20ms 检查一次 buffer list
|
|
695
|
-
* 2、取出已经延迟 200 的消息列表进行消费 | 无延迟 200ms 内消息直接递归
|
|
696
|
-
* 3、消费分为 离线消息消费逻辑、在线消息消费逻辑,消费后递归
|
|
672
|
+
* 资源订阅失败
|
|
697
673
|
*/
|
|
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;
|
|
674
|
+
onTrackSubscribeFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
703
675
|
/**
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
676
|
+
* 资源发布失败
|
|
677
|
+
*/
|
|
678
|
+
onTrackPublishFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
707
679
|
/**
|
|
708
|
-
*
|
|
680
|
+
* 用于接收RTC状态数据报告
|
|
709
681
|
*/
|
|
710
|
-
|
|
711
|
-
code: RCCallErrorCode;
|
|
712
|
-
message?: IReceivedMessage | undefined;
|
|
713
|
-
}>;
|
|
682
|
+
onRTCStateReport?: (report: IRCRTCStateReport, session: RCCallSession) => void;
|
|
714
683
|
/**
|
|
715
|
-
*
|
|
684
|
+
* RTC 每次 Ping 结果
|
|
716
685
|
*/
|
|
717
|
-
|
|
718
|
-
code: RCCallErrorCode;
|
|
719
|
-
message?: IReceivedMessage | undefined;
|
|
720
|
-
}>;
|
|
686
|
+
onPing?: (result: RCRTCPingResult, session: RCCallSession) => void;
|
|
721
687
|
/**
|
|
722
|
-
*
|
|
688
|
+
* ~ICE 连接状态变更通知~
|
|
689
|
+
* @since version 5.1.5
|
|
723
690
|
*/
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
691
|
+
onICEConnectionStateChange?: (state: RTCIceConnectionState, session: RCCallSession) => void;
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* 创建session的options
|
|
695
|
+
*/
|
|
696
|
+
interface IRCCallSessionOptions {
|
|
728
697
|
/**
|
|
729
|
-
*
|
|
698
|
+
* 本地资源,用户主动发起会话的时候,会先获得本地资源
|
|
730
699
|
*/
|
|
731
|
-
|
|
732
|
-
code: RCCallErrorCode;
|
|
733
|
-
message?: IReceivedMessage | undefined;
|
|
734
|
-
}>;
|
|
700
|
+
localTracks?: RCLocalTrack[];
|
|
735
701
|
/**
|
|
736
|
-
*
|
|
702
|
+
* 是否允许订阅重试, 默认为false
|
|
737
703
|
*/
|
|
738
|
-
|
|
739
|
-
code: RCCallErrorCode;
|
|
740
|
-
message?: IReceivedMessage | undefined;
|
|
741
|
-
}>;
|
|
704
|
+
isAllowSubscribeRetry?: boolean;
|
|
742
705
|
/**
|
|
743
|
-
*
|
|
706
|
+
* 是否允许发布重试, 默认为false
|
|
744
707
|
*/
|
|
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;
|
|
708
|
+
isAllowPublishRetry?: boolean;
|
|
761
709
|
/**
|
|
762
|
-
*
|
|
710
|
+
* 禁用视频时关摄像头, 默认false
|
|
763
711
|
*/
|
|
764
|
-
|
|
712
|
+
isOffCameraWhenVideoDisable?: boolean;
|
|
765
713
|
/**
|
|
766
|
-
*
|
|
714
|
+
* RTC 房间加入类型
|
|
767
715
|
*/
|
|
768
|
-
|
|
716
|
+
joinType?: RTCJoinType;
|
|
769
717
|
/**
|
|
770
|
-
*
|
|
718
|
+
* 允许降级获得流,获得音视频不成功 ,降级获得音频
|
|
771
719
|
*/
|
|
772
|
-
|
|
720
|
+
isAllowDemotionGetStream?: boolean;
|
|
773
721
|
/**
|
|
774
|
-
*
|
|
722
|
+
* 产生session的场景,是主叫产生 或 被叫产生
|
|
775
723
|
*/
|
|
776
|
-
|
|
724
|
+
produceType?: ProduceTypes;
|
|
725
|
+
isCrossAppkey?: boolean;
|
|
777
726
|
/**
|
|
778
|
-
*
|
|
727
|
+
* 呼叫推送配置
|
|
779
728
|
*/
|
|
780
|
-
|
|
729
|
+
callPushConfig?: IPushConfig;
|
|
781
730
|
/**
|
|
782
|
-
*
|
|
731
|
+
* 挂断推送配置
|
|
783
732
|
*/
|
|
784
|
-
|
|
733
|
+
hungupPushConfig?: IPushConfig;
|
|
734
|
+
}
|
|
735
|
+
interface IRCTrackBitrate {
|
|
785
736
|
/**
|
|
786
|
-
*
|
|
737
|
+
* 最大码率
|
|
787
738
|
*/
|
|
788
|
-
|
|
739
|
+
max: number;
|
|
789
740
|
/**
|
|
790
|
-
*
|
|
741
|
+
* 最小码率
|
|
791
742
|
*/
|
|
792
|
-
|
|
743
|
+
min: number;
|
|
793
744
|
/**
|
|
794
|
-
*
|
|
795
|
-
* 发起邀请为当前用户 ID
|
|
796
|
-
* 收到邀请为 senderUserId
|
|
797
|
-
* 收到人员变更邀请为消息体中 callerId
|
|
745
|
+
* 上行起始码率
|
|
798
746
|
*/
|
|
799
|
-
|
|
747
|
+
start?: number;
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* RCCallClient call方法的传参
|
|
751
|
+
*/
|
|
752
|
+
interface IRCCallParams {
|
|
753
|
+
targetId: string;
|
|
800
754
|
/**
|
|
801
|
-
*
|
|
802
|
-
* 发起邀请为当前用户 ID、收到邀请为 senderUserId、收到人员变更邀请为消息体中 senderUserId
|
|
755
|
+
* 音频 or 音视频, 默认音频
|
|
803
756
|
*/
|
|
804
|
-
|
|
757
|
+
mediaType: RCCallMediaType;
|
|
805
758
|
/**
|
|
806
|
-
*
|
|
759
|
+
* session上要注册的监听事件
|
|
807
760
|
*/
|
|
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);
|
|
761
|
+
listener: ISessionListener;
|
|
812
762
|
/**
|
|
813
|
-
*
|
|
763
|
+
* 组织 Id,可选
|
|
814
764
|
*/
|
|
815
|
-
|
|
816
|
-
private _clearTimerById;
|
|
765
|
+
channelId?: string;
|
|
817
766
|
/**
|
|
818
|
-
*
|
|
767
|
+
* 用于获取己方媒体资源的参数
|
|
819
768
|
*/
|
|
820
|
-
|
|
769
|
+
constraints?: {
|
|
770
|
+
video?: ICameraVideoProfile;
|
|
771
|
+
audio: IMicphoneAudioProfile;
|
|
772
|
+
};
|
|
821
773
|
/**
|
|
822
|
-
*
|
|
774
|
+
* 消息的扩展信息
|
|
823
775
|
*/
|
|
824
|
-
|
|
825
|
-
private _otherClientHandle;
|
|
776
|
+
extra?: string;
|
|
826
777
|
/**
|
|
827
|
-
|
|
778
|
+
* 对方显示通知的标题
|
|
828
779
|
*/
|
|
829
|
-
|
|
830
|
-
private _onRinging;
|
|
831
|
-
private _onAccept;
|
|
832
|
-
private _onMediaModify;
|
|
833
|
-
private _onHungup;
|
|
780
|
+
pushTitle?: string;
|
|
834
781
|
/**
|
|
835
|
-
*
|
|
836
|
-
* @params watchers
|
|
782
|
+
* 对方显示的通知内容
|
|
837
783
|
*/
|
|
838
|
-
|
|
784
|
+
pushContent?: string;
|
|
839
785
|
/**
|
|
840
|
-
*
|
|
841
|
-
* @param message 接收消息
|
|
786
|
+
* 设置码率
|
|
842
787
|
*/
|
|
843
|
-
|
|
788
|
+
bitrate?: {
|
|
789
|
+
video?: IRCTrackBitrate;
|
|
790
|
+
audio?: number;
|
|
791
|
+
};
|
|
844
792
|
/**
|
|
845
|
-
*
|
|
846
|
-
* @param message 接收消息
|
|
793
|
+
* 是否为跨 appkey 通话
|
|
847
794
|
*/
|
|
848
|
-
|
|
795
|
+
isCrossAppkey?: boolean;
|
|
796
|
+
}
|
|
797
|
+
interface IMediaStreamConstraints {
|
|
798
|
+
video?: ICameraVideoProfile;
|
|
799
|
+
audio?: IMicphoneAudioProfile;
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* RCCallClient callInGroup方法的传参
|
|
803
|
+
*/
|
|
804
|
+
interface IRCCallInGroupParams {
|
|
805
|
+
targetId: string;
|
|
806
|
+
userIds: string[];
|
|
807
|
+
mediaType: RCCallMediaType;
|
|
849
808
|
/**
|
|
850
|
-
*
|
|
809
|
+
* session上要注册的监听事件
|
|
851
810
|
*/
|
|
852
|
-
|
|
811
|
+
listener: ISessionListener;
|
|
853
812
|
/**
|
|
854
|
-
*
|
|
855
|
-
* @param userIds 被邀请用户 ID 列表
|
|
856
|
-
* @param extra 消息的扩展信息
|
|
857
|
-
* @param pushTitle 通知的标题
|
|
858
|
-
* @param pushContent 通知的内容
|
|
813
|
+
* 组织 Id,可选
|
|
859
814
|
*/
|
|
860
|
-
|
|
861
|
-
code: RCCallErrorCode;
|
|
862
|
-
}>;
|
|
815
|
+
channelId?: string;
|
|
863
816
|
/**
|
|
864
|
-
*
|
|
817
|
+
* 用于获取己方媒体资源的参数
|
|
865
818
|
*/
|
|
866
|
-
|
|
867
|
-
code: RCCallErrorCode;
|
|
868
|
-
}>;
|
|
819
|
+
constraints?: IMediaStreamConstraints;
|
|
869
820
|
/**
|
|
870
|
-
*
|
|
871
|
-
* @param userIds 被邀请用户 ID 列表
|
|
821
|
+
* 消息的扩展信息
|
|
872
822
|
*/
|
|
873
|
-
|
|
874
|
-
code: RCCallErrorCode;
|
|
875
|
-
}>;
|
|
876
|
-
private _hungupHandle;
|
|
823
|
+
extra?: string;
|
|
877
824
|
/**
|
|
878
|
-
*
|
|
825
|
+
* 对方显示通知的标题
|
|
879
826
|
*/
|
|
880
|
-
|
|
881
|
-
code: RCCallErrorCode;
|
|
882
|
-
}>;
|
|
827
|
+
pushTitle?: string;
|
|
883
828
|
/**
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
changeMediaType(mediaType: RCCallMediaType): Promise<{
|
|
888
|
-
code: RCCallErrorCode;
|
|
889
|
-
}>;
|
|
829
|
+
* 对方显示的通知内容
|
|
830
|
+
*/
|
|
831
|
+
pushContent?: string;
|
|
890
832
|
/**
|
|
891
|
-
*
|
|
892
|
-
* 主叫呼叫后,未收到被叫 accept 消息,但收到了 userJoin 同样补偿更新用户、房间状态、呼叫计时器
|
|
833
|
+
* 设置码率
|
|
893
834
|
*/
|
|
894
|
-
|
|
835
|
+
bitrate?: {
|
|
836
|
+
video?: IRCTrackBitrate;
|
|
837
|
+
audio?: number;
|
|
838
|
+
};
|
|
839
|
+
}
|
|
840
|
+
interface IDeviceChangeParams {
|
|
841
|
+
audio?: IMicphoneAudioProfile;
|
|
842
|
+
video?: ICameraVideoProfile;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
interface IEndSummary {
|
|
895
846
|
/**
|
|
896
|
-
*
|
|
897
|
-
* 通话中远端用户挂断,挂断消息未到,但是监听到 rtc userLeave 同样补偿更新用户、房间状态
|
|
847
|
+
* 通话类型
|
|
898
848
|
*/
|
|
899
|
-
|
|
849
|
+
conversationType: ConversationType;
|
|
900
850
|
/**
|
|
901
|
-
*
|
|
902
|
-
* 触发时机:音视频服务异常、获取资源失败、加入 RTC 房间失败、发布|订阅失败
|
|
851
|
+
* 多组织 ID
|
|
903
852
|
*/
|
|
904
|
-
|
|
905
|
-
setHungupPushConfig(pushConfig?: string, pushContent?: string): void;
|
|
853
|
+
channelId: string;
|
|
906
854
|
/**
|
|
907
|
-
*
|
|
855
|
+
* 目标 ID
|
|
908
856
|
*/
|
|
909
|
-
|
|
857
|
+
targetId: string;
|
|
910
858
|
/**
|
|
911
|
-
*
|
|
859
|
+
* 通话媒体类型
|
|
912
860
|
*/
|
|
913
|
-
|
|
861
|
+
mediaType: RCCallMediaType;
|
|
914
862
|
/**
|
|
915
|
-
*
|
|
863
|
+
* 通话开始时间戳
|
|
916
864
|
*/
|
|
917
|
-
|
|
865
|
+
beginTimestamp: number;
|
|
918
866
|
/**
|
|
919
|
-
*
|
|
867
|
+
* 通话结束时间戳
|
|
920
868
|
*/
|
|
921
|
-
|
|
869
|
+
endTimestamp: number;
|
|
922
870
|
/**
|
|
923
|
-
*
|
|
871
|
+
* 通话时间
|
|
924
872
|
*/
|
|
925
|
-
|
|
926
|
-
/**
|
|
927
|
-
* 获取远端成员信息列表
|
|
928
|
-
*/
|
|
929
|
-
getRemoteUsers(): IUserData[];
|
|
873
|
+
duration: number;
|
|
930
874
|
/**
|
|
931
|
-
*
|
|
875
|
+
* 通话结束原因
|
|
932
876
|
*/
|
|
933
|
-
|
|
877
|
+
endReason: RCCallEndReason;
|
|
878
|
+
}
|
|
879
|
+
interface IUserProfile {
|
|
934
880
|
/**
|
|
935
|
-
*
|
|
881
|
+
* 用户名
|
|
936
882
|
*/
|
|
937
|
-
|
|
883
|
+
name?: string;
|
|
938
884
|
/**
|
|
939
|
-
*
|
|
885
|
+
* 用户头像地址
|
|
940
886
|
*/
|
|
941
|
-
|
|
887
|
+
portraitUri?: string;
|
|
942
888
|
/**
|
|
943
|
-
*
|
|
889
|
+
* user info 中附加信息
|
|
944
890
|
*/
|
|
945
|
-
|
|
891
|
+
extra?: string;
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* 通话发起者信息
|
|
895
|
+
*/
|
|
896
|
+
interface ISenderInfo extends IUserProfile {
|
|
946
897
|
/**
|
|
947
|
-
*
|
|
898
|
+
* 发起者 userId
|
|
948
899
|
*/
|
|
949
|
-
|
|
900
|
+
userId: string;
|
|
901
|
+
}
|
|
902
|
+
interface IUserData extends IUserProfile {
|
|
950
903
|
/**
|
|
951
|
-
*
|
|
904
|
+
* 用户 ID
|
|
952
905
|
*/
|
|
953
|
-
|
|
954
|
-
}
|
|
955
|
-
|
|
956
|
-
declare enum RCCallLanguage {
|
|
957
|
-
ZH = "zh",
|
|
958
|
-
EN = "en"
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
/**
|
|
962
|
-
* 产生session的场景
|
|
963
|
-
*/
|
|
964
|
-
declare enum ProduceTypes {
|
|
906
|
+
userId: string;
|
|
965
907
|
/**
|
|
966
|
-
*
|
|
908
|
+
* 用户 状态
|
|
967
909
|
*/
|
|
968
|
-
|
|
910
|
+
state: RCCallUserState;
|
|
969
911
|
/**
|
|
970
|
-
*
|
|
912
|
+
* 是否是通话发起者
|
|
971
913
|
*/
|
|
972
|
-
|
|
973
|
-
}
|
|
974
|
-
|
|
975
|
-
declare class RCCallSession {
|
|
914
|
+
isCaller: boolean;
|
|
976
915
|
/**
|
|
977
|
-
*
|
|
916
|
+
* 是否是远端用户
|
|
978
917
|
*/
|
|
979
|
-
|
|
918
|
+
isRemote: boolean;
|
|
980
919
|
/**
|
|
981
|
-
*
|
|
920
|
+
* 用户 deviceId
|
|
921
|
+
* 主要用于记录远端的用户的 deviceId, 用于处理多端消息
|
|
982
922
|
*/
|
|
983
|
-
|
|
984
|
-
|
|
923
|
+
deviceId?: string;
|
|
924
|
+
}
|
|
925
|
+
interface IUserStateChangeInfo {
|
|
985
926
|
/**
|
|
986
|
-
*
|
|
927
|
+
* 用户数据
|
|
987
928
|
*/
|
|
988
|
-
|
|
929
|
+
user: IUserData;
|
|
989
930
|
/**
|
|
990
|
-
*
|
|
931
|
+
* 挂断原因( user.state 为 RCCallUserState.NONE 时返回)
|
|
991
932
|
*/
|
|
992
|
-
|
|
933
|
+
reason?: RCCallEndReason;
|
|
934
|
+
}
|
|
935
|
+
interface IStateChangeInfo {
|
|
993
936
|
/**
|
|
994
|
-
*
|
|
937
|
+
* 状态
|
|
995
938
|
*/
|
|
996
|
-
|
|
939
|
+
state: RCCallSessionState;
|
|
997
940
|
/**
|
|
998
|
-
*
|
|
941
|
+
* state 为 RCCallSessionState.END 时返回
|
|
999
942
|
*/
|
|
1000
|
-
|
|
943
|
+
reason?: RCCallEndReason;
|
|
944
|
+
}
|
|
945
|
+
declare type IInvitedUsers = ISenderInfo;
|
|
946
|
+
interface IMemberModifyInfo {
|
|
1001
947
|
/**
|
|
1002
|
-
*
|
|
948
|
+
* 发起者信息
|
|
1003
949
|
*/
|
|
1004
|
-
|
|
1005
|
-
constructor(
|
|
950
|
+
sender: ISenderInfo;
|
|
1006
951
|
/**
|
|
1007
|
-
*
|
|
952
|
+
* 被邀请用户 ID 列表
|
|
1008
953
|
*/
|
|
1009
|
-
|
|
954
|
+
invitedUsers: IInvitedUsers[];
|
|
955
|
+
}
|
|
956
|
+
interface IMediaModifyInfo {
|
|
1010
957
|
/**
|
|
1011
|
-
*
|
|
958
|
+
* 发起者信息
|
|
1012
959
|
*/
|
|
1013
|
-
|
|
960
|
+
sender: ISenderInfo;
|
|
1014
961
|
/**
|
|
1015
|
-
*
|
|
962
|
+
* 修改后的媒体类型
|
|
1016
963
|
*/
|
|
1017
|
-
|
|
964
|
+
mediaType: RCCallMediaType;
|
|
965
|
+
}
|
|
966
|
+
interface ICallStateMachineWatchers {
|
|
1018
967
|
/**
|
|
1019
|
-
*
|
|
968
|
+
* 用户状态变更
|
|
969
|
+
* @param info
|
|
1020
970
|
*/
|
|
1021
|
-
|
|
971
|
+
onUserStateChange: (info: IUserStateChangeInfo) => void;
|
|
1022
972
|
/**
|
|
1023
|
-
*
|
|
973
|
+
* 房间状态变更
|
|
974
|
+
* @param info
|
|
1024
975
|
*/
|
|
1025
|
-
|
|
976
|
+
onStateChange: (info: IStateChangeInfo) => void;
|
|
1026
977
|
/**
|
|
1027
|
-
*
|
|
1028
|
-
* @param
|
|
1029
|
-
* @param params.isAllowSubscribeRetry 是否允许重试
|
|
1030
|
-
* @param params.count 允许重试的次数
|
|
978
|
+
* 收到响铃
|
|
979
|
+
* @param sender 发起用户信息
|
|
1031
980
|
*/
|
|
1032
|
-
|
|
981
|
+
onRinging: (sender: ISenderInfo) => void;
|
|
1033
982
|
/**
|
|
1034
|
-
*
|
|
1035
|
-
*
|
|
983
|
+
* 收到接听
|
|
984
|
+
* @param sender 发起用户信息
|
|
1036
985
|
*/
|
|
1037
|
-
|
|
986
|
+
onAccept: (sender: ISenderInfo) => void;
|
|
1038
987
|
/**
|
|
1039
|
-
*
|
|
1040
|
-
* @param params.tracks tracks
|
|
1041
|
-
* @param params.isAllowPublishRetry 是否允许重试
|
|
1042
|
-
* @param params.count 允许重试的次数
|
|
988
|
+
* 收到挂断
|
|
1043
989
|
*/
|
|
1044
|
-
|
|
990
|
+
onHungup: (sender: ISenderInfo, reason: RCCallEndReason) => void;
|
|
1045
991
|
/**
|
|
1046
|
-
*
|
|
992
|
+
* 收到人员变更
|
|
993
|
+
* @param sender 发起用户信息
|
|
1047
994
|
*/
|
|
1048
|
-
|
|
995
|
+
onMemberModify: (info: IMemberModifyInfo) => void;
|
|
1049
996
|
/**
|
|
1050
|
-
*
|
|
1051
|
-
* @param
|
|
997
|
+
* 收到通话类型变更
|
|
998
|
+
* @param sender 发起用户信息
|
|
1052
999
|
*/
|
|
1053
|
-
|
|
1000
|
+
onMediaModify: (info: IMediaModifyInfo) => void;
|
|
1054
1001
|
/**
|
|
1055
|
-
*
|
|
1002
|
+
* 是否跨appkey
|
|
1003
|
+
* @param ifCross 是否为跨appkey通信
|
|
1056
1004
|
*/
|
|
1057
|
-
|
|
1005
|
+
crossAppkey: (ifCross: boolean) => void;
|
|
1006
|
+
}
|
|
1007
|
+
/**
|
|
1008
|
+
* 发送邀请时的可选项
|
|
1009
|
+
*/
|
|
1010
|
+
interface IInviteOptions {
|
|
1058
1011
|
/**
|
|
1059
|
-
*
|
|
1012
|
+
* 消息的扩展信息
|
|
1060
1013
|
*/
|
|
1061
|
-
|
|
1062
|
-
private _getLocalTrack;
|
|
1014
|
+
extra?: string;
|
|
1063
1015
|
/**
|
|
1064
|
-
*
|
|
1016
|
+
* 移动端推送配置
|
|
1065
1017
|
*/
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1018
|
+
pushConfig?: IPushConfig;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
/**
|
|
1022
|
+
* 注释
|
|
1023
|
+
* TODO
|
|
1024
|
+
*/
|
|
1025
|
+
declare enum MsgCallStatus {
|
|
1026
|
+
OUTGOING = 1,
|
|
1027
|
+
INCOMING = 2,
|
|
1028
|
+
RINGING = 3,
|
|
1029
|
+
CONNECTED = 4,
|
|
1030
|
+
IDLE = 5,
|
|
1031
|
+
ACCEPTED = 6
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
interface IOfflineRecord {
|
|
1035
|
+
channelId: string;
|
|
1036
|
+
conversationType: ConversationType;
|
|
1037
|
+
targetId: string;
|
|
1038
|
+
mediaType: RCCallMediaType;
|
|
1039
|
+
callId: string;
|
|
1040
|
+
inviterId: string;
|
|
1041
|
+
endReason: RCCallEndReason;
|
|
1042
|
+
beginTimestamp: number;
|
|
1043
|
+
endTimestamp: number;
|
|
1044
|
+
duration: number;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
interface ISendBaseOptions {
|
|
1069
1048
|
/**
|
|
1070
|
-
*
|
|
1071
|
-
* @param userIds 被邀请用户 ID 列表
|
|
1072
|
-
* @param options.extra 消息的扩展信息
|
|
1073
|
-
* @deprecated 5.1.2 废弃 options.pushTitle 通知的标题
|
|
1074
|
-
* @deprecated 5.1.2 废弃 options.pushContent 通知内容
|
|
1049
|
+
* 组织 ID
|
|
1075
1050
|
*/
|
|
1076
|
-
|
|
1077
|
-
code: RCCallErrorCode;
|
|
1078
|
-
}>;
|
|
1051
|
+
channelId: string;
|
|
1079
1052
|
/**
|
|
1080
|
-
*
|
|
1053
|
+
* 会话类型
|
|
1081
1054
|
*/
|
|
1082
|
-
|
|
1083
|
-
code: RCCallErrorCode;
|
|
1084
|
-
}>;
|
|
1055
|
+
conversationType: ConversationType;
|
|
1085
1056
|
/**
|
|
1086
|
-
*
|
|
1057
|
+
* 目标 ID (单聊:对方 Id;群聊: 群组 Id)
|
|
1087
1058
|
*/
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1059
|
+
targetId: string;
|
|
1060
|
+
}
|
|
1061
|
+
interface IExistedUserPofiles {
|
|
1091
1062
|
/**
|
|
1092
|
-
*
|
|
1093
|
-
* @param mediaType RCCallMediaType.AUDIO 改为音频通话 | RCCallMediaType.AUDIO_VIDEO 改为音视频通话
|
|
1063
|
+
* 用户 ID
|
|
1094
1064
|
*/
|
|
1095
|
-
|
|
1096
|
-
code: RCCallErrorCode;
|
|
1097
|
-
}>;
|
|
1065
|
+
userId: string;
|
|
1098
1066
|
/**
|
|
1099
|
-
*
|
|
1067
|
+
* 通话类型
|
|
1100
1068
|
*/
|
|
1101
|
-
|
|
1069
|
+
mediaType: RCCallMediaType;
|
|
1102
1070
|
/**
|
|
1103
|
-
*
|
|
1071
|
+
* 与移动端一致的通话状态
|
|
1104
1072
|
*/
|
|
1105
|
-
|
|
1073
|
+
callStatus: MsgCallStatus;
|
|
1106
1074
|
/**
|
|
1107
|
-
*
|
|
1075
|
+
* PC 端 mediaId 直接传 userId, mediaId iOS 需要解出来渲染视图用。
|
|
1108
1076
|
*/
|
|
1109
|
-
|
|
1077
|
+
mediaId?: string;
|
|
1078
|
+
}
|
|
1079
|
+
interface IMsgListener {
|
|
1080
|
+
onInvite?: (msg: IReceivedMessage) => void;
|
|
1081
|
+
onRinging?: (msg: IReceivedMessage) => void;
|
|
1082
|
+
onAccept?: (msg: IReceivedMessage) => void;
|
|
1083
|
+
onMemberModify?: (msg: IReceivedMessage) => void;
|
|
1084
|
+
onMediaModify?: (msg: IReceivedMessage) => void;
|
|
1085
|
+
onHungup?: (msg: IReceivedMessage) => void;
|
|
1086
|
+
sendAccept?: (info: {
|
|
1087
|
+
callId: string;
|
|
1088
|
+
}) => void;
|
|
1089
|
+
onOfflineRecord?: (record: IOfflineRecord) => void;
|
|
1090
|
+
}
|
|
1091
|
+
interface IInviteMsgOptions extends ISendBaseOptions {
|
|
1110
1092
|
/**
|
|
1111
|
-
*
|
|
1112
|
-
* @param isSendMesssage 是否需要发消息, 默认发消息
|
|
1093
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1113
1094
|
*/
|
|
1114
|
-
|
|
1095
|
+
callId: string;
|
|
1115
1096
|
/**
|
|
1116
|
-
*
|
|
1117
|
-
*
|
|
1097
|
+
* 通话媒体类型
|
|
1118
1098
|
*/
|
|
1119
|
-
|
|
1120
|
-
code: RCCallErrorCode;
|
|
1121
|
-
}>;
|
|
1099
|
+
mediaType: RCCallMediaType;
|
|
1122
1100
|
/**
|
|
1123
|
-
*
|
|
1101
|
+
* 被邀请人用户 ID 列表
|
|
1124
1102
|
*/
|
|
1125
|
-
|
|
1126
|
-
code: RCCallErrorCode;
|
|
1127
|
-
}>;
|
|
1103
|
+
inviteUserIds: string[];
|
|
1128
1104
|
/**
|
|
1129
|
-
*
|
|
1105
|
+
* 扩展信息
|
|
1130
1106
|
*/
|
|
1131
|
-
|
|
1132
|
-
code: RCCallErrorCode;
|
|
1133
|
-
}>;
|
|
1107
|
+
extra: string;
|
|
1134
1108
|
/**
|
|
1135
|
-
*
|
|
1109
|
+
* 移动端推送配置
|
|
1136
1110
|
*/
|
|
1137
|
-
|
|
1138
|
-
code: RCCallErrorCode;
|
|
1139
|
-
} | undefined>;
|
|
1111
|
+
pushConfig?: IPushConfig;
|
|
1140
1112
|
/**
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1113
|
+
* 跨appkey参数
|
|
1114
|
+
*/
|
|
1115
|
+
roomType?: number;
|
|
1116
|
+
}
|
|
1117
|
+
interface IMemberModifyMsgOptions extends ISendBaseOptions {
|
|
1146
1118
|
/**
|
|
1147
|
-
*
|
|
1119
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1148
1120
|
*/
|
|
1149
|
-
|
|
1121
|
+
callId: string;
|
|
1150
1122
|
/**
|
|
1151
|
-
*
|
|
1123
|
+
* 通话媒体类型
|
|
1152
1124
|
*/
|
|
1153
|
-
|
|
1125
|
+
mediaType: RCCallMediaType;
|
|
1154
1126
|
/**
|
|
1155
|
-
*
|
|
1127
|
+
* 被邀请人用户 ID 列表
|
|
1156
1128
|
*/
|
|
1157
|
-
|
|
1129
|
+
inviteUserIds: string[];
|
|
1158
1130
|
/**
|
|
1159
|
-
*
|
|
1131
|
+
* 获取会话发起者 Id
|
|
1160
1132
|
*/
|
|
1161
|
-
|
|
1133
|
+
callerId: string;
|
|
1162
1134
|
/**
|
|
1163
|
-
*
|
|
1135
|
+
* 当前通话中的所有人,包含未接听用户
|
|
1164
1136
|
*/
|
|
1165
|
-
|
|
1137
|
+
existedUserPofiles: IExistedUserPofiles[];
|
|
1166
1138
|
/**
|
|
1167
|
-
*
|
|
1139
|
+
* 当前通话中的所有人,包含未接听用户
|
|
1168
1140
|
*/
|
|
1169
|
-
|
|
1141
|
+
directionalUserIdList: string[];
|
|
1170
1142
|
/**
|
|
1171
|
-
*
|
|
1143
|
+
* 扩展信息
|
|
1172
1144
|
*/
|
|
1173
|
-
|
|
1145
|
+
extra: string;
|
|
1174
1146
|
/**
|
|
1175
|
-
*
|
|
1147
|
+
* 移动端推送配置
|
|
1176
1148
|
*/
|
|
1177
|
-
|
|
1149
|
+
pushConfig?: IPushConfig;
|
|
1150
|
+
}
|
|
1151
|
+
interface IRingingMsgOptions extends ISendBaseOptions {
|
|
1178
1152
|
/**
|
|
1179
|
-
*
|
|
1153
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1180
1154
|
*/
|
|
1181
|
-
|
|
1155
|
+
callId: string;
|
|
1182
1156
|
/**
|
|
1183
|
-
*
|
|
1157
|
+
* 群呼中需要接收响铃的用户 ID 列表
|
|
1184
1158
|
*/
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
*/
|
|
1189
|
-
getUsers(): IUserData[];
|
|
1159
|
+
userIds?: string[];
|
|
1160
|
+
}
|
|
1161
|
+
interface IAcceptMsgOptions extends ISendBaseOptions {
|
|
1190
1162
|
/**
|
|
1191
|
-
*
|
|
1163
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1192
1164
|
*/
|
|
1193
|
-
|
|
1165
|
+
callId: string;
|
|
1194
1166
|
/**
|
|
1195
|
-
*
|
|
1167
|
+
* 通话媒体类型
|
|
1196
1168
|
*/
|
|
1197
|
-
|
|
1169
|
+
mediaType: RCCallMediaType;
|
|
1198
1170
|
/**
|
|
1199
|
-
*
|
|
1171
|
+
* 群呼中需要接收接听消息的用户 ID 列表
|
|
1200
1172
|
*/
|
|
1201
|
-
|
|
1173
|
+
userIds: string[];
|
|
1174
|
+
}
|
|
1175
|
+
interface IHungupMsgOptions extends ISendBaseOptions {
|
|
1202
1176
|
/**
|
|
1203
|
-
*
|
|
1177
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1204
1178
|
*/
|
|
1205
|
-
|
|
1206
|
-
}
|
|
1207
|
-
|
|
1208
|
-
interface ISender {
|
|
1209
|
-
userId: string;
|
|
1179
|
+
callId: string;
|
|
1210
1180
|
/**
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1181
|
+
* 挂断原因
|
|
1182
|
+
*/
|
|
1183
|
+
reason: RCCallEndReason;
|
|
1214
1184
|
/**
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1185
|
+
* 群呼中需要接收挂断消息的用户 ID 列表
|
|
1186
|
+
*/
|
|
1187
|
+
userIds: string[];
|
|
1218
1188
|
/**
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1189
|
+
* 移动端推送配置
|
|
1190
|
+
*/
|
|
1191
|
+
pushConfig?: IPushConfig;
|
|
1222
1192
|
}
|
|
1223
|
-
interface
|
|
1193
|
+
interface IMediaModifyMsgOptions extends ISendBaseOptions {
|
|
1224
1194
|
/**
|
|
1225
|
-
*
|
|
1195
|
+
* 呼叫 ID( RTC 房间 ID )
|
|
1226
1196
|
*/
|
|
1227
|
-
|
|
1197
|
+
callId: string;
|
|
1228
1198
|
/**
|
|
1229
|
-
*
|
|
1199
|
+
* 通话媒体类型
|
|
1230
1200
|
*/
|
|
1231
|
-
|
|
1201
|
+
mediaType: RCCallMediaType;
|
|
1232
1202
|
/**
|
|
1233
|
-
*
|
|
1203
|
+
* 群呼中需要媒体变更消息的用户 ID 列表
|
|
1234
1204
|
*/
|
|
1235
|
-
|
|
1205
|
+
userIds: string[];
|
|
1236
1206
|
}
|
|
1207
|
+
|
|
1208
|
+
declare type MsgListenerKeys = keyof IMsgListener;
|
|
1237
1209
|
/**
|
|
1238
|
-
*
|
|
1210
|
+
* 消息接收处理: 在线消息、离线消息
|
|
1211
|
+
* 发送消息处理: 发送不同类型消息封装
|
|
1239
1212
|
*/
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
rtcClient: RCRTCClient;
|
|
1245
|
-
/**
|
|
1246
|
-
* 收到邀请后,产生新的session
|
|
1247
|
-
*/
|
|
1248
|
-
onSession: (session: RCCallSession, extra?: string) => void;
|
|
1213
|
+
declare class CallMessageHandler extends EventEmitter {
|
|
1214
|
+
private readonly _context;
|
|
1215
|
+
private readonly _runtime;
|
|
1216
|
+
private readonly _logger;
|
|
1249
1217
|
/**
|
|
1250
|
-
*
|
|
1218
|
+
* 离线消息处理时间间隔
|
|
1251
1219
|
*/
|
|
1252
|
-
|
|
1220
|
+
private readonly _offlineMsgItv;
|
|
1221
|
+
private readonly _getStateMachine;
|
|
1222
|
+
private _watchers;
|
|
1223
|
+
private _userInfo;
|
|
1224
|
+
private _msgBufferList;
|
|
1225
|
+
private _hadHandleMsgTimer;
|
|
1226
|
+
private _offlineRecorder;
|
|
1227
|
+
private _deviceId;
|
|
1228
|
+
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger,
|
|
1253
1229
|
/**
|
|
1254
|
-
*
|
|
1255
|
-
* @param record
|
|
1256
|
-
* @returns
|
|
1230
|
+
* 离线消息处理时间间隔
|
|
1257
1231
|
*/
|
|
1258
|
-
|
|
1232
|
+
_offlineMsgItv: number, _getStateMachine: (callId: string) => RCCallStateMachine | null);
|
|
1233
|
+
private _onMessage;
|
|
1259
1234
|
/**
|
|
1260
|
-
*
|
|
1261
|
-
*
|
|
1262
|
-
* 暂不对外暴露
|
|
1235
|
+
* 在线消息抛给状态机处理
|
|
1263
1236
|
*/
|
|
1237
|
+
private _onRecvOnlineCallMsg;
|
|
1264
1238
|
/**
|
|
1265
|
-
|
|
1239
|
+
* 消息 buffer 列表处理逻辑
|
|
1240
|
+
* 1、每 20ms 检查一次 buffer list
|
|
1241
|
+
* 2、取出已经延迟 200 的消息列表进行消费 | 无延迟 200ms 内消息直接递归
|
|
1242
|
+
* 3、消费分为 离线消息消费逻辑、在线消息消费逻辑,消费后递归
|
|
1266
1243
|
*/
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1244
|
+
private _handleBufferMsgs;
|
|
1245
|
+
registerEventListener(listener: IMsgListener): void;
|
|
1246
|
+
registerStateMachineEvent(callId: string, funcName: MsgListenerKeys, event: (...args: any[]) => void): void;
|
|
1247
|
+
unregisterStateMachineEvent(callId: string): void;
|
|
1248
|
+
registerUserInfo(userInfo: IUserProfile): void;
|
|
1272
1249
|
/**
|
|
1273
|
-
*
|
|
1250
|
+
* 发送 IM 消息
|
|
1274
1251
|
*/
|
|
1275
|
-
|
|
1252
|
+
private _sendCallMessage;
|
|
1276
1253
|
/**
|
|
1277
|
-
*
|
|
1254
|
+
* 发送邀请消息
|
|
1278
1255
|
*/
|
|
1279
|
-
|
|
1256
|
+
sendInvite(options: IInviteMsgOptions): Promise<{
|
|
1257
|
+
code: RCCallErrorCode;
|
|
1258
|
+
message?: IReceivedMessage | undefined;
|
|
1259
|
+
}>;
|
|
1280
1260
|
/**
|
|
1281
|
-
*
|
|
1261
|
+
* 发送人员变更消息
|
|
1282
1262
|
*/
|
|
1283
|
-
|
|
1263
|
+
sendMemeberModify(options: IMemberModifyMsgOptions): Promise<{
|
|
1264
|
+
code: RCCallErrorCode;
|
|
1265
|
+
message?: IReceivedMessage | undefined;
|
|
1266
|
+
}>;
|
|
1284
1267
|
/**
|
|
1285
|
-
*
|
|
1286
|
-
* @deprecated - version 5.2.2
|
|
1268
|
+
* 发送响铃消息
|
|
1287
1269
|
*/
|
|
1288
|
-
|
|
1270
|
+
sendRinging(options: IRingingMsgOptions): Promise<{
|
|
1271
|
+
code: RCCallErrorCode;
|
|
1272
|
+
message?: IReceivedMessage | undefined;
|
|
1273
|
+
}>;
|
|
1289
1274
|
/**
|
|
1290
|
-
*
|
|
1291
|
-
* @since version 5.2.2
|
|
1275
|
+
* 发送同意接听消息
|
|
1292
1276
|
*/
|
|
1293
|
-
|
|
1277
|
+
sendAccept(options: IAcceptMsgOptions): Promise<{
|
|
1278
|
+
code: RCCallErrorCode;
|
|
1279
|
+
message?: IReceivedMessage | undefined;
|
|
1280
|
+
}>;
|
|
1294
1281
|
/**
|
|
1295
|
-
*
|
|
1296
|
-
* @deprecated - version 5.2.0
|
|
1282
|
+
* 发送挂断消息
|
|
1297
1283
|
*/
|
|
1298
|
-
|
|
1284
|
+
sendHungup(options: IHungupMsgOptions): Promise<{
|
|
1285
|
+
code: RCCallErrorCode;
|
|
1286
|
+
message?: IReceivedMessage | undefined;
|
|
1287
|
+
}>;
|
|
1299
1288
|
/**
|
|
1300
|
-
*
|
|
1289
|
+
* 发送媒体变更消息
|
|
1301
1290
|
*/
|
|
1302
|
-
|
|
1291
|
+
sendMediaModify(options: IMediaModifyMsgOptions): Promise<{
|
|
1292
|
+
code: RCCallErrorCode;
|
|
1293
|
+
message?: IReceivedMessage | undefined;
|
|
1294
|
+
}>;
|
|
1303
1295
|
}
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1296
|
+
|
|
1297
|
+
declare class RCCallStateMachine {
|
|
1298
|
+
private readonly _context;
|
|
1299
|
+
private readonly _runtime;
|
|
1300
|
+
private readonly _logger;
|
|
1301
|
+
private readonly _callMsgHandler;
|
|
1302
|
+
private readonly _channelId;
|
|
1303
|
+
private readonly _conversationType;
|
|
1304
|
+
private readonly _targetId;
|
|
1305
|
+
private _mediaType;
|
|
1306
|
+
private readonly _callId;
|
|
1308
1307
|
/**
|
|
1309
|
-
*
|
|
1308
|
+
* 房间状态
|
|
1310
1309
|
*/
|
|
1311
|
-
|
|
1310
|
+
private _sessionState;
|
|
1312
1311
|
/**
|
|
1313
|
-
*
|
|
1312
|
+
* 用户状态及信息
|
|
1314
1313
|
*/
|
|
1315
|
-
|
|
1316
|
-
}
|
|
1317
|
-
/**
|
|
1318
|
-
* session上的监听
|
|
1319
|
-
*/
|
|
1320
|
-
interface ISessionListener {
|
|
1314
|
+
private _userInfo;
|
|
1321
1315
|
/**
|
|
1322
|
-
*
|
|
1316
|
+
* 用户计时器映射
|
|
1323
1317
|
*/
|
|
1324
|
-
|
|
1318
|
+
private _userTimers;
|
|
1325
1319
|
/**
|
|
1326
|
-
*
|
|
1320
|
+
* 监听器
|
|
1327
1321
|
*/
|
|
1328
|
-
|
|
1322
|
+
private _watchers;
|
|
1329
1323
|
/**
|
|
1330
|
-
*
|
|
1324
|
+
* 呼叫超时时间 (单位:毫秒)
|
|
1331
1325
|
*/
|
|
1332
|
-
|
|
1326
|
+
private _callTimeout;
|
|
1333
1327
|
/**
|
|
1334
|
-
*
|
|
1328
|
+
* 通话建立开始时间
|
|
1335
1329
|
*/
|
|
1336
|
-
|
|
1330
|
+
private _beginTimestamp;
|
|
1337
1331
|
/**
|
|
1338
|
-
*
|
|
1332
|
+
* 通话结束时间
|
|
1339
1333
|
*/
|
|
1340
|
-
|
|
1334
|
+
private _endTimestamp;
|
|
1341
1335
|
/**
|
|
1342
|
-
*
|
|
1336
|
+
* 通话结束原因
|
|
1343
1337
|
*/
|
|
1344
|
-
|
|
1338
|
+
private _endReason;
|
|
1345
1339
|
/**
|
|
1346
|
-
*
|
|
1340
|
+
* 主叫 ID
|
|
1341
|
+
* 发起邀请为当前用户 ID
|
|
1342
|
+
* 收到邀请为 senderUserId
|
|
1343
|
+
* 收到人员变更邀请为消息体中 callerId
|
|
1347
1344
|
*/
|
|
1348
|
-
|
|
1345
|
+
private _callerId;
|
|
1349
1346
|
/**
|
|
1350
|
-
*
|
|
1347
|
+
* 当次通话邀请者 ID
|
|
1348
|
+
* 发起邀请为当前用户 ID、收到邀请为 senderUserId、收到人员变更邀请为消息体中 senderUserId
|
|
1351
1349
|
*/
|
|
1352
|
-
|
|
1353
|
-
/**
|
|
1354
|
-
* 资源订阅失败
|
|
1355
|
-
*/
|
|
1356
|
-
onTrackSubscribeFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
1357
|
-
/**
|
|
1358
|
-
* 资源发布失败
|
|
1359
|
-
*/
|
|
1360
|
-
onTrackPublishFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
1350
|
+
private _inviterId;
|
|
1361
1351
|
/**
|
|
1362
|
-
*
|
|
1352
|
+
* 是否是跨 appkey
|
|
1363
1353
|
*/
|
|
1364
|
-
|
|
1354
|
+
private _isCrossAppkey;
|
|
1355
|
+
private _hungupPushConfig?;
|
|
1356
|
+
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: ILogger, _callMsgHandler: CallMessageHandler, _channelId: string, _conversationType: ConversationType, _targetId: string, _mediaType: RCCallMediaType, _callId: string);
|
|
1365
1357
|
/**
|
|
1366
|
-
*
|
|
1358
|
+
* 获取校正后超时时间
|
|
1367
1359
|
*/
|
|
1368
|
-
|
|
1360
|
+
private _getTimeout;
|
|
1361
|
+
private _clearTimerById;
|
|
1369
1362
|
/**
|
|
1370
|
-
*
|
|
1371
|
-
* @since version 5.1.5
|
|
1363
|
+
* 通知 call 层房间状态变更及原因
|
|
1372
1364
|
*/
|
|
1373
|
-
|
|
1374
|
-
}
|
|
1375
|
-
/**
|
|
1376
|
-
* 创建session的options
|
|
1377
|
-
*/
|
|
1378
|
-
interface IRCCallSessionOptions {
|
|
1365
|
+
private _notifyStateChange;
|
|
1379
1366
|
/**
|
|
1380
|
-
*
|
|
1367
|
+
* 通知 call 层人员状态变更及原因
|
|
1381
1368
|
*/
|
|
1382
|
-
|
|
1369
|
+
private _notifyUserStateChange;
|
|
1370
|
+
private _otherClientHandle;
|
|
1383
1371
|
/**
|
|
1384
|
-
*
|
|
1385
|
-
|
|
1386
|
-
|
|
1372
|
+
* 正在通话中,且不是当前已接通用户设备(deviceId)发来的消息
|
|
1373
|
+
*/
|
|
1374
|
+
private _isRemoteInvalidMsg;
|
|
1375
|
+
private _onRinging;
|
|
1376
|
+
private _onAccept;
|
|
1377
|
+
private _onMediaModify;
|
|
1378
|
+
private _onHungup;
|
|
1387
1379
|
/**
|
|
1388
|
-
*
|
|
1380
|
+
* 注册事件监听
|
|
1381
|
+
* @params watchers
|
|
1389
1382
|
*/
|
|
1390
|
-
|
|
1383
|
+
registerEventListener(watchers: ICallStateMachineWatchers): void;
|
|
1391
1384
|
/**
|
|
1392
|
-
*
|
|
1385
|
+
* 收到 invite 消息时状态机更新(CallEngine 内部调用)
|
|
1386
|
+
* @param message 接收消息
|
|
1393
1387
|
*/
|
|
1394
|
-
|
|
1388
|
+
__onInvite(message: IReceivedMessage): void;
|
|
1395
1389
|
/**
|
|
1396
|
-
*
|
|
1390
|
+
* 收到 memberModify 消息时状态机更新(CallEngine 内部调用)
|
|
1391
|
+
* @param message 接收消息
|
|
1397
1392
|
*/
|
|
1398
|
-
|
|
1393
|
+
__onMemberModify(message: IReceivedMessage): void;
|
|
1399
1394
|
/**
|
|
1400
|
-
*
|
|
1395
|
+
* 处理已有 session ,不允许再接听新会话情况
|
|
1401
1396
|
*/
|
|
1402
|
-
|
|
1397
|
+
__handleInviteInSession(): void;
|
|
1403
1398
|
/**
|
|
1404
|
-
*
|
|
1399
|
+
* 主动呼叫 (CallEngine 内部调用)
|
|
1400
|
+
* @param userIds 被邀请用户 ID 列表
|
|
1401
|
+
* @param extra 消息的扩展信息
|
|
1402
|
+
* @param pushConfig 移动端推送配置
|
|
1405
1403
|
*/
|
|
1406
|
-
|
|
1407
|
-
|
|
1404
|
+
__call(userIds: string[], extra: string | undefined, pushConfig: IPushConfig, isCrossAppkey?: boolean): Promise<{
|
|
1405
|
+
code: RCCallErrorCode;
|
|
1406
|
+
}>;
|
|
1408
1407
|
/**
|
|
1409
|
-
*
|
|
1408
|
+
* 接听
|
|
1410
1409
|
*/
|
|
1411
|
-
|
|
1410
|
+
accept(): Promise<{
|
|
1411
|
+
code: RCCallErrorCode;
|
|
1412
|
+
}>;
|
|
1412
1413
|
/**
|
|
1413
|
-
*
|
|
1414
|
+
* 群呼叫中继续邀请
|
|
1415
|
+
* @param userIds 被邀请用户 ID 列表
|
|
1414
1416
|
*/
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1417
|
+
invite(userIds: string[], options?: IInviteOptions): Promise<{
|
|
1418
|
+
code: RCCallErrorCode;
|
|
1419
|
+
}>;
|
|
1420
|
+
private _hungupHandle;
|
|
1418
1421
|
/**
|
|
1419
|
-
*
|
|
1422
|
+
* 挂断
|
|
1420
1423
|
*/
|
|
1421
|
-
|
|
1424
|
+
hungup(): Promise<{
|
|
1425
|
+
code: RCCallErrorCode;
|
|
1426
|
+
}>;
|
|
1422
1427
|
/**
|
|
1423
|
-
*
|
|
1428
|
+
* 修改通话媒体类型
|
|
1429
|
+
* @param mediaType RCCallMediaType.AUDIO 改为音频通话 | RCCallMediaType.AUDIO_VIDEO 改为音视频通话
|
|
1424
1430
|
*/
|
|
1425
|
-
|
|
1431
|
+
changeMediaType(mediaType: RCCallMediaType): Promise<{
|
|
1432
|
+
code: RCCallErrorCode;
|
|
1433
|
+
}>;
|
|
1426
1434
|
/**
|
|
1427
|
-
*
|
|
1435
|
+
* 用户加入通话补偿机制(rtc userJoin 事件触发)
|
|
1436
|
+
* 主叫呼叫后,未收到被叫 accept 消息,但收到了 userJoin 同样补偿更新用户、房间状态、呼叫计时器
|
|
1428
1437
|
*/
|
|
1429
|
-
|
|
1430
|
-
}
|
|
1431
|
-
/**
|
|
1432
|
-
* RCCallClient call方法的传参
|
|
1433
|
-
*/
|
|
1434
|
-
interface IRCCallParams {
|
|
1435
|
-
targetId: string;
|
|
1438
|
+
userJoin(userIds: string[]): void;
|
|
1436
1439
|
/**
|
|
1437
|
-
*
|
|
1440
|
+
* 用户离开通话补偿机制(rtc userLeave、kickOff 事件触发)
|
|
1441
|
+
* 通话中远端用户挂断,挂断消息未到,但是监听到 rtc userLeave 同样补偿更新用户、房间状态
|
|
1438
1442
|
*/
|
|
1439
|
-
|
|
1443
|
+
userLeave(userIds: string[]): void;
|
|
1440
1444
|
/**
|
|
1441
|
-
*
|
|
1445
|
+
* Call 层己方异常失败后调用的方法
|
|
1446
|
+
* 触发时机:音视频服务异常、获取资源失败、加入 RTC 房间失败、发布|订阅失败
|
|
1442
1447
|
*/
|
|
1443
|
-
|
|
1448
|
+
close(reason: RCCallEndReason): void;
|
|
1449
|
+
setHungupPushConfig(pushConfig: IPushConfig): void;
|
|
1444
1450
|
/**
|
|
1445
|
-
*
|
|
1451
|
+
* 通话唯一标识
|
|
1446
1452
|
*/
|
|
1447
|
-
|
|
1453
|
+
getCallId(): string;
|
|
1448
1454
|
/**
|
|
1449
|
-
*
|
|
1455
|
+
* 多组织 ID
|
|
1450
1456
|
*/
|
|
1451
|
-
|
|
1452
|
-
video?: ICameraVideoProfile;
|
|
1453
|
-
audio: IMicphoneAudioProfile;
|
|
1454
|
-
};
|
|
1457
|
+
getChannelId(): string;
|
|
1455
1458
|
/**
|
|
1456
|
-
*
|
|
1459
|
+
* 目标 ID,单呼对方人员 Id, 群呼群组 Id
|
|
1457
1460
|
*/
|
|
1458
|
-
|
|
1459
|
-
/**
|
|
1460
|
-
* 对方显示通知的标题
|
|
1461
|
-
*/
|
|
1462
|
-
pushTitle?: string;
|
|
1461
|
+
getTargetId(): string;
|
|
1463
1462
|
/**
|
|
1464
|
-
*
|
|
1463
|
+
* 获取会话类型
|
|
1465
1464
|
*/
|
|
1466
|
-
|
|
1465
|
+
getConversationType(): ConversationType;
|
|
1467
1466
|
/**
|
|
1468
|
-
*
|
|
1467
|
+
* 获取远端成员 ID 列表
|
|
1469
1468
|
*/
|
|
1470
|
-
|
|
1471
|
-
video?: IRCTrackBitrate;
|
|
1472
|
-
audio?: number;
|
|
1473
|
-
};
|
|
1469
|
+
getRemoteUserIds(): string[];
|
|
1474
1470
|
/**
|
|
1475
|
-
*
|
|
1471
|
+
* 获取远端成员信息列表
|
|
1476
1472
|
*/
|
|
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;
|
|
1473
|
+
getRemoteUsers(): IUserData[];
|
|
1490
1474
|
/**
|
|
1491
|
-
*
|
|
1475
|
+
* 获取房间状态
|
|
1492
1476
|
*/
|
|
1493
|
-
|
|
1477
|
+
getState(): RCCallSessionState;
|
|
1494
1478
|
/**
|
|
1495
|
-
*
|
|
1479
|
+
* 获取人员状态
|
|
1496
1480
|
*/
|
|
1497
|
-
|
|
1481
|
+
getUserState(userId: string): RCCallUserState;
|
|
1498
1482
|
/**
|
|
1499
|
-
*
|
|
1483
|
+
* 获取会话发起者 Id
|
|
1500
1484
|
*/
|
|
1501
|
-
|
|
1485
|
+
getCallerId(): string;
|
|
1502
1486
|
/**
|
|
1503
|
-
*
|
|
1487
|
+
* 获取当次会话邀请者 Id
|
|
1504
1488
|
*/
|
|
1505
|
-
|
|
1489
|
+
getInviterId(): string;
|
|
1506
1490
|
/**
|
|
1507
|
-
*
|
|
1491
|
+
* 获取当前通话媒体类型
|
|
1508
1492
|
*/
|
|
1509
|
-
|
|
1510
|
-
/**
|
|
1511
|
-
* 对方显示的通知内容
|
|
1512
|
-
*/
|
|
1513
|
-
pushContent?: string;
|
|
1493
|
+
getMediaType(): RCCallMediaType;
|
|
1514
1494
|
/**
|
|
1515
|
-
*
|
|
1495
|
+
* 通话挂断后可调用
|
|
1516
1496
|
*/
|
|
1517
|
-
|
|
1518
|
-
video?: IRCTrackBitrate;
|
|
1519
|
-
audio?: number;
|
|
1520
|
-
};
|
|
1497
|
+
getSummary(): IEndSummary;
|
|
1521
1498
|
}
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1499
|
+
|
|
1500
|
+
declare enum RCCallLanguage {
|
|
1501
|
+
ZH = "zh",
|
|
1502
|
+
EN = "en"
|
|
1525
1503
|
}
|
|
1526
1504
|
|
|
1527
1505
|
declare class RCCallClient {
|
|
@@ -1544,8 +1522,14 @@ declare class RCCallClient {
|
|
|
1544
1522
|
* session列表
|
|
1545
1523
|
*/
|
|
1546
1524
|
private _sessionList;
|
|
1547
|
-
|
|
1548
|
-
|
|
1525
|
+
/**
|
|
1526
|
+
* 移动端呼叫推送配置
|
|
1527
|
+
*/
|
|
1528
|
+
private _callPushConfig?;
|
|
1529
|
+
/**
|
|
1530
|
+
* 移动端挂断推送配置
|
|
1531
|
+
*/
|
|
1532
|
+
private _hungupPushConfig?;
|
|
1549
1533
|
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: BasicLogger, _options: IRCCallInitOptions);
|
|
1550
1534
|
/**
|
|
1551
1535
|
* 监听onInvite
|
|
@@ -1638,13 +1622,12 @@ declare class RCCallClient {
|
|
|
1638
1622
|
/**
|
|
1639
1623
|
* 设置呼叫、挂断推送数据
|
|
1640
1624
|
* @param callPushConfig 呼叫推送配置
|
|
1641
|
-
* @param callPushConfig.pushTitle 呼叫推送标题
|
|
1642
|
-
* @param callPushConfig.pushContent 呼叫推送内容
|
|
1643
1625
|
* @param hungupPushConfig 挂断推送配置
|
|
1644
|
-
* @
|
|
1645
|
-
* @param hungupPushConfig.pushContent 挂断推送内容
|
|
1626
|
+
* @description callLib 会内置 IPushConfig 中 pushData 的赋值,业务层无需关注 pushData 字段值
|
|
1646
1627
|
*/
|
|
1647
|
-
setPushConfig(callPushConfig
|
|
1628
|
+
setPushConfig(callPushConfig: IPushConfig, hungupPushConfig: IPushConfig): {
|
|
1629
|
+
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;
|
|
1630
|
+
} | undefined;
|
|
1648
1631
|
}
|
|
1649
1632
|
|
|
1650
1633
|
declare const installer: IPluginGenerator<RCCallClient, IRCCallInitOptions>;
|