@rongcloud/plugin-call-plus 2.1.0 → 2.1.2-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/README.md CHANGED
@@ -0,0 +1,3 @@
1
+ # RongClould Call Plus
2
+
3
+ * [官方开发者文档](https://doc.rongcloud.cn/callplus/Web/2.X/prepare)
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { RCConnectionStatus, EventEmitter, BasicLogger, RTCJoinType, EnableLogL, PluginContext, IRuntime, IPluginGenerator } from '@rongcloud/engine';
2
- import { EnableLogL as EnableLogL$1 } from '@rongcloud/imlib-next';
1
+ import { RCConnectionStatus, EventEmitter, BasicLogger, RTCJoinType, EnableLogL, PluginContext, IRuntime, IReceivedMessage, IPluginGenerator } from '@rongcloud/engine';
3
2
  import { RCRTCClient, RCRemoteTrack, RCTrack, ISubscribeAttr, RCRTCCode, RCLocalAudioTrack, RCRemoteAudioTrack, RCFrameRate, RCResolution } from '@rongcloud/plugin-rtc';
4
3
  export { RCFrameRate as RCCallPlusFrameRate, RCResolution as RCCallPlusResolution } from '@rongcloud/plugin-rtc';
5
4
 
@@ -752,6 +751,10 @@ interface IRingingCallCon extends IBaseSingalCon {
752
751
  * 通话接听信令内容
753
752
  */
754
753
  interface IAcceptCallCon extends IBaseSingalCon {
754
+ /**
755
+ * 服务端接收的推送扩展
756
+ */
757
+ pushExt?: string;
755
758
  }
756
759
  /**
757
760
  * 直接加入通话信令内容
@@ -1379,6 +1382,10 @@ interface IInviteRes extends ICallId {
1379
1382
  busylineUsers?: IBusylineUser[];
1380
1383
  }
1381
1384
  interface IAcceptOpts extends ICallId {
1385
+ /**
1386
+ * 推送扩展
1387
+ */
1388
+ pushConfig?: IRCCallPlusPushConfig;
1382
1389
  }
1383
1390
  interface IHangupForBusyOpts extends ICallId {
1384
1391
  /**
@@ -1904,12 +1911,85 @@ declare class TimeCorrectioner {
1904
1911
  private _loopCorrectClientTime;
1905
1912
  }
1906
1913
 
1914
+ declare enum RCCallPlusMediaTypeChangeResult {
1915
+ /**
1916
+ * 请求方取消媒体类型变更
1917
+ */
1918
+ CANCEL_CHANGE_MEDIA_TYPE = 0,
1919
+ /**
1920
+ * 应答方拒绝媒体类型切换
1921
+ */
1922
+ REFUSE_CHANGE_MEDIA_TYPE = 1,
1923
+ /**
1924
+ * 服务仲裁允许媒体类型切换
1925
+ */
1926
+ SERVER_ALLOW_MEDIA_TYPE = 2,
1927
+ /**
1928
+ * 媒体类型切换超时
1929
+ */
1930
+ CHANGE_MEDIA_TYPE_TIMEOUT = 3
1931
+ }
1932
+
1933
+ declare class RCCallPlusReportModule {
1934
+ private readonly _logger;
1935
+ private _listener;
1936
+ constructor(_logger: BasicLogger);
1937
+ /**
1938
+ * 状态机事件注册
1939
+ */
1940
+ registerEventListener(listener: ICallPlusEventListener): void;
1941
+ /**
1942
+ * 回调应用层事件
1943
+ * @param eventName
1944
+ * @param attrs
1945
+ * @returns
1946
+ */
1947
+ private _callAppListener;
1948
+ onReceivedCall(session: RCCallPlusSession, traceId: string, extra?: string): void;
1949
+ onRemoteUserInvited(inviteeUserList: string[], inviterUserId: string, callId: string): void;
1950
+ onCallConnected(session: RCCallPlusSession): void;
1951
+ onCallTypeChanged(callType: RCCallPlusType, callId: string, traceId: string): void;
1952
+ /**
1953
+ * 增量上报远端人员状态变化
1954
+ */
1955
+ onRemoteUserStateChanged(data: {
1956
+ callId: string;
1957
+ userId: string;
1958
+ userState: RCCallPlusSessionUserState;
1959
+ reason?: RCCallPlusReason;
1960
+ }, traceId: string): void;
1961
+ onCallEnded(session: RCCallPlusSession, reason: RCCallPlusReason, traceId: string): void;
1962
+ onRemoteCameraStateChanged(callId: string, track: RCRemoteTrack): void;
1963
+ onRemoteMicrophoneStateChanged(callId: string, track: RCRemoteTrack): void;
1964
+ onReceivedCallRecord(record: IRCCallPlusCallRecord, traceId: string): void;
1965
+ onReceivedChangeMediaTypeRequest(userId: string, transactionId: string, mediaType: RCCallPlusMediaType, traceId: string): void;
1966
+ onReceivedChangeMediaTypeResult(info: {
1967
+ userId: string;
1968
+ transactionId: string;
1969
+ mediaType: RCCallPlusMediaType;
1970
+ code: RCCallPlusMediaTypeChangeResult;
1971
+ }, traceId: string): void;
1972
+ onReceivedCallStartTime(info: {
1973
+ callId: string;
1974
+ callStartTime: number;
1975
+ }, traceId: string): void;
1976
+ onReceivedCallFirstFrameTime(callId: string, callFirstFrameTime: number, traceId: string): void;
1977
+ onUserMediaAvailable(tracks: RCTrack[], traceId?: string): void;
1978
+ onFetchRemoteMediaError(tracks: ISubscribeAttr[], code: RCRTCCode): void;
1979
+ onUserAudioLevelChanged(audioLevelReportList: {
1980
+ track: RCLocalAudioTrack | RCRemoteAudioTrack;
1981
+ audioLevel: number;
1982
+ }[]): void;
1983
+ onReceivedCallPlusSummaryMessage(message: IRCCallPlusReceivedSummaryMessage): void;
1984
+ }
1985
+
1907
1986
  declare class SignalTransporter extends EventEmitter {
1908
1987
  private readonly _context;
1909
1988
  private readonly _runtime;
1910
1989
  private readonly _initOpts;
1911
1990
  private readonly _timeCorrectioner;
1912
1991
  private readonly _logger;
1992
+ private readonly _reportAppEventModule;
1913
1993
  /**
1914
1994
  * 监听对象
1915
1995
  */
@@ -1922,7 +2002,8 @@ declare class SignalTransporter extends EventEmitter {
1922
2002
  /**
1923
2003
  * constructor
1924
2004
  */
1925
- constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger);
2005
+ constructor(_context: PluginContext, _runtime: IRuntime, _initOpts: IRCCallInitOptions, _timeCorrectioner: TimeCorrectioner, _logger: BasicLogger, _reportAppEventModule: RCCallPlusReportModule);
2006
+ private _onMessage;
1926
2007
  getSessionId(): string;
1927
2008
  registerListener(listener: ISignalTransporterListener): void;
1928
2009
  startCall(msg: IStartCallCon, traceId: string): Promise<{
@@ -2088,77 +2169,6 @@ declare class AbnormalCall {
2088
2169
  private _getByIndexDB;
2089
2170
  }
2090
2171
 
2091
- declare enum RCCallPlusMediaTypeChangeResult {
2092
- /**
2093
- * 请求方取消媒体类型变更
2094
- */
2095
- CANCEL_CHANGE_MEDIA_TYPE = 0,
2096
- /**
2097
- * 应答方拒绝媒体类型切换
2098
- */
2099
- REFUSE_CHANGE_MEDIA_TYPE = 1,
2100
- /**
2101
- * 服务仲裁允许媒体类型切换
2102
- */
2103
- SERVER_ALLOW_MEDIA_TYPE = 2,
2104
- /**
2105
- * 媒体类型切换超时
2106
- */
2107
- CHANGE_MEDIA_TYPE_TIMEOUT = 3
2108
- }
2109
-
2110
- declare class RCCallPlusReportModule {
2111
- private readonly _logger;
2112
- private _listener;
2113
- constructor(_logger: BasicLogger);
2114
- /**
2115
- * 状态机事件注册
2116
- */
2117
- registerEventListener(listener: ICallPlusEventListener): void;
2118
- /**
2119
- * 回调应用层事件
2120
- * @param eventName
2121
- * @param attrs
2122
- * @returns
2123
- */
2124
- private _callAppListener;
2125
- onReceivedCall(session: RCCallPlusSession, traceId: string, extra?: string): void;
2126
- onRemoteUserInvited(inviteeUserList: string[], inviterUserId: string, callId: string): void;
2127
- onCallConnected(session: RCCallPlusSession): void;
2128
- onCallTypeChanged(callType: RCCallPlusType, callId: string, traceId: string): void;
2129
- /**
2130
- * 增量上报远端人员状态变化
2131
- */
2132
- onRemoteUserStateChanged(data: {
2133
- callId: string;
2134
- userId: string;
2135
- userState: RCCallPlusSessionUserState;
2136
- reason?: RCCallPlusReason;
2137
- }, traceId: string): void;
2138
- onCallEnded(session: RCCallPlusSession, reason: RCCallPlusReason, traceId: string): void;
2139
- onRemoteCameraStateChanged(callId: string, track: RCRemoteTrack): void;
2140
- onRemoteMicrophoneStateChanged(callId: string, track: RCRemoteTrack): void;
2141
- onReceivedCallRecord(record: IRCCallPlusCallRecord, traceId: string): void;
2142
- onReceivedChangeMediaTypeRequest(userId: string, transactionId: string, mediaType: RCCallPlusMediaType, traceId: string): void;
2143
- onReceivedChangeMediaTypeResult(info: {
2144
- userId: string;
2145
- transactionId: string;
2146
- mediaType: RCCallPlusMediaType;
2147
- code: RCCallPlusMediaTypeChangeResult;
2148
- }, traceId: string): void;
2149
- onReceivedCallStartTime(info: {
2150
- callId: string;
2151
- callStartTime: number;
2152
- }, traceId: string): void;
2153
- onReceivedCallFirstFrameTime(callId: string, callFirstFrameTime: number, traceId: string): void;
2154
- onUserMediaAvailable(tracks: RCTrack[], traceId?: string): void;
2155
- onFetchRemoteMediaError(tracks: ISubscribeAttr[], code: RCRTCCode): void;
2156
- onUserAudioLevelChanged(audioLevelReportList: {
2157
- track: RCLocalAudioTrack | RCRemoteAudioTrack;
2158
- audioLevel: number;
2159
- }[]): void;
2160
- }
2161
-
2162
2172
  declare class RCCallEngine extends EventEmitter {
2163
2173
  private readonly _context;
2164
2174
  private readonly _runtime;
@@ -2440,6 +2450,10 @@ declare class RCCallEngine extends EventEmitter {
2440
2450
  * 通话结束
2441
2451
  */
2442
2452
  private _onSessionClose;
2453
+ /**
2454
+ * 上报在线通话结束的 summary 消息
2455
+ */
2456
+ private _reportCallPlusSummaryMessage;
2443
2457
  /**
2444
2458
  * 根据 callId 移除 session
2445
2459
  */
@@ -2614,12 +2628,54 @@ interface ICallPlusInitOpts {
2614
2628
  /**
2615
2629
  * 定义 callplus SDK 内部的日志输出等级,默认值 LogL.WARN
2616
2630
  */
2617
- logOutputLevel?: EnableLogL$1;
2631
+ logOutputLevel?: EnableLogL;
2618
2632
  /**
2619
2633
  * 是否发布小流
2620
2634
  */
2621
2635
  isPubTiny?: boolean;
2622
2636
  }
2637
+ /**
2638
+ * 通话记录的消息 content 字段
2639
+ */
2640
+ interface IRCCallPlusSummaryMessageContent {
2641
+ /**
2642
+ * 唯一通话标识
2643
+ */
2644
+ callId: string;
2645
+ /**
2646
+ * 通话发起者 userId
2647
+ */
2648
+ callerUserId: string;
2649
+ /**
2650
+ * 通话对方 targetId
2651
+ */
2652
+ targetId: string;
2653
+ /**
2654
+ * 媒体类型:0 音频、1 音视频
2655
+ */
2656
+ mediaType: RCCallPlusMediaType;
2657
+ /**
2658
+ * 收到首帧时间
2659
+ */
2660
+ firstFrameTime: number;
2661
+ /**
2662
+ * 通话开始时间
2663
+ */
2664
+ callStartTime: number;
2665
+ /**
2666
+ * 通话结束时间
2667
+ */
2668
+ callEndTime: number;
2669
+ /**
2670
+ * 通话挂断原因
2671
+ */
2672
+ hangupReason: RCCallPlusReason;
2673
+ }
2674
+ /**
2675
+ * 通话记录的消息结构定义
2676
+ */
2677
+ interface IRCCallPlusReceivedSummaryMessage extends IReceivedMessage {
2678
+ }
2623
2679
  /**
2624
2680
  * callPlus 对外事件定义
2625
2681
  */
@@ -2667,6 +2723,7 @@ interface ICallPlusEventListener {
2667
2723
  * @param userId 状态变更人员 id
2668
2724
  * @param state 人员变更后状态
2669
2725
  * @param reason 变更原因
2726
+ * @param extra 透传远端人员接听、挂断时携带的附加信息
2670
2727
  */
2671
2728
  onRemoteUserStateChanged?(callId: string, userId: string, state: RCCallPlusSessionUserState, reason?: RCCallPlusReason): void;
2672
2729
  /**
@@ -2741,6 +2798,15 @@ interface ICallPlusEventListener {
2741
2798
  * @param audioLevel 音量值(0-100)
2742
2799
  */
2743
2800
  onUserAudioLevelChanged?(userId: string, audioLevel: number): void;
2801
+ /**
2802
+ * 收到通话结束的消息记录,可用于在 IM 聊天界面插入通话结束消息
2803
+ * 仅单聊可收到
2804
+ * 触发时机:
2805
+ * 1.单聊在线通话结束后
2806
+ * 2.离线时收到单聊呼叫,通话结束后,重新连接 IM 在线时
2807
+ * @param message 通话记录的消息体
2808
+ */
2809
+ onReceivedCallPlusSummaryMessage?(message: IRCCallPlusReceivedSummaryMessage): void;
2744
2810
  }
2745
2811
  /**
2746
2812
  * 通话前视频配置
@@ -2927,6 +2993,7 @@ interface IAndroidPushConfig {
2927
2993
  * Large icon 可以出现在大图版和多字版消息中,显示在右边。
2928
2994
  * 国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。
2929
2995
  * 图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
2996
+ * @deprecated 由于小米官方已停止支持该能力,该字段已失效
2930
2997
  */
2931
2998
  miLargeIconUrl?: string;
2932
2999
  /**
@@ -3060,6 +3127,7 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3060
3127
  setChannelIdMi(channelIdMi: string): this;
3061
3128
  /**
3062
3129
  * 设置小米 Large icon 链接
3130
+ * @deprecated 由于小米官方已停止支持该能力,该方法已失效
3063
3131
  */
3064
3132
  setMiLargeIconUrl(miLargeIconUrl: string): this;
3065
3133
  /**
@@ -3113,8 +3181,11 @@ declare class RCCallPlusAndroidPushConfigBuilder {
3113
3181
  setimageUrlHonor(imageUrlHonor: string): this;
3114
3182
  /**
3115
3183
  * 构建 IAndroidPushConfig
3184
+ <<<<<<< HEAD
3185
+ =======
3116
3186
  * @returns IAndroidPushConfig 安卓推送配置数据
3117
3187
  * 返回值需传入 startCall、invite、hangup 方法的 pushConfig.androidConfig 中
3188
+ >>>>>>> develop
3118
3189
  */
3119
3190
  build(): IAndroidPushConfig;
3120
3191
  }
@@ -3304,14 +3375,16 @@ declare class RCCallPlusClient {
3304
3375
  /**
3305
3376
  * 接听通话
3306
3377
  * @param callId 通话 id
3378
+ * @param pushConfig 移动端推送信息
3307
3379
  */
3308
- accept(callId: string): Promise<{
3380
+ accept(callId: string, pushConfig?: IRCCallPlusPushConfig): Promise<{
3309
3381
  code: number;
3310
3382
  }>;
3311
3383
  private __innerHangup;
3312
3384
  /**
3313
3385
  * 挂断通话
3314
3386
  * @param callId 为可选参数,不传时,挂断正在进行的主 session,传入时可指定挂断主通话或暂未建立连接的通话
3387
+ * @param pushConfig 移动端推送信息
3315
3388
  * 暂未建立连接的通话:指已在通话中时,收到呼叫但暂未接听的通话
3316
3389
  * @param pushConfig 移动端推送信息
3317
3390
  */
@@ -3402,7 +3475,7 @@ declare class RCCallPlusClient {
3402
3475
  /**
3403
3476
  * 切换摄像头
3404
3477
  * 切换成功后 `ICallPlusEventListener` 监听器的 `onUserMediaAvailable` 中会收到新切换的摄像头资源可播放,此时调用 `callPlusClient.playMedia()` 可显示新摄像头的画面
3405
- * @param cameraId 浏览器中取得的摄像头设备 id,可调 plugin-rtc 的 getCameras 方法取得
3478
+ * @param cameraId 浏览器中取得的摄像头设备 id,可调 getCameras 方法取得
3406
3479
  * @description 通话前和通话中都可调用
3407
3480
  */
3408
3481
  switchCamera(cameraId: string): Promise<{
@@ -3446,8 +3519,18 @@ declare class RCCallPlusClient {
3446
3519
  * 获取麦克风列表
3447
3520
  */
3448
3521
  getMicrophones(): Promise<MediaDeviceInfo[]>;
3522
+ getRTCSessionId(): string | null;
3523
+ /**
3524
+ * 切换麦克风
3525
+ * 切换成功后 `ICallPlusEventListener` 监听器的 `onUserMediaAvailable` 中会收到新切换的麦克风资源可播放,此时调用 `callPlusClient.playMedia()` 可播放新麦克风的声音
3526
+ * @param microphoneId 浏览器中取得的麦克风设备 id,可调 getMicrophones 方法取得
3527
+ * @description 通话前和通话中都可调用
3528
+ */
3529
+ switchMicrophone(microphoneId: string): Promise<{
3530
+ code: number;
3531
+ }>;
3449
3532
  }
3450
3533
 
3451
3534
  declare const installer: IPluginGenerator<RCCallPlusClient, ICallPlusInitOpts>;
3452
3535
 
3453
- 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 };
3536
+ 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 };