@rongcloud/plugin-call-plus 2.1.5 → 2.1.7-enterprise-lz.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { RCConnectionStatus, EventEmitter, BasicLogger, RTCJoinType, EnableLogL, PluginContext, IRuntime, IReceivedMessage, IPluginGenerator } from '@rongcloud/engine';
2
- import { RCRTCClient, RCRemoteTrack, RCTrack, ISubscribeAttr, RCRTCCode, RCLocalAudioTrack, RCRemoteAudioTrack, RCFrameRate, RCResolution } from '@rongcloud/plugin-rtc';
1
+ import { RCConnectionStatus, EventEmitter, BasicLogger, PluginContext, EnableLogL, IReceivedMessage, IPluginGenerator } from '@rongcloud/engine';
2
+ import { RCRemoteTrack, RCTrack, ISubscribeAttr, RCRTCCode, RCLocalAudioTrack, RCRemoteAudioTrack, RCRTCClient, RCFrameRate, RCResolution } from '@rongcloud/plugin-rtc';
3
3
  export { RCFrameRate as RCCallPlusFrameRate, RCResolution as RCCallPlusResolution } from '@rongcloud/plugin-rtc';
4
4
 
5
5
  /**
@@ -413,7 +413,11 @@ declare enum RCCallPlusReason {
413
413
  /**
414
414
  * 远端用户的其他端已经在房间中,不允许 joinRoom 进行音视频通话
415
415
  */
416
- REMOTE_OTHER_CLIENT_IN_RTC = 1214
416
+ REMOTE_OTHER_CLIENT_IN_RTC = 1214,
417
+ /**
418
+ * 加密通话失败,如获取秘钥失败等
419
+ */
420
+ ENCRYPT_FAILED = 1216
417
421
  }
418
422
 
419
423
  /**
@@ -471,6 +475,10 @@ interface IBaseSingalCon {
471
475
  * 开始呼叫信令内容
472
476
  */
