@rongcloud/plugin-call-plus 1.1.1 → 2.0.1-alpha.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/dist/index.d.ts CHANGED
@@ -508,6 +508,14 @@ interface IStartCallCon {
508
508
  * 正在通话中的老版房间 ID (老版 call 或 meeting)
509
509
  */
510
510
  oldRoomId?: string;
511
+ /**
512
+ * 服务端接收的推送扩展
513
+ */
514
+ pushExt?: string;
515
+ /**
516
+ * 附加信息,服务器透传
517
+ */
518
+ extra?: string;
511
519
  }
512
520
  /**
513
521
  * 单呼信令内容
@@ -550,6 +558,14 @@ interface IStartSingleCon {
550
558
  * 组织ID
551
559
  */
552
560
  toOrgId?: string;
561
+ /**
562
+ * 附加信息,服务器透传
563
+ */
564
+ extra?: string;
565
+ /**
566
+ * 服务端接收的推送扩展
567
+ */
568
+ pushExt?: string;
553
569
  }
554
570
  /**
555
571
  * 群呼信令内容
@@ -583,6 +599,14 @@ interface IStartGroupCon {
583
599
  * 正在通话中的老版房间 ID (老版 call 或 meeting)
584
600
  */
585
601
  oldRoomId?: string;
602
+ /**
603
+ * 附加信息,服务器透传
604
+ */
605
+ extra?: string;
606
+ /**
607
+ * 服务端接收的推送扩展
608
+ */
609
+ pushExt?: string;
586
610
  }
587
611
  /**
588
612
  * 开始呼叫 Server 返回
@@ -611,6 +635,14 @@ interface IInviteCallCon extends IBaseSingalCon {
611
635
  * 目标用户列表
612
636
  */
613
637
  toUsers: IUser[];
638
+ /**
639
+ * 附加信息,服务器透传
640
+ */
641
+ extra?: string;
642
+ /**
643
+ * 服务端接收的推送扩展
644
+ */
645
+ pushExt?: string;
614
646
  }
615
647
  /**
616
648
  * 邀请好友加入信令结果
@@ -706,6 +738,10 @@ interface IPubInviteCon extends IBaseSingalCon {
706
738
  * 来源组 ID
707
739
  */
708
740
  targetId?: string;
741
+ /**
742
+ * 附加信息
743
+ */
744
+ extra?: string;
709
745
  }
710
746
  /**
711
747
  * 通话响铃信令内容
@@ -716,6 +752,10 @@ interface IRingingCallCon extends IBaseSingalCon {
716
752
  * 通话接听信令内容
717
753
  */
718
754
  interface IAcceptCallCon extends IBaseSingalCon {
755
+ /**
756
+ * 服务端接收的推送扩展
757
+ */
758
+ pushExt?: string;
719
759
  }
720
760
  /**
721
761
  * 直接加入通话信令内容
@@ -727,6 +767,10 @@ interface IJoinCallCon extends IBaseSingalCon {
727
767
  */
728
768
  interface IHangupCallCon extends IBaseSingalCon {
729
769
  sysStatus?: RCCallPlusReason;
770
+ /**
771
+ * 服务端接收的推送扩展
772
+ */
773
+ pushExt?: string;
730
774
  }
731
775
  /**
732
776
  * 通话状态上报信令内容
@@ -1265,6 +1309,14 @@ interface IStartCallOpts extends ICallId {
1265
1309
  * 传入后,会将此房间中的多端中的自己直接踢掉
1266
1310
  */
1267
1311
  oldRoomId?: string;
1312
+ /**
1313
+ * 推送扩展
1314
+ */
1315
+ pushConfig?: IRCCallPlusPushConfig;
1316
+ /**
1317
+ * 附加信息,服务器透传
1318
+ */
1319
+ extra?: string;
1268
1320
  }
