NIMSDK-AOS  10.9.50
V2NIMSignallingCallSetupParams.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;
8 
9 /**
10  * 呼叫建立请求参数
11  */
13 
14  private static final String TAG = "V2NIMSignallingCallSetupParams";
15 
16  /**
17  * 信令频道ID,唯一标识了该频道房间
18  */
19  private final String channelId;
20 
21  /**
22  * 接受的呼叫者账号ID
23  */
24  private final String callerAccountId;
25 
26  /**
27  * 请求ID,可以用UUID实现,主要为了便于业务实现请求响应绑定
28  */
29  private final String requestId;
30 
31  /**
32  * 服务器扩展字段,json格式,长度限制4096
33  */
34  private String serverExtension;
35 
36  /**
37  * 信令相关配置,在接受场景无效
38  */
39  private V2NIMSignallingConfig signallingConfig;
40 
41  /**
42  * 音视频相关参数配置
43  */
44  private V2NIMSignallingRtcConfig rtcConfig;
45 
47  this(null, null, null);
48  }
49 
50  public V2NIMSignallingCallSetupParams(String channelId, String callerAccountId, String requestId) {
51  this.channelId = channelId;
52  this.callerAccountId = callerAccountId;
53  this.requestId = requestId;
54  }
55 
56  /**
57  * 获取信令频道ID
58  *
59  * @return 信令频道ID
60  */
61  public String getChannelId() {
62  return channelId;
63  }
64 
65  /**
66  * 获取接受的呼叫者账号ID
67  *
68  * @return 呼叫者账号ID
69  */
70  public String getCallerAccountId() {
71  return callerAccountId;
72  }
73 
74  /**
75  * 获取请求ID
76  *
77  * @return 请求ID
78  */
79  public String getRequestId() {
80  return requestId;
81  }
82 
83  /**
84  * 获取服务器扩展字段
85  *
86  * @return 服务器扩展字段
87  */
88  public String getServerExtension() {
89  return serverExtension;
90  }
91 
92  /**
93  * 设置服务器扩展字段
94  *
95  * @param serverExtension 服务器扩展字段
96  */
97  public void setServerExtension(String serverExtension) {
98  this.serverExtension = serverExtension;
99  }
100 
101  /**
102  * 获取信令相关配置
103  *
104  * @return 信令相关配置
105  */
107  return signallingConfig;
108  }
109 
110  /**
111  * 设置信令相关配置
112  *
113  * @param signallingConfig 信令相关配置
114  */
115  public void setSignallingConfig(V2NIMSignallingConfig signallingConfig) {
116  this.signallingConfig = signallingConfig;
117  }
118 
119  /**
120  * 获取音视频相关参数配置
121  *
122  * @return 音视频相关参数配置
123  */
125  return rtcConfig;
126  }
127 
128  /**
129  * 设置音视频相关参数配置
130  *
131  * @param rtcConfig 音视频相关参数配置
132  */
133  public void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
134  this.rtcConfig = rtcConfig;
135  }
136 
137  /**
138  * 参数是否合法
139  * @return 是否合法
140  */
141  public boolean isValid() {
142  if (TextUtils.isEmpty(channelId)){
143  NimLog.e(TAG, "channelId is empty");
144  return false;
145  }
146  if (TextUtils.isEmpty(callerAccountId)){
147  NimLog.e(TAG, "callerAccountId is empty");
148  return false;
149  }
150  if(callerAccountId.equals(SDKCacheUI.getAccount())){
151  NimLog.e(TAG, "callerAccountId is equal to self account");
152  return false;
153  }
154  if (TextUtils.isEmpty(requestId)){
155  NimLog.e(TAG, "requestId is empty");
156  return false;
157  }
158  return true;
159  }
160  /**
161  * 呼叫建立请求参数构建类
162  */
163  public static class Builder {
164 
165  private final String channelId;
166  private final String callerAccountId;
167  private final String requestId;
168  private String serverExtension;
169  private V2NIMSignallingConfig signallingConfig;
170  private V2NIMSignallingRtcConfig rtcConfig;
171 
172  /**
173  * 构造呼叫建立请求参数构建类
174  *
175  * @param channelId 信令频道ID
176  * @param callerAccountId 呼叫者账号ID
177  * @param requestId 请求ID
178  */
179  public Builder(String channelId, String callerAccountId, String requestId) {
180  this.channelId = channelId;
181  this.callerAccountId = callerAccountId;
182  this.requestId = requestId;
183  }
184 
185  /**
186  * 设置服务器扩展字段
187  *
188  * @param serverExtension 服务器扩展字段
189  * @return 呼叫建立请求参数构建类
190  */
191  public Builder serverExtension(String serverExtension) {
192  this.serverExtension = serverExtension;
193  return this;
194  }
195 
196  /**
197  * 设置信令相关配置
198  *
199  * @param signallingConfig 信令相关配置
200  * @return 呼叫建立请求参数构建类
201  */
202  public Builder signallingConfig(V2NIMSignallingConfig signallingConfig) {
203  this.signallingConfig = signallingConfig;
204  return this;
205  }
206 
207  /**
208  * 设置音视频相关参数配置
209  *
210  * @param rtcConfig 音视频相关参数配置
211  * @return 呼叫建立请求参数构建类
212  */
213  public Builder rtcConfig(V2NIMSignallingRtcConfig rtcConfig) {
214  this.rtcConfig = rtcConfig;
215  return this;
216  }
217 
218  /**
219  * 构建呼叫建立请求参数
220  *
221  * @return 呼叫建立请求参数
222  */
223  public V2NIMSignallingCallSetupParams build() {
224  V2NIMSignallingCallSetupParams params = new V2NIMSignallingCallSetupParams(channelId, callerAccountId, requestId);
225  params.setServerExtension(serverExtension);
226  params.setSignallingConfig(signallingConfig);
227  params.setRtcConfig(rtcConfig);
228  return params;
229  }
230  }
231 }
V2NIMSignallingCallSetupParams(String channelId, String callerAccountId, String requestId)
void setSignallingConfig(V2NIMSignallingConfig signallingConfig)
设置信令相关配置
void setRtcConfig(V2NIMSignallingRtcConfig rtcConfig)
设置音视频相关参数配置