473
477
  interface IStartCallCon {
478
+ /**
479
+ * 客户端生成,传给服务
480
+ */
481
+ callId?: string;
474
482
  /**
475
483
  * 用户生成 callId
476
484
  */
@@ -491,6 +499,10 @@ interface IStartCallCon {
491
499
  * 是否密聊
492
500
  */
493
501
  secretChat: SecretCallType;
502
+ /**
503
+ * 密钥
504
+ */
505
+ secretChatKey: string;
494
506
  /**
495
507
  * 当前用户的来源组 ID 类型
496
508
  */
@@ -515,11 +527,16 @@ interface IStartCallCon {
515
527
  * 附加信息,服务器透传
516
528
  */
517
529
  extra?: string;
530
+ innerExtra?: string;
518
531
  }
519
532
  /**
520
533
  * 单呼信令内容
521
534
  */
522
535
  interface IStartSingleCon {
536
+ /**
537
+ * 客户端生成,传递给服务
538
+ */
539
+ callId?: string;
523
540
  /**
524
541
  * 用户生成 callId
525
542
  */
@@ -565,11 +582,16 @@ interface IStartSingleCon {
565
582
  * 服务端接收的推送扩展
566
583
  */
567
584
  pushExt?: string;
585
+ innerExtra?: string;
568
586
  }
569
587
  /**
570
588
  * 群呼信令内容
571
589
  */
572
590
  interface IStartGroupCon {
591
+ /**
592
+ * 客户端生成,传递给服务
593
+ */
594
+ callId?: string;
573
595
  /**
574
596
  * 用户生成 callId
575
597
  */
@@ -606,6 +628,16 @@ interface IStartGroupCon {
606
628
  * 服务端接收的推送扩展
607
629
  */
608
630
  pushExt?: string;
631
+ innerExtra?: string;
632
+ /**
633
+ * 是否密聊(0: 否;1: 是)
634
+ * PC 目前无密聊,写死 0
635
+ */
636
+ secretChat: SecretCallType;
637
+ /**
638
+ * 单聊加密 key
639
+ */
640
+ secretChatKey?: string;
609
641
  }
610
642
  /**
611
643
  * 开始呼叫 Server 返回
@@ -642,6 +674,7 @@ interface IInviteCallCon extends IBaseSingalCon {
642
674
  * 服务端接收的推送扩展
643
675
  */
644
676
  pushExt?: string;
677
+ innerExtra?: string;
645
678
  }
646
679
  /**
647
680
  * 邀请好友加入信令结果
@@ -720,7 +753,7 @@ interface IPubInviteCon extends IBaseSingalCon {
720
753
  /**
721
754
  * 媒体类型
722
755
  */
723
- mediaType: RCCallPlusMediaType;
756
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
724
757
  /**
725
758
  * 是否密聊
726
759
  */
@@ -741,6 +774,14 @@ interface IPubInviteCon extends IBaseSingalCon {
741
774
  * 附加信息
742
775
  */
743
776
  extra?: string;
777
+ /**
778
+ * 可存储的扩展信息,由发起人发起时定义
779
+ */
780
+ innerExtra?: string;
781
+ /**
782
+ * 通话加密密钥
783
+ */
784
+ secretChatKey?: string;
744
785
  }
745
786
  /**
746
787
  * 通话响铃信令内容
@@ -871,7 +912,7 @@ interface IDialogUpCallCon extends IBaseSingalCon {
871
912
  * 附加数据,上传为可选
872
913
  */
873
914
  extraKeyVal?: {
874
- mediaType: RCCallPlusMediaType;
915
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
875
916
  reason?: DialogAction;
876
917
  } | {
877
918
  cameraOn: 0 | 1;
@@ -897,7 +938,7 @@ interface IDialogDownCallCon extends IDialogUpCallCon {
897
938
  * 附加数据
898
939
  */
899
940
  extraKeyVal: {
900
- mediaType: RCCallPlusMediaType;
941
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
901
942
  reason?: DialogAction;
902
943
  };
903
944
  }
@@ -969,6 +1010,7 @@ interface ISyncCallLogRes extends IBaseSingalCon {
969
1010
  * 同步数据
970
1011
  */
971
1012
  syncTime: number;
1013
+ innerExtra?: string;
972
1014
  }
973
1015
  interface ISyncCallLogResList {
974
1016
  hasMore: 0 | 1;
@@ -1042,7 +1084,7 @@ interface IGetUserCallStateListRes {
1042
1084
  callStateList: {
1043
1085
  callId: string;
1044
1086
  callType: RCCallPlusType;
1045
- mediaType: RCCallPlusMediaType;
1087
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1046
1088
  /**
1047
1089
  * 呼叫发起者 ID
1048
1090
  */
@@ -1076,6 +1118,8 @@ interface IGetUserCallStateListRes {
1076
1118
  */
1077
1119
  targetId: string;
1078
1120
  startTime: number;
1121
+ innerExtra?: string;
1122
+ secretChat: SecretCallType;
1079
1123
  }[];
1080
1124
  }
1081
1125
  interface IClearCallLogRes {
@@ -1096,7 +1140,7 @@ interface IGetCallSessionServerRes extends IBaseSingalCon {
1096
1140
  /**
1097
1141
  * 媒体类型
1098
1142
  */
1099
- mediaType: RCCallPlusMediaType;
1143
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1100
1144
  /**
1101
1145
  * 通话状态
1102
1146
  */
@@ -1125,6 +1169,9 @@ interface IGetCallSessionServerRes extends IBaseSingalCon {
1125
1169
  * 同步时间戳
1126
1170
  */
1127
1171
  syncTime: number;
1172
+ innerExtra?: string;
1173
+ secretChat: SecretCallType;
1174
+ secretChatKey?: string;
1128
1175
  }
1129
1176
  interface IGetCallTimeInfoRes extends IBaseSingalCon {
1130
1177
  /**
@@ -1277,6 +1324,14 @@ interface IRCCallPlusCallRecord {
1277
1324
  * 创建时间
1278
1325
  */
1279
1326
  createTimestamp: number;
1327
+ /**
1328
+ * 同步数据
1329
+ */
1330
+ syncData?: string;
1331
+ /**
1332
+ * 是否为加密通话
1333
+ */
1334
+ isSecret: boolean;
1280
1335
  }
1281
1336
  interface IUserInfo {
1282
1337
  /**
@@ -1300,7 +1355,15 @@ interface IUserInfo {
1300
1355
  */
1301
1356
  orgId?: string;
1302
1357
  }
1303
- interface IStartCallOpts extends ICallId {
1358
+ interface IStartCallOpts {
1359
+ /**
1360
+ * 通话唯一 ID
1361
+ */
1362
+ callId?: string;
1363
+ /**
1364
+ * 客户端 callId
1365
+ */
1366
+ clientCallId: string;
1304
1367
  /**
1305
1368
  * 被邀请人信息
1306
1369
  */
@@ -1312,7 +1375,7 @@ interface IStartCallOpts extends ICallId {
1312
1375
  /**
1313
1376
  * 通话媒体类型
1314
1377
  */
1315
- mediaType: RCCallPlusMediaType;
1378
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1316
1379
  /**
1317
1380
  * 当前用户来源组 ID 类型
1318
1381
  */
@@ -1334,6 +1397,12 @@ interface IStartCallOpts extends ICallId {
1334
1397
  * 附加信息,服务器透传
1335
1398
  */
1336
1399
  extra?: string;
1400
+ /**
1401
+ * 内部透传信息,服务器会记录该数据
1402
+ */
1403
+ innerExtra?: string;
1404
+ secretChat: SecretCallType;
1405
+ secretChatKey?: string;
1337
1406
  }
1338
1407
  interface IStartCallResult {
1339
1408
  /**
@@ -1433,7 +1502,7 @@ interface IReqChangeMediaTypeOpts {
1433
1502
  /**
1434
1503
  * 通话媒体类型
1435
1504
  */
1436
- mediaType: RCCallPlusMediaType;
1505
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1437
1506
  /**
1438
1507
  * 需要接收的用户 ID 列表
1439
1508
  */
@@ -1473,7 +1542,7 @@ interface IGetCallSessionRes extends ICallId {
1473
1542
  /**
1474
1543
  * 媒体类型
1475
1544
  */
1476
- mediaType: RCCallPlusMediaType;
1545
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1477
1546
  /**
1478
1547
  * 通话状态
1479
1548
  */
@@ -1494,6 +1563,12 @@ interface IGetCallSessionRes extends ICallId {
1494
1563
  * 同步时间戳
1495
1564
  */
1496
1565
  syncTime: number;
1566
+ innerExtra?: string;
1567
+ secretChat: SecretCallType;
1568
+ /**
1569
+ * 通话加密密钥
1570
+ */
1571
+ secretChatKey?: string;
1497
1572
  }
1498
1573
 
1499
1574
  declare enum CallTimerEventType {
@@ -1538,8 +1613,17 @@ declare class RCCallInnerSession extends EventEmitter {
1538
1613
  */
1539
1614
  private _callUsers;
1540
1615
  private readonly _logger;
1616
+ private readonly _isSecret;
1541
1617
  /**
1542
- * 请求更新的 mediaType
1618
+ * 同步数据
1619
+ */
1620
+ private _syncData;
1621
+ /**
1622
+ * 通话加密密钥
1623
+ */
1624
+ private _secretKey;
1625
+ /**
1626
+ * 暂存请求更新的 mediaType,无请求时为 null
1543
1627
  */
1544
1628
  private _reqMediaType;
1545
1629
  /**
@@ -1580,7 +1664,7 @@ declare class RCCallInnerSession extends EventEmitter {
1580
1664
  /**
1581
1665
  * 通话媒体类型
1582
1666
  */
1583
- _mediaType: RCCallPlusMediaType,
1667
+ _mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO,
1584
1668
  /**
1585
1669
  * session 呼叫发起者
1586
1670
  */
@@ -1592,7 +1676,15 @@ declare class RCCallInnerSession extends EventEmitter {
1592
1676
  /**
1593
1677
  * 当前 session 人员信息列表
1594
1678
  */
1595
- _callUsers: ISessionUser[], _logger: BasicLogger);
1679
+ _callUsers: ISessionUser[], _logger: BasicLogger, _isSecret: boolean,
1680
+ /**
1681
+ * 同步数据
1682
+ */
1683
+ _syncData?: string,
1684
+ /**
1685
+ * 通话加密密钥
1686
+ */
1687
+ _secretKey?: string);
1596
1688
  /**
1597
1689
  * 获取 CallID
1598
1690
  */
@@ -1608,7 +1700,7 @@ declare class RCCallInnerSession extends EventEmitter {
1608
1700
  /**
1609
1701
  * 获取媒体类型
1610
1702
  */
1611
- getMediaType(): RCCallPlusMediaType;
1703
+ getMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1612
1704
  /**
1613
1705
  * 获取 session 发起者
1614
1706
  */
@@ -1624,7 +1716,7 @@ declare class RCCallInnerSession extends EventEmitter {
1624
1716
  /**
1625
1717
  * 请求更新的 mediaType
1626
1718
  */
1627
- getReqMediaType(): RCCallPlusMediaType | null;
1719
+ getReqMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO | null;
1628
1720
  /**
1629
1721
  * inviterTimerId
1630
1722
  */
@@ -1654,11 +1746,11 @@ declare class RCCallInnerSession extends EventEmitter {
1654
1746
  /**
1655
1747
  * 更新媒体类型(升降级)
1656
1748
  */
1657
- updateMediaType(mediaType: RCCallPlusMediaType): void;
1749
+ updateMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO): void;
1658
1750
  /**
1659
1751
  * 更新请求的媒体类型(升降级)
1660
1752
  */
1661
- updateReqMediaType(mediaType: RCCallPlusMediaType | null): void;
1753
+ updateReqMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO | null): void;
1662
1754
  /**
1663
1755
  * 更新 invter timer id
1664
1756
  */
@@ -1672,26 +1764,9 @@ declare class RCCallInnerSession extends EventEmitter {
1672
1764
  */
1673
1765
  setIsLocalClientHangup(isLocalClientHangup: boolean): void;
1674
1766
  getIsLocalClientHangup(): boolean;
1675
- }
1676
-
1677
- interface IRCCallInitOptions {
1678
- /**
1679
- * RTC 实例
1680
- */
1681
- rtcClient: RCRTCClient;
1682
- /**
1683
- * RTC 房间加入类型
1684
- */
1685
- joinType?: RTCJoinType;
1686
- /**
1687
- * 控制台日志输出等级
1688
- */
1689
- outputLogLevel?: EnableLogL;
1690
- /**
1691
- * 修改默认的 log 输出函数
1692
- * @deprecated
1693
- */
1694
- logStdout?: (logLevel: EnableLogL, content: string) => void;
1767
+ getSyncData(): string | undefined;
1768
+ isSecret(): boolean;
1769
+ getSecretKey(): string;
1695
1770
  }
1696
1771
 
1697
1772
  declare enum CallServerAction {
@@ -1985,8 +2060,6 @@ declare class RCCallPlusReportModule {
1985
2060
 
1986
2061
  declare class SignalTransporter extends EventEmitter {
1987
2062
  private readonly _context;
1988
- private readonly _runtime;
1989
- private readonly _initOpts;
1990
2063
  private readonly _timeCorrectioner;
1991
2064
  private readonly _logger;
1992
2065
  private readonly _reportAppEventModule;
@@ -2002,9 +2075,10 @@ declare class SignalTransporter extends EventEmitter {
2002
2075
  /**
2003
2076
  * constructor
2004
2077
  */
2005
- constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2078
+ constructor(_context: PluginContext, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2006
2079
  private _onMessage;
2007
2080
  getSessionId(): string;
2081
+ getDeviceId(): string;
2008
2082
  registerListener(listener: ISignalTransporterListener): void;
2009
2083
  startCall(msg: IStartCallCon, traceId: string): Promise<{
2010
2084
  code: number;
@@ -2106,7 +2180,7 @@ declare class SignalTransporter extends EventEmitter {
2106
2180
  * deviceId 为空字符串或 null 直接下发
2107
2181
  * deviceId 有具体的值,根据 deviceId 判断是否是己端的 deviceId
2108
2182
  */
2109
- private _isValidData;
2183
+ isValidData(toDeviceId: string | null): boolean;
2110
2184
  /**
2111
2185
  * 收到邀请
2112
2186
  * @param isDirectly 是否为直发信令
@@ -2143,9 +2217,8 @@ declare class SignalTransporter extends EventEmitter {
2143
2217
  */
2144
2218
  declare class AbnormalCall {
2145
2219
  private readonly _logger;
2146
- private _localStore;
2147
2220
  private static _STORAGE_KEY;
2148
- constructor(runtime: IRuntime, _logger: BasicLogger);
2221
+ constructor(_logger: BasicLogger);
2149
2222
  /**
2150
2223
  * 添加异常 callId
2151
2224
  */
@@ -2162,8 +2235,6 @@ declare class AbnormalCall {
2162
2235
 
2163
2236
  declare class RCCallEngine extends EventEmitter {
2164
2237
  private readonly _context;
2165
- private readonly _runtime;
2166
- private readonly _initOpts;
2167
2238
  private readonly _logger;
2168
2239
  private readonly _reportAppEventModule;
2169
2240
  static __INNER_SESSION_CLOSE__: string;
@@ -2208,7 +2279,7 @@ declare class RCCallEngine extends EventEmitter {
2208
2279
  /**
2209
2280
  * 构造器
2210
2281
  */
2211
- constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2282
+ constructor(_context: PluginContext, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2212
2283
  /**
2213
2284
  * 发起呼叫
2214
2285
  */
@@ -2490,7 +2561,7 @@ declare class RCCallPlusSession {
2490
2561
  /**
2491
2562
  * 获取通话媒体类型
2492
2563
  */
2493
- getMediaType(): RCCallPlusMediaType;
2564
+ getMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
2494
2565
  /**
2495
2566
  * 获取通话人员列表
2496
2567
  */
@@ -2522,6 +2593,20 @@ declare class RCCallPlusSession {
2522
2593
  code: number;
2523
2594
  duration?: number;
2524
2595
  }>;
2596
+ /**
2597
+ * 获取通话中的缓存数据,数据由通话发起人在发起通话时定义
2598
+ * @returns
2599
+ */
2600
+ getSyncData(): string | undefined;
2601
+ /**
2602
+ * 通话是否已加密
2603
+ * @returns
2604
+ */
2605
+ isSecret(): boolean;
2606
+ /**
2607
+ * 获取通话加密密钥
2608
+ */
2609
+ getSecretKey(): string;
2525
2610
  }
2526
2611
 
2527
2612
  /**
@@ -2659,12 +2744,75 @@ interface IRCCallPlusSummaryMessageContent {
2659
2744
  * 通话挂断原因
2660
2745
  */
2661
2746
  hangupReason: RCCallPlusReason;
2747
+ /**
2748
+ * 是否为加密通话
2749
+ */
2750
+ isSecret: boolean;
2751
+ /**
2752
+ * 通话发起人定义的同步信息
2753
+ */
2754
+ syncData?: string;
2755
+ /**
2756
+ * 是否是本人挂断
2757
+ */
2758
+ isSelfHangup: boolean;
2662
2759
  }
2663
2760
  /**
2664
2761
  * 通话记录的消息结构定义
2665
2762
  */
2666
2763
  interface IRCCallPlusReceivedSummaryMessage extends IReceivedMessage {
2667
2764
  }
2765
+ /**
2766
+ * 发起呼叫参数
2767
+ */
2768
+ interface IRCCallPlusStartParams {
2769
+ /**
2770
+ * callId,量子生成相同密钥时使用
2771
+ */
2772
+ callId?: string;
2773
+ /**
2774
+ * 被叫方通话用户列表
2775
+ */
2776
+ userIds: string[];
2777
+ /**
2778
+ * 通话类型,默认为 `RCCallPlusType.SINGLE`
2779
+ * * `RCCallPlusType.SINGLE` - 发起单人呼叫
2780
+ * * `RCCallPlusType.MULTI` - 发起多人呼叫
2781
+ */
2782
+ type?: RCCallPlusType;
2783
+ /**
2784
+ * 通话媒体类型,默认为 `RCCallPlusMediaType.AUDIO_VIDEO` 音视频通话
2785
+ * * `RCCallPlusMediaType.AUDIO` - 音频通话
2786
+ * * `RCCallPlusMediaType.AUDIO_VIDEO` - 音视频通话
2787
+ */
2788
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
2789
+ /**
2790
+ * 推送配置,用于定义移动端接收呼叫时的推送行为
2791
+ */
2792
+ pushConfig?: IRCCallPlusPushConfig;
2793
+ /**
2794
+ * 透传信息,该信息将通过 `onReceivedCall` 回调时透传给被叫方
2795
+ */
2796
+ extra?: string;
2797
+ /**
2798
+ * 定义通话同步数据,该数据与 `extra` 不同点,在于数据会被服务器存储,同时可通过 `session.getSyncData()` 获取;
2799
+ * 数据不可超出 1024 Bytes
2800
+ */
2801
+ syncData?: string;
2802
+ /**
2803
+ * 加密配置
2804
+ */
2805
+ encryption?: {
2806
+ /**
2807
+ * 是否加密,默认不加密
2808
+ */
2809
+ isSecret: boolean;
2810
+ /**
2811
+ * 密钥
2812
+ */
2813
+ secretKey: string;
2814
+ };
2815
+ }
2668
2816
  /**
2669
2817
  * callPlus 对外事件定义
2670
2818
  */
@@ -2905,13 +3053,13 @@ interface RCCallPlusPacketLossStats {
2905
3053
  */
2906
3054
  interface IStatusReportListener {
2907
3055
  /**
2908
- * 发送丢包率信息回调,每秒回调一次
3056
+ * 上行丢包率及延迟信息回调,每秒回调一次
2909
3057
  * @param packetLostRate 丢包率,0-100
2910
3058
  * @param delay 发送端的网络延迟,单位毫秒
2911
3059
  */
2912
3060
  onSendPacketLoss(packetLostRate: number, delay: number): void;
2913
3061
  /**
2914
- * 接收丢包率信息回调,每秒回调一次
3062
+ * 下行丢包率及延迟信息回调,每秒回调一次
2915
3063
  * @param data key: userId, value: 接收丢包统计数据
2916
3064
  * @param data[userId].packetLostRate 丢包率:取值范围是 0-100
2917
3065
  * @param data[userId].bitRate 码率大小,单位是 kbps
@@ -3170,11 +3318,8 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3170
3318
  setimageUrlHonor(imageUrlHonor: string): this;
3171
3319
  /**
3172
3320
  * 构建 IAndroidPushConfig
3173
- <<<<<<< HEAD
3174
- =======
3175
3321
  * @returns IAndroidPushConfig 安卓推送配置数据
3176
3322
  * 返回值需传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中
3177
- >>>>>>> develop
3178
3323
  */
3179
3324
  build(): IAndroidPushConfig;
3180
3325
  }
@@ -3182,7 +3327,6 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3182
3327
  declare class RCCallPlusClient {
3183
3328
  private readonly _context;
3184
3329
  private readonly _logger;
3185
- private readonly _runtime;
3186
3330
  private readonly _initOpts;
3187
3331
  /**
3188
3332
  * 摄像头采集配置
@@ -3214,7 +3358,7 @@ declare class RCCallPlusClient {
3214
3358
  * 上报应用层事件模块
3215
3359
  */
3216
3360
  _reportAppEventModule: RCCallPlusReportModule;
3217
- constructor(_context: PluginContext, _logger: BasicLogger, _runtime: IRuntime, _initOpts: ICallPlusInitOpts);
3361
+ constructor(_context: PluginContext, _logger: BasicLogger, _initOpts: ICallPlusInitOpts);
3218
3362
  /**
3219
3363
  * 加房间、发布、订阅失败时需结束通话,并上报原因
3220
3364
  */
@@ -3329,16 +3473,32 @@ declare class RCCallPlusClient {
3329
3473
  setAudioConfig(cfg: IAudioConfig): {
3330
3474
  code: number;
3331
3475
  };
3476
+ /**
3477
+ * 设置音频输出设备,用于指定和修改音频播放设备;
3478
+ * @param deviceId
3479
+ */
3480
+ setAudioOutputDeviceId(deviceId: string): Promise<{
3481
+ code: number;
3482
+ }>;
3332
3483
  /**
3333
3484
  * 发起呼叫
3485
+ * @deprecated 接口已废弃,请使用 `startCallWithParams` 接口替代
3334
3486
  * @param userIds 被叫人员 userId 列表,单人呼叫仅需在数组中放置对方一人的 userId
3335
- * @param type 单人呼叫 or 多人呼叫
3487
+ * @param callType 单人呼叫 or 多人呼叫
3336
3488
  * @param mediaType 通话媒体类型: 音频 or 音视频
3337
3489
  * @param pushConfig 移动端推送信息
3338
3490
  * @param extra 附加信息,会透传给被呼叫方
3339
3491
  * @returns callId 呼叫成功后,产生的会话 id
3340
3492
  */
3341
- startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType, pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
3493
+ startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO, pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
3494
+ code: number;
3495
+ callId?: string;
3496
+ }>;
3497
+ /**
3498
+ * 发起呼叫
3499
+ * @param params - {@inheritDoc IRCCallPlusStartParams}
3500
+ */
3501
+ startCallWithParams(params: IRCCallPlusStartParams): Promise<{
3342
3502
  code: number;
3343
3503
  callId?: string;
3344
3504
  }>;
@@ -3369,23 +3529,22 @@ declare class RCCallPlusClient {
3369
3529
  accept(callId: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3370
3530
  code: number;
3371
3531
  }>;
3372
- private __innerHangup;
3532
+ private _innerHangup;
3373
3533
  /**
3374
3534
  * 挂断通话
3375
- * @param callId 为可选参数,不传时,挂断正在进行的主 session,传入时可指定挂断主通话或暂未建立连接的通话
3376
- * @param pushConfig 移动端推送信息
3377
- * 暂未建立连接的通话:指已在通话中时,收到呼叫但暂未接听的通话
3535
+ * @param callId 可选参数;当存在多个通话时,可通过该参数指定要挂断的通话;不传时 SDK 将挂断当前进行中的通话;
3378
3536
  * @param pushConfig 移动端推送信息
3379
3537
  */
3380
- hangup(callId?: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3538
+ hangup(callId?: string, pushConfig?: IRCCallPlusPushConfig, reason?: RCCallPlusReason): Promise<{
3381
3539
  code: number;
3382
3540
  }>;
3541
+ private _hangup;
3383
3542
  /**
3384
3543
  * 通话中发起媒体类型变更请求
3385
3544
  * @param mediaType 媒体类型
3386
3545
  * @returns transactionId 客户端和服务端交互的事务 id,在取消或应答媒体类型切换时传入
3387
3546
  */
3388
- requestChangeMediaType(mediaType: RCCallPlusMediaType): Promise<{
3547
+ requestChangeMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO): Promise<{
3389
3548
  code: number;
3390
3549
  transactionId?: string;
3391
3550
  }>;
@@ -3507,6 +3666,10 @@ declare class RCCallPlusClient {
3507
3666
  * 获取麦克风列表
3508
3667
  */
3509
3668
  getMicrophones(): Promise<MediaDeviceInfo[]>;
3669
+ /**
3670
+ * 获取声音播放设备列表
3671
+ */
3672
+ getSpeakers(): Promise<MediaDeviceInfo[]>;
3510
3673
  getRTCSessionId(): string | null;
3511
3674
  /**
3512
3675
  * 切换麦克风功能,通话前和通话中都可调用。
@@ -3516,8 +3679,14 @@ declare class RCCallPlusClient {
3516
3679
  switchMicrophone(microphoneId: string): Promise<{
3517
3680
  code: number;
3518
3681
  }>;
3682
+ /**
3683
+ * 客户端生成 callId,量子特定,用于生成同样的密钥
3684
+ * 呼叫时传给服务,通话 callId 为此 callId
3685
+ * @param userId 用户 id
3686
+ */
3687
+ generateCallId(userId: string): string;
3519
3688
  }
3520
3689
 
3521
3690
  declare const installer: IPluginGenerator<RCCallPlusClient, ICallPlusInitOpts>;
3522
3691
 
3523
- export { IAndroidPushConfig, IAudioConfig, IAudioConfigBuilder, ICallOpts, ICallPlusEventListener, ICallPlusInitOpts, IRCCallPlusCallRecord, IRCCallPlusGetCallRecordRes, IRCCallPlusPushConfig, IRCCallPlusReceivedSummaryMessage, IRCCallPlusSummaryMessageContent, IServerPushExt, IStatusReportListener, IVideoConfig, IVideoConfigBuilder, IiOSPushConfig, RCAudioConfigBuilder, RCCallPlusAndroidPushConfigBuilder, RCCallPlusCallState, RCCallPlusCallUser, RCCallPlusClient, RCCallPlusCode, RCCallPlusMediaType, RCCallPlusMediaTypeChangeResult, RCCallPlusPacketLossStats, RCCallPlusReason, RCCallPlusSession, RCCallPlusSessionUserState, RCCallPlusType, RCVideoConfigBuilder, installer };
3692
+ export { IAndroidPushConfig, IAudioConfig, IAudioConfigBuilder, ICallOpts, ICallPlusEventListener, ICallPlusInitOpts, IRCCallPlusCallRecord, IRCCallPlusGetCallRecordRes, IRCCallPlusPushConfig, IRCCallPlusReceivedSummaryMessage, IRCCallPlusStartParams, IRCCallPlusSummaryMessageContent, IServerPushExt, IStatusReportListener, IVideoConfig, IVideoConfigBuilder, IiOSPushConfig, RCAudioConfigBuilder, RCCallPlusAndroidPushConfigBuilder, RCCallPlusCallState, RCCallPlusCallUser, RCCallPlusClient, RCCallPlusCode, RCCallPlusMediaType, RCCallPlusMediaTypeChangeResult, RCCallPlusPacketLossStats, RCCallPlusReason, RCCallPlusSession, RCCallPlusSessionUserState, RCCallPlusType, RCVideoConfigBuilder, installer };