@rongcloud/plugin-call-plus 2.1.5 → 2.1.7-enterprise.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
  * 通话响铃信令内容
@@ -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
  /**
@@ -1312,7 +1367,7 @@ interface IStartCallOpts extends ICallId {
1312
1367
  /**
1313
1368
  * 通话媒体类型
1314
1369
  */
1315
- mediaType: RCCallPlusMediaType;
1370
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1316
1371
  /**
1317
1372
  * 当前用户来源组 ID 类型
1318
1373
  */
@@ -1334,6 +1389,12 @@ interface IStartCallOpts extends ICallId {
1334
1389
  * 附加信息,服务器透传
1335
1390
  */
1336
1391
  extra?: string;
1392
+ /**
1393
+ * 内部透传信息,服务器会记录该数据
1394
+ */
1395
+ innerExtra?: string;
1396
+ secretChat: SecretCallType;
1397
+ secretChatKey?: string;
1337
1398
  }
1338
1399
  interface IStartCallResult {
1339
1400
  /**
@@ -1433,7 +1494,7 @@ interface IReqChangeMediaTypeOpts {
1433
1494
  /**
1434
1495
  * 通话媒体类型
1435
1496
  */
1436
- mediaType: RCCallPlusMediaType;
1497
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1437
1498
  /**
1438
1499
  * 需要接收的用户 ID 列表
1439
1500
  */
@@ -1473,7 +1534,7 @@ interface IGetCallSessionRes extends ICallId {
1473
1534
  /**
1474
1535
  * 媒体类型
1475
1536
  */
1476
- mediaType: RCCallPlusMediaType;
1537
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1477
1538
  /**
1478
1539
  * 通话状态
1479
1540
  */
@@ -1494,6 +1555,12 @@ interface IGetCallSessionRes extends ICallId {
1494
1555
  * 同步时间戳
1495
1556
  */
1496
1557
  syncTime: number;
1558
+ innerExtra?: string;
1559
+ secretChat: SecretCallType;
1560
+ /**
1561
+ * 通话加密密钥
1562
+ */
1563
+ secretChatKey?: string;
1497
1564
  }
1498
1565
 
1499
1566
  declare enum CallTimerEventType {
@@ -1538,8 +1605,17 @@ declare class RCCallInnerSession extends EventEmitter {
1538
1605
  */
1539
1606
  private _callUsers;
1540
1607
  private readonly _logger;
1608
+ private readonly _isSecret;
1541
1609
  /**
1542
- * 请求更新的 mediaType
1610
+ * 同步数据
1611
+ */
1612
+ private _syncData;
1613
+ /**
1614
+ * 通话加密密钥
1615
+ */
1616
+ private _secretKey;
1617
+ /**
1618
+ * 暂存请求更新的 mediaType,无请求时为 null
1543
1619
  */
1544
1620
  private _reqMediaType;
1545
1621
  /**
@@ -1580,7 +1656,7 @@ declare class RCCallInnerSession extends EventEmitter {
1580
1656
  /**
1581
1657
  * 通话媒体类型
1582
1658
  */
1583
- _mediaType: RCCallPlusMediaType,
1659
+ _mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO,
1584
1660
  /**
1585
1661
  * session 呼叫发起者
1586
1662
  */
@@ -1592,7 +1668,15 @@ declare class RCCallInnerSession extends EventEmitter {
1592
1668
  /**
1593
1669
  * 当前 session 人员信息列表
1594
1670
  */
1595
- _callUsers: ISessionUser[], _logger: BasicLogger);
1671
+ _callUsers: ISessionUser[], _logger: BasicLogger, _isSecret: boolean,
1672
+ /**
1673
+ * 同步数据
1674
+ */
1675
+ _syncData?: string,
1676
+ /**
1677
+ * 通话加密密钥
1678
+ */
1679
+ _secretKey?: string);
1596
1680
  /**
1597
1681
  * 获取 CallID
1598
1682
  */
@@ -1608,7 +1692,7 @@ declare class RCCallInnerSession extends EventEmitter {
1608
1692
  /**
1609
1693
  * 获取媒体类型
1610
1694
  */
1611
- getMediaType(): RCCallPlusMediaType;
1695
+ getMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
1612
1696
  /**
1613
1697
  * 获取 session 发起者
1614
1698
  */
@@ -1624,7 +1708,7 @@ declare class RCCallInnerSession extends EventEmitter {
1624
1708
  /**
1625
1709
  * 请求更新的 mediaType
1626
1710
  */
1627
- getReqMediaType(): RCCallPlusMediaType | null;
1711
+ getReqMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO | null;
1628
1712
  /**
1629
1713
  * inviterTimerId
1630
1714
  */
@@ -1654,11 +1738,11 @@ declare class RCCallInnerSession extends EventEmitter {
1654
1738
  /**
1655
1739
  * 更新媒体类型(升降级)
1656
1740
  */
1657
- updateMediaType(mediaType: RCCallPlusMediaType): void;
1741
+ updateMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO): void;
1658
1742
  /**
1659
1743
  * 更新请求的媒体类型(升降级)
1660
1744
  */
1661
- updateReqMediaType(mediaType: RCCallPlusMediaType | null): void;
1745
+ updateReqMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO | null): void;
1662
1746
  /**
1663
1747
  * 更新 invter timer id
1664
1748
  */
@@ -1672,26 +1756,9 @@ declare class RCCallInnerSession extends EventEmitter {
1672
1756
  */
1673
1757
  setIsLocalClientHangup(isLocalClientHangup: boolean): void;
1674
1758
  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;
1759
+ getSyncData(): string | undefined;
1760
+ isSecret(): boolean;
1761
+ getSecretKey(): string;
1695
1762
  }
1696
1763
 
1697
1764
  declare enum CallServerAction {
@@ -1985,8 +2052,6 @@ declare class RCCallPlusReportModule {
1985
2052
 
1986
2053
  declare class SignalTransporter extends EventEmitter {
1987
2054
  private readonly _context;
1988
- private readonly _runtime;
1989
- private readonly _initOpts;
1990
2055
  private readonly _timeCorrectioner;
1991
2056
  private readonly _logger;
1992
2057
  private readonly _reportAppEventModule;
@@ -2002,9 +2067,10 @@ declare class SignalTransporter extends EventEmitter {
2002
2067
  /**
2003
2068
  * constructor
2004
2069
  */
2005
- constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2070
+ constructor(_context: PluginContext, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2006
2071
  private _onMessage;
2007
2072
  getSessionId(): string;
2073
+ getDeviceId(): string;
2008
2074
  registerListener(listener: ISignalTransporterListener): void;
2009
2075
  startCall(msg: IStartCallCon, traceId: string): Promise<{
2010
2076
  code: number;
@@ -2106,7 +2172,7 @@ declare class SignalTransporter extends EventEmitter {
2106
2172
  * deviceId 为空字符串或 null 直接下发
2107
2173
  * deviceId 有具体的值,根据 deviceId 判断是否是己端的 deviceId
2108
2174
  */
2109
- private _isValidData;
2175
+ isValidData(toDeviceId: string | null): boolean;
2110
2176
  /**
2111
2177
  * 收到邀请
2112
2178
  * @param isDirectly 是否为直发信令
@@ -2143,9 +2209,8 @@ declare class SignalTransporter extends EventEmitter {
2143
2209
  */
2144
2210
  declare class AbnormalCall {
2145
2211
  private readonly _logger;
2146
- private _localStore;
2147
2212
  private static _STORAGE_KEY;
2148
- constructor(runtime: IRuntime, _logger: BasicLogger);
2213
+ constructor(_logger: BasicLogger);
2149
2214
  /**
2150
2215
  * 添加异常 callId
2151
2216
  */
@@ -2162,8 +2227,6 @@ declare class AbnormalCall {
2162
2227
 
2163
2228
  declare class RCCallEngine extends EventEmitter {
2164
2229
  private readonly _context;
2165
- private readonly _runtime;
2166
- private readonly _initOpts;
2167
2230
  private readonly _logger;
2168
2231
  private readonly _reportAppEventModule;
2169
2232
  static __INNER_SESSION_CLOSE__: string;
@@ -2208,7 +2271,7 @@ declare class RCCallEngine extends EventEmitter {
2208
2271
  /**
2209
2272
  * 构造器
2210
2273
  */
2211
- constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2274
+ constructor(_context: PluginContext, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2212
2275
  /**
2213
2276
  * 发起呼叫
2214
2277
  */
@@ -2490,7 +2553,7 @@ declare class RCCallPlusSession {
2490
2553
  /**
2491
2554
  * 获取通话媒体类型
2492
2555
  */
2493
- getMediaType(): RCCallPlusMediaType;
2556
+ getMediaType(): RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
2494
2557
  /**
2495
2558
  * 获取通话人员列表
2496
2559
  */
@@ -2522,6 +2585,20 @@ declare class RCCallPlusSession {
2522
2585
  code: number;
2523
2586
  duration?: number;
2524
2587
  }>;
2588
+ /**
2589
+ * 获取通话中的缓存数据,数据由通话发起人在发起通话时定义
2590
+ * @returns
2591
+ */
2592
+ getSyncData(): string | undefined;
2593
+ /**
2594
+ * 通话是否已加密
2595
+ * @returns
2596
+ */
2597
+ isSecret(): boolean;
2598
+ /**
2599
+ * 获取通话加密密钥
2600
+ */
2601
+ getSecretKey(): string;
2525
2602
  }
2526
2603
 
2527
2604
  /**
@@ -2659,12 +2736,67 @@ interface IRCCallPlusSummaryMessageContent {
2659
2736
  * 通话挂断原因
2660
2737
  */
2661
2738
  hangupReason: RCCallPlusReason;
2739
+ /**
2740
+ * 是否为加密通话
2741
+ */
2742
+ isSecret: boolean;
2743
+ /**
2744
+ * 通话发起人定义的同步信息
2745
+ */
2746
+ syncData?: string;
2662
2747
  }
2663
2748
  /**
2664
2749
  * 通话记录的消息结构定义
2665
2750
  */
2666
2751
  interface IRCCallPlusReceivedSummaryMessage extends IReceivedMessage {
2667
2752
  }
2753
+ /**
2754
+ * 发起呼叫参数
2755
+ */
2756
+ interface IRCCallPlusStartParams {
2757
+ /**
2758
+ * 被叫方通话用户列表
2759
+ */
2760
+ userIds: string[];
2761
+ /**
2762
+ * 通话类型,默认为 `RCCallPlusType.SINGLE`
2763
+ * * `RCCallPlusType.SINGLE` - 发起单人呼叫
2764
+ * * `RCCallPlusType.MULTI` - 发起多人呼叫
2765
+ */
2766
+ type?: RCCallPlusType;
2767
+ /**
2768
+ * 通话媒体类型,默认为 `RCCallPlusMediaType.AUDIO_VIDEO` 音视频通话
2769
+ * * `RCCallPlusMediaType.AUDIO` - 音频通话
2770
+ * * `RCCallPlusMediaType.AUDIO_VIDEO` - 音视频通话
2771
+ */
2772
+ mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO;
2773
+ /**
2774
+ * 推送配置,用于定义移动端接收呼叫时的推送行为
2775
+ */
2776
+ pushConfig?: IRCCallPlusPushConfig;
2777
+ /**
2778
+ * 透传信息,该信息将通过 `onReceivedCall` 回调时透传给被叫方
2779
+ */
2780
+ extra?: string;
2781
+ /**
2782
+ * 定义通话同步数据,该数据与 `extra` 不同点,在于数据会被服务器存储,同时可通过 `session.getSyncData()` 获取;
2783
+ * 数据不可超出 1024 Bytes
2784
+ */
2785
+ syncData?: string;
2786
+ /**
2787
+ * 加密配置
2788
+ */
2789
+ encryption?: {
2790
+ /**
2791
+ * 是否加密,默认不加密
2792
+ */
2793
+ isSecret: boolean;
2794
+ /**
2795
+ * 密钥
2796
+ */
2797
+ secretKey: string;
2798
+ };
2799
+ }
2668
2800
  /**
2669
2801
  * callPlus 对外事件定义
2670
2802
  */
@@ -2905,13 +3037,13 @@ interface RCCallPlusPacketLossStats {
2905
3037
  */
2906
3038
  interface IStatusReportListener {
2907
3039
  /**
2908
- * 发送丢包率信息回调,每秒回调一次
3040
+ * 上行丢包率及延迟信息回调,每秒回调一次
2909
3041
  * @param packetLostRate 丢包率,0-100
2910
3042
  * @param delay 发送端的网络延迟,单位毫秒
2911
3043
  */
2912
3044
  onSendPacketLoss(packetLostRate: number, delay: number): void;
2913
3045
  /**
2914
- * 接收丢包率信息回调,每秒回调一次
3046
+ * 下行丢包率及延迟信息回调,每秒回调一次
2915
3047
  * @param data key: userId, value: 接收丢包统计数据
2916
3048
  * @param data[userId].packetLostRate 丢包率:取值范围是 0-100
2917
3049
  * @param data[userId].bitRate 码率大小,单位是 kbps
@@ -3170,11 +3302,8 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3170
3302
  setimageUrlHonor(imageUrlHonor: string): this;
3171
3303
  /**
3172
3304
  * 构建 IAndroidPushConfig
3173
- <<<<<<< HEAD
3174
- =======
3175
3305
  * @returns IAndroidPushConfig 安卓推送配置数据
3176
3306
  * 返回值需传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中
3177
- >>>>>>> develop
3178
3307
  */
3179
3308
  build(): IAndroidPushConfig;
3180
3309
  }
@@ -3182,7 +3311,6 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3182
3311
  declare class RCCallPlusClient {
3183
3312
  private readonly _context;
3184
3313
  private readonly _logger;
3185
- private readonly _runtime;
3186
3314
  private readonly _initOpts;
3187
3315
  /**
3188
3316
  * 摄像头采集配置
@@ -3214,7 +3342,7 @@ declare class RCCallPlusClient {
3214
3342
  * 上报应用层事件模块
3215
3343
  */
3216
3344
  _reportAppEventModule: RCCallPlusReportModule;
3217
- constructor(_context: PluginContext, _logger: BasicLogger, _runtime: IRuntime, _initOpts: ICallPlusInitOpts);
3345
+ constructor(_context: PluginContext, _logger: BasicLogger, _initOpts: ICallPlusInitOpts);
3218
3346
  /**
3219
3347
  * 加房间、发布、订阅失败时需结束通话,并上报原因
3220
3348
  */
@@ -3329,16 +3457,32 @@ declare class RCCallPlusClient {
3329
3457
  setAudioConfig(cfg: IAudioConfig): {
3330
3458
  code: number;
3331
3459
  };
3460
+ /**
3461
+ * 设置音频输出设备,用于指定和修改音频播放设备;
3462
+ * @param deviceId
3463
+ */
3464
+ setAudioOutputDeviceId(deviceId: string): Promise<{
3465
+ code: number;
3466
+ }>;
3332
3467
  /**
3333
3468
  * 发起呼叫
3469
+ * @deprecated 接口已废弃,请使用 `startCallWithParams` 接口替代
3334
3470
  * @param userIds 被叫人员 userId 列表,单人呼叫仅需在数组中放置对方一人的 userId
3335
- * @param type 单人呼叫 or 多人呼叫
3471
+ * @param callType 单人呼叫 or 多人呼叫
3336
3472
  * @param mediaType 通话媒体类型: 音频 or 音视频
3337
3473
  * @param pushConfig 移动端推送信息
3338
3474
  * @param extra 附加信息,会透传给被呼叫方
3339
3475
  * @returns callId 呼叫成功后,产生的会话 id
3340
3476
  */
3341
- startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType, pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
3477
+ startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO, pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
3478
+ code: number;
3479
+ callId?: string;
3480
+ }>;
3481
+ /**
3482
+ * 发起呼叫
3483
+ * @param params - {@inheritDoc IRCCallPlusStartParams}
3484
+ */
3485
+ startCallWithParams(params: IRCCallPlusStartParams): Promise<{
3342
3486
  code: number;
3343
3487
  callId?: string;
3344
3488
  }>;
@@ -3369,23 +3513,22 @@ declare class RCCallPlusClient {
3369
3513
  accept(callId: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3370
3514
  code: number;
3371
3515
  }>;
3372
- private __innerHangup;
3516
+ private _innerHangup;
3373
3517
  /**
3374
3518
  * 挂断通话
3375
- * @param callId 为可选参数,不传时,挂断正在进行的主 session,传入时可指定挂断主通话或暂未建立连接的通话
3376
- * @param pushConfig 移动端推送信息
3377
- * 暂未建立连接的通话:指已在通话中时,收到呼叫但暂未接听的通话
3519
+ * @param callId 可选参数;当存在多个通话时,可通过该参数指定要挂断的通话;不传时 SDK 将挂断当前进行中的通话;
3378
3520
  * @param pushConfig 移动端推送信息
3379
3521
  */
3380
- hangup(callId?: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3522
+ hangup(callId?: string, pushConfig?: IRCCallPlusPushConfig, reason?: RCCallPlusReason): Promise<{
3381
3523
  code: number;
3382
3524
  }>;
3525
+ private _hangup;
3383
3526
  /**
3384
3527
  * 通话中发起媒体类型变更请求
3385
3528
  * @param mediaType 媒体类型
3386
3529
  * @returns transactionId 客户端和服务端交互的事务 id,在取消或应答媒体类型切换时传入
3387
3530
  */
3388
- requestChangeMediaType(mediaType: RCCallPlusMediaType): Promise<{
3531
+ requestChangeMediaType(mediaType: RCCallPlusMediaType.AUDIO | RCCallPlusMediaType.AUDIO_VIDEO): Promise<{
3389
3532
  code: number;
3390
3533
  transactionId?: string;
3391
3534
  }>;
@@ -3507,6 +3650,10 @@ declare class RCCallPlusClient {
3507
3650
  * 获取麦克风列表
3508
3651
  */
3509
3652
  getMicrophones(): Promise<MediaDeviceInfo[]>;
3653
+ /**
3654
+ * 获取声音播放设备列表
3655
+ */
3656
+ getSpeakers(): Promise<MediaDeviceInfo[]>;
3510
3657
  getRTCSessionId(): string | null;
3511
3658
  /**
3512
3659
  * 切换麦克风功能,通话前和通话中都可调用。
@@ -3520,4 +3667,4 @@ declare class RCCallPlusClient {
3520
3667
 
3521
3668
  declare const installer: IPluginGenerator<RCCallPlusClient, ICallPlusInitOpts>;
3522
3669
 
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 };
3670
+ 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 };