1269
1321
  interface IStartCallResult {
1270
1322
  /**
@@ -1299,18 +1351,34 @@ interface IInviteOpts {
1299
1351
  * 来源组 ID
1300
1352
  */
1301
1353
  targetId?: string;
1354
+ /**
1355
+ * 推送扩展
1356
+ */
1357
+ pushConfig?: IRCCallPlusPushConfig;
1358
+ /**
1359
+ * 附加信息,服务器透传
1360
+ */
1361
+ extra?: string;
1302
1362
  }
1303
1363
  interface IInviteRes extends ICallId {
1304
1364
  callType: RCCallPlusType;
1305
1365
  busylineUsers?: IBusylineUser[];
1306
1366
  }
1307
1367
  interface IAcceptOpts extends ICallId {
1368
+ /**
1369
+ * 推送扩展
1370
+ */
1371
+ pushConfig?: IRCCallPlusPushConfig;
1308
1372
  }
1309
1373
  interface IHangupForBusyOpts extends ICallId {
1310
1374
  /**
1311
1375
  * 用户系统状态
1312
1376
  */
1313
1377
  systemState?: RCCallPlusReason;
1378
+ /**
1379
+ * 推送扩展
1380
+ */
1381
+ pushConfig?: IRCCallPlusPushConfig;
1314
1382
  }
