@rongcloud/plugin-call 5.1.3 → 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 CHANGED
@@ -1,258 +1,20 @@
1
- # CallLib 5.0
1
+ ## Installation
2
2
 
3
- 基于融云 IMLib 与 RTCLib 能力构建的音视频通话场景 SDK,基于该 SDK,开发者可快速实现音视频呼叫功能的开发。
3
+ #### 安装 IMLib 与 RTCLib
4
4
 
5
- ### RFC
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
- 通过发消息携带用户信息功能,将用户信息通知到对端。不注册的前提下,对端只能收到人员 id 数据
12
+ CallLib v5.2.0 版本开始,不再需要安装 `@rc-embed/call-engine` 包作为依赖包
46
13
 
47
- ```typescript
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
- ```typescript
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)