NIMSDK-AOS  10.9.80
V2NIMSignallingCallParams.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.v2.avsignalling.params;
2 
3 import android.text.TextUtils;
4 import com.netease.nimlib.SDKCacheUI;
5 import com.netease.nimlib.log.NimLog;
10 
11 /**
12  * 直接呼叫请求参数
13  */
15 
16  private static final String TAG = "V2NIMSignallingCallParams";
17 
18  /**
19  * 被呼叫者账号ID,参数为空,或者为空串,返回参数错误
20  */
21  private final String calleeAccountId;
22 
23  /**
24  * 请求ID,可以用UUID实现,主要为了便于业务实现请求响应绑定,参数为空,或者为空串,返回参数错误
25  */
26  private final String requestId;
27 
28  /**
29  * 频道类型,房间创建后跟频道类型绑定,必须为枚举类型之一,否则返回参数错误
30  */
31  private final V2NIMSignallingChannelType channelType;
32 
33  /**
34  * 频道名称,建议使用与业务有相关场景的名称,便于页面显示
35  */
36  private String channelName;
37 
38  /**
39  * 频道相关扩展字段,跟频道绑定,json格式,长度限制4096
40  */
41  private String channelExtension;
42 
43  /**
44  * 服务器扩展字段,json格式,长度限制4096
45  */
46  private String serverExtension;
47 
48  /**
49  * 信令相关配置
50  */
51  private V2NIMSignallingConfig signallingConfig;
52 
53  /**
54  * 推送相关配置
55  */
56  private V2NIMSignallingPushConfig pushConfig;
57 
58  /**
59  * 音视频相关参数配置
60  */
61  private V2NIMSignallingRtcConfig rtcConfig;
62 
63  private V2NIMSignallingCallParams() {
64  this(null, null, null);
65  }
66 
67  public V2NIMSignallingCallParams(String calleeAccountId, String requestId, V2NIMSignallingChannelType channelType) {
68  this.calleeAccountId = calleeAccountId;
69  this.requestId = requestId;
70  this.channelType = channelType;
71  }
72 
73  /**
74  * 获取被呼叫者账号ID
75  *
76  * @return 被呼叫者账号ID
77  */
78  public String getCalleeAccountId() {
79  return calleeAccountId;
80  }
81 
82 
83  /**
84  * 获取请求ID
85  *
86  * @return 请求ID
87  */
88  public String getRequestId() {
89  return requestId;
90  }
91 
92 
93  /**
94  * 获取频道类型
95  *
96  * @return 频道类型
97  */
99  return channelType;
100  }
101 
102 
103  /**
104  * 获取频道名称
105  *
106  * @return 频道名称
107  */
108  public String getChannelName() {
109  return channelName;
110  }
111 
112  /**
113  * 设置频道名称
114  *
115  * @param channelName 频道名称
116  */
117  public void setChannelName(String channelName) {
118  this.channelName = channelName;
119  }
120 
121  /**
122  * 获取频道相关扩展字段
123  *
124  * @return 频道相关扩展字段
125  */
126  public String getChannelExtension() {
127  return channelExtension;
128  }
129 
130  /**
131  * 设置频道相关扩展字段
132  *
133  * @param channelExtension 频道相关扩展字段
134  */
135  public void setChannelExtension(String channelExtension) {
136  this.channelExtension = channelExtension;
137  }
138 
139  /**
140  * 获取服务器扩展字段
141  *
142  * @return 服务器扩展字段
143  */
144  public String getServerExtension() {
145  return serverExtension;
146  }
147 
148  /**
149  * 设置服务器扩展字段
150  *
151  * @param serverExtension 服务器扩展字段
152  */
153  public void setServerExtension(String serverExtension) {
154  this.serverExtension = serverExtension;
155  }
156 
157  /**
158  * 获取信令相关配置
159  *
160  * @return 信令相关配置
161  */
163  return signallingConfig;
164  }
165 
166  /**
167  * 设置信令相关配置
168  *
169  * @param signallingConfig 信令相关配置
170  */
171  public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
172  this.signallingConfig = signallingConfig;
173  }
174 
175  /**
176  * 获取推送相关配置
177  *
178  * @return 推送相关配置
179  */
181  return pushConfig;
182  }
183 
184  /**
185  * 设置推送相关配置
186  *
187  * @param pushConfig 推送相关配置
188  */
189  public void setPushConfig(V2NIMSignallingPushConfig pushConfig) {
190  this.pushConfig = pushConfig;
191  }
192 
193  /**
194  * 获取音视频相关参数配置
195  *
196  * @return 音视频相关参数配置
197  */
199  return rtcConfig;
200  }
201 
202  /**
203  * 设置音视频相关参数配置
204  *
205  * @param rtcConfig 音视频相关参数配置
206  */
207  public void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
208  this.rtcConfig = rtcConfig;
209  }
210 
211  /**
212  * 参数是否合法
213  * @return 是否合法
214  */
215  public boolean isValid() {
216  if(TextUtils.isEmpty(calleeAccountId)){
217  NimLog.e(TAG, "calleeAccountId is empty");
218  return false;
219  }
220  if(calleeAccountId.equals(SDKCacheUI.getAccount())){
221  NimLog.e(TAG, "calleeAccountId is self");
222  return false;
223  }
224  if(TextUtils.isEmpty(requestId)){
225  NimLog.e(TAG, "requestId is empty");
226  return false;
227  }
228  if(channelType == null){
229  NimLog.e(TAG, "channelType is null");
230  return false;
231  }
232 
233  return true;
234  }
235 
236  /**
237  * 直接呼叫请求参数构造器
238  */
239  public static class Builder {
240 
241  private final V2NIMSignallingCallParams params;
242 
243  /**
244  * 构造直接呼叫请求参数构造器
245  *
246  * @param calleeAccountId 被呼叫者账号ID
247  * @param requestId 请求ID
248  * @param channelType 频道类型
249  */
250  public Builder(String calleeAccountId, String requestId, V2NIMSignallingChannelType channelType) {
251  params = new V2NIMSignallingCallParams(calleeAccountId, requestId, channelType);
252  }
253 
254 
255  /**
256  * 设置频道名称
257  *
258  * @param channelName 频道名称
259  * @return Builder
260  */
261  public Builder channelName(String channelName) {
262  params.setChannelName(channelName);
263  return this;
264  }
265 
266  /**
267  * 设置频道相关扩展字段
268  *
269  * @param channelExtension 频道相关扩展字段
270  * @return Builder
271  */
272  public Builder channelExtension(String channelExtension) {
273  params.setChannelExtension(channelExtension);
274  return this;
275  }
276 
277  /**
278  * 设置服务器扩展字段
279  *
280  * @param serverExtension 服务器扩展字段
281  * @return Builder
282  */
283  public Builder serverExtension(String serverExtension) {
284  params.setServerExtension(serverExtension);
285  return this;
286  }
287 
288  /**
289  * 设置信令相关配置
290  *
291  * @param signallingConfig 信令相关配置
292  * @return Builder
293  */
294  public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
295  params.setSignallingConfig(signallingConfig);
296  return this;
297  }
298 
299  /**
300  * 设置推送相关配置
301  *
302  * @param pushConfig 推送相关配置
303  * @return Builder
304  */
305  public Builder pushConfig(V2NIMSignallingPushConfig pushConfig) {
306  params.setPushConfig(pushConfig);
307  return this;
308  }
309 
310  /**
311  * 设置音视频相关参数配置
312  *
313  * @param rtcConfig 音视频相关参数配置
314  * @return Builder
315  */
316  public Builder rtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
317  params.setRtcConfig(rtcConfig);
318  return this;
319  }
320 
321  /**
322  * 构建直接呼叫请求参数
323  *
324  * @return 直接呼叫请求参数
325  */
326  public V2NIMSignallingCallParams build() {
327  return params;
328  }
329  }
330 
331 }
V2NIMSignallingCallParams(String calleeAccountId, String requestId, V2NIMSignallingChannelType channelType)
void setServerExtension(String serverExtension)
设置服务器扩展字段
void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig)
设置音视频相关参数配置
void setPushConfig(V2NIMSignallingPushConfig pushConfig)
设置推送相关配置
V2NIMSignallingRtcConfig getRtcConfig()
获取音视频相关参数配置
void setChannelExtension(String channelExtension)
设置频道相关扩展字段
void setSignallingConfig(V2NIMSignallingConfig signallingConfig)
设置信令相关配置