@rongcloud/plugin-call 5.1.2 → 5.2.0
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 +11 -249
- package/dist/index.d.ts +961 -13
- package/dist/index.esm.js +2589 -15
- package/dist/index.umd.js +6 -15
- package/package.json +13 -21
- package/dist/RCCallClient.d.ts +0 -127
- package/dist/RCCallSession.d.ts +0 -237
- package/dist/enums.d.ts +0 -14
- package/dist/eventEmitter.d.ts +0 -4
- package/dist/helper.d.ts +0 -2
- package/dist/index.js +0 -16
- package/dist/interface.d.ts +0 -320
- package/dist/logger.d.ts +0 -4
- package/dist/timer.d.ts +0 -12
- package/dist/utils.d.ts +0 -9
- package/dist/validation.d.ts +0 -15
package/README.md
CHANGED
|
@@ -1,258 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
## Installation
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
#### 安装 IMLib 与 RTCLib
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
import { IMClient, init } from '@rongcloud/imlib-v4'
|
|
11
|
-
import { installer as rtcInstaller, RCRTCClient, RCTrack, IMicphoneAudioProfile, ICameraVideoProfile, } from "@rongcloud/plugin-rtc";
|
|
12
|
-
import { installer as callInstaller, RCCallClient, RCCallSession, RCCallErrorCode, IEndSummary, ISender, RCCallLanguage, RCCallEndReason} from "@rongcloud/plugin-call";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// im 客户端初始化
|
|
16
|
-
const imClient: IMClient = init({ ... })
|
|
17
|
-
|
|
18
|
-
// rtc 客户端初始化
|
|
19
|
-
const rtcClient: RCRTCClient = imClient.install(rtcInstaller, { ...options })
|
|
20
|
-
|
|
21
|
-
// calllib 客户端初始化
|
|
22
|
-
const caller: RCCallClient = imClient.install(callInstaller, {
|
|
23
|
-
// rtcClient 实例
|
|
24
|
-
rtcClient,
|
|
25
|
-
// 监听被叫
|
|
26
|
-
onSession (session: RCCallSession) {
|
|
27
|
-
// session
|
|
28
|
-
},
|
|
29
|
-
// 通话终止
|
|
30
|
-
onSessionClose (session: RCCallSession, summaryInfo: IEndSummary) {
|
|
31
|
-
// session
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// 其他初参数
|
|
39
|
-
...options
|
|
40
|
-
})
|
|
5
|
+
```sh
|
|
6
|
+
npm i @rongcloud/engine@latest @rongcloud/imlib-next@latest
|
|
7
|
+
npm i @rongcloud/plugin-rtc@latest
|
|
41
8
|
```
|
|
42
9
|
|
|
43
|
-
|
|
10
|
+
#### 安装 CallLib
|
|
44
11
|
|
|
45
|
-
|
|
12
|
+
自 CallLib v5.2.0 版本开始,不再需要安装 `@rc-embed/call-engine` 包作为依赖包
|
|
46
13
|
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
caller.registerUserInfo({ name, profile, extra })
|
|
14
|
+
```sh
|
|
15
|
+
npm i @rongcloud/plugin-call@latest
|
|
50
16
|
```
|
|
51
17
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
* 单呼
|
|
18
|
+
## Use For
|
|
55
19
|
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* 单呼,发送invite消息, 成工后返回session
|
|
59
|
-
* @param params.targetId 被呼叫一方的用户 id 必填
|
|
60
|
-
* @param params.mediaType 音频呼叫 or 音视频呼叫 必填
|
|
61
|
-
* @param params.listener (session上的监听) 必填
|
|
62
|
-
* @param params.constraints 获取音频或音视频资源时的参数 可选
|
|
63
|
-
* @param params.channelId 组织 Id 可选
|
|
64
|
-
*/
|
|
65
|
-
const { code, session } = await caller.call({
|
|
66
|
-
targetId: this.targetId,
|
|
67
|
-
mediaType,
|
|
68
|
-
listener: {
|
|
69
|
-
/**
|
|
70
|
-
* 当对方已响铃
|
|
71
|
-
*/
|
|
72
|
-
onRinging: (sender: ISender, session: RCCallSession) => {},
|
|
73
|
-
/**
|
|
74
|
-
* 当对方已同意
|
|
75
|
-
*/
|
|
76
|
-
onAccept: (sender: ISender, session: RCCallSession) => {},
|
|
77
|
-
/**
|
|
78
|
-
* 当对方已挂断
|
|
79
|
-
*/
|
|
80
|
-
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => {},
|
|
81
|
-
/**
|
|
82
|
-
* 群组通话,人员改变
|
|
83
|
-
*/
|
|
84
|
-
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => {},
|
|
85
|
-
/**
|
|
86
|
-
* 通话降级
|
|
87
|
-
*/
|
|
88
|
-
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => {},
|
|
89
|
-
/**
|
|
90
|
-
* 当接到流
|
|
91
|
-
*/
|
|
92
|
-
onTrackReady: (track: RCTrack, session?: RCCallSession) => {};
|
|
93
|
-
/**
|
|
94
|
-
* 关闭 或 开启 音频
|
|
95
|
-
*/
|
|
96
|
-
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {},
|
|
97
|
-
/**
|
|
98
|
-
* 关闭 或 开启 视频
|
|
99
|
-
*/
|
|
100
|
-
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {},
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
});
|
|
105
|
-
if (code === RCCallErrorCode.SUCCESS) {
|
|
106
|
-
|
|
107
|
-
......
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
* 群呼
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
/**
|
|
115
|
-
* 发起群组呼叫
|
|
116
|
-
* @param params.targetId 群组 Id 必填
|
|
117
|
-
* @param params.userIds 被呼叫的群内成员 Id 必填
|
|
118
|
-
* @param params.mediaType 音频呼叫 or 音视频呼叫 必填
|
|
119
|
-
* @param params.listener (session上的监听) 必填
|
|
120
|
-
* @param params.channelId 组织 Id 可选
|
|
121
|
-
* @param params.constraints 获取音频或音视频资源时的参数 可选
|
|
122
|
-
*/
|
|
123
|
-
const { code, session } = await caller.callInGroup({
|
|
124
|
-
targetId: this.targetId,
|
|
125
|
-
userIds,
|
|
126
|
-
mediaType,
|
|
127
|
-
listener: {
|
|
128
|
-
/**
|
|
129
|
-
* 当对方已响铃
|
|
130
|
-
*/
|
|
131
|
-
onRinging: (sender: ISender, session: RCCallSession) => {},
|
|
132
|
-
/**
|
|
133
|
-
* 当对方已同意
|
|
134
|
-
*/
|
|
135
|
-
onAccept: (sender: ISender, session: RCCallSession) => {},
|
|
136
|
-
/**
|
|
137
|
-
* 当对方已挂断
|
|
138
|
-
*/
|
|
139
|
-
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => {},
|
|
140
|
-
/**
|
|
141
|
-
* 群组通话,人员改变
|
|
142
|
-
*/
|
|
143
|
-
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => {},
|
|
144
|
-
/**
|
|
145
|
-
* 通话降级
|
|
146
|
-
*/
|
|
147
|
-
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => {},
|
|
148
|
-
/**
|
|
149
|
-
* 当接到流
|
|
150
|
-
*/
|
|
151
|
-
onTrackReady: (track: RCTrack, session?: RCCallSession) => {},
|
|
152
|
-
/**
|
|
153
|
-
* 关闭 或 开启 音频
|
|
154
|
-
*/
|
|
155
|
-
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {},
|
|
156
|
-
/**
|
|
157
|
-
* 关闭 或 开启 视频
|
|
158
|
-
*/
|
|
159
|
-
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {}
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
});
|
|
164
|
-
if (code === RCCallErrorCode.SUCCESS) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
##### RCCallSession
|
|
173
|
-
|
|
174
|
-
RCCallSession 是 CallLib 业务的单次呼叫所建立的会话场景的抽象,标识当前的通话
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
// 当前通话的唯一性标识
|
|
178
|
-
session.getSessionId()
|
|
179
|
-
|
|
180
|
-
// targetId,群呼为群组 Id,单呼为对方人员 Id
|
|
181
|
-
session.getTargetId()
|
|
182
|
-
|
|
183
|
-
// 获取会话类型
|
|
184
|
-
session.getConversationType()
|
|
185
|
-
|
|
186
|
-
// 多组织功能相关
|
|
187
|
-
session.getChannelId()
|
|
188
|
-
|
|
189
|
-
// 房间人员列表,不包含本端信息
|
|
190
|
-
session.getRemoteUsers()
|
|
191
|
-
|
|
192
|
-
// 获取人员状态:等待 | 通话中 | 结束
|
|
193
|
-
session.getUserState(userId)
|
|
194
|
-
|
|
195
|
-
// 会话状态:呼入等待 | 呼出等待 | 通话中 | 通话已结束
|
|
196
|
-
session.getState()
|
|
197
|
-
|
|
198
|
-
// 获取会话发起者 Id
|
|
199
|
-
session.getCallerId(): Promise<string | undefined>
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
// 注册会话事件监听
|
|
203
|
-
session.registerSessionListener({
|
|
204
|
-
/**
|
|
205
|
-
* 当对方已响铃
|
|
206
|
-
*/
|
|
207
|
-
onRinging: (sender: ISender, session: RCCallSession) => {},
|
|
208
|
-
/**
|
|
209
|
-
* 当对方已同意
|
|
210
|
-
*/
|
|
211
|
-
onAccept: (sender: ISender, session: RCCallSession) => {},
|
|
212
|
-
/**
|
|
213
|
-
* 当对方已挂断
|
|
214
|
-
*/
|
|
215
|
-
onHungup: (sender: ISender, reason: RCCallEndReason, session: RCCallSession) => {},
|
|
216
|
-
/**
|
|
217
|
-
* 群组通话,人员改变
|
|
218
|
-
*/
|
|
219
|
-
onMemberModify: (sender: ISender, invitedUsers: IInvitedUsers[], session: RCCallSession) => {},
|
|
220
|
-
/**
|
|
221
|
-
* 通话降级
|
|
222
|
-
*/
|
|
223
|
-
onMediaModify: (sender: ISender, mediaType: RCCallMediaType, session: RCCallSession) => {},
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* 本端资源或远端资源已获取,track为本地音频或音视频, track不可设置成Vue组件的响应式数据
|
|
227
|
-
* track.isLocalTrack() 是否为本地资源
|
|
228
|
-
* track.isAudioTrack() 是否为音频
|
|
229
|
-
* track.isVideoTrack() 是否为视频
|
|
230
|
-
* track.getUserId() 产生该流的用户id
|
|
231
|
-
*/
|
|
232
|
-
onTrackReady: (rcTrack: RCTrack, session?: RCCallSession) => {
|
|
233
|
-
|
|
234
|
-
// 用户资源已获取,包含己方资源
|
|
235
|
-
rcTrack.play('#video')
|
|
236
|
-
},
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* 关闭 或 开启 音频
|
|
240
|
-
*/
|
|
241
|
-
onAudioMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {},
|
|
242
|
-
/**
|
|
243
|
-
* 关闭 或 开启 视频
|
|
244
|
-
*/
|
|
245
|
-
onVideoMuteChange: (muteUser: IMuteUser, session: RCCallSession) => {}
|
|
246
|
-
|
|
247
|
-
})
|
|
248
|
-
|
|
249
|
-
// 继续邀请其他人,groupOnly
|
|
250
|
-
session.invite(userIds): Promise<{code}>
|
|
251
|
-
|
|
252
|
-
// 接听(callin only)
|
|
253
|
-
session.accept(constraints?: { audio?: IMicphoneAudioProfile; video?: ICameraVideoProfile })
|
|
254
|
-
|
|
255
|
-
// 挂断
|
|
256
|
-
session.hungup()
|
|
257
|
-
|
|
258
|
-
```
|
|
20
|
+
* [开发者文档](https://doc.rongcloud.cn/call/Web/5.X/prepare)
|