1315
1383
  interface IJoinCallOpts {
1316
1384
  callId: string;
@@ -2034,7 +2102,7 @@ declare class RCCallPlusReportModule {
2034
2102
  * @returns
2035
2103
  */
2036
2104
  private _callAppListener;
2037
- onReceivedCall(session: RCCallPlusSession, traceId: string): void;
2105
+ onReceivedCall(session: RCCallPlusSession, traceId: string, extra?: string): void;
2038
2106
  onRemoteUserInvited(inviteeUserList: string[], inviterUserId: string, callId: string): void;
2039
2107
  onCallConnected(session: RCCallPlusSession): void;
2040
2108
  onCallTypeChanged(callType: RCCallPlusType, callId: string, traceId: string): void;
@@ -2112,6 +2180,10 @@ declare class RCCallEngine extends EventEmitter {
2112
2180
  * 校时器
2113
2181
  */
2114
2182
  _timeCorrectioner: TimeCorrectioner;
2183
+ /**
2184
+ * client callId
2185
+ */
2186
+ private _clientCallId;
2115
2187
  /**
2116
2188
  * 构造器
2117
2189
  */
@@ -2296,6 +2368,14 @@ declare class RCCallEngine extends EventEmitter {
2296
2368
  * 收到 通话邀请
2297
2369
  */
2298
2370
  private _onInvite;
2371
+ /**
2372
+ * 本端被邀请处理
2373
+ */
2374
+ private _selfIsInviteeHandle;
2375
+ /**
2376
+ * 其他人被邀请处理
2377
+ */
2378
+ private _othersIsInviteeHandle;
2299
2379
  /**
2300
2380
  * 收到 挂断(对方通话取消、通话拒绝)
2301
2381
  */
@@ -2331,10 +2411,7 @@ declare class RCCallEngine extends EventEmitter {
2331
2411
  /**
2332
2412
  * 通话结束
2333
2413
  */
2334
- sessionClose(data: {
2335
- callId: string;
2336
- toDeviceId: string;
2337
- }, traceId: string, isSelfHangup: boolean): void;
2414
+ private _onSessionClose;
2338
2415
  /**
2339
2416
  * 根据 callId 移除 session
2340
2417
  */
@@ -2523,8 +2600,9 @@ interface ICallPlusEventListener {
2523
2600
  * 呼入通知
2524
2601
  * 收到呼入时,可选择接听或挂断通话
2525
2602
  * @param session 通话实例
2603
+ * @param extra 透传呼叫方发起呼叫时携带的附加信息
2526
2604
  */
2527
- onReceivedCall(session: RCCallPlusSession): void;
2605
+ onReceivedCall(session: RCCallPlusSession, extra?: string): void;
2528
2606
  /**
2529
2607
  * 群组通话收到远端人员被邀请加入通话通知,如 A 与 B 通话中,A 邀请 C,则 B 会收到此回调
2530
2608
  * @param inviteeUserList - 受邀人用户 ID 列表
@@ -2561,6 +2639,7 @@ interface ICallPlusEventListener {
2561
2639
  * @param userId 状态变更人员 id
2562
2640
  * @param state 人员变更后状态
2563
2641
  * @param reason 变更原因
2642
+ * @param extra 透传远端人员接听、挂断时携带的附加信息
2564
2643
  */
2565
2644
  onRemoteUserStateChanged?(callId: string, userId: string, state: RCCallPlusSessionUserState, reason?: RCCallPlusReason): void;
2566
2645
  /**
@@ -2766,6 +2845,132 @@ interface RCCallPlusCallUser {
2766
2845
  userId: string;
2767
2846
  state: RCCallPlusSessionUserState;
2768
2847
  }
2848
+ /**
2849
+ * 推送信息配置项
2850
+ */
2851
+ interface IRCCallPlusPushConfig {
2852
+ /**
2853
+ * 推送标题
2854
+ */
2855
+ pushTitle: string;
2856
+ /**
2857
+ * iOSConfig
2858
+ */
2859
+ iOSConfig?: IiOSPushConfig;
2860
+ /**
2861
+ * androidConfig
2862
+ */
2863
+ androidConfig?: IAndroidPushConfig;
2864
+ /**
2865
+ * 是否显示推送标题. 仅针对 iOS 平台有效
2866
+ */
2867
+ disablePushTitle?: boolean;
2868
+ /**
2869
+ * 推送模板id
2870
+ */
2871
+ templateId?: string;
2872
+ }
2873
+ /**
2874
+ * ios 推送配置
2875
+ */
2876
+ interface IiOSPushConfig {
2877
+ /**
2878
+ * iOS 用于通知分组的 id
2879
+ */
2880
+ threadId?: string;
2881
+ /**
2882
+ * iOS 用于通知覆盖的 id
2883
+ */
2884
+ apnsCollapseId?: string;
2885
+ /**
2886
+ * 和 category 对应
2887
+ */
2888
+ richMediaUri?: string;
2889
+ }
2890
+ /**
2891
+ * 安卓推送配置
2892
+ */
2893
+ interface IAndroidPushConfig {
2894
+ /**
2895
+ * 小米的 channelId
2896
+ */
2897
+ channelIdMi?: string;
2898
+ /**
2899
+ * 小米 Large icon 链接
2900
+ * Large icon 可以出现在大图版和多字版消息中,显示在右边。
2901
+ * 国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。
2902
+ * 图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
2903
+ */
2904
+ miLargeIconUrl?: string;
2905
+ /**
2906
+ * 华为的 channelId
2907
+ */
2908
+ channelIdHW?: string;
2909
+ /**
2910
+ * 华为推送消息分类
2911
+ * 更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
2912
+ */
2913
+ categoryHW?: string;
2914
+ /**
2915
+ * 华为推送消息级别
2916
+ * LOW: 表示消息为资讯营销
2917
+ * NORMAL: 消息为服务与通讯
2918
+ */
2919
+ importanceHW?: 'NORMAL' | 'LOW';
2920
+ /**
2921
+ * 华为通知类型的推送所使用的通知图片 url
2922
+ */
2923
+ imageUrlHW?: string;
2924
+ /**
2925
+ * OPPO 的 channelId
2926
+ */
2927
+ channelIdOPPO?: string;
2928
+ /**
2929
+ * vivo 的类型
2930
+ */
2931
+ typeVivo?: string;
2932
+ /**
2933
+ * Vivo 分类
2934
+ * 即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
2935
+ * 运营消息分类
2936
+ * 新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
2937
+ */
2938
+ categoryVivo?: string;
2939
+ /**
2940
+ * FCM 推送平台渠道 ID
2941
+ */
2942
+ fcmChannelId?: string;
2943
+ /**
2944
+ * FCM 通知类型推送时所使用的分组 id
2945
+ */
2946
+ fcmCollapseKey?: string;
2947
+ /**
2948
+ * FCM 通知类型的推送所使用的通知图片 url
2949
+ */
2950
+ fcmImageUrl?: string;
2951
+ /**
2952
+ * HONOR 推送级别
2953
+ * LOW: 资讯营销类消息,NORMAL: 服务与通讯类消息
2954
+ */
2955
+ importanceHonor?: 'NORMAL' | 'LOW';
2956
+ /**
2957
+ * HONOR 推送所使用的通知图片 url
2958
+ */
2959
+ imageUrlHonor?: string;
2960
+ }
2961
+ /**
2962
+ * 服务端需要的 pushConfig 数据格式
2963
+ */
2964
+ interface IServerPushExt {
2965
+ title: string;
2966
+ templateId: string;
2967
+ pushId: string;
2968
+ disableTitle: boolean;
2969
+ forceShowPushContent: boolean;
2970
+ pushConfigs: {
2971
+ [key: string]: any;
2972
+ }[];
2973
+ }
2769
2974
 
2770
2975
  declare class RCAudioConfigBuilder {
2771
2976
  private _logger;
@@ -2818,6 +3023,78 @@ declare class RCVideoConfigBuilder {
2818
3023
  build(): IVideoConfig;
2819
3024
  }
2820
3025
 
3026
+ declare class RCCallPlusAndroidPushConfigBuilder {
3027
+ private _logger;
3028
+ private _androidPushConfig;
3029
+ constructor(_logger: BasicLogger);
3030
+ /**
3031
+ * 设置小米的 channelId
3032
+ */
3033
+ setChannelIdMi(channelIdMi: string): this;
3034
+ /**
3035
+ * 设置小米 Large icon 链接
3036
+ */
3037
+ setMiLargeIconUrl(miLargeIconUrl: string): this;
3038
+ /**
3039
+ * 设置华为的 channelId
3040
+ */
3041
+ setChannelIdHW(channelIdHW: string): this;
3042
+ /**
3043
+ * 设置华为推送消息分类
3044
+ */
3045
+ setCategoryHW(categoryHW: string): this;
3046
+ /**
3047
+ * 设置华为推送消息级别
3048
+ */
3049
+ setImportanceHW(importanceHW: 'NORMAL' | 'LOW'): this;
3050
+ /**
3051
+ * 设置华为通知类型的推送所使用的通知图片 url
3052
+ */
3053
+ setImageUrlHW(imageUrlHW: string): this;
3054
+ /**
3055
+ * 设置 OPPO 的 channelId
3056
+ */
3057
+ setChannelIdOPPO(channelIdOPPO: string): this;
3058
+ /**
3059
+ * 设置 vivo 的类型
3060
+ */
3061
+ setTypeVivo(typeVivo: string): this;
3062
+ /**
3063
+ * 设置 Vivo 分类
3064
+ */
3065
+ setCategoryVivo(categoryVivo: string): this;
3066
+ /**
3067
+ * 设置 FCM 推送平台渠道 ID
3068
+ */
3069
+ setFcmChannelId(fcmChannelId: string): this;
3070
+ /**
3071
+ * 设置 FCM 通知类型推送时所使用的分组 id
3072
+ */
3073
+ setFcmCollapseKey(fcmCollapseKey: string): this;
3074
+ /**
3075
+ * 设置 FCM 通知类型的推送所使用的通知图片 url
3076
+ */
3077
+ setFcmImageUrl(fcmImageUrl: string): this;
3078
+ /**
3079
+ * 设置 HONOR 推送级别
3080
+ * LOW: 资讯营销类消息,NORMAL: 服务与通讯类消息
3081
+ */
3082
+ setimportanceHonor(importanceHonor: 'NORMAL' | 'LOW'): this;
3083
+ /**
3084
+ * 设置 HONOR 推送所使用的通知图片 url
3085
+ */
3086
+ setimageUrlHonor(imageUrlHonor: string): this;
3087
+ /**
3088
+ * 构建 IAndroidPushConfig
3089
+ <<<<<<< HEAD
3090
+ =======
3091
+ * @returns IAndroidPushConfig 安卓推送配置数据
3092
+ * 返回值需传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中
3093
+ >>>>>>> develop
3094
+ */
3095
+ build(): IAndroidPushConfig;
3096
+ }
3097
+
2821
3098
  declare class RCCallPlusClient {
2822
3099
  private readonly _context;
2823
3100
  private readonly _logger;
@@ -2954,6 +3231,13 @@ declare class RCCallPlusClient {
2954
3231
  * 设置完需调 build 方法,最终在 setAudioConfig 后生效
2955
3232
  */
2956
3233
  createAudioConfigBuilder(): RCAudioConfigBuilder;
3234
+ /**
3235
+ * 创建安卓推送信息构建器
3236
+ * @returns RCCallPlusAndroidPushConfigBuilder 用于构造安卓推送信的配置项
3237
+ * 设置完需调 build 方法获取设置的 androidPushConfig 数据
3238
+ * 最终需把 androidPushConfig 传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中
3239
+ */
3240
+ createAndroidPushConfigBuilder(): RCCallPlusAndroidPushConfigBuilder;
2957
3241
  /**
2958
3242
  * 设置音频配置
2959
3243
  * 下次采集时生效,如重新建立通话
@@ -2966,9 +3250,11 @@ declare class RCCallPlusClient {
2966
3250
  * @param userIds 被叫人员 userId 列表,单人呼叫仅需在数组中放置对方一人的 userId
2967
3251
  * @param type 单人呼叫 or 多人呼叫
2968
3252
  * @param mediaType 通话媒体类型: 音频 or 音视频
3253
+ * @param pushConfig 移动端推送信息
3254
+ * @param extra 附加信息,会透传给被呼叫方
2969
3255
  * @returns callId 呼叫成功后,产生的会话 id
2970
3256
  */
2971
- startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType): Promise<{
3257
+ startCall(userIds: string[], callType?: RCCallPlusType, mediaType?: RCCallPlusMediaType, pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
2972
3258
  code: number;
2973
3259
  callId?: string;
2974
3260
  }>;
@@ -2983,26 +3269,31 @@ declare class RCCallPlusClient {
2983
3269
  * 通话中邀请他人
2984
3270
  * 单人通话中邀请他人会引发通话类型变更
2985
3271
  * @param userIds 被邀请人列表
3272
+ * @param pushConfig 移动端推送信息
3273
+ * @param extra 附加信息,会透传给被邀请方
2986
3274
  * @returns busyUsers 返回忙线人员列表
2987
3275
  */
2988
- invite(userIds: string[]): Promise<{
3276
+ invite(userIds: string[], pushConfig?: IRCCallPlusPushConfig, extra?: string): Promise<{
2989
3277
  code: number;
2990
3278
  busyUsers?: RCCallPlusCallUser[];
2991
3279
  }>;
2992
3280
  /**
2993
3281
  * 接听通话
2994
3282
  * @param callId 通话 id
3283
+ * @param pushConfig 移动端推送信息
2995
3284
  */
2996
- accept(callId: string): Promise<{
3285
+ accept(callId: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
2997
3286
  code: number;
2998
3287
  }>;
2999
3288
  private __innerHangup;
3000
3289
  /**
3001
3290
  * 挂断通话
3002
3291
  * @param callId 为可选参数,不传时,挂断正在进行的主 session,传入时可指定挂断主通话或暂未建立连接的通话
3292
+ * @param pushConfig 移动端推送信息
3003
3293
  * 暂未建立连接的通话:指已在通话中时,收到呼叫但暂未接听的通话
3294
+ * @param pushConfig 移动端推送信息
3004
3295
  */
3005
- hangup(callId?: string): Promise<{
3296
+ hangup(callId?: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3006
3297
  code: number;
3007
3298
  }>;
3008
3299
  /**
@@ -3083,7 +3374,7 @@ declare class RCCallPlusClient {
3083
3374
  /**
3084
3375
  * 切换摄像头
3085
3376
  * 切换成功后 `ICallPlusEventListener` 监听器的 `onUserMediaAvailable` 中会收到新切换的摄像头资源可播放,此时调用 `callPlusClient.playMedia()` 可显示新摄像头的画面
3086
- * @param cameraId 浏览器中取得的摄像头设备 id,可调 plugin-rtc 的 getCameras 方法取得
3377
+ * @param cameraId 浏览器中取得的摄像头设备 id,可调 getCameras 方法取得
3087
3378
  * @description 通话前和通话中都可调用
3088
3379
  */
3089
3380
  switchCamera(cameraId: string): Promise<{
@@ -3127,8 +3418,18 @@ declare class RCCallPlusClient {
3127
3418
  * 获取麦克风列表
3128
3419
  */
3129
3420
  getMicrophones(): Promise<MediaDeviceInfo[]>;
3421
+ getRTCSessionId(): string | null;
3422
+ /**
3423
+ * 切换麦克风
3424
+ * 切换成功后 `ICallPlusEventListener` 监听器的 `onUserMediaAvailable` 中会收到新切换的麦克风资源可播放,此时调用 `callPlusClient.playMedia()` 可播放新麦克风的声音
3425
+ * @param microphoneId 浏览器中取得的麦克风设备 id,可调 getMicrophones 方法取得
3426
+ * @description 通话前和通话中都可调用
3427
+ */
3428
+ switchMicrophone(microphoneId: string): Promise<{
3429
+ code: number;
3430
+ }>;
3130
3431
  }
3131
3432
 
3132
3433
  declare const installer: IPluginGenerator<RCCallPlusClient, ICallPlusInitOpts>;
3133
3434
 
3134
- export { IAudioConfig, IAudioConfigBuilder, ICallOpts, ICallPlusEventListener, ICallPlusInitOpts, IRCCallPlusCallRecord, IRCCallPlusGetCallRecordRes, IStatusReportListener, IVideoConfig, IVideoConfigBuilder, RCAudioConfigBuilder, RCCallPlusCallState, RCCallPlusCallUser, RCCallPlusClient, RCCallPlusCode, RCCallPlusMediaType, RCCallPlusMediaTypeChangeResult, RCCallPlusPacketLossStats, RCCallPlusReason, RCCallPlusSession, RCCallPlusSessionUserState, RCCallPlusType, RCVideoConfigBuilder, installer };
3435
+ export { IAndroidPushConfig, IAudioConfig, IAudioConfigBuilder, ICallOpts, ICallPlusEventListener, ICallPlusInitOpts, IRCCallPlusCallRecord, IRCCallPlusGetCallRecordRes, IRCCallPlusPushConfig, IServerPushExt, IStatusReportListener, IVideoConfig, IVideoConfigBuilder, IiOSPushConfig, RCAudioConfigBuilder, RCCallPlusAndroidPushConfigBuilder, RCCallPlusCallState, RCCallPlusCallUser, RCCallPlusClient, RCCallPlusCode, RCCallPlusMediaType, RCCallPlusMediaTypeChangeResult, RCCallPlusPacketLossStats, RCCallPlusReason, RCCallPlusSession, RCCallPlusSessionUserState, RCCallPlusType, RCVideoConfigBuilder, installer };