@rongcloud/plugin-call-plus 2.1.1 → 2.1.2
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 +3 -0
- package/package.json +11 -10
- package/wrapper/index.d.ts +948 -0
- package/wrapper/index.esm.js +1 -0
- package/wrapper/index.js +1 -0
- package/wrapper/package.json +10 -0
- package/dist/index.d.ts +0 -3536
- package/dist/index.esm.js +0 -4120
- package/dist/index.umd.js +0 -2
|
@@ -0,0 +1,948 @@
|
|
|
1
|
+
import { EventEmitter, ConversationType, RTCPluginContext, BasicLogger, LogL, IRuntime, IRTCJoinedInfo, IPluginGenerator } from '@rongcloud/engine';
|
|
2
|
+
import { IMicphoneAudioProfile, RTCJoinType, ICameraVideoProfile, RCRTCCode, IRCRTCStateReport } from '@rongcloud/plugin-rtc';
|
|
3
|
+
import { RCCallPlusClient, RCCallPlusMediaType, RCCallPlusPacketLossStats, IRCCallPlusPushConfig } from '@rongcloud/plugin-call-plus';
|
|
4
|
+
|
|
5
|
+
declare enum RCCallUserState {
|
|
6
|
+
/**
|
|
7
|
+
* 用户不存在于通话中
|
|
8
|
+
*/
|
|
9
|
+
NONE = 0,
|
|
10
|
+
/**
|
|
11
|
+
* 等待接听
|
|
12
|
+
*/
|
|
13
|
+
WAITING = 1,
|
|
14
|
+
/**
|
|
15
|
+
* 通话中
|
|
16
|
+
*/
|
|
17
|
+
KEEPING = 2
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 错误码,与移动端对齐
|
|
22
|
+
* @description
|
|
23
|
+
* 1. `51000 - 51999` 为 Android 专用段
|
|
24
|
+
* 2. `52000 - 52999` 为 iOS 专用段
|
|
25
|
+
* 3. `53000 - 53199` 为 Web RTC 专用段
|
|
26
|
+
* 4. `53200 - 53499` 为 Web CallLib 专用段
|
|
27
|
+
* * `53200 - 53299` 为 Web CallEngine 专用端
|
|
28
|
+
* * `53300 - 53499` 为 Web Call 专用端
|
|
29
|
+
* 5. `53500 - 53999` 为 Web 保留段
|
|
30
|
+
*/
|
|
31
|
+
declare enum RCCallErrorCode {
|
|
32
|
+
/**
|
|
33
|
+
* 成功
|
|
34
|
+
*/
|
|
35
|
+
SUCCESS = 10000,
|
|
36
|
+
/**
|
|
37
|
+
* 存在未结束的状态机
|
|
38
|
+
*/
|
|
39
|
+
STATE_MACHINE_EXIT = 53200,
|
|
40
|
+
/**
|
|
41
|
+
* 发送 IM 消息失败
|
|
42
|
+
*/
|
|
43
|
+
SEND_MSG_ERROR = 53201,
|
|
44
|
+
/**
|
|
45
|
+
* 被对方加入黑名单
|
|
46
|
+
*/
|
|
47
|
+
REJECTED_BY_BLACKLIST = 53202,
|
|
48
|
+
/**
|
|
49
|
+
* 当前用户不再群组中
|
|
50
|
+
*/
|
|
51
|
+
NOT_IN_GROUP = 53203,
|
|
52
|
+
/**
|
|
53
|
+
* Call 相关
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* 获得本地音频流失败
|
|
57
|
+
*/
|
|
58
|
+
GET_LOCAL_AUDIO_TRACK_ERROR = 53301,
|
|
59
|
+
/**
|
|
60
|
+
* 获得本地视频流失败
|
|
61
|
+
*/
|
|
62
|
+
GET_LOCAL_VIDEO_TRACK_ERROR = 53302,
|
|
63
|
+
/**
|
|
64
|
+
* 获得本地音视频流失败
|
|
65
|
+
*/
|
|
66
|
+
GET_LOCAL_AUDIO_AND_VIDEO_TRACK_ERROR = 53303,
|
|
67
|
+
/**
|
|
68
|
+
* 加入房间失败
|
|
69
|
+
*/
|
|
70
|
+
JOIN_ROOM_ERROR = 53304,
|
|
71
|
+
/**
|
|
72
|
+
* 发布音频失败
|
|
73
|
+
*/
|
|
74
|
+
AUDIO_PUBLISH_ERROR = 53305,
|
|
75
|
+
/**
|
|
76
|
+
* 发布视频失败
|
|
77
|
+
*/
|
|
78
|
+
VIDEO_PUBLISH_ERROR = 53306,
|
|
79
|
+
/**
|
|
80
|
+
* 发布音视频失败
|
|
81
|
+
*/
|
|
82
|
+
AUDIO_AND_VIDEO_PUBLISH_ERROR = 53307,
|
|
83
|
+
/**
|
|
84
|
+
* 查询房间用户信息失败
|
|
85
|
+
*/
|
|
86
|
+
QUERY_JOINED_USER_INFO_ERROR = 53308,
|
|
87
|
+
/**
|
|
88
|
+
* 禁用启用视频时,房间内缺少视频流
|
|
89
|
+
*/
|
|
90
|
+
MISSING_VIDEO_TRACK_ERROR = 53309,
|
|
91
|
+
/**
|
|
92
|
+
* 取消发布视频失败
|
|
93
|
+
*/
|
|
94
|
+
UNPUBLISH_VIDEO_ERROR = 53310,
|
|
95
|
+
/**
|
|
96
|
+
* 会话不是群组
|
|
97
|
+
*/
|
|
98
|
+
CONVERSATION_NOT_GROUP_ERROR = 53311,
|
|
99
|
+
/**
|
|
100
|
+
* 不在room中禁用音视频
|
|
101
|
+
*/
|
|
102
|
+
NOT_IN_ROOM_ERROR = 53312,
|
|
103
|
+
/**
|
|
104
|
+
* callPlus 中新增
|
|
105
|
+
*/
|
|
106
|
+
/**
|
|
107
|
+
* 参数错误
|
|
108
|
+
*/
|
|
109
|
+
PARAM_ERROR = 53313,
|
|
110
|
+
/**
|
|
111
|
+
* 未加入通话
|
|
112
|
+
*/
|
|
113
|
+
NOT_IN_CALL = 53314,
|
|
114
|
+
/**
|
|
115
|
+
* 媒体类型被禁止
|
|
116
|
+
*/
|
|
117
|
+
MEDIATYPE_INVALID = 53315,
|
|
118
|
+
/**
|
|
119
|
+
* 当前不是视频通话
|
|
120
|
+
*/
|
|
121
|
+
NOT_VIDEO_CALL = 53316,
|
|
122
|
+
/**
|
|
123
|
+
* 开通的音视频服务没有及时生效或音视频服务已关闭
|
|
124
|
+
*/
|
|
125
|
+
RTC_SERVICE_UNAVAILABLE = 53317,
|
|
126
|
+
/**
|
|
127
|
+
* 调用函数时,传入的用户列表为空错误
|
|
128
|
+
*/
|
|
129
|
+
USER_LIST_INVAILD = 53318,
|
|
130
|
+
/**
|
|
131
|
+
* 调用函数时,传入的通话 Id 为空错误
|
|
132
|
+
*/
|
|
133
|
+
CALL_ID_INVALID = 53319,
|
|
134
|
+
/**
|
|
135
|
+
* 事务 Id 为空错误
|
|
136
|
+
*/
|
|
137
|
+
TRANSACTION_ID_INVALID = 53320,
|
|
138
|
+
/**
|
|
139
|
+
* 调用函数时,传入的用户Id为空错误
|
|
140
|
+
*/
|
|
141
|
+
USER_ID_INVALID = 53321,
|
|
142
|
+
/**
|
|
143
|
+
* 发起单人呼叫时,人员列表中只能有一个人
|
|
144
|
+
*/
|
|
145
|
+
SINGLE_CALL_NOT_SUPPORT_MULTI_PERSON = 53322,
|
|
146
|
+
/**
|
|
147
|
+
* 麦克风未打开
|
|
148
|
+
*/
|
|
149
|
+
MICROPHONE_CLOSED = 53323,
|
|
150
|
+
/**
|
|
151
|
+
* 无媒体资源
|
|
152
|
+
*/
|
|
153
|
+
MEDIA_RESOURCE_INVALIED = 53324,
|
|
154
|
+
/**
|
|
155
|
+
* 未 install RTC 插件
|
|
156
|
+
*/
|
|
157
|
+
NOT_INSTALL_RTC_PLUGIN = 53325,
|
|
158
|
+
/**
|
|
159
|
+
* 播放异常
|
|
160
|
+
*/
|
|
161
|
+
PLAY_MEDIA_FAILED = 53326,
|
|
162
|
+
/**
|
|
163
|
+
* 播放视频需要 video 元素
|
|
164
|
+
*/
|
|
165
|
+
VIDEO_VIEW_NOT_SET = 53327
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
declare enum RCCallSessionState {
|
|
169
|
+
/**
|
|
170
|
+
* 等待建立连接
|
|
171
|
+
*/
|
|
172
|
+
WAITING = 0,
|
|
173
|
+
/**
|
|
174
|
+
* 会话维持中
|
|
175
|
+
*/
|
|
176
|
+
KEEPING = 1,
|
|
177
|
+
/**
|
|
178
|
+
* 会话已结束
|
|
179
|
+
*/
|
|
180
|
+
END = 2
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* 通话媒体类型
|
|
185
|
+
*/
|
|
186
|
+
declare enum RCCallMediaType {
|
|
187
|
+
/**
|
|
188
|
+
* 音频通话
|
|
189
|
+
*/
|
|
190
|
+
AUDIO = 1,
|
|
191
|
+
/**
|
|
192
|
+
* 视频通话
|
|
193
|
+
*/
|
|
194
|
+
AUDIO_VIDEO = 2
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
declare class RCCallSession extends EventEmitter {
|
|
198
|
+
private _callId;
|
|
199
|
+
private _callPlusClient;
|
|
200
|
+
private _channelId;
|
|
201
|
+
private _targetId;
|
|
202
|
+
private _callType;
|
|
203
|
+
private _mediaType;
|
|
204
|
+
private _context;
|
|
205
|
+
private _logger;
|
|
206
|
+
private _options?;
|
|
207
|
+
private _descendResolve;
|
|
208
|
+
private _audioConfigBuilder;
|
|
209
|
+
private _videoConfigBuilder;
|
|
210
|
+
private _reportAppEventModule;
|
|
211
|
+
constructor(_callId: string, _callPlusClient: RCCallPlusClient, _channelId: string, _targetId: string, _callType: ConversationType, _mediaType: RCCallPlusMediaType, _context: RTCPluginContext, _logger: BasicLogger, _options?: {
|
|
212
|
+
callPushConfig?: IPushConfig | undefined;
|
|
213
|
+
hangupPushConfig?: IPushConfig | undefined;
|
|
214
|
+
} | undefined);
|
|
215
|
+
/**
|
|
216
|
+
* 用户调用的,注册session上的监听
|
|
217
|
+
*/
|
|
218
|
+
registerSessionListener(listener: ISessionListener): void;
|
|
219
|
+
/**
|
|
220
|
+
* 通话中更换音频设备
|
|
221
|
+
*/
|
|
222
|
+
changeAudioDevice(audioConstraints?: IMicphoneAudioProfile): Promise<{
|
|
223
|
+
code: RCCallErrorCode;
|
|
224
|
+
}>;
|
|
225
|
+
/**
|
|
226
|
+
* 群呼叫中继续邀请
|
|
227
|
+
* @param userIds 被邀请用户 ID 列表
|
|
228
|
+
* @param options.extra 消息的扩展信息
|
|
229
|
+
*/
|
|
230
|
+
invite(userIds: string[], options?: IInviteOptions): Promise<{
|
|
231
|
+
code: RCCallErrorCode;
|
|
232
|
+
}>;
|
|
233
|
+
/**
|
|
234
|
+
* 同意接听
|
|
235
|
+
*/
|
|
236
|
+
accept(constraints?: IMediaStreamConstraints): Promise<{
|
|
237
|
+
code: RCCallErrorCode;
|
|
238
|
+
}>;
|
|
239
|
+
/**
|
|
240
|
+
* 挂断
|
|
241
|
+
*/
|
|
242
|
+
hungup(): Promise<{
|
|
243
|
+
code: RCCallErrorCode;
|
|
244
|
+
}>;
|
|
245
|
+
/**
|
|
246
|
+
* 通话降级,目前需求只做通话降级,音视频可以降级为音频,音频不能升到音视频, 发消息成功才算降级成功
|
|
247
|
+
*
|
|
248
|
+
*/
|
|
249
|
+
descendAbility(): Promise<{
|
|
250
|
+
code: RCCallErrorCode;
|
|
251
|
+
}>;
|
|
252
|
+
/**
|
|
253
|
+
* 禁用视频track
|
|
254
|
+
*/
|
|
255
|
+
disableVideoTrack(): Promise<{
|
|
256
|
+
code: RCCallErrorCode;
|
|
257
|
+
}>;
|
|
258
|
+
/**
|
|
259
|
+
* 启用视频track
|
|
260
|
+
*/
|
|
261
|
+
enableVideoTrack(): Promise<{
|
|
262
|
+
code: RCCallErrorCode;
|
|
263
|
+
}>;
|
|
264
|
+
/**
|
|
265
|
+
* 禁用音频track
|
|
266
|
+
*/
|
|
267
|
+
disableAudioTrack(): Promise<{
|
|
268
|
+
code: RCCallErrorCode;
|
|
269
|
+
}>;
|
|
270
|
+
/**
|
|
271
|
+
* 启用音频track
|
|
272
|
+
*/
|
|
273
|
+
enableAudioTrack(): Promise<{
|
|
274
|
+
code: RCCallErrorCode;
|
|
275
|
+
}>;
|
|
276
|
+
/**
|
|
277
|
+
* 通话唯一标识
|
|
278
|
+
*/
|
|
279
|
+
getSessionId(): string;
|
|
280
|
+
/**
|
|
281
|
+
* 获取房间当前会话 Id,当房间内已无成员时房间会回收,重新加入时 sessionId 将更新,(用户录制资源用的)
|
|
282
|
+
*/
|
|
283
|
+
getRTCSessionId(): string | null;
|
|
284
|
+
/**
|
|
285
|
+
* 目标 ID,单呼对方人员 Id, 群呼群组 Id
|
|
286
|
+
*/
|
|
287
|
+
getTargetId(): string;
|
|
288
|
+
/**
|
|
289
|
+
* 获取组织 ID
|
|
290
|
+
*/
|
|
291
|
+
getChannelId(): string;
|
|
292
|
+
/**
|
|
293
|
+
* 获取会话类型
|
|
294
|
+
*/
|
|
295
|
+
getConversationType(): ConversationType;
|
|
296
|
+
/**
|
|
297
|
+
* 房间人员列表,不包含本端信息
|
|
298
|
+
*/
|
|
299
|
+
getRemoteUsers(): IUserData[];
|
|
300
|
+
/**
|
|
301
|
+
* 获取人员状态
|
|
302
|
+
*/
|
|
303
|
+
getUserState(userId: string): RCCallUserState;
|
|
304
|
+
/**
|
|
305
|
+
* 获取session状态
|
|
306
|
+
*/
|
|
307
|
+
getState(): RCCallSessionState;
|
|
308
|
+
/**
|
|
309
|
+
* 获得会话发起者id
|
|
310
|
+
*/
|
|
311
|
+
getCallerId(): string;
|
|
312
|
+
/**
|
|
313
|
+
* 获得mediaType
|
|
314
|
+
*/
|
|
315
|
+
getMediaType(): RCCallMediaType;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* 挂断原因
|
|
320
|
+
* @description
|
|
321
|
+
* 根据原有 HangupReason 设计,己方原因与对方原因有相差 10 的差距.
|
|
322
|
+
* 现有本地原因取值范围: 1 ~ 10, 远端原因取值范围: 11 ~ 20.
|
|
323
|
+
* 为便于 HangupReason 扩展,保留 100 以内的取值.
|
|
324
|
+
* 需要再次扩展时,己方原因使用: 21 ~ 30, 对应对方原因使用: 31 ~ 40,
|
|
325
|
+
* 以此类推,
|
|
326
|
+
* 己方原因使用: 41 ~ 50, 对方原因使用: 51 ~ 60,
|
|
327
|
+
* 己方原因使用: 61 ~ 70, 对方原因使用: 71 ~ 80,
|
|
328
|
+
* 己方原因使用: 71 ~ 90, 对方原因使用: 91 ~ 100.
|
|
329
|
+
*
|
|
330
|
+
* 各平台独有字段范围
|
|
331
|
+
* Android 201 ~ 299
|
|
332
|
+
* iOS 301 ~ 399
|
|
333
|
+
* Web 401 ~ 499
|
|
334
|
+
* 详细文档:https://gitbook.rongcloud.net/rtc-docs/#/rtc-client/ios/analysis/calllib/HangupReason
|
|
335
|
+
*/
|
|
336
|
+
declare enum RCCallEndReason {
|
|
337
|
+
/**
|
|
338
|
+
* 己方取消已发出的通话请求
|
|
339
|
+
*/
|
|
340
|
+
CANCEL = 1,
|
|
341
|
+
/**
|
|
342
|
+
* 己方拒绝收到的通话请求
|
|
343
|
+
*/
|
|
344
|
+
REJECT = 2,
|
|
345
|
+
/**
|
|
346
|
+
* 己方挂断
|
|
347
|
+
*/
|
|
348
|
+
HANGUP = 3,
|
|
349
|
+
/**
|
|
350
|
+
* 己方忙碌
|
|
351
|
+
*/
|
|
352
|
+
BUSY_LINE = 4,
|
|
353
|
+
/**
|
|
354
|
+
* 己方未接听
|
|
355
|
+
*/
|
|
356
|
+
NO_RESPONSE = 5,
|
|
357
|
+
/**
|
|
358
|
+
* 己方不支持当前音视频引擎
|
|
359
|
+
*/
|
|
360
|
+
ENGINE_UNSUPPORTED = 6,
|
|
361
|
+
/**
|
|
362
|
+
* 己方网络错误
|
|
363
|
+
*/
|
|
364
|
+
NETWORK_ERROR = 7,
|
|
365
|
+
/**
|
|
366
|
+
* 己方摄像头资源获取失败,可能是权限原因
|
|
367
|
+
*/
|
|
368
|
+
GET_MEDIA_RESOURCES_ERROR = 8,
|
|
369
|
+
/**
|
|
370
|
+
* 己方资源发布失败
|
|
371
|
+
*/
|
|
372
|
+
PUBLISH_ERROR = 9,
|
|
373
|
+
/**
|
|
374
|
+
* 己方订阅资源失败
|
|
375
|
+
*/
|
|
376
|
+
SUBSCRIBE_ERROR = 10,
|
|
377
|
+
/**
|
|
378
|
+
* 对方取消发出的通话请求
|
|
379
|
+
*/
|
|
380
|
+
REMOTE_CANCEL = 11,
|
|
381
|
+
/**
|
|
382
|
+
* 对方拒绝收到的通话请求
|
|
383
|
+
*/
|
|
384
|
+
REMOTE_REJECT = 12,
|
|
385
|
+
/**
|
|
386
|
+
* 通话过程中对方挂断
|
|
387
|
+
*/
|
|
388
|
+
REMOTE_HANGUP = 13,
|
|
389
|
+
/**
|
|
390
|
+
* 对方忙碌
|
|
391
|
+
*/
|
|
392
|
+
REMOTE_BUSY_LINE = 14,
|
|
393
|
+
/**
|
|
394
|
+
* 对方未接听
|
|
395
|
+
*/
|
|
396
|
+
REMOTE_NO_RESPONSE = 15,
|
|
397
|
+
/**
|
|
398
|
+
* 对方引擎不支持
|
|
399
|
+
*/
|
|
400
|
+
REMOTE_ENGINE_UNSUPPORTED = 16,
|
|
401
|
+
/**
|
|
402
|
+
* 对方网络错误
|
|
403
|
+
*/
|
|
404
|
+
REMOTE_NETWORK_ERROR = 17,
|
|
405
|
+
/**
|
|
406
|
+
* 对方摄像头资源获取失败,可能是权限原因
|
|
407
|
+
*/
|
|
408
|
+
REMOTE_GET_MEDIA_RESOURCE_ERROR = 18,
|
|
409
|
+
/**
|
|
410
|
+
* 远端资源发布失败
|
|
411
|
+
*/
|
|
412
|
+
REMOTE_PUBLISH_ERROR = 19,
|
|
413
|
+
/**
|
|
414
|
+
* 远端订阅资源失败
|
|
415
|
+
*/
|
|
416
|
+
REMOTE_SUBSCRIBE_ERROR = 20,
|
|
417
|
+
/**
|
|
418
|
+
* 己方其他端已加入新通话
|
|
419
|
+
*/
|
|
420
|
+
OTHER_CLIENT_JOINED_CALL = 21,
|
|
421
|
+
/**
|
|
422
|
+
* 己方其他端已在通话中
|
|
423
|
+
*/
|
|
424
|
+
OTHER_CLIENT_IN_CALL = 22,
|
|
425
|
+
/**
|
|
426
|
+
* 己方被禁止通话
|
|
427
|
+
*/
|
|
428
|
+
KICKED_BY_SERVER = 23,
|
|
429
|
+
/**
|
|
430
|
+
* 己方接听系统通话(移动端特有)
|
|
431
|
+
*/
|
|
432
|
+
ACCEPT_SYSTEM_CALL = 24,
|
|
433
|
+
/**
|
|
434
|
+
* 远端其他端已加入新通话
|
|
435
|
+
*/
|
|
436
|
+
REMOTE_OTHER_CLIENT_JOINED_CALL = 31,
|
|
437
|
+
/**
|
|
438
|
+
* 远端其他端已在通话中
|
|
439
|
+
*/
|
|
440
|
+
REMOTE_OTHER_CLIENT_IN_CALL = 32,
|
|
441
|
+
/**
|
|
442
|
+
* 远端被禁止通话
|
|
443
|
+
*/
|
|
444
|
+
REMOTE_KICKED_BY_SERVER = 33,
|
|
445
|
+
/**
|
|
446
|
+
* 远端接听系统通话(移动端特有)
|
|
447
|
+
*/
|
|
448
|
+
REMOTE_ACCEPT_SYSTEM_CALL = 34,
|
|
449
|
+
/**
|
|
450
|
+
* 其他端接听
|
|
451
|
+
*/
|
|
452
|
+
ACCEPT_BY_OTHER_CLIENT = 101,
|
|
453
|
+
/**
|
|
454
|
+
* 其他端挂断
|
|
455
|
+
*/
|
|
456
|
+
HANGUP_BY_OTHER_CLIENT = 102,
|
|
457
|
+
/**
|
|
458
|
+
* 己方被对方加入黑名单
|
|
459
|
+
*/
|
|
460
|
+
ADDED_TO_BLACKLIST = 103,
|
|
461
|
+
/**
|
|
462
|
+
* 音视频服务未开通
|
|
463
|
+
*/
|
|
464
|
+
SERVICE_NOT_OPENED = 104
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* @deprecated
|
|
469
|
+
*/
|
|
470
|
+
declare enum RCCallLanguage {
|
|
471
|
+
ZH = "zh",
|
|
472
|
+
EN = "en"
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
declare type RCCallPacketLossStats = RCCallPlusPacketLossStats;
|
|
476
|
+
interface IEndSummary {
|
|
477
|
+
/**
|
|
478
|
+
* 通话类型
|
|
479
|
+
*/
|
|
480
|
+
conversationType: ConversationType;
|
|
481
|
+
/**
|
|
482
|
+
* 多组织 ID
|
|
483
|
+
*/
|
|
484
|
+
channelId: string;
|
|
485
|
+
/**
|
|
486
|
+
* 目标 ID
|
|
487
|
+
*/
|
|
488
|
+
targetId: string;
|
|
489
|
+
/**
|
|
490
|
+
* 通话媒体类型
|
|
491
|
+
*/
|
|
492
|
+
mediaType: RCCallMediaType;
|
|
493
|
+
/**
|
|
494
|
+
* 通话开始时间戳
|
|
495
|
+
*/
|
|
496
|
+
beginTimestamp: number;
|
|
497
|
+
/**
|
|
498
|
+
* 通话结束时间戳
|
|
499
|
+
*/
|
|
500
|
+
endTimestamp: number;
|
|
501
|
+
/**
|
|
502
|
+
* 通话时间
|
|
503
|
+
*/
|
|
504
|
+
duration: number;
|
|
505
|
+
/**
|
|
506
|
+
* 通话结束原因
|
|
507
|
+
*/
|
|
508
|
+
endReason: RCCallEndReason;
|
|
509
|
+
}
|
|
510
|
+
interface IRCCallInitOptions {
|
|
511
|
+
/**
|
|
512
|
+
* RTC实例
|
|
513
|
+
*/
|
|
514
|
+
callPlusClient: RCCallPlusClient;
|
|
515
|
+
/**
|
|
516
|
+
* 收到邀请后,产生新的session
|
|
517
|
+
*/
|
|
518
|
+
onSession: (session: RCCallSession, extra?: string) => void;
|
|
519
|
+
/**
|
|
520
|
+
* session已关闭
|
|
521
|
+
*/
|
|
522
|
+
onSessionClose: (session: RCCallSession, summary?: IEndSummary) => void;
|
|
523
|
+
/**
|
|
524
|
+
* 离线期间收到的呼叫记录
|
|
525
|
+
* @param record
|
|
526
|
+
* @returns
|
|
527
|
+
*/
|
|
528
|
+
onOfflineRecord?: (record: IOfflineRecord) => void;
|
|
529
|
+
/**
|
|
530
|
+
* 是否允许接听新呼叫,当前正在通话,如果收到新的邀请,是直接挂断,还是允许选择, 默认值false,直接挂断新的session
|
|
531
|
+
*
|
|
532
|
+
* 暂不对外暴露
|
|
533
|
+
*/
|
|
534
|
+
/**
|
|
535
|
+
* @deprecated
|
|
536
|
+
* 是否允许订阅重试,默认为 true
|
|
537
|
+
*/
|
|
538
|
+
isAllowSubscribeRetry?: boolean;
|
|
539
|
+
/**
|
|
540
|
+
* @deprecated
|
|
541
|
+
* 是否允许发布重试,默认为 true
|
|
542
|
+
*/
|
|
543
|
+
isAllowPublishRetry?: boolean;
|
|
544
|
+
/**
|
|
545
|
+
* @deprecated
|
|
546
|
+
* 禁用视频时关摄像头, 默认为 true
|
|
547
|
+
*/
|
|
548
|
+
isOffCameraWhenVideoDisable?: boolean;
|
|
549
|
+
/**
|
|
550
|
+
* @deprecated
|
|
551
|
+
* RTC 房间加入类型,默认为:踢前一个设备
|
|
552
|
+
*/
|
|
553
|
+
joinType?: RTCJoinType;
|
|
554
|
+
/**
|
|
555
|
+
* 允许降级获得流,获得音视频不成功 ,降级获得音频
|
|
556
|
+
*/
|
|
557
|
+
isAllowDemotionGetStream?: boolean;
|
|
558
|
+
/**
|
|
559
|
+
* 日志输出等级
|
|
560
|
+
* @since version 5.2.2
|
|
561
|
+
*/
|
|
562
|
+
logOutputLevel?: LogL.DEBUG | LogL.INFO | LogL.WARN | LogL.ERROR;
|
|
563
|
+
/**
|
|
564
|
+
* 语言设置 (推送), 不传默认为中文
|
|
565
|
+
* @deprecated
|
|
566
|
+
*/
|
|
567
|
+
lang?: RCCallLanguage;
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* 发送邀请时的可选项
|
|
571
|
+
*/
|
|
572
|
+
interface IInviteOptions {
|
|
573
|
+
/**
|
|
574
|
+
* 消息的扩展信息
|
|
575
|
+
*/
|
|
576
|
+
extra?: string;
|
|
577
|
+
/**
|
|
578
|
+
* 对方显示通知的标题
|
|
579
|
+
*/
|
|
580
|
+
pushTitle?: string;
|
|
581
|
+
/**
|
|
582
|
+
* 对方显示的通知内容
|
|
583
|
+
*/
|
|
584
|
+
pushContent?: string;
|
|
585
|
+
}
|
|
586
|
+
interface IMediaStreamConstraints {
|
|
587
|
+
video?: ICameraVideoProfile;
|
|
588
|
+
audio?: IMicphoneAudioProfile;
|
|
589
|
+
}
|
|
590
|
+
interface IUserProfile {
|
|
591
|
+
/**
|
|
592
|
+
* 用户名
|
|
593
|
+
*/
|
|
594
|
+
name?: string;
|
|
595
|
+
/**
|
|
596
|
+
* 用户头像地址
|
|
597
|
+
*/
|
|
598
|
+
portraitUri?: string;
|
|
599
|
+
/**
|
|
600
|
+
* user info 中附加信息
|
|
601
|
+
*/
|
|
602
|
+
extra?: string;
|
|
603
|
+
}
|
|
604
|
+
interface IUserData extends IUserProfile {
|
|
605
|
+
/**
|
|
606
|
+
* 用户 ID
|
|
607
|
+
*/
|
|
608
|
+
userId: string;
|
|
609
|
+
/**
|
|
610
|
+
* 用户 状态
|
|
611
|
+
*/
|
|
612
|
+
state: RCCallUserState;
|
|
613
|
+
/**
|
|
614
|
+
* 是否是通话发起者
|
|
615
|
+
*/
|
|
616
|
+
isCaller: boolean;
|
|
617
|
+
/**
|
|
618
|
+
* 是否是远端用户
|
|
619
|
+
*/
|
|
620
|
+
isRemote: boolean;
|
|
621
|
+
/**
|
|
622
|
+
* 用户 deviceId
|
|
623
|
+
* 主要用于记录远端的用户的 deviceId, 用于处理多端消息
|
|
624
|
+
* @deprecated
|
|
625
|
+
*/
|
|
626
|
+
deviceId?: string;
|
|
627
|
+
}
|
|
628
|
+
interface ISender {
|
|
629
|
+
userId: string;
|
|
630
|
+
/**
|
|
631
|
+
* 用户名
|
|
632
|
+
*/
|
|
633
|
+
name?: string;
|
|
634
|
+
/**
|
|
635
|
+
* 用户头像地址
|
|
636
|
+
*/
|
|
637
|
+
portraitUri?: string;
|
|
638
|
+
/**
|
|
639
|
+
* user info 中附加信息
|
|
640
|
+
*/
|
|
641
|
+
extra?: string;
|
|
642
|
+
}
|
|
643
|
+
interface IMuteUser extends ISender {
|
|
644
|
+
/**
|
|
645
|
+
* 是否禁用
|
|
646
|
+
*/
|
|
647
|
+
muted: boolean;
|
|
648
|
+
/**
|
|
649
|
+
* track类型
|
|
650
|
+
*/
|
|
651
|
+
kind: string;
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* 通话发起者信息
|
|
655
|
+
*/
|
|
656
|
+
interface ISenderInfo extends IUserProfile {
|
|
657
|
+
/**
|
|
658
|
+
* 发起者 userId
|
|
659
|
+
*/
|
|
660
|
+
userId: string;
|
|
661
|
+
}
|
|
662
|
+
declare type IInvitedUsers = ISenderInfo;
|
|
663
|
+
/**
|
|
664
|
+
* session上的监听
|
|
665
|
+
*/
|
|
666
|
+
interface ISessionListener {
|
|
667
|
+
/**
|
|
668
|
+
* 当对方已响铃
|
|
669
|
+
*/
|
|
670
|
+
onRinging: (sender: ISender, session: RCCallSession) => void;
|
|
671
|
+
/**
|
|
672
|
+
* 当对方已同意
|
|
673
|
+
*/
|
|
674
|
+
onAccept: (sender: ISender, session: RCCallSession) => void;
|
|
675
|
+
/**
|
|
676
|
+
* 当对方已挂断
|
|
677
|
+
*/
|
|
678
|
+
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => void;
|
|
679
|
+
/**
|
|
680
|
+
* 群组通话,人员改变
|
|
681
|
+
*/
|
|
682
|
+
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => void;
|
|
683
|
+
/**
|
|
684
|
+
* 通话降级
|
|
685
|
+
*/
|
|
686
|
+
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => void;
|
|
687
|
+
/**
|
|
688
|
+
* 当接到流
|
|
689
|
+
*/
|
|
690
|
+
onTrackReady: (userId: string, mediaType: RCCallMediaType, session?: RCCallSession) => void;
|
|
691
|
+
/**
|
|
692
|
+
* 关闭 或 开启 音频
|
|
693
|
+
*/
|
|
694
|
+
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
695
|
+
/**
|
|
696
|
+
* 关闭 或 开启 视频
|
|
697
|
+
*/
|
|
698
|
+
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => void;
|
|
699
|
+
/**
|
|
700
|
+
* 资源订阅失败
|
|
701
|
+
*/
|
|
702
|
+
onTrackSubscribeFail?: (code: RCRTCCode, session: RCCallSession) => void;
|
|
703
|
+
/**
|
|
704
|
+
* 用于接收RTC状态数据报告
|
|
705
|
+
* @deprecated
|
|
706
|
+
*/
|
|
707
|
+
onRTCStateReport?: (report: IRCRTCStateReport, session: RCCallSession) => void;
|
|
708
|
+
/**
|
|
709
|
+
* 发送丢包率信息回调,每秒回调一次
|
|
710
|
+
* @param packetLostRate 丢包率,0-100
|
|
711
|
+
* @param delay 发送端的网络延迟,单位毫秒
|
|
712
|
+
*/
|
|
713
|
+
onSendPacketLoss?(packetLostRate: number, delay: number): void;
|
|
714
|
+
/**
|
|
715
|
+
* 接收丢包率信息回调,每秒回调一次
|
|
716
|
+
* @param data key: userId, value: 接收丢包统计数据
|
|
717
|
+
* @param data[userId].packetLostRate 丢包率:取值范围是 0-100
|
|
718
|
+
* @param data[userId].bitRate 码率大小,单位是 kbps
|
|
719
|
+
*/
|
|
720
|
+
onReceivePacketLoss?(data: {
|
|
721
|
+
[userId: string]: RCCallPacketLossStats;
|
|
722
|
+
}): void;
|
|
723
|
+
}
|
|
724
|
+
/**
|
|
725
|
+
* 呼叫、挂断推送信息
|
|
726
|
+
*/
|
|
727
|
+
interface IPushConfig extends Partial<IRCCallPlusPushConfig> {
|
|
728
|
+
/**
|
|
729
|
+
* 推送标题
|
|
730
|
+
*/
|
|
731
|
+
pushTitle?: string;
|
|
732
|
+
/**
|
|
733
|
+
* 推送内容
|
|
734
|
+
* @deprecated
|
|
735
|
+
*/
|
|
736
|
+
pushContent?: string;
|
|
737
|
+
}
|
|
738
|
+
interface IRCTrackBitrate {
|
|
739
|
+
/**
|
|
740
|
+
* 最大码率
|
|
741
|
+
*/
|
|
742
|
+
max: number;
|
|
743
|
+
/**
|
|
744
|
+
* 最小码率
|
|
745
|
+
*/
|
|
746
|
+
min: number;
|
|
747
|
+
/**
|
|
748
|
+
* 上行起始码率
|
|
749
|
+
*/
|
|
750
|
+
start?: number;
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* RCCallClient callInGroup方法的传参
|
|
754
|
+
*/
|
|
755
|
+
interface IRCCallInGroupParams {
|
|
756
|
+
targetId: string;
|
|
757
|
+
userIds: string[];
|
|
758
|
+
mediaType: RCCallMediaType;
|
|
759
|
+
/**
|
|
760
|
+
* session上要注册的监听事件
|
|
761
|
+
*/
|
|
762
|
+
listener: ISessionListener;
|
|
763
|
+
/**
|
|
764
|
+
* 组织 Id,可选
|
|
765
|
+
*/
|
|
766
|
+
channelId?: string;
|
|
767
|
+
/**
|
|
768
|
+
* 用于获取己方媒体资源的参数
|
|
769
|
+
*/
|
|
770
|
+
constraints?: IMediaStreamConstraints;
|
|
771
|
+
/**
|
|
772
|
+
* 消息的扩展信息
|
|
773
|
+
*/
|
|
774
|
+
extra?: string;
|
|
775
|
+
/**
|
|
776
|
+
* 对方显示通知的标题
|
|
777
|
+
*/
|
|
778
|
+
pushTitle?: string;
|
|
779
|
+
/**
|
|
780
|
+
* 对方显示的通知内容
|
|
781
|
+
*/
|
|
782
|
+
pushContent?: string;
|
|
783
|
+
/**
|
|
784
|
+
* 设置码率
|
|
785
|
+
*/
|
|
786
|
+
bitrate?: {
|
|
787
|
+
video?: IRCTrackBitrate;
|
|
788
|
+
audio?: number;
|
|
789
|
+
};
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* RCCallClient call方法的传参
|
|
793
|
+
*/
|
|
794
|
+
interface IRCCallParams {
|
|
795
|
+
targetId: string;
|
|
796
|
+
/**
|
|
797
|
+
* 音频 or 音视频, 默认音频
|
|
798
|
+
*/
|
|
799
|
+
mediaType: RCCallMediaType;
|
|
800
|
+
/**
|
|
801
|
+
* session上要注册的监听事件
|
|
802
|
+
*/
|
|
803
|
+
listener: ISessionListener;
|
|
804
|
+
/**
|
|
805
|
+
* 组织 Id,可选
|
|
806
|
+
*/
|
|
807
|
+
channelId?: string;
|
|
808
|
+
/**
|
|
809
|
+
* 用于获取己方媒体资源的参数
|
|
810
|
+
*/
|
|
811
|
+
constraints?: {
|
|
812
|
+
video?: ICameraVideoProfile;
|
|
813
|
+
audio: IMicphoneAudioProfile;
|
|
814
|
+
};
|
|
815
|
+
/**
|
|
816
|
+
* 消息的扩展信息
|
|
817
|
+
*/
|
|
818
|
+
extra?: string;
|
|
819
|
+
/**
|
|
820
|
+
* 对方显示通知的标题
|
|
821
|
+
*/
|
|
822
|
+
pushTitle?: string;
|
|
823
|
+
/**
|
|
824
|
+
* 对方显示的通知内容
|
|
825
|
+
*/
|
|
826
|
+
pushContent?: string;
|
|
827
|
+
/**
|
|
828
|
+
* 设置码率
|
|
829
|
+
*/
|
|
830
|
+
bitrate?: {
|
|
831
|
+
video?: IRCTrackBitrate;
|
|
832
|
+
audio?: number;
|
|
833
|
+
};
|
|
834
|
+
/**
|
|
835
|
+
* 是否为跨 appkey 通话
|
|
836
|
+
*/
|
|
837
|
+
isCrossAppkey?: boolean;
|
|
838
|
+
}
|
|
839
|
+
interface IOfflineRecord {
|
|
840
|
+
channelId: string;
|
|
841
|
+
conversationType: ConversationType;
|
|
842
|
+
targetId: string;
|
|
843
|
+
mediaType: RCCallMediaType;
|
|
844
|
+
callId: string;
|
|
845
|
+
inviterId: string;
|
|
846
|
+
endReason: RCCallEndReason;
|
|
847
|
+
beginTimestamp: number;
|
|
848
|
+
endTimestamp: number;
|
|
849
|
+
duration: number;
|
|
850
|
+
}
|
|
851
|
+
interface IDeviceChangeParams {
|
|
852
|
+
audio?: IMicphoneAudioProfile;
|
|
853
|
+
video?: ICameraVideoProfile;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
declare class RCCallClient {
|
|
857
|
+
private _context;
|
|
858
|
+
private readonly _runtime;
|
|
859
|
+
private readonly _logger;
|
|
860
|
+
private readonly _options;
|
|
861
|
+
private _callPlusClient;
|
|
862
|
+
private _targetId;
|
|
863
|
+
private _channelId;
|
|
864
|
+
private _session;
|
|
865
|
+
private _sessionStartTime;
|
|
866
|
+
private _listener;
|
|
867
|
+
private _mediaType;
|
|
868
|
+
private _audioConfigBuilder;
|
|
869
|
+
private _videoConfigBuilder;
|
|
870
|
+
private _callPushConfig;
|
|
871
|
+
private _hangupPushConfig;
|
|
872
|
+
private _isSelfHangup;
|
|
873
|
+
private _reportAppEventModule;
|
|
874
|
+
constructor(_context: RTCPluginContext, _runtime: IRuntime, _logger: BasicLogger, _options: IRCCallInitOptions);
|
|
875
|
+
private _setCallPlusEventListener;
|
|
876
|
+
/**
|
|
877
|
+
* 注册用户信息。注册后,在发起邀请或挂断等操作时,会将该信息一并发送给对端
|
|
878
|
+
* @param info.name 用户名称
|
|
879
|
+
* @param info.portraitUri 用户头像信息
|
|
880
|
+
* @param info.extra 预留拓展字段
|
|
881
|
+
* @deprecated
|
|
882
|
+
*/
|
|
883
|
+
registerUserInfo(info?: {
|
|
884
|
+
name?: string;
|
|
885
|
+
portraitUri?: string;
|
|
886
|
+
extra?: string;
|
|
887
|
+
}): void;
|
|
888
|
+
/**
|
|
889
|
+
* 跨App单呼,发送invite消息,回调回来接收stateMachine, 建session
|
|
890
|
+
* @param params.targetId 被呼叫一方的用户 id 必填
|
|
891
|
+
* @param params.mediaType 音频呼叫 or 音视频呼叫 必填
|
|
892
|
+
* @param params.listener (session上的监听) 必填
|
|
893
|
+
* @param params.constraints 获取音频或音视频资源时的参数 可选
|
|
894
|
+
* @param params.channelId 组织 Id 可选
|
|
895
|
+
* @param params.extra 消息扩展信息
|
|
896
|
+
* @param params.bitrate 需要设置的码率参数
|
|
897
|
+
* @deprecated
|
|
898
|
+
*/
|
|
899
|
+
startCrossCall({ targetId, mediaType, listener, constraints, channelId, extra, bitrate, }: IRCCallParams): Promise<void>;
|
|
900
|
+
private __startCall;
|
|
901
|
+
/**
|
|
902
|
+
* 单呼,发送invite消息,回调回来接收stateMachine, 建session
|
|
903
|
+
* @param params.targetId 被呼叫一方的用户 id 必填
|
|
904
|
+
* @param params.mediaType 音频呼叫 or 音视频呼叫 必填
|
|
905
|
+
* @param params.listener (session上的监听) 必填
|
|
906
|
+
* @param params.constraints 获取音频或音视频资源时的参数 可选
|
|
907
|
+
* @param params.channelId 组织 Id 可选
|
|
908
|
+
* @param params.extra 消息扩展信息
|
|
909
|
+
* @param params.bitrate 需要设置的码率参数
|
|
910
|
+
*
|
|
911
|
+
*/
|
|
912
|
+
call({ targetId, mediaType, listener, constraints, channelId, extra, bitrate, }: IRCCallParams): Promise<{
|
|
913
|
+
code: RCCallErrorCode;
|
|
914
|
+
session?: RCCallSession;
|
|
915
|
+
}>;
|
|
916
|
+
/**
|
|
917
|
+
* 发起群组呼叫
|
|
918
|
+
* @param params.targetId 群组 Id 必填
|
|
919
|
+
* @param params.userIds 被呼叫的群内成员 Id 必填
|
|
920
|
+
* @param params.mediaType 音频呼叫 or 音视频呼叫 必填
|
|
921
|
+
* @param params.listener (session上的监听) 必填
|
|
922
|
+
* @param params.constraints 获取音频或音视频资源时的参数 可选
|
|
923
|
+
* @param params.channelId 组织 Id 可选
|
|
924
|
+
* @param params.extra 消息扩展信息 可选
|
|
925
|
+
* @param params.bitrate 需要设置的码率参数
|
|
926
|
+
*/
|
|
927
|
+
callInGroup({ targetId, userIds, mediaType, listener, constraints, channelId, extra, bitrate, }: IRCCallInGroupParams): Promise<{
|
|
928
|
+
code: RCCallErrorCode;
|
|
929
|
+
session?: RCCallSession;
|
|
930
|
+
}>;
|
|
931
|
+
/**
|
|
932
|
+
* 获取己方其他端加入通话(已加入 RTC 房间)的用户信息
|
|
933
|
+
*/
|
|
934
|
+
getJoinedRoomInfo(): Promise<{
|
|
935
|
+
code: RCCallErrorCode;
|
|
936
|
+
data?: IRTCJoinedInfo[];
|
|
937
|
+
}>;
|
|
938
|
+
/**
|
|
939
|
+
* 设置呼叫、挂断推送数据
|
|
940
|
+
* @param callPushConfig 呼叫推送配置
|
|
941
|
+
* @param hangupPushConfig 挂断推送配置
|
|
942
|
+
*/
|
|
943
|
+
setPushConfig(callPushConfig?: IPushConfig, hangupPushConfig?: IPushConfig): void;
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
declare const installer: IPluginGenerator<RCCallClient, IRCCallInitOptions>;
|
|
947
|
+
|
|
948
|
+
export { IDeviceChangeParams, IEndSummary, IInviteOptions, IInvitedUsers, IMediaStreamConstraints, IMuteUser, IOfflineRecord, IPushConfig, IRCCallInGroupParams, IRCCallInitOptions, IRCCallParams, IRCTrackBitrate, ISender, ISenderInfo, ISessionListener, IUserData, IUserProfile, RCCallClient, RCCallEndReason, RCCallErrorCode, RCCallLanguage, RCCallMediaType, RCCallPacketLossStats, RCCallSession, RCCallSessionState, RCCallUserState, installer };
|