ucservice 1.8.1 → 1.8.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/dist/ucservice.common.js +16 -1
- package/dist/ucservice.common.js.gz +0 -0
- package/dist/ucservice.common.js.map +1 -1
- package/dist/ucservice.umd.js +16 -1
- package/dist/ucservice.umd.js.gz +0 -0
- package/dist/ucservice.umd.js.map +1 -1
- package/dist/ucservice.umd.min.js +1 -1
- package/dist/ucservice.umd.min.js.gz +0 -0
- package/dist/ucservice.umd.min.js.map +1 -1
- package/package.json +4 -1
- package/index.js +0 -1268
- package/src/common-request.js +0 -162
- package/src/config.js +0 -15
- package/src/css/scooper.video.css +0 -343
- package/src/lib/cometd.js +0 -3286
- package/src/lib/janus.js +0 -3413
- package/src/lib/sha256.js +0 -250
- package/src/net_url/account_net_url.js +0 -481
- package/src/net_url/aduio_net_url.js +0 -337
- package/src/net_url/aduio_video_net_url.js +0 -187
- package/src/net_url/dept_ry_url.js +0 -479
- package/src/net_url/dept_url.js +0 -455
- package/src/net_url/location_url.js +0 -288
- package/src/net_url/meet_url.js +0 -413
- package/src/net_url/message_url.js +0 -432
- package/src/net_url/record_url.js +0 -228
- package/src/net_url/video_net_url.js +0 -79
- package/src/scooper-video-new.js +0 -3695
- package/src/scooper.dispatch.js +0 -3107
- package/src/scooper.video.js +0 -3937
- package/vue.config.js +0 -32
package/src/scooper.dispatch.js
DELETED
|
@@ -1,3107 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SCOOPER Dispatch JavaScript library
|
|
3
|
-
* browser support: IE8+, Chrome, FireFox
|
|
4
|
-
* 3rd-part library request: require.js, cometd.js, jquery
|
|
5
|
-
* scooper library request: scooper.sse.js, scooper.util.js
|
|
6
|
-
*
|
|
7
|
-
* @author jiangwj 2016-04
|
|
8
|
-
*/
|
|
9
|
-
(function (window, factory) {
|
|
10
|
-
if (typeof define === 'function' && define.amd) {
|
|
11
|
-
define('scooper.dispatch', ['jquery', 'scooper.sse'], factory);
|
|
12
|
-
} else if (typeof module === 'object' && module.exports) {
|
|
13
|
-
module.exports = window.document ?
|
|
14
|
-
factory(jQuery, scooper.sse) :
|
|
15
|
-
factory(require('jquery'), require('scooper.sse'));
|
|
16
|
-
} else {
|
|
17
|
-
factory(jQuery, scooper.sse);
|
|
18
|
-
}
|
|
19
|
-
}(typeof window !== 'undefined' ? window : this, function($, scooper_sse) {
|
|
20
|
-
'use strict';
|
|
21
|
-
|
|
22
|
-
// 使用方法一:(所有框架同域名)
|
|
23
|
-
//
|
|
24
|
-
// 初始化
|
|
25
|
-
// 在顶层框架中调用:
|
|
26
|
-
// scooper.dispatch.initialize("main");
|
|
27
|
-
// 在下层框架中调用:
|
|
28
|
-
// scooper.dispatch.initialize("sub");
|
|
29
|
-
//
|
|
30
|
-
// 设置服务端连接
|
|
31
|
-
// 在顶层框架中调用:
|
|
32
|
-
// scooper.dispatch.login(user,pass);
|
|
33
|
-
// 或(如果在后台已经建立连接,并返回token,则直接设置token,无需调用login)
|
|
34
|
-
// scooper.dispatch.setToken(token);
|
|
35
|
-
|
|
36
|
-
// 在多框架(frame)程序中,确保所有框架内仅使用一路调度API;(置于顶层框架中)
|
|
37
|
-
// 如果顶层框架中不存在 scooper.dispatch 的注册,并且与当前框架不在同一个域名中;则直接在本页面中使用。
|
|
38
|
-
// (考虑到第三方公司项目使用 iframe 内嵌我司调度网页)
|
|
39
|
-
// 各框架之间应该使用 window.postMessage 来进行通信。
|
|
40
|
-
|
|
41
|
-
// 判断是否处于顶层框架
|
|
42
|
-
if (!scooper.util.isTopFrame()) {
|
|
43
|
-
// 如果在下层框架,则找到顶层框架
|
|
44
|
-
// TODO 使用 DispatchProxy 来向顶层框架转发消息来调用调度相关功能;顶层框架中对这些消息进行处理
|
|
45
|
-
// var topFrame = scooper.util.findTopFrame();
|
|
46
|
-
// // 如果顶层框架中存在 scooper.sse 则直接使用该对象
|
|
47
|
-
// if (typeof(topFrame.window.scooper) != "undefined" && topFrame.window.scooper.dispatch) {
|
|
48
|
-
// return window.scooper.dispatch = topFrame.window.scooper.dispatch;
|
|
49
|
-
// }
|
|
50
|
-
}
|
|
51
|
-
// 判断当前页面是否引入过 scooper.util
|
|
52
|
-
if (typeof(scooper.util) == "undefined") throw new Error('scooper.util.js is required!');
|
|
53
|
-
// 判断是否成功导入 scooper.sse
|
|
54
|
-
if (!scooper_sse) throw new Error('scooper.sse.js is required!');
|
|
55
|
-
|
|
56
|
-
// 如果与调度网页后台处于不同域名,则需要设置该值
|
|
57
|
-
var remoteBaseUrl = null;
|
|
58
|
-
function getBaseUrl() {
|
|
59
|
-
return remoteBaseUrl ? remoteBaseUrl : scooper.util.baseUrl;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function apiUrl(path) {
|
|
63
|
-
return getBaseUrl() + 'api' + path;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
function _groupUrl(path) {
|
|
68
|
-
return getBaseUrl() + 'data/group' + path;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function _loadJson(url,param,retfn,async) {
|
|
72
|
-
if (param && typeof(param['token']) == 'undefined') {
|
|
73
|
-
if(window.top.token != ""){
|
|
74
|
-
param['token'] = window.top.token;
|
|
75
|
-
} else {
|
|
76
|
-
param['token'] = window.token;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
async = (async == undefined? true:false);
|
|
80
|
-
//
|
|
81
|
-
$.ajax({
|
|
82
|
-
'method': 'POST',
|
|
83
|
-
'url': url,
|
|
84
|
-
'data': param,
|
|
85
|
-
'dataType': 'json',
|
|
86
|
-
'async': async
|
|
87
|
-
}).fail(function(jqXHR,sts){
|
|
88
|
-
console.error('加载数据失败:' + sts + ", " + url);
|
|
89
|
-
}).done(function(ret){
|
|
90
|
-
if (!ret || ret.code != 0) {
|
|
91
|
-
console.error('加载数据失败:' + JSON.stringify(ret) + ", " + url);
|
|
92
|
-
}
|
|
93
|
-
if (retfn) retfn(ret);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 查找顶层窗口(注:相同域名下使用)
|
|
98
|
-
// 查找调度主连接所在窗口
|
|
99
|
-
function findMainFrame(w) {
|
|
100
|
-
w = w||window;
|
|
101
|
-
try{
|
|
102
|
-
w = w||window;
|
|
103
|
-
//
|
|
104
|
-
while (w != w.parent) {
|
|
105
|
-
if (w.scooper && w.scooper.dispatch
|
|
106
|
-
&& w.scooper.dispatch.getType() == "main") {
|
|
107
|
-
return w;
|
|
108
|
-
}
|
|
109
|
-
w = w.parent;
|
|
110
|
-
}
|
|
111
|
-
return w.top;
|
|
112
|
-
} catch(e){
|
|
113
|
-
alert("调度主连接获取异常,请查询是否存在跨域初始的异常");
|
|
114
|
-
return w;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// constants
|
|
119
|
-
var event_const = {
|
|
120
|
-
CONN_CNG : "connectionChanged",
|
|
121
|
-
CHANGE_CFG: "changeConfigNotify",
|
|
122
|
-
CALL_IN : "callInChanged",
|
|
123
|
-
CALL_STS : "telStatusChanged",
|
|
124
|
-
CALL_RECORD: "recordStatusChanged", //废弃
|
|
125
|
-
RECORD_NOTIFY: "recordNotify", //通话记录 & 录音/录像 记录通知
|
|
126
|
-
RECORD_STATUS_NOTIFY: "recordStatusNotify", //通话录音状态
|
|
127
|
-
MEET_STS : "meetStatusChanged",
|
|
128
|
-
MEET_MEM : "meetMemberChanged",
|
|
129
|
-
MEET_LST : "meetListChanged",
|
|
130
|
-
MEET_RECORD_NOTIFY: "meetRecordNotify", //会议记录 & 会议录音/录像 记录通知
|
|
131
|
-
MEET_MEM_RECORD_NOTIFY: "meetMemRecordNotify", //会场历史 成员记录通知
|
|
132
|
-
MEET_MEM_RECORD_DEL_NOTIFY: "meetMemRecordDelNotify", //会场历史 成员记录清空
|
|
133
|
-
DATA_INIT : "dataInitailized",
|
|
134
|
-
METHOD_RT : "methodResponse",
|
|
135
|
-
DATE_STATE: "dateStateChanged",
|
|
136
|
-
PACK_RES_CHN: "packageResult",
|
|
137
|
-
PACK_RES_DATA: "respData",
|
|
138
|
-
POC_SWITCH_CHN:"pocGroupSwitchChanged",
|
|
139
|
-
POC_PTT_CHN:"pocPttChanged",
|
|
140
|
-
POC_MEM_CHN:"pocMemStatusChanged",
|
|
141
|
-
POC_SOS_CHN:"pocMemSosChanged",
|
|
142
|
-
POC_MEM_JOIN_GROUP_CHN:"pocMemJoinGroupChanged",
|
|
143
|
-
POC_GROUP_CHN:"pocGroupStatusChanged",
|
|
144
|
-
POC_GROUP_INLINE_CHN:"pocInLineChanged",
|
|
145
|
-
POC_PHONE_STATUS_CHN:"pocPhoneStatusChanged",
|
|
146
|
-
DATA_CHANGE:"dataChange",
|
|
147
|
-
DISP_MEMBER_CHANGE:"dispMember"
|
|
148
|
-
};
|
|
149
|
-
var status_const = {
|
|
150
|
-
OFFLINE : "callst_offline", //离线
|
|
151
|
-
IDLE : "callst_idle", //空闲
|
|
152
|
-
WAITRING : "callst_waitring", //预振铃
|
|
153
|
-
CALLRING : "callst_ring", //振铃中
|
|
154
|
-
CALLANSWER : "callst_answer", //应答
|
|
155
|
-
CALLHOLD : "callst_hold", //保持中
|
|
156
|
-
CALLTRANSFING : "callst_transfering", //转接中
|
|
157
|
-
CALLTRANSFER : "callst_transfer", //转接
|
|
158
|
-
CALLTURNING : "callst_turning", //轮询中
|
|
159
|
-
DOUBLETALK : "callst_doubletalk", //双方通话
|
|
160
|
-
MEET : "callst_meet", //在会场中
|
|
161
|
-
BREAKIN : "callst_breakin", //强插
|
|
162
|
-
MONITOR : "callst_monitor", //监听通话
|
|
163
|
-
CALLINWAITANSWER : "callst_callinwaitanswer", //呼入未应答
|
|
164
|
-
MONITORRING : "callst_monitorring", //双方直接通话响铃
|
|
165
|
-
MONITORANSWER : "callst_monitoranswer", //双方直接通话
|
|
166
|
-
MONITOROFFHOOK : "callst_monitoroffhook", //监听摘机
|
|
167
|
-
POC : "callst_poc", //对讲
|
|
168
|
-
POC_GROUP : "callst_poc_group", //对讲组
|
|
169
|
-
POC_BROADCAST : "callst_poc_broadcast" //对讲广播
|
|
170
|
-
};
|
|
171
|
-
//scooperCore中的访问路径
|
|
172
|
-
var scooperCoreUrl = {
|
|
173
|
-
"dispMmber":"/data/dispatch/dispMemberManage/getDispMemberDetail",//根据快捷组成员关联id获取快捷组成员关联信息
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* 调度相关操作
|
|
178
|
-
*
|
|
179
|
-
* 事件:
|
|
180
|
-
* connectionChanged
|
|
181
|
-
* callInChanged
|
|
182
|
-
* telStatusChanged
|
|
183
|
-
* meetStatusChanged
|
|
184
|
-
* meetMemberChanged
|
|
185
|
-
*/
|
|
186
|
-
function Dispatch() {
|
|
187
|
-
var self = this;
|
|
188
|
-
var dispatch = this;
|
|
189
|
-
var initialized = false;
|
|
190
|
-
var subscribed = false; //消息订阅注册
|
|
191
|
-
var connected = false; // 与调度后台的连接状态
|
|
192
|
-
var webConnected = false; // 与Web后台的连接状态
|
|
193
|
-
var firstWebConnected = true;
|
|
194
|
-
var token = '';
|
|
195
|
-
var accountToken = '';
|
|
196
|
-
var account = '';
|
|
197
|
-
var loginExamine = '';//客户端登入后网页端登入标识位
|
|
198
|
-
var dispatchOper = null;
|
|
199
|
-
var scooperCoreIp="/scooper-core-rest";
|
|
200
|
-
|
|
201
|
-
getLoginExamine();
|
|
202
|
-
// Server-Send Event instance
|
|
203
|
-
var sse = new scooper.SSE("dispatch");
|
|
204
|
-
|
|
205
|
-
// use as Event Dispatcher
|
|
206
|
-
var dom = document.createElement('div');
|
|
207
|
-
|
|
208
|
-
// SSE 连接状态变化通知
|
|
209
|
-
function onSSEConnectionCallback(sseConnected) {
|
|
210
|
-
var tryReload = (!firstWebConnected && webConnected != sseConnected && sseConnected);
|
|
211
|
-
webConnected = sseConnected;
|
|
212
|
-
//
|
|
213
|
-
if (tryReload) {
|
|
214
|
-
pullDispatchToken();
|
|
215
|
-
}
|
|
216
|
-
// fire events
|
|
217
|
-
fireListens(event_const.CONN_CNG, (sseConnected && connected));
|
|
218
|
-
//初始化消息通知
|
|
219
|
-
if(sseConnected && firstWebConnected) {
|
|
220
|
-
linkCometdMsg();
|
|
221
|
-
}
|
|
222
|
-
if (sseConnected) firstWebConnected = false;
|
|
223
|
-
}
|
|
224
|
-
// 服务端过来的连接通知
|
|
225
|
-
function onConnected(msg) {
|
|
226
|
-
// {"data":true,"channel":"/conn"}
|
|
227
|
-
var data = msg.data;
|
|
228
|
-
if (!data || account != data.account) return;
|
|
229
|
-
//
|
|
230
|
-
connected = data.connected;
|
|
231
|
-
// fire events
|
|
232
|
-
fireListens(event_const.CONN_CNG, connected);
|
|
233
|
-
}
|
|
234
|
-
// 调度后台派发的 change_cfg 通知
|
|
235
|
-
function onConfigChanged(msg) {
|
|
236
|
-
// {type,value}
|
|
237
|
-
var data = msg.data;
|
|
238
|
-
// console.log("/server/config", data);
|
|
239
|
-
fireListens(event_const.CHANGE_CFG, data);
|
|
240
|
-
}
|
|
241
|
-
//调度后台派发的data_state_change
|
|
242
|
-
function onDataStateChange(msg) {
|
|
243
|
-
var data = msg.data;
|
|
244
|
-
fireListens(event_const.DATE_STATE, data);
|
|
245
|
-
}
|
|
246
|
-
//数据变化msgQ通知
|
|
247
|
-
function dataChange(msg) {
|
|
248
|
-
var data = msg.data;
|
|
249
|
-
//console.log(data);
|
|
250
|
-
fireListens(event_const.DATA_CHANGE, data);
|
|
251
|
-
}
|
|
252
|
-
//快捷组成员关联变化通知实现类
|
|
253
|
-
function dispatchMember(msg) {
|
|
254
|
-
var data = msg.data;
|
|
255
|
-
if(token != null && token != "") {
|
|
256
|
-
var url = scooperCoreIp + scooperCoreUrl.dispMmber;
|
|
257
|
-
var jsonData = {'token':token,'id':''};
|
|
258
|
-
if(data.changeType == "DELETE") {
|
|
259
|
-
jsonData['isActive'] = 0;
|
|
260
|
-
} else if(data.changeType == "ADDLIST") {
|
|
261
|
-
data.changeType = "ADD";
|
|
262
|
-
}
|
|
263
|
-
var ids = data.id.split(',');
|
|
264
|
-
$.each(ids,function(i,e){
|
|
265
|
-
jsonData.id = e;
|
|
266
|
-
_loadJson(url,jsonData,function(resp){//获取调度快捷组和成员数据
|
|
267
|
-
//添加快捷组信息
|
|
268
|
-
data['id'] = jsonData.id;
|
|
269
|
-
data['groupType'] = resp.data.groupType;
|
|
270
|
-
data['groupNo'] = resp.data.groupNo;
|
|
271
|
-
data['memTel'] = resp.data.memTel;
|
|
272
|
-
data['memLevel'] = resp.data.memLevel;
|
|
273
|
-
data['orgMemId'] = resp.data.orgMemId;
|
|
274
|
-
fireListens(event_const.DISP_MEMBER_CHANGE, data);
|
|
275
|
-
});
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
this.setRemoteBaseUrl = function(val) {
|
|
280
|
-
sse.setRemoteBaseUrl(val);
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
/** 连接标识,如果是Web服务端调用接口连接;需要先使用代码设置该值,再进行后续操作(呼叫等) */
|
|
284
|
-
this.getToken = function() { return token; };
|
|
285
|
-
|
|
286
|
-
this.setToken = function(val) {
|
|
287
|
-
var needLoad = (token != val);
|
|
288
|
-
//
|
|
289
|
-
token = val;
|
|
290
|
-
//
|
|
291
|
-
if (needLoad) {
|
|
292
|
-
// 当设置新的token时重新订阅
|
|
293
|
-
initialized = false;
|
|
294
|
-
self.initialize();
|
|
295
|
-
//
|
|
296
|
-
loadConnection();
|
|
297
|
-
loadAllDatas();
|
|
298
|
-
}
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
/** 登录账号的 token;当采用js方式内嵌到其它共用 DB_SC_CORE.T_ACCOUNT 的程序可实现后台自动登录; */
|
|
302
|
-
this.getAccountToken = function() { return accountToken; };
|
|
303
|
-
this.setAccountToken = function(val) {
|
|
304
|
-
var changed = (accountToken != val);
|
|
305
|
-
//
|
|
306
|
-
accountToken = val;
|
|
307
|
-
//
|
|
308
|
-
if (changed) {
|
|
309
|
-
pullDispatchToken();
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
|
|
313
|
-
//数据加载
|
|
314
|
-
this.loadData = {
|
|
315
|
-
'notifyRecordFile': function(){
|
|
316
|
-
//获取组户通知文件列表
|
|
317
|
-
$.getJSON(getBaseUrl()+'data/dispatch/recordNotify/notifyRecordQurry',"",function(ret){
|
|
318
|
-
return ret;
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
|
|
323
|
-
/** 根据账号的token 获取账号信息 **/
|
|
324
|
-
this.getAccountByToken = function(accountToken, callBack) {
|
|
325
|
-
var param = {
|
|
326
|
-
'accountToken': accountToken
|
|
327
|
-
};
|
|
328
|
-
$.getJSON(getBaseUrl()+'view/dispatch/getAccountByAccToken',param,function(ret){
|
|
329
|
-
callBack(ret);
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
/**获取当前帐号的操作员信息*/
|
|
333
|
-
this.getDispatchOper = function() {
|
|
334
|
-
return dispatchOper;
|
|
335
|
-
}
|
|
336
|
-
//
|
|
337
|
-
function pullDispatchToken() {
|
|
338
|
-
var param = {
|
|
339
|
-
'accountToken': accountToken
|
|
340
|
-
};
|
|
341
|
-
$.getJSON(getBaseUrl()+'view/dispatch/getDispatchToken',param,function(ret){
|
|
342
|
-
if (ret && ret.code == 0) {
|
|
343
|
-
account = ret.data.account;
|
|
344
|
-
self.setToken(ret.data.token);
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
this.setScooperIp = function(val) {
|
|
349
|
-
if(val != "") {
|
|
350
|
-
scooperCoreIp = "http://" + val + "/scooper-core-rest";
|
|
351
|
-
}
|
|
352
|
-
};
|
|
353
|
-
|
|
354
|
-
/** 呼叫相关操作 */
|
|
355
|
-
this.calls = new Call();
|
|
356
|
-
/** 会议相关操作 */
|
|
357
|
-
this.meets = new Meet();
|
|
358
|
-
/** 对讲组相关操作*/
|
|
359
|
-
this.groupPoc = new GroupPoc();
|
|
360
|
-
/** 是否连接调度后台 */
|
|
361
|
-
this.isConnected = function() {
|
|
362
|
-
return !!token && connected && webConnected;
|
|
363
|
-
};
|
|
364
|
-
/** 初始化 */
|
|
365
|
-
this.initialize = function() {
|
|
366
|
-
if (initialized) return;
|
|
367
|
-
initialized = true;
|
|
368
|
-
//防止内外网切换访问限制
|
|
369
|
-
// if(window.scooperCoreIp != null && window.scooperCoreIp != "") {
|
|
370
|
-
// scooperCoreIp = "http://" + window.scooperCoreIp + "/scooper-core-rest";
|
|
371
|
-
// }
|
|
372
|
-
sse.setConnectionCallback(onSSEConnectionCallback);
|
|
373
|
-
sse.initialize();
|
|
374
|
-
|
|
375
|
-
/*页面心跳机制*/
|
|
376
|
-
$.getJSON(apiUrl('/conn/getHearTime'),"", function(ret) {
|
|
377
|
-
if(ret.code == 0 && ret.data){
|
|
378
|
-
setInterval(heartKeep,ret.data);
|
|
379
|
-
} else {
|
|
380
|
-
setInterval(heartKeep,60000);
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
//初始化消息通知
|
|
386
|
-
function linkCometdMsg(){
|
|
387
|
-
//获取调度操作员信息
|
|
388
|
-
getDispatchOper(function(dispatchOper) {
|
|
389
|
-
var accId = dispatchOper? dispatchOper.acc_id:"";
|
|
390
|
-
var corpId = dispatchOper? dispatchOper.corp_id:"";
|
|
391
|
-
if(!subscribed) {
|
|
392
|
-
var accTopic = accId? "/"+accId : ""; //主题通道追加账号标识
|
|
393
|
-
var corpTopic = corpId? "/"+corpId : ""; //主题通道追加分权id标识
|
|
394
|
-
console.log("连接成功,开启消息推送");
|
|
395
|
-
sse.subscribe('/conn', onConnected);
|
|
396
|
-
sse.subscribe(accTopic + '/server/config', onConfigChanged);
|
|
397
|
-
//客户端数据节点变化 for 柯桥警情
|
|
398
|
-
sse.subscribe('/server/dataState', onDataStateChange);
|
|
399
|
-
//增加数据状态变化通知
|
|
400
|
-
sse.subscribe(corpTopic + '/disptchWeb/dataChange',dataChange);
|
|
401
|
-
//增加调度快捷组成员关联状态变化通知
|
|
402
|
-
sse.subscribe(corpTopic + '/scooper_core/dataChange/dispMember',dispatchMember);
|
|
403
|
-
self.calls.initialize(accId);
|
|
404
|
-
self.meets.initialize(accId);
|
|
405
|
-
self.groupPoc.initialize(accId, corpId);
|
|
406
|
-
subscribed = true;
|
|
407
|
-
}
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
function getDispatchOper(fn) {
|
|
412
|
-
if(token == null || token == "") {
|
|
413
|
-
setTimeout(function() {
|
|
414
|
-
getDispatchOper(fn);
|
|
415
|
-
}, 500);
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
$.getJSON(apiUrl('/conn/getDispatchOper'),{"token":token}, function(ret) {
|
|
419
|
-
if(ret.code == 0 && ret.data){
|
|
420
|
-
console.log("获取操作员信息成功, func[getDispatchOper]");
|
|
421
|
-
dispatchOper = ret.data;
|
|
422
|
-
}
|
|
423
|
-
else {
|
|
424
|
-
console.error("获取操作员信息失败, func[getDispatchOper], by token:" + token);
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
if(fn) fn(dispatchOper);
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
/** 网页端和后台创建心跳机制 */
|
|
432
|
-
var heartKeep = function() {
|
|
433
|
-
if(token && token != ""){
|
|
434
|
-
var jsonData = {
|
|
435
|
-
"token":token,
|
|
436
|
-
"loginExamine":""
|
|
437
|
-
}
|
|
438
|
-
if(loginExamine && loginExamine != ""){
|
|
439
|
-
jsonData.loginExamine = loginExamine;
|
|
440
|
-
}
|
|
441
|
-
$.getJSON(apiUrl('/conn/heartKeep'), jsonData, function(ret) {});
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
/** 销毁 */
|
|
446
|
-
this.destroy = function() {
|
|
447
|
-
self.calls.destroy();
|
|
448
|
-
self.meets.destroy();
|
|
449
|
-
self.groupPoc.destroy();
|
|
450
|
-
initialized = false;
|
|
451
|
-
subscribed = false;
|
|
452
|
-
};
|
|
453
|
-
/** 与调度服务器建立连接
|
|
454
|
-
* @param user 账号名
|
|
455
|
-
* @param pass 密码,SHA256加密
|
|
456
|
-
* */
|
|
457
|
-
this.login = function(user,pass) {
|
|
458
|
-
$.getJSON(apiUrl('/conn'), {'user':user,'pass':pass}, function(ret) {
|
|
459
|
-
// {code,data{token,reuse}}
|
|
460
|
-
account = ret.data.account;
|
|
461
|
-
token = ret.data.token;
|
|
462
|
-
// 如果是已经登录,则将后台数据加载过来
|
|
463
|
-
if (ret.data.reuse) {
|
|
464
|
-
loadAllDatas();
|
|
465
|
-
}
|
|
466
|
-
});
|
|
467
|
-
};
|
|
468
|
-
/**设置客户端登入后的网页端同步登入字符串*/
|
|
469
|
-
this.setloginExamine = function(loginExamines){
|
|
470
|
-
if(loginExamines && loginExamines != ""){
|
|
471
|
-
loginExamine = loginExamines;
|
|
472
|
-
}
|
|
473
|
-
};
|
|
474
|
-
|
|
475
|
-
function getLoginExamine() {
|
|
476
|
-
if(loginExamine) return loginExamine;
|
|
477
|
-
|
|
478
|
-
var url = window.location.href;
|
|
479
|
-
try{
|
|
480
|
-
if(url.indexOf("loginExamine") == -1 && window.top) {
|
|
481
|
-
url = window.top.location.href;
|
|
482
|
-
}
|
|
483
|
-
var portRule = /loginExamine=\d+&?/;
|
|
484
|
-
var loginExamineParam = url.match(portRule);
|
|
485
|
-
if(loginExamineParam) {
|
|
486
|
-
loginExamine = loginExamineParam[0].replace("loginExamine=", "").replace("&","");
|
|
487
|
-
console.log("loginExamine:" + loginExamine);
|
|
488
|
-
}
|
|
489
|
-
return loginExamine;
|
|
490
|
-
}
|
|
491
|
-
catch (e) {
|
|
492
|
-
console.log("获取loginExamine异常", e);
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
/**根据token和后台建立服务*/
|
|
498
|
-
this.loginByToken = function(loginToken, fn) {
|
|
499
|
-
$.getJSON(apiUrl('/conn/connectionByToken'), {'token':loginToken,"loginExamine":loginExamine}, function(ret) {
|
|
500
|
-
if(ret.code == 0) {
|
|
501
|
-
// {code,data{token,reuse}}
|
|
502
|
-
account = ret.data.account;
|
|
503
|
-
token = ret.data.token;
|
|
504
|
-
// 如果是已经登录,则将后台数据加载过来
|
|
505
|
-
if (ret.data.reuse) {
|
|
506
|
-
loadAllDatas();
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
else {
|
|
510
|
-
console.log(ret.message);
|
|
511
|
-
}
|
|
512
|
-
if(fn) fn(ret);
|
|
513
|
-
});
|
|
514
|
-
};
|
|
515
|
-
// 获取登录连接状态
|
|
516
|
-
function loadConnection() {
|
|
517
|
-
var param = {'token': token};
|
|
518
|
-
//
|
|
519
|
-
$.getJSON(apiUrl("/conn/connected"),param,function(ret){
|
|
520
|
-
// {code,data}
|
|
521
|
-
if (ret) {
|
|
522
|
-
connected = ret.data.connected;
|
|
523
|
-
if (connected) {
|
|
524
|
-
account = ret.data.account;
|
|
525
|
-
} else {
|
|
526
|
-
account = '';
|
|
527
|
-
}
|
|
528
|
-
//
|
|
529
|
-
fireListens(event_const.CONN_CNG, connected);
|
|
530
|
-
}
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
// 如果是已经登录,加载所有数据
|
|
534
|
-
function loadAllDatas() {
|
|
535
|
-
// 检查数据是否都加载完成,加载完成则派发事件
|
|
536
|
-
var chk_complete = (function(){
|
|
537
|
-
var _count = 0;
|
|
538
|
-
var _max = 0;// 总共需加载的次数
|
|
539
|
-
return function() {
|
|
540
|
-
_max++;
|
|
541
|
-
return function(o){
|
|
542
|
-
_count++;
|
|
543
|
-
if (_count >= _max) {
|
|
544
|
-
fireListens(event_const.DATA_INIT, true);
|
|
545
|
-
}
|
|
546
|
-
};
|
|
547
|
-
};
|
|
548
|
-
})();
|
|
549
|
-
//
|
|
550
|
-
self.calls.listStatus(chk_complete());
|
|
551
|
-
self.calls.listCallIn(chk_complete());
|
|
552
|
-
self.meets.listMeets(chk_complete());
|
|
553
|
-
self.groupPoc.listGroupStatus(chk_complete());
|
|
554
|
-
self.groupPoc.listMemStatus(chk_complete());
|
|
555
|
-
// self.groupPoc.listMemSos(chk_complete());
|
|
556
|
-
// self.groupPoc.listJoinGroupReq(chk_complete());
|
|
557
|
-
}
|
|
558
|
-
/** 断开与调度服务器的连接 */
|
|
559
|
-
this.logout = function() {
|
|
560
|
-
if (!token) return;
|
|
561
|
-
$.getJSON(apiUrl('/conn/logout'), {'token':token}, function() {
|
|
562
|
-
token = '';
|
|
563
|
-
});
|
|
564
|
-
};
|
|
565
|
-
/**
|
|
566
|
-
* 向后台发送 change_cfg 消息
|
|
567
|
-
*/
|
|
568
|
-
this.sendChangeCfg = function(type,value,fn) {
|
|
569
|
-
checkLogin();
|
|
570
|
-
var param = {
|
|
571
|
-
'token': token,
|
|
572
|
-
'type' : type ,
|
|
573
|
-
'value': value
|
|
574
|
-
};
|
|
575
|
-
$.getJSON(apiUrl('/conn/changeCfg'), param, function(data){
|
|
576
|
-
fireMethodResponse(data);
|
|
577
|
-
if(fn)
|
|
578
|
-
fn(data);
|
|
579
|
-
});
|
|
580
|
-
};
|
|
581
|
-
//
|
|
582
|
-
this.listen = function(evtType,fn) {
|
|
583
|
-
$(dom).on(evtType, fn);
|
|
584
|
-
};
|
|
585
|
-
this.unlisten = function(evtType,fn) {
|
|
586
|
-
$(dom).unbind(evtType, fn);
|
|
587
|
-
};
|
|
588
|
-
//
|
|
589
|
-
function fireListens(evtType, data) {
|
|
590
|
-
var e = $.Event(evtType, {'msg':data});
|
|
591
|
-
if(data && data.timeStamp) {
|
|
592
|
-
e.timeStamp = data.timeStamp;
|
|
593
|
-
}
|
|
594
|
-
$(dom).trigger(e);
|
|
595
|
-
}
|
|
596
|
-
//
|
|
597
|
-
function fireMethodResponse(data) {
|
|
598
|
-
fireListens(event_const.METHOD_RT, data);
|
|
599
|
-
}
|
|
600
|
-
//
|
|
601
|
-
// 验证是否登录,或者 token 是否被设置
|
|
602
|
-
function checkLogin() {
|
|
603
|
-
if (!token) throw new Error('token is empty! (you need login or set token first)');
|
|
604
|
-
}
|
|
605
|
-
// 呼叫相关操作
|
|
606
|
-
function Call() {
|
|
607
|
-
var self = this;
|
|
608
|
-
// 当前的号码状态集合 tel:{tel,status,recording}
|
|
609
|
-
var telStatus = {};
|
|
610
|
-
this.requestCallStatus = function(fn) {
|
|
611
|
-
if(fn) { fn(telStatus); }
|
|
612
|
-
};
|
|
613
|
-
this.requestTelStatus = function(tel,fn) {
|
|
614
|
-
if(fn) { fn(telStatus[tel]); }
|
|
615
|
-
};
|
|
616
|
-
// 当前的呼入号码集合 {tel,time}
|
|
617
|
-
var callIns = [];
|
|
618
|
-
this.requestCallIns = function(fn) { if(fn) fn(callIns); }
|
|
619
|
-
//
|
|
620
|
-
function callUrl(path) { return apiUrl('/call' + path); }
|
|
621
|
-
//
|
|
622
|
-
function onCallStatusNotify(msg) {
|
|
623
|
-
// {"data":{"status":"callst_idle","recording":false,"tel":"5010"},"channel":"/call/status"}
|
|
624
|
-
var data = msg.data;
|
|
625
|
-
//
|
|
626
|
-
var sts = updateTelStatus(data);
|
|
627
|
-
var stsCopy = $.extend(true, {}, sts);
|
|
628
|
-
// fire events
|
|
629
|
-
if(data.notifyType) {
|
|
630
|
-
fireListens(event_const.CALL_RECORD, stsCopy);
|
|
631
|
-
}
|
|
632
|
-
else {
|
|
633
|
-
fireListens(event_const.CALL_STS, stsCopy);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
function onCallRecordStatusNotify(msg) {
|
|
638
|
-
var data = msg.data;
|
|
639
|
-
//
|
|
640
|
-
var sts = updateTelStatus(data);
|
|
641
|
-
var stsCopy = $.extend(true, {}, sts);
|
|
642
|
-
// fire events
|
|
643
|
-
if(data.notifyType) {
|
|
644
|
-
fireListens(event_const.CALL_RECORD, stsCopy);
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
//通话记录 & 通话录音/录像 通知
|
|
648
|
-
function onRecordNotify(msg) {
|
|
649
|
-
//{businessId, notifyType:呼叫类型, callId:呼叫id, recId:数据记录id, recordStatus:录音状态, callerNumber:主叫号码, calledNumber}
|
|
650
|
-
//record_call_notify: 录音; record_call_av_notify: 录像通知; call_record_notify:通话记录
|
|
651
|
-
var data = msg.data;
|
|
652
|
-
// console.log("recordCall", data);
|
|
653
|
-
if(data.notifyType) {
|
|
654
|
-
fireListens(event_const.RECORD_NOTIFY, data);
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
function onRecordStatusNotify(msg) {
|
|
658
|
-
//{tel:通知号码, conNumber通话号码, recordStatus}
|
|
659
|
-
var data = msg.data;
|
|
660
|
-
var tel = data.tel;
|
|
661
|
-
if(tel) {
|
|
662
|
-
var sts = telStatus[data.tel];
|
|
663
|
-
if(sts) {
|
|
664
|
-
sts.recording = data.recordStatus == "ON";
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
// console.log("recordStatus", data);
|
|
668
|
-
fireListens(event_const.RECORD_STATUS_NOTIFY, data);
|
|
669
|
-
}
|
|
670
|
-
//
|
|
671
|
-
function updateTelStatus(data) {
|
|
672
|
-
var sts = telStatus[data.tel];
|
|
673
|
-
if (sts) {
|
|
674
|
-
sts.tel = data.tel;
|
|
675
|
-
sts.notifyType = data.notifyType;
|
|
676
|
-
|
|
677
|
-
sts.handleNumber = data.handleNumber;
|
|
678
|
-
sts.conNumber = data.conNumber;
|
|
679
|
-
|
|
680
|
-
// sts.suffixNum = data.suffixNum;
|
|
681
|
-
// sts.suffixNumHn = data.suffixNumHn;
|
|
682
|
-
sts.timeStamp = data.timeStamp;
|
|
683
|
-
sts.time = data.time;
|
|
684
|
-
if(!data.notifyType) {
|
|
685
|
-
sts.status = data.status;
|
|
686
|
-
//sts.handleNumber = data.handleNumber;
|
|
687
|
-
sts.meetId = data.meetId;
|
|
688
|
-
sts.videoInfo = data.videoInfo;
|
|
689
|
-
sts.recording = data.recording;
|
|
690
|
-
}
|
|
691
|
-
else {
|
|
692
|
-
sts.businessId = data.businessId;
|
|
693
|
-
sts.callId = data.callId;
|
|
694
|
-
sts.dataRecid = data.dataRecid;
|
|
695
|
-
if("record_call_notify" == data.notifyType) {
|
|
696
|
-
sts.recording = data.recording;
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
} else {
|
|
700
|
-
telStatus[data.tel] = sts = {
|
|
701
|
-
'tel': data.tel,
|
|
702
|
-
'status': data.status,
|
|
703
|
-
'recording': data.recording,
|
|
704
|
-
'handleNumber': data.handleNumber,
|
|
705
|
-
'meetId': data.meetId,
|
|
706
|
-
'videoInfo': data.videoInfo,
|
|
707
|
-
// 'suffixNum': data.suffixNum,
|
|
708
|
-
// 'suffixNumHn': data.suffixNumHn,
|
|
709
|
-
'timeStamp': data.timeStamp,
|
|
710
|
-
|
|
711
|
-
'businessId': data.businessId,
|
|
712
|
-
'callId': data.callId,
|
|
713
|
-
'conNumber': data.conNumber,
|
|
714
|
-
'dataRecid': data.dataRecid
|
|
715
|
-
};
|
|
716
|
-
}
|
|
717
|
-
return sts;
|
|
718
|
-
}
|
|
719
|
-
//
|
|
720
|
-
function onCallInNotify(msg) {
|
|
721
|
-
// {"data":{"tel":"5010","add":true,"time":14001010111},"channel":"/call/in","usrLevel":2}
|
|
722
|
-
var data = msg.data;
|
|
723
|
-
//
|
|
724
|
-
var type;
|
|
725
|
-
var c = null;
|
|
726
|
-
if (data.add) {
|
|
727
|
-
c = addCallIn(data);
|
|
728
|
-
type = 'add'
|
|
729
|
-
} else {
|
|
730
|
-
c = removeCallInByTel(data.tel);
|
|
731
|
-
type = 'del';
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
// fire events
|
|
735
|
-
if (c != null) {
|
|
736
|
-
var cCopy = $.extend(true, {}, c);
|
|
737
|
-
fireListens(event_const.CALL_IN, {'type':type,'data':cCopy,'usrLevel':data.usrLevel});
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
// 按号码在呼入队列中查找
|
|
741
|
-
function findCallInByTel(tel) {
|
|
742
|
-
for (var i = 0; i < callIns.length; i++) {
|
|
743
|
-
var c = callIns[i];
|
|
744
|
-
if (c && c.tel == tel) {
|
|
745
|
-
return c;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
return null;
|
|
749
|
-
}
|
|
750
|
-
// 添加到呼入队列中
|
|
751
|
-
function addCallIn(data) {
|
|
752
|
-
var c = findCallInByTel(data.tel);
|
|
753
|
-
if (c != null) {
|
|
754
|
-
c.time = data.time;
|
|
755
|
-
c.usrLevel = data.usrLevel;
|
|
756
|
-
c.suffixNum = data.suffixNum;
|
|
757
|
-
return c;
|
|
758
|
-
}
|
|
759
|
-
c = {
|
|
760
|
-
'tel': data.tel,
|
|
761
|
-
'time': data.time,
|
|
762
|
-
'usrLevel':data.usrLevel,
|
|
763
|
-
'suffixNum':data.suffixNum
|
|
764
|
-
};
|
|
765
|
-
callIns.push(c);
|
|
766
|
-
return c;
|
|
767
|
-
}
|
|
768
|
-
// 从呼入队列中移除
|
|
769
|
-
function removeCallInByTel(tel) {
|
|
770
|
-
var c = null;
|
|
771
|
-
for (var i = callIns.length - 1; i >= 0; i--) {
|
|
772
|
-
if (callIns[i] && callIns[i].tel == tel) {
|
|
773
|
-
c = callIns[i];
|
|
774
|
-
callIns.splice(i, 1);
|
|
775
|
-
}
|
|
776
|
-
}
|
|
777
|
-
return c;
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
//组呼结果
|
|
781
|
-
function onPackageResult(msg) {
|
|
782
|
-
//{packageresult: "success", packageReason: "group_notify", packageType: "成功数/总数:[1/1],成功[3001],失败[]"}
|
|
783
|
-
var data = msg.data;
|
|
784
|
-
//
|
|
785
|
-
var type;
|
|
786
|
-
type = data.packageresult;
|
|
787
|
-
|
|
788
|
-
fireListens(event_const.PACK_RES_CHN, {'type':type,'data':data.packageReason});
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
function onRespData(msg) {
|
|
792
|
-
var data = msg.data;
|
|
793
|
-
/*{id: 10000, type: 'make_call', result:'success||fail', reason: '', 其他具体根据调度协议来识别}*/
|
|
794
|
-
var type = data.type;
|
|
795
|
-
fireListens(event_const.PACK_RES_DATA, {'type':type,'data':data});
|
|
796
|
-
}
|
|
797
|
-
//
|
|
798
|
-
this.initialize = function(accId) {
|
|
799
|
-
var accTopic = accId? "/"+accId : ""; //主题通道追加账号标识
|
|
800
|
-
sse.subscribe(accTopic + '/call/status', onCallStatusNotify);
|
|
801
|
-
sse.subscribe(accTopic + '/call/record/status', onCallRecordStatusNotify);
|
|
802
|
-
sse.subscribe(accTopic + '/call/record', onRecordNotify);
|
|
803
|
-
sse.subscribe(accTopic + '/call/recordStatus', onRecordStatusNotify);
|
|
804
|
-
sse.subscribe(accTopic + '/call/in', onCallInNotify);
|
|
805
|
-
sse.subscribe(accTopic + '/packageResult', onPackageResult);
|
|
806
|
-
sse.subscribe(accTopic + '/respData', onRespData);
|
|
807
|
-
}
|
|
808
|
-
this.destroy = function() {
|
|
809
|
-
//sse.unsubscribe('/call/status');
|
|
810
|
-
}
|
|
811
|
-
//
|
|
812
|
-
this.listStatus = function(resultCallback) {
|
|
813
|
-
checkLogin();
|
|
814
|
-
$.getJSON(callUrl('/listStatus'), {'token':token,'loginExamine':loginExamine}, function(data) {
|
|
815
|
-
// {code,total,list:[{tel,status,recording}]}
|
|
816
|
-
if (data && data.list && data.list.length) {
|
|
817
|
-
for (var i = 0; i < data.list.length; i++) {
|
|
818
|
-
updateTelStatus(data.list[i]);
|
|
819
|
-
}
|
|
820
|
-
}
|
|
821
|
-
//
|
|
822
|
-
if (resultCallback) resultCallback(data);
|
|
823
|
-
});
|
|
824
|
-
};
|
|
825
|
-
this.listCallIn = function(resultCallback) {
|
|
826
|
-
checkLogin();
|
|
827
|
-
$.getJSON(callUrl('/listCallIn'), {'token':token}, function(data) {
|
|
828
|
-
// {code,total,list:[{tel,time}]}
|
|
829
|
-
data = data.data;
|
|
830
|
-
if (data && data.list && data.list.length) {
|
|
831
|
-
for (var i = 0; i < data.list.length; i++) {
|
|
832
|
-
addCallIn(data.list[i]);
|
|
833
|
-
}
|
|
834
|
-
}
|
|
835
|
-
//
|
|
836
|
-
if (resultCallback) resultCallback(data);
|
|
837
|
-
});
|
|
838
|
-
};
|
|
839
|
-
//
|
|
840
|
-
function requestNoParam(path) {
|
|
841
|
-
checkLogin();
|
|
842
|
-
$.getJSON(callUrl(path), {'token':token}, function(data){
|
|
843
|
-
fireMethodResponse(data);
|
|
844
|
-
});
|
|
845
|
-
}
|
|
846
|
-
function requestWithTel(path, tel, businessId) {
|
|
847
|
-
checkLogin();
|
|
848
|
-
$.getJSON(callUrl(path), {'token':token,'tel':tel, 'businessId': businessId}, function(data){
|
|
849
|
-
fireMethodResponse(data);
|
|
850
|
-
});
|
|
851
|
-
}
|
|
852
|
-
function requestWithGroupId(path,groupId,autoAnswer,allAudience) {
|
|
853
|
-
checkLogin();
|
|
854
|
-
$.getJSON(callUrl(path), {'token':token,'groupId':groupId,'autoAnswer':autoAnswer,'allAudience':allAudience}, function(data){
|
|
855
|
-
fireMethodResponse(data);
|
|
856
|
-
});
|
|
857
|
-
}
|
|
858
|
-
//
|
|
859
|
-
this.makeCall = function(tel, businessId) {
|
|
860
|
-
requestWithTel('/makeCall',tel, businessId);
|
|
861
|
-
};
|
|
862
|
-
this.makeVideoCall = function(tel, businessId) {
|
|
863
|
-
requestWithTel('/makeVideoCall',tel, businessId);
|
|
864
|
-
};
|
|
865
|
-
this.hungUp = function(tel) {
|
|
866
|
-
requestWithTel('/hungup',tel);
|
|
867
|
-
};
|
|
868
|
-
this.answer = function(tel,businessId) {
|
|
869
|
-
requestWithTel('/answer',tel, businessId);
|
|
870
|
-
};
|
|
871
|
-
this.answerAll = function() {
|
|
872
|
-
requestNoParam('/answerAll');
|
|
873
|
-
};
|
|
874
|
-
this.rollCall = function(tels) {
|
|
875
|
-
if (!tels || tels.length == 0) throw new Error("tels can't be empty!");
|
|
876
|
-
checkLogin();
|
|
877
|
-
$.getJSON(callUrl('/rollCall'),{'token':token,'tels':tels.join(",")}, function(data){
|
|
878
|
-
fireMethodResponse(data);
|
|
879
|
-
});
|
|
880
|
-
};
|
|
881
|
-
this.stopRollCall = function() {
|
|
882
|
-
checkLogin();
|
|
883
|
-
$.getJSON(callUrl('/stopRollCall'),{'token':token}, function(data){
|
|
884
|
-
fireMethodResponse(data);
|
|
885
|
-
});
|
|
886
|
-
};
|
|
887
|
-
this.groupTurn = function(tels, isOnce) {
|
|
888
|
-
//isOnce
|
|
889
|
-
if (!tels || tels.length == 0) throw new Error("tels can't be empty!");
|
|
890
|
-
checkLogin();
|
|
891
|
-
$.getJSON(callUrl('/groupTurn'),{'token':token,'tels':tels.join(","), 'isOnce':isOnce}, function(data){
|
|
892
|
-
fireMethodResponse(data);
|
|
893
|
-
});
|
|
894
|
-
};
|
|
895
|
-
this.hold = function(tel) {
|
|
896
|
-
requestWithTel('/hold',tel);
|
|
897
|
-
};
|
|
898
|
-
this.unhold = function(tel) {
|
|
899
|
-
requestWithTel('/unhold',tel);
|
|
900
|
-
};
|
|
901
|
-
this.transfer = function(from, to, businessId) {
|
|
902
|
-
checkLogin();
|
|
903
|
-
$.getJSON(callUrl('/transfer'),{'token':token,'from':from,'to':to, 'businessId': businessId}, function(data){
|
|
904
|
-
fireMethodResponse(data);
|
|
905
|
-
});
|
|
906
|
-
};
|
|
907
|
-
this.retrieve = function(tel) {
|
|
908
|
-
requestWithTel('/retrieve',tel);
|
|
909
|
-
};
|
|
910
|
-
this.tripleMonitor = function(tel) {
|
|
911
|
-
requestWithTel('/tripleMonitor',tel);
|
|
912
|
-
};
|
|
913
|
-
this.tripleBreakin = function(tel) {
|
|
914
|
-
requestWithTel('/tripleBreakin',tel);
|
|
915
|
-
};
|
|
916
|
-
this.tripleHungup = function(tel) {
|
|
917
|
-
requestWithTel('/tripleHungup',tel);
|
|
918
|
-
};
|
|
919
|
-
this.callRecord = function(tel) {
|
|
920
|
-
requestWithTel('/callRecord',tel);
|
|
921
|
-
};
|
|
922
|
-
this.callRecordEnd = function(tel) {
|
|
923
|
-
requestWithTel('/callRecordEnd',tel);
|
|
924
|
-
};
|
|
925
|
-
this.groupCall = function(groupId,autoAnswer,allAudience) {
|
|
926
|
-
requestWithGroupId('/groupCall',groupId,autoAnswer,allAudience);
|
|
927
|
-
};
|
|
928
|
-
this.groupCancel = function(groupId) {
|
|
929
|
-
requestWithGroupId('/groupCancel',groupId);
|
|
930
|
-
};
|
|
931
|
-
this.selectCall = function(tels,autoAnswer,allAudience) {
|
|
932
|
-
if (!tels || tels.length == 0) throw new Error("tels can't be empty!");
|
|
933
|
-
checkLogin();
|
|
934
|
-
$.getJSON(callUrl('/selectCall'),{'token':token,'tels':tels.join(),'autoAnswer':autoAnswer,'allAudience':allAudience}, function(data){
|
|
935
|
-
fireMethodResponse(data);
|
|
936
|
-
});
|
|
937
|
-
};
|
|
938
|
-
this.selectCancel = function() {
|
|
939
|
-
requestNoParam('/selectCancel');
|
|
940
|
-
};
|
|
941
|
-
this.groupSame = function(memIds,autoAnswer,allAudience) {
|
|
942
|
-
if (!memIds || memIds.length == 0) throw new Error("memIds can't be empty!");
|
|
943
|
-
checkLogin();
|
|
944
|
-
$.getJSON(callUrl('/groupSame'),{'token':token,'memberIds':memIds.join(),'autoAnswer':autoAnswer,'allAudience':allAudience}, function(data){
|
|
945
|
-
fireMethodResponse(data);
|
|
946
|
-
});
|
|
947
|
-
};
|
|
948
|
-
//
|
|
949
|
-
function requestGroupNotify(param,type,times,notifyId, confirm) {
|
|
950
|
-
checkLogin();
|
|
951
|
-
//
|
|
952
|
-
param['token'] = token;
|
|
953
|
-
if (type) param["type"] = type;
|
|
954
|
-
if (times && !isNaN(times)) param["times"] = times;
|
|
955
|
-
if (notifyId) param["notifyId"] = notifyId;
|
|
956
|
-
if (confirm) param["confirm"] = confirm;
|
|
957
|
-
//
|
|
958
|
-
$.ajax({
|
|
959
|
-
type: 'post',
|
|
960
|
-
traditional: true,
|
|
961
|
-
url: callUrl('/groupNotify'),
|
|
962
|
-
data: param,
|
|
963
|
-
success: function(ret){
|
|
964
|
-
fireMethodResponse(ret);
|
|
965
|
-
}
|
|
966
|
-
});
|
|
967
|
-
}
|
|
968
|
-
/**
|
|
969
|
-
* @param type notify : 通知音录音,call_record : 通话录音,text : TTS(playfile携带文字)。
|
|
970
|
-
*/
|
|
971
|
-
this.groupNotify = function(groupId,files,type,times,notifyId) {
|
|
972
|
-
if (!groupId) throw new Error("groupId can't be empty!");
|
|
973
|
-
if (!files) throw new Error("files can't be empty!");
|
|
974
|
-
//
|
|
975
|
-
var param = {
|
|
976
|
-
"groupId": groupId,
|
|
977
|
-
"files": files.join()
|
|
978
|
-
};
|
|
979
|
-
//
|
|
980
|
-
requestGroupNotify(param, type, times, notifyId);
|
|
981
|
-
};
|
|
982
|
-
/**
|
|
983
|
-
* @param type notify : 通知音录音,call_record : 通话录音,text : TTS(playfile携带文字)。
|
|
984
|
-
*/
|
|
985
|
-
this.selectNotify = function(tels,files,type,times,notifyId,confirm) {
|
|
986
|
-
// if (!tels) throw new Error("tels can't be empty!");
|
|
987
|
-
if (!tels) throw new Error("呼叫的成员不能为空!");
|
|
988
|
-
if (!files) throw new Error("files can't be empty!");
|
|
989
|
-
//
|
|
990
|
-
var param = {
|
|
991
|
-
"tels": tels,
|
|
992
|
-
"files": files
|
|
993
|
-
};
|
|
994
|
-
if(type == "text") param["files"] = files;
|
|
995
|
-
//
|
|
996
|
-
requestGroupNotify(param, type, times, notifyId, confirm);
|
|
997
|
-
};
|
|
998
|
-
// 同振
|
|
999
|
-
this.makeCallSame = function(tels, meetId) {
|
|
1000
|
-
if (!tels) throw new Error("号码不能为空!");
|
|
1001
|
-
// if (!tels) throw new Error("tels can't be empty!");
|
|
1002
|
-
//
|
|
1003
|
-
var param = {
|
|
1004
|
-
"token": token,
|
|
1005
|
-
"tels": tels.join()
|
|
1006
|
-
};
|
|
1007
|
-
if(meetId) param.meetId = meetId;
|
|
1008
|
-
//
|
|
1009
|
-
checkLogin();
|
|
1010
|
-
$.getJSON(callUrl('/makeCallSame'), param, function(data){
|
|
1011
|
-
fireMethodResponse(data);
|
|
1012
|
-
});
|
|
1013
|
-
};
|
|
1014
|
-
this.openVideo = function(callNumber,callId,businessId,avRecord) {
|
|
1015
|
-
checkLogin();
|
|
1016
|
-
var param = {
|
|
1017
|
-
"token": token,
|
|
1018
|
-
"callNumber": callNumber,
|
|
1019
|
-
"callId": callId,
|
|
1020
|
-
"businessId":businessId,
|
|
1021
|
-
"avRecord":avRecord
|
|
1022
|
-
};
|
|
1023
|
-
$.getJSON(callUrl('/openVideo'), param, function(data){
|
|
1024
|
-
fireMethodResponse(data);
|
|
1025
|
-
});
|
|
1026
|
-
};
|
|
1027
|
-
this.closeVideo = function(callNumber) {
|
|
1028
|
-
checkLogin();
|
|
1029
|
-
var param = {
|
|
1030
|
-
"token": token,
|
|
1031
|
-
"callNumber": callNumber
|
|
1032
|
-
};
|
|
1033
|
-
$.getJSON(callUrl('/clodeVideo'), param, function(data){
|
|
1034
|
-
fireMethodResponse(data);
|
|
1035
|
-
});
|
|
1036
|
-
};
|
|
1037
|
-
/**
|
|
1038
|
-
* 通知音操作
|
|
1039
|
-
* @param tel
|
|
1040
|
-
* @param title
|
|
1041
|
-
* @param opType record:录制; play:播放通知音; del:删除通知音;
|
|
1042
|
-
* re_record:重新录制,对某个通知音进行重录
|
|
1043
|
-
* finish:结束录制,只有录制和重新录制后调用结束录制才有效。
|
|
1044
|
-
* @param filename 通知音文件名,当opType为play、del和re_record时, 必须携带该值。
|
|
1045
|
-
*/
|
|
1046
|
-
this.notifyRecordOP = function(tel, title, opType, filename) {
|
|
1047
|
-
checkLogin();
|
|
1048
|
-
var param = {
|
|
1049
|
-
"token": token,
|
|
1050
|
-
"tel": tel,
|
|
1051
|
-
"title": title,
|
|
1052
|
-
"opType": opType,
|
|
1053
|
-
"filename": filename
|
|
1054
|
-
}
|
|
1055
|
-
$.getJSON(callUrl('/notifyRecordOP'), param, function(data){
|
|
1056
|
-
fireMethodResponse(data);
|
|
1057
|
-
});
|
|
1058
|
-
}
|
|
1059
|
-
}
|
|
1060
|
-
// 会议相关操作
|
|
1061
|
-
function Meet() {
|
|
1062
|
-
var self = this;
|
|
1063
|
-
// 当前存在的会场集合 {id,name,locked,playvoice,recording,members}
|
|
1064
|
-
// members:[{meetId,tel,level}]
|
|
1065
|
-
var meets = [];
|
|
1066
|
-
// function(meets)
|
|
1067
|
-
this.requestMeets = function(fn) { if(fn) fn(meets); }
|
|
1068
|
-
this.requestMeet = function(id, fn) {
|
|
1069
|
-
var meet = findMeetById(id);
|
|
1070
|
-
if (fn) fn(meet?meet:null);
|
|
1071
|
-
}
|
|
1072
|
-
// function(members)
|
|
1073
|
-
this.requestMeetMembers = function(id,fn) {
|
|
1074
|
-
var meet = findMeetById(id);
|
|
1075
|
-
if (fn) fn(meet?meet.members:null);
|
|
1076
|
-
};
|
|
1077
|
-
// function(member)
|
|
1078
|
-
this.requestMeetMember = function(meetId,tel,fn) {
|
|
1079
|
-
if (fn) {
|
|
1080
|
-
fn(findMeetMember(meetId, tel));
|
|
1081
|
-
}
|
|
1082
|
-
};
|
|
1083
|
-
//
|
|
1084
|
-
function findMeetMember(meetId,tel) {
|
|
1085
|
-
var meet = findMeetById(meetId);
|
|
1086
|
-
if (!meet) return null;
|
|
1087
|
-
for (var i = 0; i < meet.members.length; i++) {
|
|
1088
|
-
var mem = meet.members[i];
|
|
1089
|
-
if (mem && mem.tel == tel) {
|
|
1090
|
-
return mem;
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
return null;
|
|
1094
|
-
}
|
|
1095
|
-
//
|
|
1096
|
-
function meetUrl(path) { return apiUrl('/meet' + path); }
|
|
1097
|
-
//
|
|
1098
|
-
function onMeetStatusNotify(msg) {
|
|
1099
|
-
// {"data":{"playvoice":false,"meetId":"1008","destroy":false,"recording":false,"meetName":"默认","locked":false},"channel":"/meet/status"}
|
|
1100
|
-
var data = msg.data;
|
|
1101
|
-
if (!data || !data.meetId) return;
|
|
1102
|
-
//
|
|
1103
|
-
var meet = findMeetById(data.meetId);
|
|
1104
|
-
if (meet == null) {
|
|
1105
|
-
// add
|
|
1106
|
-
meet = addMeetByData(data);
|
|
1107
|
-
} else {
|
|
1108
|
-
//会场是否重新激活,如其他操作员登录,登出,再登录,
|
|
1109
|
-
//本操作员在三种状态切换时都会一直存在这个登出操作员的会场,但是再登录时需要理解为会场新增,触发会场列表变动通知
|
|
1110
|
-
var meetReBuild = false;
|
|
1111
|
-
// update
|
|
1112
|
-
if (data.meetCreateId != null) meet.createId = data.meetCreateId;
|
|
1113
|
-
if (data.meetName != null) meet.name = data.meetName || data.meetId;
|
|
1114
|
-
if (data.hasOwnProperty('locked')) meet.locked = data.locked;
|
|
1115
|
-
if (data.hasOwnProperty('playvoice')) meet.playvoice = data.playvoice;
|
|
1116
|
-
if (data.hasOwnProperty('recording')) meet.recording = data.recording;
|
|
1117
|
-
// meet destory.update by yeb
|
|
1118
|
-
if (data.hasOwnProperty('destroy')) {
|
|
1119
|
-
// if(meet.destroy != data.destroy && data.destroy) {
|
|
1120
|
-
// meetReBuild = true;
|
|
1121
|
-
// }
|
|
1122
|
-
if(data.meetCreateId == data.meetId && !data.destroy) {
|
|
1123
|
-
meetReBuild = true;
|
|
1124
|
-
}
|
|
1125
|
-
meet.destroy = data.destroy;
|
|
1126
|
-
}
|
|
1127
|
-
if (data.hasOwnProperty('meetAccess')) meet.meetAccess = data.meetAccess;
|
|
1128
|
-
if (data.hasOwnProperty('timeBegin') && data.timeBegin) meet.timeBegin = data.timeBegin;
|
|
1129
|
-
if (data.hasOwnProperty('timeEnd')) meet.timeEnd = data.timeEnd;
|
|
1130
|
-
if (data.hasOwnProperty('passwdSpeaker')) meet.passwdSpeaker = data.passwdSpeaker;
|
|
1131
|
-
if (data.hasOwnProperty('passwdAudience')) meet.passwdAudience = data.passwdAudience;
|
|
1132
|
-
if (data.hasOwnProperty('meetType')) {
|
|
1133
|
-
meet.meetType = data.meetType;
|
|
1134
|
-
if(meet.meetType === "MEET_RESERVE") {
|
|
1135
|
-
if (data.hasOwnProperty('members')) {
|
|
1136
|
-
meet.members = data.members||[];
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
meet.chairman = data.chairman?data.chairman:'';
|
|
1141
|
-
meetReBuild && fireListens(event_const.MEET_LST, {'type':'add','meet': meet});
|
|
1142
|
-
}
|
|
1143
|
-
// fire events
|
|
1144
|
-
var meetCopy = $.extend(true, {}, meet);
|
|
1145
|
-
fireListens(event_const.MEET_STS, meetCopy);
|
|
1146
|
-
}
|
|
1147
|
-
function onMeetJoinNotify(msg) {
|
|
1148
|
-
// {"data":{"meetId":"1008","tel":"5012","level":"speak"},"channel":"/meet/status"}
|
|
1149
|
-
var data = msg.data;
|
|
1150
|
-
//
|
|
1151
|
-
var meet = findMeetById(data.meetId) || addMeetByData(data);
|
|
1152
|
-
//
|
|
1153
|
-
for (var i = 0; i < meet.members.length; i++) {
|
|
1154
|
-
var mem = meet.members[i];
|
|
1155
|
-
if (mem && mem.tel == data.tel) return;
|
|
1156
|
-
}
|
|
1157
|
-
meet.members.push({
|
|
1158
|
-
'meetId': data.meetId,
|
|
1159
|
-
'tel': data.tel,
|
|
1160
|
-
'level': data.level // speak|audience|chairman
|
|
1161
|
-
});
|
|
1162
|
-
// fire events
|
|
1163
|
-
fireListens(event_const.MEET_MEM, {'type':'join','meetId':data.meetId,'tel':data.tel,'level': data.level});
|
|
1164
|
-
}
|
|
1165
|
-
function onMeetLeaveNotify(msg) {
|
|
1166
|
-
// {"data":{"meetId":"1008","tel":"5012"},"channel":"/meet/status"}
|
|
1167
|
-
var data = msg.data;
|
|
1168
|
-
if (!data || !data.meetId) return;
|
|
1169
|
-
//
|
|
1170
|
-
var meet = findMeetById(data.meetId);
|
|
1171
|
-
if (!meet) return;
|
|
1172
|
-
//
|
|
1173
|
-
for (var i = meet.members.length - 1; i >= 0; i--) {
|
|
1174
|
-
var mem = meet.members[i];
|
|
1175
|
-
if (mem && mem.tel == data.tel) {
|
|
1176
|
-
meet.members.splice(i,1);
|
|
1177
|
-
}
|
|
1178
|
-
}
|
|
1179
|
-
// fire events
|
|
1180
|
-
fireListens(event_const.MEET_MEM, {'type':'leave','meetId':data.meetId,'tel':data.tel});
|
|
1181
|
-
}
|
|
1182
|
-
function onMeetMemStsNotify(msg) {
|
|
1183
|
-
// {"data":{"meetId":"1008","tel":"5012","level":"speak"},"channel":"/meet/status"}
|
|
1184
|
-
var data = msg.data;
|
|
1185
|
-
if (!data || !data.meetId) return;
|
|
1186
|
-
//
|
|
1187
|
-
var meet = findMeetById(data.meetId);
|
|
1188
|
-
if (!meet) return;
|
|
1189
|
-
//
|
|
1190
|
-
for (var i = meet.members.length - 1; i >= 0; i--) {
|
|
1191
|
-
var mem = meet.members[i];
|
|
1192
|
-
if (mem && mem.tel == data.tel) {
|
|
1193
|
-
mem.level = data.level;
|
|
1194
|
-
}
|
|
1195
|
-
}
|
|
1196
|
-
// fire events
|
|
1197
|
-
fireListens(event_const.MEET_MEM, {'type':'level','meetId':data.meetId,'tel':data.tel,'level': data.level});
|
|
1198
|
-
}
|
|
1199
|
-
//会场记录 会议录音/录像记录 通知
|
|
1200
|
-
function onMeetRecordNotify(msg) {
|
|
1201
|
-
//{businessId, notifyType: 通知类型, recId:记录id, meetId:会议id, recordStatus:ON|OFF 会议录音状态,只用于录音通知}
|
|
1202
|
-
//record_ call_notify: 录音; record_call_av_notify: 录像通知; meet_record_notify:会议记录
|
|
1203
|
-
var data = msg.data;
|
|
1204
|
-
// console.log("meetRecordCall", data);
|
|
1205
|
-
if(data.notifyType) {
|
|
1206
|
-
fireListens(event_const.MEET_RECORD_NOTIFY, data);
|
|
1207
|
-
}
|
|
1208
|
-
}
|
|
1209
|
-
//会场历史 成员记录 通知
|
|
1210
|
-
function onMeetMemRecordNotify(msg) {
|
|
1211
|
-
var data = msg.data;
|
|
1212
|
-
fireListens(event_const.MEET_MEM_RECORD_NOTIFY, data);
|
|
1213
|
-
}
|
|
1214
|
-
//会场历史 成员记录清空 通知(会场结束 或 人员清退超过1分钟)
|
|
1215
|
-
function onMeetMemRecordDelNotify(msg) {
|
|
1216
|
-
var data = msg.data;
|
|
1217
|
-
fireListens(event_const.MEET_MEM_RECORD_DEL_NOTIFY, data);
|
|
1218
|
-
}
|
|
1219
|
-
//
|
|
1220
|
-
function findMeetById(id) {
|
|
1221
|
-
for (var i = 0; i < meets.length; i++) {
|
|
1222
|
-
var meet = meets[i];
|
|
1223
|
-
if (meet && meet.id == id) {
|
|
1224
|
-
return meet;
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
return null;
|
|
1228
|
-
}
|
|
1229
|
-
//
|
|
1230
|
-
function findMeetAndUpdate(meet) {
|
|
1231
|
-
if (!meet) return null;
|
|
1232
|
-
for (var i = 0; i < meets.length; i++) {
|
|
1233
|
-
var o = meets[i];
|
|
1234
|
-
if (o && o.id == meet.id) {
|
|
1235
|
-
return updateMeetObject(o,meet);
|
|
1236
|
-
}
|
|
1237
|
-
}
|
|
1238
|
-
return null;
|
|
1239
|
-
}
|
|
1240
|
-
// (oldValue,newValue)
|
|
1241
|
-
function updateMeetObject(o,n) {
|
|
1242
|
-
o.createId = n.createId || o.createId;
|
|
1243
|
-
o.name = n.name || o.name;
|
|
1244
|
-
o.type = n.type || o.type;
|
|
1245
|
-
o.locked = n.locked || o.locked;
|
|
1246
|
-
o.playvoice = n.playvoice || o.playvoice;
|
|
1247
|
-
o.recording = n.recording || o.recording;
|
|
1248
|
-
o.chairman = n.chairman || o.chairman;
|
|
1249
|
-
o.members = n.members.length?n.members:o.members;
|
|
1250
|
-
o.timeBegin = n.timeBegin || o.timeBegin;
|
|
1251
|
-
|
|
1252
|
-
o.timeEnd = n.timeEnd || o.timeEnd;
|
|
1253
|
-
o.meetType = n.meetType || o.meetType;
|
|
1254
|
-
o.meetAccess = n.meetAccess || o.meetAccess;
|
|
1255
|
-
o.passwdSpeaker = n.passwdSpeaker || o.passwdSpeaker;
|
|
1256
|
-
o.passwdAudience = n.passwdAudience || o.passwdAudience;
|
|
1257
|
-
|
|
1258
|
-
return o;
|
|
1259
|
-
}
|
|
1260
|
-
//转化后台获取会议信息城前端会议缓存对象
|
|
1261
|
-
function transMeetData(data) {
|
|
1262
|
-
if(!data) return null;
|
|
1263
|
-
|
|
1264
|
-
var meet = {
|
|
1265
|
-
'createId': data.meetCreateId,
|
|
1266
|
-
'id': data.meetId,
|
|
1267
|
-
'meetName': data.meetName||data.meetId,
|
|
1268
|
-
'name': data.meetName||data.meetId,
|
|
1269
|
-
'type': data.meetType,
|
|
1270
|
-
'locked': data.locked,
|
|
1271
|
-
'playvoice': data.playvoice,
|
|
1272
|
-
'recording': data.recording,
|
|
1273
|
-
'chairman': data.chairman,
|
|
1274
|
-
'members': [], // {meetId,tel,level}
|
|
1275
|
-
'timeBegin': data.timeBegin||"",
|
|
1276
|
-
'timeEnd': data.timeEnd||"",
|
|
1277
|
-
'meetType': data.meetType||"",
|
|
1278
|
-
'meetAttr': data.meetAttr||"",
|
|
1279
|
-
'meetAccess': data.meetAccess||"",
|
|
1280
|
-
'passwdSpeaker': data.passwdSpeaker||"",
|
|
1281
|
-
'passwdAudience': data.passwdAudience||""
|
|
1282
|
-
};
|
|
1283
|
-
meet.meetType = meet.meetType||(meet.meetAttr||"");
|
|
1284
|
-
//
|
|
1285
|
-
if (data.members) {
|
|
1286
|
-
for (var i = 0; i < data.members.length; i++) {
|
|
1287
|
-
var mem = data.members[i];
|
|
1288
|
-
meet.members.push({
|
|
1289
|
-
'meetId': mem.meetId,
|
|
1290
|
-
'tel': mem.tel,
|
|
1291
|
-
'level': mem.level
|
|
1292
|
-
});
|
|
1293
|
-
}
|
|
1294
|
-
}
|
|
1295
|
-
return meet;
|
|
1296
|
-
}
|
|
1297
|
-
function addMeetByData(data) {
|
|
1298
|
-
var meet = transMeetData(data);
|
|
1299
|
-
// add or update
|
|
1300
|
-
var o = findMeetAndUpdate(meet);
|
|
1301
|
-
if (o) {
|
|
1302
|
-
meet = o;
|
|
1303
|
-
} else {
|
|
1304
|
-
meets.push(meet);
|
|
1305
|
-
// fire events
|
|
1306
|
-
fireListens(event_const.MEET_LST, {'type':'add','meet': meet});
|
|
1307
|
-
}
|
|
1308
|
-
return meet;
|
|
1309
|
-
}
|
|
1310
|
-
//
|
|
1311
|
-
function removeMeetById(id) {
|
|
1312
|
-
for (var i = meets.length - 1; i >= 0; i--) {
|
|
1313
|
-
var meet = meets[i];
|
|
1314
|
-
if (meet && meet.id == id) {
|
|
1315
|
-
meets.splice(i, 1);
|
|
1316
|
-
// fire events
|
|
1317
|
-
fireListens(event_const.MEET_LST, {'type':'remove','meet': meet});
|
|
1318
|
-
}
|
|
1319
|
-
}
|
|
1320
|
-
}
|
|
1321
|
-
//
|
|
1322
|
-
this.initialize = function(accId) {
|
|
1323
|
-
var accTopic = accId? "/"+accId : ""; //主题通道追加账号标识
|
|
1324
|
-
sse.subscribe(accTopic + '/meet/status', onMeetStatusNotify);
|
|
1325
|
-
sse.subscribe(accTopic + '/meet/join', onMeetJoinNotify);
|
|
1326
|
-
sse.subscribe(accTopic + '/meet/leave', onMeetLeaveNotify);
|
|
1327
|
-
sse.subscribe(accTopic + '/meet/memsts', onMeetMemStsNotify);
|
|
1328
|
-
sse.subscribe(accTopic + '/meet/record', onMeetRecordNotify);
|
|
1329
|
-
sse.subscribe(accTopic + '/meet/memRecord', onMeetMemRecordNotify);
|
|
1330
|
-
sse.subscribe(accTopic + '/meet/memRecordDel', onMeetMemRecordDelNotify);
|
|
1331
|
-
}
|
|
1332
|
-
this.destroy = function() {
|
|
1333
|
-
}
|
|
1334
|
-
//
|
|
1335
|
-
this.listMeets = function(resultCallback) {
|
|
1336
|
-
checkLogin();
|
|
1337
|
-
$.getJSON(meetUrl('/listMeets'), {'token':token}, function(data) {
|
|
1338
|
-
data = data.data;
|
|
1339
|
-
// {code,total,list:[{meetId,meetName,recording,playvoice,locked,members:[{meetId,tel}]}]}
|
|
1340
|
-
if(!data || !data.list || !data.list.length || data.list.length == 0) {
|
|
1341
|
-
setTimeout(function(){
|
|
1342
|
-
$.getJSON(meetUrl('/listMeets'), {'token':token}, function(data) {
|
|
1343
|
-
if (data && data.list && data.list.length) {
|
|
1344
|
-
for (var i = 0; i < data.list.length; i++) {
|
|
1345
|
-
addMeetByData(data.list[i]);
|
|
1346
|
-
}
|
|
1347
|
-
}
|
|
1348
|
-
});
|
|
1349
|
-
},1000);
|
|
1350
|
-
} else {
|
|
1351
|
-
if (data && data.list && data.list.length) {
|
|
1352
|
-
for (var i = 0; i < data.list.length; i++) {
|
|
1353
|
-
addMeetByData(data.list[i]);
|
|
1354
|
-
}
|
|
1355
|
-
}
|
|
1356
|
-
}
|
|
1357
|
-
//
|
|
1358
|
-
if (resultCallback) resultCallback(data);
|
|
1359
|
-
});
|
|
1360
|
-
};
|
|
1361
|
-
//获取单个会场
|
|
1362
|
-
this.getMeet = function(id, resultCallback) {
|
|
1363
|
-
checkLogin();
|
|
1364
|
-
$.getJSON(meetUrl('/getMeet'), {'token':token, 'meetId': id}, function(data) {
|
|
1365
|
-
if(data.code == 0) {
|
|
1366
|
-
var meet = transMeetData(data.data);
|
|
1367
|
-
if(resultCallback) {
|
|
1368
|
-
resultCallback(meet);
|
|
1369
|
-
}
|
|
1370
|
-
}
|
|
1371
|
-
});
|
|
1372
|
-
};
|
|
1373
|
-
this.createMeet = function(name, businessId, resultCallback) {
|
|
1374
|
-
checkLogin();
|
|
1375
|
-
$.getJSON(meetUrl('/createMeet'), {'token':token,'name':name,'businessId': businessId}, function(data) {
|
|
1376
|
-
// {code,packetId}
|
|
1377
|
-
if (resultCallback) resultCallback(data);
|
|
1378
|
-
fireMethodResponse(data);
|
|
1379
|
-
})
|
|
1380
|
-
};
|
|
1381
|
-
this.createMeetDetail = function(name, businessId, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
1382
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers, defineAttr) {
|
|
1383
|
-
checkLogin();
|
|
1384
|
-
var param = {
|
|
1385
|
-
'token': token,
|
|
1386
|
-
'businessId': businessId,
|
|
1387
|
-
'name': name,
|
|
1388
|
-
'meetAccess': meetAccess,
|
|
1389
|
-
'meetAttr': meetAttr||'MEET_INSTANT',
|
|
1390
|
-
'timeBegin': timeBegin,
|
|
1391
|
-
'timeEnd': timeEnd,
|
|
1392
|
-
'passwdSpeaker': passwdSpeaker,
|
|
1393
|
-
'passwdAudience': passwdAudience,
|
|
1394
|
-
'meetMembers': meetMembers,
|
|
1395
|
-
'defineAttr': defineAttr
|
|
1396
|
-
}
|
|
1397
|
-
$.getJSON(meetUrl('/createMeet'), param, function(data) {
|
|
1398
|
-
if (resultCallback) resultCallback(data);
|
|
1399
|
-
fireMethodResponse(data);
|
|
1400
|
-
})
|
|
1401
|
-
}
|
|
1402
|
-
this.editMeet = function(meetId, meetName, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
1403
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers) {
|
|
1404
|
-
checkLogin();
|
|
1405
|
-
var param = {
|
|
1406
|
-
'token': token,
|
|
1407
|
-
'meetId': meetId,
|
|
1408
|
-
'meetName': meetName,
|
|
1409
|
-
'meetAccess': meetAccess,
|
|
1410
|
-
'meetAttr': meetAttr||'MEET_RESERVE',
|
|
1411
|
-
'timeBegin': timeBegin,
|
|
1412
|
-
'timeEnd': timeEnd,
|
|
1413
|
-
'passwdSpeaker': passwdSpeaker,
|
|
1414
|
-
'passwdAudience': passwdAudience,
|
|
1415
|
-
'meetMembers': meetMembers
|
|
1416
|
-
}
|
|
1417
|
-
$.getJSON(meetUrl('/editMeet'), param, function(data) {
|
|
1418
|
-
if (resultCallback) resultCallback(data);
|
|
1419
|
-
fireMethodResponse(data);
|
|
1420
|
-
})
|
|
1421
|
-
}
|
|
1422
|
-
//
|
|
1423
|
-
function requestWithMeetId(path,id) {
|
|
1424
|
-
checkLogin();
|
|
1425
|
-
$.getJSON(meetUrl(path), {'token':token,'id':id}, function(data){
|
|
1426
|
-
fireMethodResponse(data);
|
|
1427
|
-
});
|
|
1428
|
-
}
|
|
1429
|
-
//
|
|
1430
|
-
this.endMeet = function(id) {
|
|
1431
|
-
requestWithMeetId('/endMeet', id);
|
|
1432
|
-
}
|
|
1433
|
-
this.destroyMeet = function(id) {
|
|
1434
|
-
requestWithMeetId('/destroyMeet', id);
|
|
1435
|
-
}
|
|
1436
|
-
this.lock = function(id) {
|
|
1437
|
-
requestWithMeetId('/lock', id);
|
|
1438
|
-
}
|
|
1439
|
-
this.unlock = function(id) {
|
|
1440
|
-
requestWithMeetId('/unlock', id);
|
|
1441
|
-
}
|
|
1442
|
-
this.startRecord = function(id) {
|
|
1443
|
-
requestWithMeetId('/startRecord', id);
|
|
1444
|
-
}
|
|
1445
|
-
this.stopRecord = function(id) {
|
|
1446
|
-
requestWithMeetId('/stopRecord', id);
|
|
1447
|
-
}
|
|
1448
|
-
this.startPlayVoice = function(id) {
|
|
1449
|
-
requestWithMeetId('/startPlayVoice', id);
|
|
1450
|
-
}
|
|
1451
|
-
this.stopPlayVoice = function(id) {
|
|
1452
|
-
requestWithMeetId('/stopPlayVoice', id);
|
|
1453
|
-
}
|
|
1454
|
-
// meet-member actions
|
|
1455
|
-
//
|
|
1456
|
-
function requestAsMeetMember(path,id,tel,level,businessId,autoAnswer) {
|
|
1457
|
-
checkLogin();
|
|
1458
|
-
if (!level) level = '';
|
|
1459
|
-
$.getJSON(meetUrl(path), {'token':token,'id':id,'tel':tel,'level':level, 'businessId': businessId, 'autoAnswer': autoAnswer}, function(data){
|
|
1460
|
-
fireMethodResponse(data);
|
|
1461
|
-
});
|
|
1462
|
-
}
|
|
1463
|
-
this.getMeetRecord = function(id, tel, fn) {
|
|
1464
|
-
var param = {
|
|
1465
|
-
'token': token,
|
|
1466
|
-
'meetId': id,
|
|
1467
|
-
'tel': tel
|
|
1468
|
-
};
|
|
1469
|
-
$.getJSON(meetUrl('/getMeetRecord'), param, function(data) {
|
|
1470
|
-
if (fn) fn(data);
|
|
1471
|
-
fireMethodResponse(data);
|
|
1472
|
-
})
|
|
1473
|
-
};
|
|
1474
|
-
this.joinMember = function(id,tel,businessId,level,autoAnswer) {
|
|
1475
|
-
id = id || account;
|
|
1476
|
-
requestAsMeetMember('/joinMember',id,tel,level,businessId,autoAnswer);
|
|
1477
|
-
};
|
|
1478
|
-
this.joinVideoMember = function(id,tel,businessId,level,autoAnswer) {
|
|
1479
|
-
id = id || account;
|
|
1480
|
-
requestAsMeetMember('/joinVideoMember',id,tel,level,businessId,autoAnswer);
|
|
1481
|
-
};
|
|
1482
|
-
this.changeMemberLevel = function(id,tel,level) {
|
|
1483
|
-
requestAsMeetMember('/changeMemberLevel',id,tel,level);
|
|
1484
|
-
};
|
|
1485
|
-
this.changeMemberToSpeaker = function(id,tel) {
|
|
1486
|
-
self.changeMemberLevel(id, tel, "speak");
|
|
1487
|
-
};
|
|
1488
|
-
this.changeMemberToAudience = function(id,tel) {
|
|
1489
|
-
self.changeMemberLevel(id, tel, "audience");
|
|
1490
|
-
};
|
|
1491
|
-
this.changeMemberToChairman = function(id,tel) {
|
|
1492
|
-
self.changeMemberLevel(id, tel, "chairman");
|
|
1493
|
-
};
|
|
1494
|
-
function requestAsLiteMeetMember(path,id,tel) {
|
|
1495
|
-
checkLogin();
|
|
1496
|
-
$.getJSON(meetUrl(path), {'token':token,'id':id,'tel':tel}, function(data){
|
|
1497
|
-
fireMethodResponse(data);
|
|
1498
|
-
});
|
|
1499
|
-
}
|
|
1500
|
-
this.kickMember = function(id,tel) {
|
|
1501
|
-
requestAsLiteMeetMember('/kickMember', id, tel);
|
|
1502
|
-
};
|
|
1503
|
-
this.privateTalk = function(id,tel) {
|
|
1504
|
-
requestAsLiteMeetMember('/privateTalk', id, tel);
|
|
1505
|
-
};
|
|
1506
|
-
this.backToMeet = function(id,tel) {
|
|
1507
|
-
requestAsLiteMeetMember('/backToMeet', id, tel);
|
|
1508
|
-
};
|
|
1509
|
-
}
|
|
1510
|
-
function GroupPoc(){
|
|
1511
|
-
var self = this;
|
|
1512
|
-
//当前成员对讲状态集合pocNo:{pocNo,currentGroup,conPocNo,status,pttStatus}
|
|
1513
|
-
var memStatus = {};
|
|
1514
|
-
this.requestMemsStatus = function(fn) {
|
|
1515
|
-
if(fn) { fn(memStatus); }
|
|
1516
|
-
};
|
|
1517
|
-
this.requestMemStatus = function(pocNo,fn) {
|
|
1518
|
-
if(fn) { fn(memStatus[pocNo]); }
|
|
1519
|
-
};
|
|
1520
|
-
//当前对讲组状态 groupNo{groupId,groupNo,status}
|
|
1521
|
-
var groupStatus = {};
|
|
1522
|
-
|
|
1523
|
-
this.destroy = function() {
|
|
1524
|
-
}
|
|
1525
|
-
//更新对讲频道的状态数据
|
|
1526
|
-
function updateGroupsStatus(data) {
|
|
1527
|
-
var sts = groupStatus[data.groupNo];
|
|
1528
|
-
if (sts) {
|
|
1529
|
-
sts.groupNo = data.groupNo;
|
|
1530
|
-
sts.status = data.status;
|
|
1531
|
-
sts.isTmp = data.isTmp;
|
|
1532
|
-
sts.maxMemNum = data.maxMemNum;
|
|
1533
|
-
sts.num = data.num;
|
|
1534
|
-
if(data.isTmp){//allMembers,wokings为临时频道特殊属性
|
|
1535
|
-
sts.allMembers = data.allMembers;
|
|
1536
|
-
sts.wokings = data.wokings;
|
|
1537
|
-
}
|
|
1538
|
-
if(data.status == "end" && data.isTmp) {//临时频道结束删除
|
|
1539
|
-
delete groupStatus[data.groupNo];
|
|
1540
|
-
} else {
|
|
1541
|
-
groupStatus[data.groupNo] = sts;
|
|
1542
|
-
}
|
|
1543
|
-
} else {
|
|
1544
|
-
if(data.status != "end") {//临时频道结束状态不做加入
|
|
1545
|
-
sts = {
|
|
1546
|
-
'groupNo': data.groupNo,
|
|
1547
|
-
'status': data.status,
|
|
1548
|
-
'isTmp': data.isTmp,
|
|
1549
|
-
'maxMemNum':data.maxMemNum,
|
|
1550
|
-
'num':data.num
|
|
1551
|
-
};
|
|
1552
|
-
if(sts.isTmp){//allMembers,wokings为临时频道特殊属性
|
|
1553
|
-
sts ['allMembers'] = data.allMembers;
|
|
1554
|
-
sts ['wokings'] = data.wokings;
|
|
1555
|
-
}
|
|
1556
|
-
groupStatus[data.groupNo] = sts;
|
|
1557
|
-
}
|
|
1558
|
-
}
|
|
1559
|
-
return sts;
|
|
1560
|
-
}
|
|
1561
|
-
//更新对讲成员的状态数据
|
|
1562
|
-
function updateMemsStatus(data) {
|
|
1563
|
-
//console.log(data);
|
|
1564
|
-
var sts = memStatus[data.pocNo];
|
|
1565
|
-
if (sts) {
|
|
1566
|
-
sts.pocNo = data.pocNo;
|
|
1567
|
-
sts.currentGroup = data.currentGroup;
|
|
1568
|
-
sts.conPocNo = data.conPocNo;
|
|
1569
|
-
sts.status = data.status;
|
|
1570
|
-
sts.pttStatus = data.pttStatus;
|
|
1571
|
-
} else {
|
|
1572
|
-
memStatus[data.pocNo] = sts = {
|
|
1573
|
-
'pocNo': data.pocNo,
|
|
1574
|
-
'currentGroup': data.currentGroup,
|
|
1575
|
-
'conPocNo': data.conPocNo,
|
|
1576
|
-
'status': data.status,
|
|
1577
|
-
'pttStatus': data.pttStatus
|
|
1578
|
-
};
|
|
1579
|
-
}
|
|
1580
|
-
return sts;
|
|
1581
|
-
}
|
|
1582
|
-
//话权状态变化
|
|
1583
|
-
function memPttChange(data) {
|
|
1584
|
-
var sts = memStatus[data.pocNo];
|
|
1585
|
-
|
|
1586
|
-
var pttStatus = "";
|
|
1587
|
-
if(data.pocStatus == "getted") {
|
|
1588
|
-
pttStatus = "getted";
|
|
1589
|
-
}
|
|
1590
|
-
if (sts) {
|
|
1591
|
-
sts.pocNo = data.pocNo;
|
|
1592
|
-
sts.currentGroup = data.currentGroup;
|
|
1593
|
-
sts.pttStatus = pttStatus;
|
|
1594
|
-
memStatus[data.pocNo] = sts;
|
|
1595
|
-
} else {
|
|
1596
|
-
memStatus[data.pocNo] = sts = {
|
|
1597
|
-
'pocNo': data.pocNo,
|
|
1598
|
-
'currentGroup': data.currentGroup,
|
|
1599
|
-
'conPocNo': data.conPocNo,
|
|
1600
|
-
'status': "working",
|
|
1601
|
-
'pttStatus': pttStatus
|
|
1602
|
-
};
|
|
1603
|
-
}
|
|
1604
|
-
return sts;
|
|
1605
|
-
}
|
|
1606
|
-
|
|
1607
|
-
this.requestGroupsStatus = function(fn) {
|
|
1608
|
-
// console.log(groupStatus)
|
|
1609
|
-
if(fn) { fn(groupStatus); }
|
|
1610
|
-
};
|
|
1611
|
-
//获取单个对讲频道
|
|
1612
|
-
this.requestGroupStatus = function(groupNo,isTmp,fn) {
|
|
1613
|
-
if(fn) {
|
|
1614
|
-
if(!groupStatus[groupNo] || !isTmp) {
|
|
1615
|
-
$.getJSON(groupPocUrl('/getPocGroupsStatus'), {'groupNo':groupNo,'isTmp':isTmp,'token':token}, function(data) {
|
|
1616
|
-
// {code,total,data:[{meetId,meetName,recording,playvoice,locked,members:[{meetId,tel}]}]}
|
|
1617
|
-
if (data && data.data ) {
|
|
1618
|
-
updateGroupsStatus(data.data);
|
|
1619
|
-
fn(data.data);
|
|
1620
|
-
}
|
|
1621
|
-
});
|
|
1622
|
-
} else {
|
|
1623
|
-
fn(groupStatus[groupNo]);
|
|
1624
|
-
}
|
|
1625
|
-
}
|
|
1626
|
-
};
|
|
1627
|
-
//对讲组相关api接口地址
|
|
1628
|
-
function groupPocUrl(path) { return apiUrl('/groupPoc' + path); }
|
|
1629
|
-
|
|
1630
|
-
/**对讲组切换通知*/
|
|
1631
|
-
function onPocSwitchNotify(msg) {
|
|
1632
|
-
//pocNo 对讲机号码;groupSwitchNo 切换到频道 ; pttNo 话权号码 为空值””,表示组中无人占用话权
|
|
1633
|
-
//{"data":{"pocNo":"1008","groupSwitchNo":"5012","pttNo":""},"channel":"/poc/switch"}
|
|
1634
|
-
var data = msg.data;
|
|
1635
|
-
// console.log("对讲组切换通知");
|
|
1636
|
-
// console.log(msg.data);
|
|
1637
|
-
fireListens(event_const.POC_SWITCH_CHN, data);
|
|
1638
|
-
}
|
|
1639
|
-
/**话权状态通知*/
|
|
1640
|
-
function onPocNotifyPttNotify(msg) {
|
|
1641
|
-
//pocNo 对讲机号码
|
|
1642
|
-
//currentGroup 当前所在组
|
|
1643
|
-
//pocStatus 话权命令 apply(申请)/released(释放)
|
|
1644
|
-
//{"data":{"pocTel":"1008","pocCmd":"apply"},"channel":"/poc/ptt"}
|
|
1645
|
-
var data = msg.data;
|
|
1646
|
-
memPttChange(data);
|
|
1647
|
-
data = memStatus[data.pocNo]
|
|
1648
|
-
fireListens(event_const.POC_MEM_CHN, data);
|
|
1649
|
-
}
|
|
1650
|
-
/**对讲成员状态通知*/
|
|
1651
|
-
function onPocMemStatusNotify(msg) {
|
|
1652
|
-
//pocNo 对讲机号码
|
|
1653
|
-
//currentGroup 当前所在频道 若是单工点对点对讲则为空值
|
|
1654
|
-
//conPocNo 关联对讲号码 单工点对点时,填写;其他状态为空值
|
|
1655
|
-
//status 状态 值:idle|working
|
|
1656
|
-
//pttStatus 话权状态 值:getted(获取到)
|
|
1657
|
-
//pttCtrlStatus 话权控制状态:0-未控制; 1-已控制( ptt功能无效)
|
|
1658
|
-
//{"data":{"pocNo":"1008","currentGroup":"","conPocNo":"","status":"","pttStatus":"","pttCtrlStatus":""},"channel":"/poc/memStatus"}
|
|
1659
|
-
var data = msg.data;
|
|
1660
|
-
updateMemsStatus(data);
|
|
1661
|
-
fireListens(event_const.POC_MEM_CHN, data);
|
|
1662
|
-
}
|
|
1663
|
-
/**对讲频道状态通知*/
|
|
1664
|
-
function onPocGroupStatusNotify(msg) {
|
|
1665
|
-
//groupNo 频道
|
|
1666
|
-
//status 状态 值:working|end
|
|
1667
|
-
//type
|
|
1668
|
-
//{"data":{"pocNo":"1008","status":"","isTmp":true,"allMembers":"1001|1002","wokings":"1001",maxMemNum,num,type},"channel":"/poc/groupStatus"}
|
|
1669
|
-
var data = msg.data;
|
|
1670
|
-
console.log(msg.data);
|
|
1671
|
-
updateGroupsStatus(data);
|
|
1672
|
-
fireListens(event_const.POC_GROUP_CHN, data);
|
|
1673
|
-
}
|
|
1674
|
-
/**对讲成员发起sos请求通知*/
|
|
1675
|
-
function onPocMemSosNotify(msg) {
|
|
1676
|
-
//pocNo 号码
|
|
1677
|
-
//ctrlSosCmd open(开启);close(关闭);finish(结束)
|
|
1678
|
-
//{"data":{"pocNo":"1008","ctrlSosCmd":"open","memName":"memName"},"channel":"/poc/memSos"}
|
|
1679
|
-
var data = msg.data;
|
|
1680
|
-
console.log(msg.data);
|
|
1681
|
-
fireListens(event_const.POC_SOS_CHN, data);
|
|
1682
|
-
}
|
|
1683
|
-
/**对讲成员请求加入临时通话组通知*/
|
|
1684
|
-
function onPocMemJoinGroupNotify(msg) {
|
|
1685
|
-
//pocNo 号码
|
|
1686
|
-
//groupNo 临时频道组
|
|
1687
|
-
//type join:加入频道组; reject:拒绝加入频道组
|
|
1688
|
-
//{"data":{"pocNo":"1008","groupNo":"1001","type":"join","memName":"memName"},"channel":"/poc/memJoinGroup"}
|
|
1689
|
-
var data = msg.data;
|
|
1690
|
-
console.log(msg.data);
|
|
1691
|
-
fireListens(event_const.POC_MEM_JOIN_GROUP_CHN, data);
|
|
1692
|
-
}
|
|
1693
|
-
/**对讲组下在线成员数量变化通知*/
|
|
1694
|
-
function onPocInLineNotify(msg) {
|
|
1695
|
-
//groupNo 对讲频道
|
|
1696
|
-
//status 当前所在组 值:working|end
|
|
1697
|
-
//{"data":{"groupId":"1","groupNo":"332","num":"5","maxNum":"10"},"channel":"/poc/inLine"}
|
|
1698
|
-
var data = msg.data;
|
|
1699
|
-
fireListens(event_const.POC_GROUP_INLINE_CHN, data);
|
|
1700
|
-
}
|
|
1701
|
-
/**手机信号和电量通知*/
|
|
1702
|
-
function onPocPhoneStatusNotify(msg) {
|
|
1703
|
-
//electricQuantity 电量,百分比的数字
|
|
1704
|
-
//signal 信号,等级0~4,其他表示不知信号级别=0
|
|
1705
|
-
//{"data":{"id":"1","type":"phoneStatus","source":"app","data":{"memId":"1","electricQuantity":"25","signal":"0"}}}
|
|
1706
|
-
var data = msg.data;
|
|
1707
|
-
fireListens(event_const.POC_PHONE_STATUS_CHN, data);
|
|
1708
|
-
}
|
|
1709
|
-
//通知频道连接初始化
|
|
1710
|
-
this.initialize = function(accId, corpId) {
|
|
1711
|
-
var accTopic = accId? "/"+accId : ""; //主题通道追加账号标识
|
|
1712
|
-
var corpTopic = corpId? "/"+corpId : ""; //主题通道追加分权id标识
|
|
1713
|
-
sse.subscribe(accTopic + '/poc/switch', onPocSwitchNotify);
|
|
1714
|
-
sse.subscribe(accTopic + '/poc/ptt', onPocNotifyPttNotify);
|
|
1715
|
-
sse.subscribe(accTopic + '/poc/memStatus', onPocMemStatusNotify);
|
|
1716
|
-
sse.subscribe(accTopic + '/poc/groupStatus', onPocGroupStatusNotify);
|
|
1717
|
-
sse.subscribe(accTopic + '/poc/memSos', onPocMemSosNotify);
|
|
1718
|
-
sse.subscribe(accTopic + '/poc/memJoinGroup', onPocMemJoinGroupNotify);
|
|
1719
|
-
sse.subscribe(accTopic + '/poc/inLine', onPocInLineNotify);
|
|
1720
|
-
sse.subscribe(corpTopic + '/poc/phoneStatus', onPocPhoneStatusNotify);
|
|
1721
|
-
}
|
|
1722
|
-
//获取当前所有对讲成员状态
|
|
1723
|
-
this.listMemStatus = function(resultCallback) {
|
|
1724
|
-
checkLogin();
|
|
1725
|
-
$.getJSON(groupPocUrl('/listPocMemsStatus'), {'token':token}, function(data) {
|
|
1726
|
-
// {code,total,data:[{meetId,meetName,recording,playvoice,locked,members:[{meetId,tel}]}]}
|
|
1727
|
-
if (data && data.data && data.data.length) {
|
|
1728
|
-
for (var i = 0; i < data.data.length; i++) {
|
|
1729
|
-
updateMemsStatus(data.data[i]);
|
|
1730
|
-
}
|
|
1731
|
-
}
|
|
1732
|
-
if (resultCallback) resultCallback(data);
|
|
1733
|
-
});
|
|
1734
|
-
}
|
|
1735
|
-
//获取当前所有对讲频道状态
|
|
1736
|
-
this.listGroupStatus = function(resultCallback) {
|
|
1737
|
-
checkLogin();
|
|
1738
|
-
$.getJSON(groupPocUrl('/listPocGroupsStatus'), {'token':token}, function(data) {
|
|
1739
|
-
// {code,total,data:[{meetId,meetName,recording,playvoice,locked,members:[{meetId,tel}]}]}
|
|
1740
|
-
if (data && data.data ) {
|
|
1741
|
-
for (var i in data.data) {
|
|
1742
|
-
updateGroupsStatus(data.data[i]);
|
|
1743
|
-
}
|
|
1744
|
-
}
|
|
1745
|
-
if (resultCallback) resultCallback(data);
|
|
1746
|
-
});
|
|
1747
|
-
}
|
|
1748
|
-
//获取当前所有的临时对讲频道
|
|
1749
|
-
this.listTempPoc = function(fn) {
|
|
1750
|
-
if(fn) {
|
|
1751
|
-
var list = new Array();
|
|
1752
|
-
for(var o in groupStatus){
|
|
1753
|
-
if(groupStatus[o].isTmp == true){
|
|
1754
|
-
list.push(groupStatus[o]);
|
|
1755
|
-
}
|
|
1756
|
-
}
|
|
1757
|
-
fn(list);
|
|
1758
|
-
}
|
|
1759
|
-
}
|
|
1760
|
-
//获取当前sos列表(请求 open状态)
|
|
1761
|
-
this.listMemSos = function(fn) {
|
|
1762
|
-
checkLogin();
|
|
1763
|
-
$.getJSON(groupPocUrl('/listMemSos'), {'token':token}, function(data) {
|
|
1764
|
-
// {code,total,data:[{pocNo,ctrlSosCmd:'open',memName}]}
|
|
1765
|
-
if (fn) fn(data);
|
|
1766
|
-
});
|
|
1767
|
-
}
|
|
1768
|
-
//获取手机状态列表
|
|
1769
|
-
this.listPhoneStatus = function(fn) {
|
|
1770
|
-
checkLogin();
|
|
1771
|
-
$.getJSON(groupPocUrl('/listPhoneStatus'), {'token':token}, function(data) {
|
|
1772
|
-
// {code,total,data:[{electricQuantity:电量数值,memId:{memId},signal:信号数值}]}
|
|
1773
|
-
if (fn) fn(data);
|
|
1774
|
-
});
|
|
1775
|
-
}
|
|
1776
|
-
//删除某个成员的sos请求
|
|
1777
|
-
this.delMemSos = function(pocNo, fn) {
|
|
1778
|
-
checkLogin();
|
|
1779
|
-
$.getJSON(groupPocUrl('/delMemSos'), {'token':token,'pocNo':pocNo}, function(data) {
|
|
1780
|
-
if (fn) fn(data);
|
|
1781
|
-
});
|
|
1782
|
-
}
|
|
1783
|
-
//获取当前请求加入频道组的请求列表
|
|
1784
|
-
this.listJoinGroupReq = function(fn) {
|
|
1785
|
-
checkLogin();
|
|
1786
|
-
$.getJSON(groupPocUrl('/listJoinGroupReq'), {'token':token}, function(data) {
|
|
1787
|
-
// {code,total,data:[pocNo,groupNo,type:'join']}
|
|
1788
|
-
if (fn) fn(data);
|
|
1789
|
-
});
|
|
1790
|
-
}
|
|
1791
|
-
//根据对讲频道号对讲频道状态
|
|
1792
|
-
this.getGroupStatus = function(groupNo,isTmp,resultCallback) {
|
|
1793
|
-
checkLogin();
|
|
1794
|
-
$.getJSON(groupPocUrl('/getPocGroupsStatus'), {'groupNo':groupNo,'isTmp':isTmp,'token':token}, function(data) {
|
|
1795
|
-
// {code,total,data:[{meetId,meetName,recording,playvoice,locked,members:[{meetId,tel}]}]}
|
|
1796
|
-
if (data && data.data ) {
|
|
1797
|
-
updateGroupsStatus(data.data);
|
|
1798
|
-
}
|
|
1799
|
-
if (resultCallback) resultCallback(data);
|
|
1800
|
-
});
|
|
1801
|
-
}
|
|
1802
|
-
function requestWithMeetId(path,id) {
|
|
1803
|
-
checkLogin();
|
|
1804
|
-
$.getJSON(groupPocUrl(path), {'token':token,'id':id}, function(data){
|
|
1805
|
-
fireMethodResponse(data);
|
|
1806
|
-
});
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
|
-
/**
|
|
1810
|
-
* 获取对讲频道的成员在线情况
|
|
1811
|
-
*/
|
|
1812
|
-
this.getGroupMemOnlineNum = function(resultCallback) {
|
|
1813
|
-
checkLogin();
|
|
1814
|
-
var jsonData = {
|
|
1815
|
-
'token':token
|
|
1816
|
-
}
|
|
1817
|
-
$.getJSON(groupPocUrl("/listGroupNum"), jsonData, function(data){
|
|
1818
|
-
fireMethodResponse(data);
|
|
1819
|
-
if (resultCallback) resultCallback(data);
|
|
1820
|
-
});
|
|
1821
|
-
};
|
|
1822
|
-
|
|
1823
|
-
/**发起对讲组呼叫
|
|
1824
|
-
*整个对讲组呼起时:callNumber,groupId,groupNo
|
|
1825
|
-
*点对点对讲时:callNumber,poc_no,groupId,
|
|
1826
|
-
*/
|
|
1827
|
-
this.talkbackCall = function(callNumber,pocNo,groupId,groupNo,callType,resultCallback) {
|
|
1828
|
-
checkLogin();
|
|
1829
|
-
// if(callNumber !== '' && memStatus[callNumber] && memStatus[callNumber].status === 'working') {
|
|
1830
|
-
// var resp = {
|
|
1831
|
-
// 'data' : '[' + callNumber + ']不是空闲状态'
|
|
1832
|
-
// }
|
|
1833
|
-
// if (resultCallback) resultCallback(resp);
|
|
1834
|
-
// alert('[' + callNumber + ']不是空闲状态,无法加入');
|
|
1835
|
-
// return;
|
|
1836
|
-
// }
|
|
1837
|
-
var jsonData = {
|
|
1838
|
-
'token':token,
|
|
1839
|
-
'pocNo':pocNo,
|
|
1840
|
-
'callNumber':callNumber,
|
|
1841
|
-
'groupId':groupId,
|
|
1842
|
-
"groupNo":groupNo,
|
|
1843
|
-
"callType":callType
|
|
1844
|
-
};
|
|
1845
|
-
$.getJSON(groupPocUrl("/talkbackCall"), jsonData, function(data){
|
|
1846
|
-
fireMethodResponse(data);
|
|
1847
|
-
if (resultCallback) resultCallback(data);
|
|
1848
|
-
});
|
|
1849
|
-
};
|
|
1850
|
-
/**结束对讲
|
|
1851
|
-
* 结束点对点对讲填写时传入对讲机号码pocNo
|
|
1852
|
-
* 结束组对讲填写时的对讲频道时传入groupNo
|
|
1853
|
-
*/
|
|
1854
|
-
this.talkbackEnd = function(pocNo,groupNo) {
|
|
1855
|
-
checkLogin();
|
|
1856
|
-
$.getJSON(groupPocUrl("/talkbackEnd"), {'token':token,'pocNo':pocNo,'groupNo':groupNo}, function(data){
|
|
1857
|
-
fireMethodResponse(data);
|
|
1858
|
-
});
|
|
1859
|
-
}
|
|
1860
|
-
/**对讲组切换
|
|
1861
|
-
* pocNo 切换的对讲号码
|
|
1862
|
-
* groupSwitchNo 切换到组号
|
|
1863
|
-
*/
|
|
1864
|
-
this.talkbackChange = function(pocNo,groupSwitchNo,resultCallback) {
|
|
1865
|
-
console.log("pocNo:" + pocNo + "; groupSwitchNo: " + groupSwitchNo);
|
|
1866
|
-
checkLogin();
|
|
1867
|
-
$.getJSON(groupPocUrl("/talkbackChange"), {'token':token,'pocNo':pocNo,'groupSwitchNo':groupSwitchNo}, function(data){
|
|
1868
|
-
resultCallback && resultCallback(data);
|
|
1869
|
-
fireMethodResponse(data);
|
|
1870
|
-
});
|
|
1871
|
-
}
|
|
1872
|
-
//话权处理状态数据 四种状态,当前/预处理 apply(申请)/released(释放)/applying(申请中)/releaseding(释放中)
|
|
1873
|
-
/**
|
|
1874
|
-
* 'pocNo':pocNo,
|
|
1875
|
-
* "pocCmd":"",//applying(申请中)/releaseding(释放中)
|
|
1876
|
-
* 'readyPocCmd': readyPocCmd // apply(申请)/released(释放)
|
|
1877
|
-
*/
|
|
1878
|
-
|
|
1879
|
-
var telSpeakPower = {};
|
|
1880
|
-
/**对讲组话权申请/释放
|
|
1881
|
-
* pocNo 切换的对讲号码
|
|
1882
|
-
* pocCmd 话权命令,apply(申请)/released(释放)
|
|
1883
|
-
*/
|
|
1884
|
-
this.speakPower = function(pocNo,pocCmd,groupNo,resultCallback) {
|
|
1885
|
-
checkLogin();
|
|
1886
|
-
var telSpeakPowerNow = telSpeakPower[pocNo];
|
|
1887
|
-
if(telSpeakPowerNow){
|
|
1888
|
-
//正在处理话权变化中中
|
|
1889
|
-
if(telSpeakPowerNow.pocCmd !="" ){
|
|
1890
|
-
//将非相同的操作放入预处理中
|
|
1891
|
-
if((telSpeakPowerNow.pocCmd == "applying" && pocCmd == "released") ||
|
|
1892
|
-
(telSpeakPowerNow.pocCmd == "releaseding" && pocCmd == "apply")) {
|
|
1893
|
-
telSpeakPowerNow.readyPocCmd = pocCmd;
|
|
1894
|
-
}
|
|
1895
|
-
telSpeakPower[pocNo] = telSpeakPowerNow;
|
|
1896
|
-
} else {
|
|
1897
|
-
//没有正在处理出的话权.开始处理话权
|
|
1898
|
-
if(pocCmd == "apply") {
|
|
1899
|
-
telSpeakPowerNow.pocCmd = "applying";
|
|
1900
|
-
} else if(pocCmd == "released"){
|
|
1901
|
-
telSpeakPowerNow.pocCmd = "releaseding";
|
|
1902
|
-
}
|
|
1903
|
-
telSpeakPower[pocNo] = telSpeakPowerNow;
|
|
1904
|
-
startSpeakPower(telSpeakPowerNow,groupNo,resultCallback);
|
|
1905
|
-
}
|
|
1906
|
-
} else {
|
|
1907
|
-
//号码第一次做话权的变化,增加新的话权变化数据记录
|
|
1908
|
-
telSpeakPowerNow = {
|
|
1909
|
-
'pocNo':pocNo,
|
|
1910
|
-
'pocCmd':'',
|
|
1911
|
-
'readyPocCmd': ""
|
|
1912
|
-
};
|
|
1913
|
-
if(pocCmd == "apply") {
|
|
1914
|
-
telSpeakPowerNow.pocCmd = "applying";
|
|
1915
|
-
} else if(pocCmd == "released"){
|
|
1916
|
-
telSpeakPowerNow.pocCmd = "releaseding";
|
|
1917
|
-
}
|
|
1918
|
-
telSpeakPower[pocNo] = telSpeakPowerNow;
|
|
1919
|
-
startSpeakPower(telSpeakPowerNow, groupNo, resultCallback);
|
|
1920
|
-
}
|
|
1921
|
-
}
|
|
1922
|
-
|
|
1923
|
-
function startSpeakPower(speakPowerJson,groupNo, resultCallback) {
|
|
1924
|
-
var pocCmd = "released";
|
|
1925
|
-
if(speakPowerJson.pocCmd == "applying") {
|
|
1926
|
-
pocCmd = "apply";
|
|
1927
|
-
}
|
|
1928
|
-
$.getJSON(groupPocUrl("/speakPower"), {'token':token,'pocNo':speakPowerJson.pocNo,'pocCmd':pocCmd,"groupNo":groupNo}, function(data){
|
|
1929
|
-
if (resultCallback) resultCallback(data);
|
|
1930
|
-
fireMethodResponse(data);
|
|
1931
|
-
//号码对应的状态不存在/号码的状态和预加载的状态不一致 发起新的话权变化请求
|
|
1932
|
-
var telSpeakPowerNow = telSpeakPower[speakPowerJson.pocNo];
|
|
1933
|
-
if(telSpeakPowerNow.readyPocCmd == ""){
|
|
1934
|
-
//没有预处理的话权
|
|
1935
|
-
telSpeakPowerNow.pocCmd = "";
|
|
1936
|
-
} else {
|
|
1937
|
-
//开始预处理 apply(申请)/released(释放)/applying(申请中)/releaseding(释放中)
|
|
1938
|
-
if(telSpeakPowerNow.readyPocCmd == "apply") {
|
|
1939
|
-
telSpeakPowerNow.pocCmd = "applying";
|
|
1940
|
-
} else if(telSpeakPowerNow.readyPocCmd == "released") {
|
|
1941
|
-
telSpeakPowerNow.pocCmd = "releaseding";
|
|
1942
|
-
}
|
|
1943
|
-
// 规避申请话权时不传组号的问题
|
|
1944
|
-
if (telSpeakPowerNow.pocCmd !== "applying" || groupNo) {
|
|
1945
|
-
startSpeakPower(telSpeakPowerNow, groupNo);
|
|
1946
|
-
}
|
|
1947
|
-
|
|
1948
|
-
telSpeakPowerNow.readyPocCmd = "";
|
|
1949
|
-
}
|
|
1950
|
-
telSpeakPower[telSpeakPowerNow.pocNo] = telSpeakPowerNow;
|
|
1951
|
-
});
|
|
1952
|
-
}
|
|
1953
|
-
|
|
1954
|
-
//创建对讲组和成员groupJsonData ={"memIds":,"groupName":,"groupLevel":,}
|
|
1955
|
-
this.createPocGroup = function(groupJsonData, resultCallback) {
|
|
1956
|
-
checkLogin();
|
|
1957
|
-
var jsonData = {
|
|
1958
|
-
"token":token,
|
|
1959
|
-
"groupLevel":1,
|
|
1960
|
-
"groupType":1,
|
|
1961
|
-
"groupName":""
|
|
1962
|
-
};
|
|
1963
|
-
//判断对讲组名称
|
|
1964
|
-
if(groupJsonData.groupName && "" != groupJsonData.groupName){
|
|
1965
|
-
jsonData.groupName = groupJsonData.groupName;
|
|
1966
|
-
}
|
|
1967
|
-
//判断对讲组等级
|
|
1968
|
-
if(groupJsonData.groupLevel && "" != groupJsonData.groupLevel){
|
|
1969
|
-
jsonData.groupLevel = groupJsonData.groupLevel;
|
|
1970
|
-
}
|
|
1971
|
-
|
|
1972
|
-
$.getJSON(_groupUrl("/addNewPocGroup"), jsonData, function(data){
|
|
1973
|
-
if(data.code == 0) {
|
|
1974
|
-
$.getJSON(_groupUrl("/addGroupMember"),
|
|
1975
|
-
{'token':token,'memIds':groupJsonData.memIds,'groupId':data.data.id}, function(data2){
|
|
1976
|
-
if(data2.code == 0){
|
|
1977
|
-
if (resultCallback) resultCallback(data);
|
|
1978
|
-
fireMethodResponse(data);
|
|
1979
|
-
}
|
|
1980
|
-
});
|
|
1981
|
-
}
|
|
1982
|
-
});
|
|
1983
|
-
}
|
|
1984
|
-
//删除对讲频道
|
|
1985
|
-
this.deleteGroup = function(groupId,resultCallback) {
|
|
1986
|
-
checkLogin();
|
|
1987
|
-
$.getJSON(_groupUrl("/deleteTemporaryPocGroup"), {'token':token,'groupId':groupId}, function(data){
|
|
1988
|
-
if (resultCallback) resultCallback(data);
|
|
1989
|
-
fireMethodResponse(data);
|
|
1990
|
-
});
|
|
1991
|
-
}
|
|
1992
|
-
//向对讲频道添加新的成员
|
|
1993
|
-
this.joinGroupMem = function(groupId,memId,resultCallback) {
|
|
1994
|
-
checkLogin();
|
|
1995
|
-
$.getJSON(_groupUrl("/addGroupMember"), {'token':token,'groupId':groupId,"memIds":memId},function(data){
|
|
1996
|
-
if (resultCallback) resultCallback(data);
|
|
1997
|
-
fireMethodResponse(data);
|
|
1998
|
-
});
|
|
1999
|
-
}
|
|
2000
|
-
//将成员移除对讲频道
|
|
2001
|
-
this.removeGroupMem = function(groupId,memIds,resultCallback) {
|
|
2002
|
-
checkLogin();
|
|
2003
|
-
$.getJSON(_groupUrl("/removeGroupMem"), {'token':token,'groupId':groupId,"memIds":memIds},function(data){
|
|
2004
|
-
if (resultCallback) resultCallback(data);
|
|
2005
|
-
fireMethodResponse(data);
|
|
2006
|
-
});
|
|
2007
|
-
}
|
|
2008
|
-
//获取所有的对讲组
|
|
2009
|
-
this.getPocGroups = function(resultCallback) {
|
|
2010
|
-
checkLogin();
|
|
2011
|
-
$.getJSON(_groupUrl("/list"), {'token':token,'groupType':"poc"},function(data){
|
|
2012
|
-
if (resultCallback) resultCallback(data);
|
|
2013
|
-
fireMethodResponse(data);
|
|
2014
|
-
});
|
|
2015
|
-
}
|
|
2016
|
-
//获取对讲组下的所有成员
|
|
2017
|
-
this.getPocGroupMem = function(id,resultCallback) {
|
|
2018
|
-
checkLogin();
|
|
2019
|
-
$.getJSON(_groupUrl("/listMembers"), {'token':token,'id':id},function(data){
|
|
2020
|
-
if (resultCallback) resultCallback(data);
|
|
2021
|
-
fireMethodResponse(data);
|
|
2022
|
-
});
|
|
2023
|
-
}
|
|
2024
|
-
this.getDisPatchOperInfo = function(token,resultCallback){
|
|
2025
|
-
if(token == null || token == "") {
|
|
2026
|
-
return;
|
|
2027
|
-
}
|
|
2028
|
-
$.getJSON(apiUrl('/conn/getDispatchOper'),{"token":token}, function(data) {
|
|
2029
|
-
if (resultCallback) resultCallback(data);
|
|
2030
|
-
fireMethodResponse(data);
|
|
2031
|
-
});
|
|
2032
|
-
}
|
|
2033
|
-
this.creatTmpPoc = function(resultCallback) {
|
|
2034
|
-
checkLogin();
|
|
2035
|
-
$.getJSON(groupPocUrl("/creatTmpPoc"), {'token':token},function(data){
|
|
2036
|
-
if (resultCallback) resultCallback(data);
|
|
2037
|
-
fireMethodResponse(data);
|
|
2038
|
-
});
|
|
2039
|
-
}
|
|
2040
|
-
this.leaveTmpPocMembers = function(callNumber,groupNo,resultCallback) {
|
|
2041
|
-
checkLogin();
|
|
2042
|
-
$.getJSON(groupPocUrl("/leaveTmpPocMembers"), {'token':token,'callNumber':callNumber,'groupNo':groupNo},function(data){
|
|
2043
|
-
if (resultCallback) resultCallback(data);
|
|
2044
|
-
fireMethodResponse(data);
|
|
2045
|
-
});
|
|
2046
|
-
}
|
|
2047
|
-
//打开云眼
|
|
2048
|
-
this.openCloudEye = function(pocNo,resultCallback) {
|
|
2049
|
-
checkLogin();
|
|
2050
|
-
$.getJSON(groupPocUrl("/openCloudEye"), {'token':token,'pocNo':pocNo},function(data){
|
|
2051
|
-
if (resultCallback) resultCallback(data);
|
|
2052
|
-
fireMethodResponse(data);
|
|
2053
|
-
});
|
|
2054
|
-
}
|
|
2055
|
-
//关闭云眼
|
|
2056
|
-
this.closeCloudEye = function(pocNo,resultCallback) {
|
|
2057
|
-
checkLogin();
|
|
2058
|
-
$.getJSON(groupPocUrl("/closeCloudEye"), {'token':token,'pocNo':pocNo},function(data){
|
|
2059
|
-
if (resultCallback) resultCallback(data);
|
|
2060
|
-
fireMethodResponse(data);
|
|
2061
|
-
});
|
|
2062
|
-
}
|
|
2063
|
-
//拒绝加入临时组
|
|
2064
|
-
this.rejectJoinGroup = function(pocNo, groupNo, resultCallback) {
|
|
2065
|
-
checkLogin();
|
|
2066
|
-
$.getJSON(groupPocUrl("/rejectJoinGroup"), {'token':token,'pocNo':pocNo,'groupNo':groupNo},function(data){
|
|
2067
|
-
if (resultCallback) resultCallback(data);
|
|
2068
|
-
fireMethodResponse(data);
|
|
2069
|
-
});
|
|
2070
|
-
}
|
|
2071
|
-
this.delJoinGroup = function(pocNo, groupNo, resultCallback) {
|
|
2072
|
-
checkLogin();
|
|
2073
|
-
$.getJSON(groupPocUrl("/delJoinGroup"), {'token':token,'pocNo':pocNo,'groupNo':groupNo},function(data){
|
|
2074
|
-
if (resultCallback) resultCallback(data);
|
|
2075
|
-
fireMethodResponse(data);
|
|
2076
|
-
});
|
|
2077
|
-
}
|
|
2078
|
-
//话权控制
|
|
2079
|
-
this.ctrlPocMems = function(pocMembers, groupNo, ctrlPPTCmd, resultCallback) {
|
|
2080
|
-
checkLogin();
|
|
2081
|
-
$.getJSON(groupPocUrl("/ctrlPocMems"), {'token':token,'pocMembers':pocMembers,'groupNo':groupNo,'ctrlPPTCmd':ctrlPPTCmd},function(data){
|
|
2082
|
-
if (resultCallback) resultCallback(data);
|
|
2083
|
-
fireMethodResponse(data);
|
|
2084
|
-
});
|
|
2085
|
-
}
|
|
2086
|
-
}
|
|
2087
|
-
};
|
|
2088
|
-
|
|
2089
|
-
/** 子页面中的;通过引用来调用主页面中的功能(相同域名下) */
|
|
2090
|
-
function DispatchSub() {
|
|
2091
|
-
// 如果在与主连接在同一域名下,则直接通过框架引用对象
|
|
2092
|
-
|
|
2093
|
-
// 对主框架中 scooper.dispatch 的引用(相同域名下)
|
|
2094
|
-
var dispatch = null;
|
|
2095
|
-
//
|
|
2096
|
-
this.initialize = function() {
|
|
2097
|
-
var topFrame = findMainFrame();
|
|
2098
|
-
dispatch = topFrame.scooper.dispatch;
|
|
2099
|
-
};
|
|
2100
|
-
this.destroy = function() {
|
|
2101
|
-
dispatch = null;
|
|
2102
|
-
};
|
|
2103
|
-
this.getToken = function() {
|
|
2104
|
-
checkInit();
|
|
2105
|
-
return dispatch.getToken();
|
|
2106
|
-
};
|
|
2107
|
-
this.setToken = function(val) {
|
|
2108
|
-
checkInit();
|
|
2109
|
-
dispatch.setToken(val);
|
|
2110
|
-
};
|
|
2111
|
-
this.getAccountToken = function() {
|
|
2112
|
-
checkInit();
|
|
2113
|
-
if (dispatch.hasOwnProperty('getAccountToken')) {
|
|
2114
|
-
return dispatch.getAccountToken();
|
|
2115
|
-
}
|
|
2116
|
-
return '';
|
|
2117
|
-
}
|
|
2118
|
-
this.setAccountToken = function(val) {
|
|
2119
|
-
checkInit();
|
|
2120
|
-
if (dispatch.hasOwnProperty('setAccountToken')) {
|
|
2121
|
-
dispatch.setAccountToken(val);
|
|
2122
|
-
}
|
|
2123
|
-
}
|
|
2124
|
-
this.setScooperIp = function(val) {
|
|
2125
|
-
checkInit();
|
|
2126
|
-
if (dispatch.hasOwnProperty('setScooperIp')) {
|
|
2127
|
-
dispatch.setScooperIp(val);
|
|
2128
|
-
}
|
|
2129
|
-
}
|
|
2130
|
-
//数据加载
|
|
2131
|
-
this.loadData = {
|
|
2132
|
-
'notifyRecordFile': function(){
|
|
2133
|
-
checkInit();
|
|
2134
|
-
return dispatch.loadData.notifyRecordFile();
|
|
2135
|
-
}
|
|
2136
|
-
};
|
|
2137
|
-
|
|
2138
|
-
this.getAccountByToken = function(accountToken, clb) {
|
|
2139
|
-
checkInit();
|
|
2140
|
-
if (dispatch.hasOwnProperty('getAccountByToken')) {
|
|
2141
|
-
dispatch.getAccountByToken(accountToken, clb);
|
|
2142
|
-
}
|
|
2143
|
-
}
|
|
2144
|
-
|
|
2145
|
-
this.sendChangeCfg = function(type,value,fn) {
|
|
2146
|
-
checkInit();
|
|
2147
|
-
dispatch.sendChangeCfg(type, value, fn);
|
|
2148
|
-
};
|
|
2149
|
-
//
|
|
2150
|
-
function checkInit() {
|
|
2151
|
-
if (!dispatch) {
|
|
2152
|
-
throw new Error("not initialized");
|
|
2153
|
-
}
|
|
2154
|
-
}
|
|
2155
|
-
//
|
|
2156
|
-
this.login = function(user,pass) { /* do nothing */ };
|
|
2157
|
-
//
|
|
2158
|
-
this.loginByToken = function(token, fn){ //父层已登录,子层只做转台反馈
|
|
2159
|
-
$.getJSON(apiUrl('/conn/connectionByToken'), {'token': token}, function(ret) {
|
|
2160
|
-
if(fn) fn(ret);
|
|
2161
|
-
});
|
|
2162
|
-
};
|
|
2163
|
-
|
|
2164
|
-
this.setloginExamine = function(loginExamines){};
|
|
2165
|
-
this.logout = function() { /* do nothing */ };
|
|
2166
|
-
//
|
|
2167
|
-
this.listen = function(evtType,fn) {
|
|
2168
|
-
checkInit();
|
|
2169
|
-
dispatch.listen(evtType,fn);
|
|
2170
|
-
};
|
|
2171
|
-
this.unlisten = function(evtType,fn) {
|
|
2172
|
-
checkInit();
|
|
2173
|
-
dispatch.unlisten(evtType,fn);
|
|
2174
|
-
};
|
|
2175
|
-
this.getDispatchOper = function() {
|
|
2176
|
-
checkInit();
|
|
2177
|
-
return dispatch.getDispatchOper();
|
|
2178
|
-
};
|
|
2179
|
-
// 呼叫相关操作
|
|
2180
|
-
this.calls = {
|
|
2181
|
-
'requestCallStatus': function(fn) {
|
|
2182
|
-
checkInit();
|
|
2183
|
-
dispatch.calls.requestCallStatus(fn);
|
|
2184
|
-
},
|
|
2185
|
-
'requestTelStatus': function(tel,fn) {
|
|
2186
|
-
checkInit();
|
|
2187
|
-
dispatch.calls.requestTelStatus(tel,fn);
|
|
2188
|
-
},
|
|
2189
|
-
'requestCallIns': function(fn) {
|
|
2190
|
-
checkInit();
|
|
2191
|
-
dispatch.calls.requestCallIns(fn);
|
|
2192
|
-
},
|
|
2193
|
-
'listStatus': function(resultCallback) {
|
|
2194
|
-
checkInit();
|
|
2195
|
-
dispatch.calls.listStatus(resultCallback);
|
|
2196
|
-
},
|
|
2197
|
-
'listCallIn': function(resultCallback) {
|
|
2198
|
-
checkInit();
|
|
2199
|
-
dispatch.calls.listCallIn(resultCallback);
|
|
2200
|
-
},
|
|
2201
|
-
/** 呼叫 */
|
|
2202
|
-
'makeCall': function(tel, businessId) {
|
|
2203
|
-
checkInit();
|
|
2204
|
-
dispatch.calls.makeCall(tel, businessId);
|
|
2205
|
-
},
|
|
2206
|
-
/** 视频呼叫 */
|
|
2207
|
-
'makeVideoCall': function(tel, businessId) {
|
|
2208
|
-
checkInit();
|
|
2209
|
-
dispatch.calls.makeVideoCall(tel, businessId);
|
|
2210
|
-
},
|
|
2211
|
-
'hungUp': function(tel) {
|
|
2212
|
-
checkInit();
|
|
2213
|
-
dispatch.calls.hungUp(tel);
|
|
2214
|
-
},
|
|
2215
|
-
/** 应答 */
|
|
2216
|
-
'answer': function(tel, businessId) {
|
|
2217
|
-
checkInit();
|
|
2218
|
-
dispatch.calls.answer(tel, businessId);
|
|
2219
|
-
},
|
|
2220
|
-
'answerAll': function(tel) {
|
|
2221
|
-
checkInit();
|
|
2222
|
-
dispatch.calls.answerAll();
|
|
2223
|
-
},
|
|
2224
|
-
"rollCall": function(tels) {
|
|
2225
|
-
checkInit();
|
|
2226
|
-
dispatch.calls.rollCall(tels);
|
|
2227
|
-
},
|
|
2228
|
-
"stopRollCall": function() {
|
|
2229
|
-
checkInit();
|
|
2230
|
-
dispatch.calls.stopRollCall();
|
|
2231
|
-
},
|
|
2232
|
-
"groupTurn": function(tels, isOnce) {
|
|
2233
|
-
checkInit();
|
|
2234
|
-
dispatch.calls.groupTurn(tels, isOnce);
|
|
2235
|
-
},
|
|
2236
|
-
'hold': function(tel) {
|
|
2237
|
-
checkInit();
|
|
2238
|
-
dispatch.calls.hold(tel);
|
|
2239
|
-
},
|
|
2240
|
-
'unhold': function(tel) {
|
|
2241
|
-
checkInit();
|
|
2242
|
-
dispatch.calls.unhold(tel);
|
|
2243
|
-
},
|
|
2244
|
-
/** 转接 */
|
|
2245
|
-
'transfer': function(from,to, businessId) {
|
|
2246
|
-
checkInit();
|
|
2247
|
-
dispatch.calls.transfer(from,to, businessId);
|
|
2248
|
-
},
|
|
2249
|
-
'retrieve': function(tel) {
|
|
2250
|
-
checkInit();
|
|
2251
|
-
dispatch.calls.retrieve(tel);
|
|
2252
|
-
},
|
|
2253
|
-
'tripleMonitor': function(tel) {
|
|
2254
|
-
checkInit();
|
|
2255
|
-
dispatch.calls.tripleMonitor(tel);
|
|
2256
|
-
},
|
|
2257
|
-
'tripleBreakin': function(tel) {
|
|
2258
|
-
checkInit();
|
|
2259
|
-
dispatch.calls.tripleBreakin(tel);
|
|
2260
|
-
},
|
|
2261
|
-
'tripleHungup': function(tel) {
|
|
2262
|
-
checkInit();
|
|
2263
|
-
dispatch.calls.tripleHungup(tel);
|
|
2264
|
-
},
|
|
2265
|
-
'callRecord': function(tel) {
|
|
2266
|
-
checkInit();
|
|
2267
|
-
dispatch.calls.callRecord(tel);
|
|
2268
|
-
},
|
|
2269
|
-
'callRecordEnd': function(tel) {
|
|
2270
|
-
checkInit();
|
|
2271
|
-
dispatch.calls.callRecordEnd(tel);
|
|
2272
|
-
},
|
|
2273
|
-
'groupCall': function(groupId,autoAnswer,allAudience) {
|
|
2274
|
-
checkInit();
|
|
2275
|
-
dispatch.calls.groupCall(groupId,autoAnswer,allAudience);
|
|
2276
|
-
},
|
|
2277
|
-
'groupCancel': function(groupId) {
|
|
2278
|
-
checkInit();
|
|
2279
|
-
dispatch.calls.groupCancel(groupId);
|
|
2280
|
-
},
|
|
2281
|
-
'selectCall': function(tels,autoAnswer,allAudience) {
|
|
2282
|
-
checkInit();
|
|
2283
|
-
dispatch.calls.selectCall(tels,autoAnswer,allAudience);
|
|
2284
|
-
},
|
|
2285
|
-
'selectCancel': function() {
|
|
2286
|
-
checkInit();
|
|
2287
|
-
dispatch.calls.selectCancel();
|
|
2288
|
-
},
|
|
2289
|
-
'groupSame' : function(memIds,autoAnswer,allAudience) {
|
|
2290
|
-
checkInit();
|
|
2291
|
-
dispatch.calls.groupSame(memIds,autoAnswer,allAudience);
|
|
2292
|
-
},
|
|
2293
|
-
'groupNotify': function(groupId,files,type,times,notifyId) {
|
|
2294
|
-
checkInit();
|
|
2295
|
-
dispatch.calls.groupNotify(groupId,files,type,times,notifyId);
|
|
2296
|
-
},
|
|
2297
|
-
'selectNotify': function(tels,files,type,times,notifyId,confirm) {
|
|
2298
|
-
checkInit();
|
|
2299
|
-
dispatch.calls.selectNotify(tels,files,type,times,notifyId,confirm);
|
|
2300
|
-
},
|
|
2301
|
-
'makeCallSame': function(tels, meetId) {
|
|
2302
|
-
checkInit();
|
|
2303
|
-
dispatch.calls.makeCallSame(tels, meetId);
|
|
2304
|
-
},
|
|
2305
|
-
'openVideo': function(callNumber,callId,businessId,avRecord) {
|
|
2306
|
-
checkInit();
|
|
2307
|
-
dispatch.calls.openVideo(callNumber,callId,businessId,avRecord);
|
|
2308
|
-
},
|
|
2309
|
-
'closeVideo': function(callNumber) {
|
|
2310
|
-
checkInit();
|
|
2311
|
-
dispatch.calls.closeVideo(callNumber);
|
|
2312
|
-
},
|
|
2313
|
-
'notifyRecordOP': function(tel, title, opType, filename) {
|
|
2314
|
-
checkInit();
|
|
2315
|
-
dispatch.calls.notifyRecordOP(tel, title, opType, filename);
|
|
2316
|
-
}
|
|
2317
|
-
};
|
|
2318
|
-
// 会议相关操作
|
|
2319
|
-
this.meets = {
|
|
2320
|
-
'requestMeets': function(fn) {
|
|
2321
|
-
checkInit();
|
|
2322
|
-
dispatch.meets.requestMeets(fn);
|
|
2323
|
-
},
|
|
2324
|
-
'requestMeet': function(id, fn) {
|
|
2325
|
-
checkInit();
|
|
2326
|
-
dispatch.meets.requestMeet(id, fn);
|
|
2327
|
-
},
|
|
2328
|
-
'requestMeetMembers': function(id,fn) {
|
|
2329
|
-
checkInit();
|
|
2330
|
-
dispatch.meets.requestMeetMembers(id,fn);
|
|
2331
|
-
},
|
|
2332
|
-
'requestMeetMember': function(meetId,tel,fn) {
|
|
2333
|
-
checkInit();
|
|
2334
|
-
dispatch.meets.requestMeetMember(meetId,tel,fn);
|
|
2335
|
-
},
|
|
2336
|
-
'listMeets': function(fn) {
|
|
2337
|
-
checkInit();
|
|
2338
|
-
dispatch.meets.listMeets(fn);
|
|
2339
|
-
},
|
|
2340
|
-
'getMeet': function(id, fn) {
|
|
2341
|
-
checkInit();
|
|
2342
|
-
dispatch.meets.getMeet(id, fn);
|
|
2343
|
-
},
|
|
2344
|
-
'createMeet': function(name, businessId,resultCallback) {
|
|
2345
|
-
checkInit();
|
|
2346
|
-
dispatch.meets.createMeet(name, businessId,resultCallback);
|
|
2347
|
-
},
|
|
2348
|
-
'createMeetDetail': function(name, businessId, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2349
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers, defineAttr) {
|
|
2350
|
-
checkInit();
|
|
2351
|
-
dispatch.meets.createMeetDetail(name, businessId,resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2352
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers, defineAttr);
|
|
2353
|
-
},
|
|
2354
|
-
'editMeet': function(meetId, meetName, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2355
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers) {
|
|
2356
|
-
checkInit();
|
|
2357
|
-
dispatch.meets.editMeet(meetId, meetName, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2358
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers);
|
|
2359
|
-
},
|
|
2360
|
-
'endMeet': function(id) {
|
|
2361
|
-
checkInit();
|
|
2362
|
-
dispatch.meets.endMeet(id);
|
|
2363
|
-
},
|
|
2364
|
-
'destroyMeet': function(id) {
|
|
2365
|
-
checkInit();
|
|
2366
|
-
dispatch.meets.destroyMeet(id);
|
|
2367
|
-
},
|
|
2368
|
-
'lock': function(id) {
|
|
2369
|
-
checkInit();
|
|
2370
|
-
dispatch.meets.lock(id);
|
|
2371
|
-
},
|
|
2372
|
-
'unlock': function(id) {
|
|
2373
|
-
checkInit();
|
|
2374
|
-
dispatch.meets.unlock(id);
|
|
2375
|
-
},
|
|
2376
|
-
'startRecord': function(id) {
|
|
2377
|
-
checkInit();
|
|
2378
|
-
dispatch.meets.startRecord(id);
|
|
2379
|
-
},
|
|
2380
|
-
'stopRecord': function(id) {
|
|
2381
|
-
checkInit();
|
|
2382
|
-
dispatch.meets.stopRecord(id);
|
|
2383
|
-
},
|
|
2384
|
-
'startPlayVoice': function(id) {
|
|
2385
|
-
checkInit();
|
|
2386
|
-
dispatch.meets.startPlayVoice(id);
|
|
2387
|
-
},
|
|
2388
|
-
'stopPlayVoice': function(id) {
|
|
2389
|
-
checkInit();
|
|
2390
|
-
dispatch.meets.stopPlayVoice(id);
|
|
2391
|
-
},
|
|
2392
|
-
'getMeetRecord': function(id, tel, fn) {
|
|
2393
|
-
checkInit();
|
|
2394
|
-
dispatch.meets.getMeetRecord(id, tel, fn);
|
|
2395
|
-
},
|
|
2396
|
-
'joinMember': function(id, tel, businessId, level, autoAnswer) {
|
|
2397
|
-
checkInit();
|
|
2398
|
-
dispatch.meets.joinMember(id,tel,businessId,level,autoAnswer);
|
|
2399
|
-
},
|
|
2400
|
-
'joinVideoMember': function(id, tel, businessId, level, autoAnswer) {
|
|
2401
|
-
checkInit();
|
|
2402
|
-
dispatch.meets.joinVideoMember(id,tel,businessId,level,autoAnswer);
|
|
2403
|
-
},
|
|
2404
|
-
'changeMemberLevel': function(id, tel, level) {
|
|
2405
|
-
checkInit();
|
|
2406
|
-
dispatch.meets.changeMemberLevel(id,tel,level);
|
|
2407
|
-
},
|
|
2408
|
-
'changeMemberToSpeaker': function(id, tel) {
|
|
2409
|
-
checkInit();
|
|
2410
|
-
dispatch.meets.changeMemberToSpeaker(id,tel);
|
|
2411
|
-
},
|
|
2412
|
-
'changeMemberToAudience': function(id, tel) {
|
|
2413
|
-
checkInit();
|
|
2414
|
-
dispatch.meets.changeMemberToAudience(id,tel);
|
|
2415
|
-
},
|
|
2416
|
-
'changeMemberToChairman': function(id, tel) {
|
|
2417
|
-
checkInit();
|
|
2418
|
-
dispatch.meets.changeMemberToChairman(id,tel);
|
|
2419
|
-
},
|
|
2420
|
-
'kickMember': function(id, tel) {
|
|
2421
|
-
checkInit();
|
|
2422
|
-
dispatch.meets.kickMember(id, tel);
|
|
2423
|
-
},
|
|
2424
|
-
'privateTalk': function(id, tel) {
|
|
2425
|
-
checkInit();
|
|
2426
|
-
dispatch.meets.privateTalk(id, tel);
|
|
2427
|
-
},
|
|
2428
|
-
'backToMeet': function(id, tel) {
|
|
2429
|
-
checkInit();
|
|
2430
|
-
dispatch.meets.backToMeet(id, tel);
|
|
2431
|
-
}
|
|
2432
|
-
};
|
|
2433
|
-
//对讲组相关操作
|
|
2434
|
-
this.groupPoc = {
|
|
2435
|
-
'requestMemsStatus': function(fn) {
|
|
2436
|
-
checkInit();
|
|
2437
|
-
dispatch.groupPoc.requestMemsStatus(fn);
|
|
2438
|
-
},
|
|
2439
|
-
'requestMemStatus': function(pocNo,fn) {
|
|
2440
|
-
checkInit();
|
|
2441
|
-
dispatch.groupPoc.requestMemStatus(pocNo,fn);
|
|
2442
|
-
},
|
|
2443
|
-
'requestGroupsStatus': function(fn) {
|
|
2444
|
-
checkInit();
|
|
2445
|
-
dispatch.groupPoc.requestGroupsStatus(fn);
|
|
2446
|
-
},
|
|
2447
|
-
'requestGroupStatus': function(groupNo,isTmp,fn) {
|
|
2448
|
-
checkInit();
|
|
2449
|
-
dispatch.groupPoc.requestGroupStatus(groupNo,isTmp,fn);
|
|
2450
|
-
},
|
|
2451
|
-
'listMemStatus': function(fn) {
|
|
2452
|
-
checkInit();
|
|
2453
|
-
dispatch.groupPoc.listMemStatus(fn);
|
|
2454
|
-
},
|
|
2455
|
-
'listGroupStatus': function(fn) {
|
|
2456
|
-
checkInit();
|
|
2457
|
-
dispatch.groupPoc.listGroupStatus(fn);
|
|
2458
|
-
},
|
|
2459
|
-
'listTempPoc' : function(fn) {
|
|
2460
|
-
checkInit();
|
|
2461
|
-
dispatch.groupPoc.listTempPoc(fn);
|
|
2462
|
-
},
|
|
2463
|
-
'listMemSos': function(fn) {
|
|
2464
|
-
checkInit();
|
|
2465
|
-
dispatch.groupPoc.listMemSos(fn);
|
|
2466
|
-
},
|
|
2467
|
-
'listPhoneStatus': function(fn) {
|
|
2468
|
-
checkInit();
|
|
2469
|
-
dispatch.groupPoc.listPhoneStatus(fn);
|
|
2470
|
-
},
|
|
2471
|
-
'delMemSos': function(pocNo, fn) {
|
|
2472
|
-
checkInit();
|
|
2473
|
-
dispatch.groupPoc.delMemSos(pocNo, fn);
|
|
2474
|
-
},
|
|
2475
|
-
'listJoinGroupReq': function(fn) {
|
|
2476
|
-
checkInit();
|
|
2477
|
-
dispatch.groupPoc.listJoinGroupReq(fn);
|
|
2478
|
-
},
|
|
2479
|
-
'getGroupStatus': function(groupNo,isTmp,resultCallback) {
|
|
2480
|
-
checkInit();
|
|
2481
|
-
dispatch.groupPoc.getGroupStatus(groupNo,isTmp,resultCallback);
|
|
2482
|
-
},
|
|
2483
|
-
'getGroupMemOnlineNum':function(resultCallback){
|
|
2484
|
-
checkInit();
|
|
2485
|
-
dispatch.groupPoc.getGroupMemOnlineNum(resultCallback);
|
|
2486
|
-
},
|
|
2487
|
-
'talkbackCall': function(callNumber,pocNo,groupId,groupNo,callType,resultCallback) {
|
|
2488
|
-
checkInit();
|
|
2489
|
-
dispatch.groupPoc.talkbackCall(callNumber,pocNo,groupId,groupNo,callType,resultCallback);
|
|
2490
|
-
},
|
|
2491
|
-
'talkbackEnd': function(pocNo,groupNo) {
|
|
2492
|
-
checkInit();
|
|
2493
|
-
dispatch.groupPoc.talkbackEnd(pocNo,groupNo);
|
|
2494
|
-
},
|
|
2495
|
-
'talkbackChange': function(pocNo,groupSwitchNo,resultCallback) {
|
|
2496
|
-
checkInit();
|
|
2497
|
-
dispatch.groupPoc.talkbackChange(pocNo,groupSwitchNo,resultCallback);
|
|
2498
|
-
},
|
|
2499
|
-
'speakPower': function(pocNo, pocCmd, groupNo, resultCallback) {
|
|
2500
|
-
checkInit();
|
|
2501
|
-
dispatch.groupPoc.speakPower(pocNo, pocCmd, groupNo, resultCallback);
|
|
2502
|
-
},
|
|
2503
|
-
'createPocGroup': function(groupJsonData, resultCallback) {
|
|
2504
|
-
checkInit();
|
|
2505
|
-
dispatch.groupPoc.createPocGroup(groupJsonData, resultCallback);
|
|
2506
|
-
},
|
|
2507
|
-
'deleteGroup': function(groupId,resultCallback) {
|
|
2508
|
-
checkInit();
|
|
2509
|
-
dispatch.groupPoc.deleteGroup(groupId,resultCallback);
|
|
2510
|
-
},
|
|
2511
|
-
'joinGroupMem': function(groupId,memId,resultCallback) {
|
|
2512
|
-
checkInit();
|
|
2513
|
-
dispatch.groupPoc.joinGroupMem(groupId,memId,resultCallback);
|
|
2514
|
-
},
|
|
2515
|
-
'removeGroupMem': function(groupId, memIds,resultCallback) {
|
|
2516
|
-
checkInit();
|
|
2517
|
-
dispatch.groupPoc.removeGroupMem(groupId,memIds,resultCallback);
|
|
2518
|
-
},
|
|
2519
|
-
'getPocGroups': function(resultCallback) {
|
|
2520
|
-
checkInit();
|
|
2521
|
-
dispatch.groupPoc.getPocGroups(resultCallback);
|
|
2522
|
-
},
|
|
2523
|
-
'getPocGroupMem': function(id,resultCallback) {
|
|
2524
|
-
checkInit();
|
|
2525
|
-
dispatch.groupPoc.getPocGroupMem(id,resultCallback);
|
|
2526
|
-
},
|
|
2527
|
-
'getDisPatchOperInfo': function(token,resultCallback){
|
|
2528
|
-
checkInit();
|
|
2529
|
-
dispatch.groupPoc.getDisPatchOperInfo(token,resultCallback);
|
|
2530
|
-
},
|
|
2531
|
-
'creatTmpPoc' : function(resultCallback){
|
|
2532
|
-
checkInit();
|
|
2533
|
-
dispatch.groupPoc.creatTmpPoc(resultCallback);
|
|
2534
|
-
},
|
|
2535
|
-
'leaveTmpPocMembers' : function(callNumber,groupNo,resultCallback) {
|
|
2536
|
-
checkInit();
|
|
2537
|
-
dispatch.groupPoc.leaveTmpPocMembers(callNumber,groupNo,resultCallback);
|
|
2538
|
-
},
|
|
2539
|
-
'openCloudEye' : function(pocNo,resultCallback) {
|
|
2540
|
-
checkInit();
|
|
2541
|
-
dispatch.groupPoc.openCloudEye(pocNo,resultCallback);
|
|
2542
|
-
},
|
|
2543
|
-
'closeCloudEye' : function(pocNo,resultCallback) {
|
|
2544
|
-
checkInit();
|
|
2545
|
-
dispatch.groupPoc.closeCloudEye(pocNo,resultCallback);
|
|
2546
|
-
},
|
|
2547
|
-
'rejectJoinGroup': function(pocNo, groupNo, resultCallback) {
|
|
2548
|
-
checkInit();
|
|
2549
|
-
dispatch.groupPoc.rejectJoinGroup(pocNo, groupNo, resultCallback);
|
|
2550
|
-
},
|
|
2551
|
-
'delJoinGroup': function(pocNo, groupNo, resultCallback) {
|
|
2552
|
-
checkInit();
|
|
2553
|
-
dispatch.groupPoc.delJoinGroup(pocNo, groupNo, resultCallback);
|
|
2554
|
-
},
|
|
2555
|
-
'ctrlPocMems': function(pocMembers, groupNo, ctrlPPTCmd, resultCallback) {
|
|
2556
|
-
checkInit();
|
|
2557
|
-
dispatch.groupPoc.ctrlPocMems(pocMembers, groupNo, ctrlPPTCmd, resultCallback);
|
|
2558
|
-
}
|
|
2559
|
-
};
|
|
2560
|
-
}
|
|
2561
|
-
|
|
2562
|
-
/** 跨域调用(子页面、顶层框架) */
|
|
2563
|
-
function DispatchXDomain() {
|
|
2564
|
-
// TODO 与使用 dispatch 的框架处于不同域名,则通过发送消息来实现;
|
|
2565
|
-
|
|
2566
|
-
this.initialize = function() {
|
|
2567
|
-
//
|
|
2568
|
-
};
|
|
2569
|
-
this.destroy = function() {
|
|
2570
|
-
//
|
|
2571
|
-
};
|
|
2572
|
-
};
|
|
2573
|
-
|
|
2574
|
-
/** 封装各层框架中的实现 */
|
|
2575
|
-
function DispatchProxy() {
|
|
2576
|
-
var self = this;
|
|
2577
|
-
//
|
|
2578
|
-
var _type = null;
|
|
2579
|
-
var dispatch = null;
|
|
2580
|
-
//
|
|
2581
|
-
function checkInit() {
|
|
2582
|
-
if (!dispatch) {
|
|
2583
|
-
throw new Error("not initialized");
|
|
2584
|
-
}
|
|
2585
|
-
}
|
|
2586
|
-
|
|
2587
|
-
/** 如果与调度网页后台处于不同域名,则需要在一开始就设置该值为调度网页后台的地址(包含 contextPath ) */
|
|
2588
|
-
this.setRemoteBaseUrl = function(val) {
|
|
2589
|
-
remoteBaseUrl = val;
|
|
2590
|
-
if (dispatch && dispatch.hasOwnProperty('setRemoteBaseUrl')) {
|
|
2591
|
-
dispatch.setRemoteBaseUrl(val);
|
|
2592
|
-
}
|
|
2593
|
-
};
|
|
2594
|
-
/** 获取当前调用方式:main, sub, xdomain */
|
|
2595
|
-
this.getType = function() {
|
|
2596
|
-
return _type;
|
|
2597
|
-
};
|
|
2598
|
-
//
|
|
2599
|
-
this.getToken = function() {
|
|
2600
|
-
if (dispatch.hasOwnProperty('getToken')) {
|
|
2601
|
-
return dispatch.getToken();
|
|
2602
|
-
}
|
|
2603
|
-
return '';
|
|
2604
|
-
}
|
|
2605
|
-
this.setToken = function(val) {
|
|
2606
|
-
if (dispatch.hasOwnProperty('setToken')) {
|
|
2607
|
-
dispatch.setToken(val);
|
|
2608
|
-
}
|
|
2609
|
-
}
|
|
2610
|
-
//
|
|
2611
|
-
this.isConnected = function() {
|
|
2612
|
-
if (dispatch.hasOwnProperty('isConnected')) {
|
|
2613
|
-
return dispatch.isConnected();
|
|
2614
|
-
}
|
|
2615
|
-
return false;
|
|
2616
|
-
}
|
|
2617
|
-
|
|
2618
|
-
/** 登录账号的 token;当采用js方式内嵌到其它共用 DB_SC_CORE.T_ACCOUNT 的程序可实现后台自动登录; */
|
|
2619
|
-
this.getAccountToken = function() {
|
|
2620
|
-
if (dispatch.hasOwnProperty('getAccountToken')) {
|
|
2621
|
-
return dispatch.getAccountToken();
|
|
2622
|
-
}
|
|
2623
|
-
return '';
|
|
2624
|
-
}
|
|
2625
|
-
this.setAccountToken = function(val) {
|
|
2626
|
-
if (dispatch.hasOwnProperty('setAccountToken')) {
|
|
2627
|
-
dispatch.setAccountToken(val);
|
|
2628
|
-
}
|
|
2629
|
-
}
|
|
2630
|
-
this.setScooperIp = function(val) {
|
|
2631
|
-
if(dispatch.hasOwnProperty('setScooperIp')) {
|
|
2632
|
-
dispatch.setScooperIp(val);
|
|
2633
|
-
}
|
|
2634
|
-
}
|
|
2635
|
-
|
|
2636
|
-
//数据加载
|
|
2637
|
-
this.loadData = {
|
|
2638
|
-
'notifyRecordFile': function(){
|
|
2639
|
-
checkInit();
|
|
2640
|
-
return dispatch.loadData.notifyRecordFile();
|
|
2641
|
-
}
|
|
2642
|
-
};
|
|
2643
|
-
|
|
2644
|
-
this.getAccountByToken = function(accountToken, clb) {
|
|
2645
|
-
if (dispatch.hasOwnProperty('getAccountByToken')) {
|
|
2646
|
-
dispatch.getAccountByToken(accountToken, clb);
|
|
2647
|
-
}
|
|
2648
|
-
}
|
|
2649
|
-
|
|
2650
|
-
/**
|
|
2651
|
-
* 初始化
|
|
2652
|
-
* @param type main - 作为主框架存在;sub - 是作为子页面的组件存在;xdomain - 跨域调用
|
|
2653
|
-
*/
|
|
2654
|
-
this.initialize = function(type) {
|
|
2655
|
-
try {
|
|
2656
|
-
if(!type && window.top != window && window.top.scooper.dispatch) {
|
|
2657
|
-
type = "sub";
|
|
2658
|
-
}
|
|
2659
|
-
} catch (error) {
|
|
2660
|
-
//当跨域,或者top.scooper不存在时
|
|
2661
|
-
}
|
|
2662
|
-
if (!type)type = "main";
|
|
2663
|
-
|
|
2664
|
-
console.log(type);
|
|
2665
|
-
switch(type) {
|
|
2666
|
-
case "main": dispatch = new Dispatch(); break;
|
|
2667
|
-
case "sub" : dispatch = new DispatchSub(); break;
|
|
2668
|
-
case "xdomain": dispatch = new DispatchXDomain(); break;
|
|
2669
|
-
default: throw new Error("unknow type : " + type);
|
|
2670
|
-
}
|
|
2671
|
-
_type = type;
|
|
2672
|
-
//
|
|
2673
|
-
if (remoteBaseUrl) {
|
|
2674
|
-
self.setRemoteBaseUrl(remoteBaseUrl);
|
|
2675
|
-
}
|
|
2676
|
-
//
|
|
2677
|
-
dispatch.initialize();
|
|
2678
|
-
};
|
|
2679
|
-
this.destroy = function() {
|
|
2680
|
-
checkInit();
|
|
2681
|
-
dispatch.destroy();
|
|
2682
|
-
};
|
|
2683
|
-
//
|
|
2684
|
-
this.login = function(user,pass) {
|
|
2685
|
-
checkInit();
|
|
2686
|
-
dispatch.login(user,pass);
|
|
2687
|
-
};
|
|
2688
|
-
//
|
|
2689
|
-
this.setloginExamine = function(loginExamines){
|
|
2690
|
-
checkInit();
|
|
2691
|
-
dispatch.setloginExamine(loginExamines);
|
|
2692
|
-
}
|
|
2693
|
-
//
|
|
2694
|
-
this.loginByToken = function(token, fn) {
|
|
2695
|
-
checkInit();
|
|
2696
|
-
dispatch.loginByToken(token, fn);
|
|
2697
|
-
};
|
|
2698
|
-
this.logout = function() {
|
|
2699
|
-
checkInit();
|
|
2700
|
-
dispatch.logout();
|
|
2701
|
-
};
|
|
2702
|
-
this.sendChangeCfg = function(type,value,fn) {
|
|
2703
|
-
checkInit();
|
|
2704
|
-
dispatch.sendChangeCfg(type, value, fn);
|
|
2705
|
-
};
|
|
2706
|
-
this.listen = function(evtType,fn) {
|
|
2707
|
-
checkInit();
|
|
2708
|
-
dispatch.listen(evtType, fn);
|
|
2709
|
-
};
|
|
2710
|
-
this.unlisten = function(evtType, fn) {
|
|
2711
|
-
checkInit();
|
|
2712
|
-
dispatch.unlisten(evtType, fn);
|
|
2713
|
-
};
|
|
2714
|
-
this.getDispatchOper = function() {
|
|
2715
|
-
checkInit();
|
|
2716
|
-
return dispatch.getDispatchOper();
|
|
2717
|
-
};
|
|
2718
|
-
// 呼叫相关操作
|
|
2719
|
-
this.calls = {
|
|
2720
|
-
'requestCallStatus': function(fn) {
|
|
2721
|
-
checkInit();
|
|
2722
|
-
dispatch.calls.requestCallStatus(fn);
|
|
2723
|
-
},
|
|
2724
|
-
'requestTelStatus': function(tel,fn) {
|
|
2725
|
-
checkInit();
|
|
2726
|
-
dispatch.calls.requestTelStatus(tel,fn);
|
|
2727
|
-
},
|
|
2728
|
-
'requestCallIns': function(fn) {
|
|
2729
|
-
checkInit();
|
|
2730
|
-
dispatch.calls.requestCallIns(fn);
|
|
2731
|
-
},
|
|
2732
|
-
'listStatus': function(resultCallback) {
|
|
2733
|
-
checkInit();
|
|
2734
|
-
dispatch.calls.listStatus(resultCallback);
|
|
2735
|
-
},
|
|
2736
|
-
'listCallIn': function(resultCallback) {
|
|
2737
|
-
checkInit();
|
|
2738
|
-
dispatch.calls.listCallIn(resultCallback);
|
|
2739
|
-
},
|
|
2740
|
-
/** 呼叫 */
|
|
2741
|
-
'makeCall': function(tel, businessId) {
|
|
2742
|
-
checkInit();
|
|
2743
|
-
dispatch.calls.makeCall(tel, businessId);
|
|
2744
|
-
},
|
|
2745
|
-
/** 视频呼叫 */
|
|
2746
|
-
'makeVideoCall': function(tel, businessId) {
|
|
2747
|
-
checkInit();
|
|
2748
|
-
dispatch.calls.makeVideoCall(tel, businessId);
|
|
2749
|
-
},
|
|
2750
|
-
'hungUp': function(tel) {
|
|
2751
|
-
checkInit();
|
|
2752
|
-
dispatch.calls.hungUp(tel);
|
|
2753
|
-
},
|
|
2754
|
-
'answer': function(tel, businessId) {
|
|
2755
|
-
checkInit();
|
|
2756
|
-
dispatch.calls.answer(tel, businessId);
|
|
2757
|
-
},
|
|
2758
|
-
'answerAll': function(tel) {
|
|
2759
|
-
checkInit();
|
|
2760
|
-
dispatch.calls.answerAll();
|
|
2761
|
-
},
|
|
2762
|
-
"rollCall": function(tels) {
|
|
2763
|
-
checkInit();
|
|
2764
|
-
dispatch.calls.rollCall(tels);
|
|
2765
|
-
},
|
|
2766
|
-
"stopRollCall": function() {
|
|
2767
|
-
checkInit();
|
|
2768
|
-
dispatch.calls.stopRollCall();
|
|
2769
|
-
},
|
|
2770
|
-
"groupTurn": function(tels, isOnce) {
|
|
2771
|
-
checkInit();
|
|
2772
|
-
dispatch.calls.groupTurn(tels, isOnce);
|
|
2773
|
-
},
|
|
2774
|
-
'hold': function(tel) {
|
|
2775
|
-
checkInit();
|
|
2776
|
-
dispatch.calls.hold(tel);
|
|
2777
|
-
},
|
|
2778
|
-
'unhold': function(tel) {
|
|
2779
|
-
checkInit();
|
|
2780
|
-
dispatch.calls.unhold(tel);
|
|
2781
|
-
},
|
|
2782
|
-
'transfer': function(from,to, businessId) {
|
|
2783
|
-
checkInit();
|
|
2784
|
-
dispatch.calls.transfer(from,to, businessId);
|
|
2785
|
-
},
|
|
2786
|
-
'retrieve': function(tel) {
|
|
2787
|
-
checkInit();
|
|
2788
|
-
dispatch.calls.retrieve(tel);
|
|
2789
|
-
},
|
|
2790
|
-
'tripleMonitor': function(tel) {
|
|
2791
|
-
checkInit();
|
|
2792
|
-
dispatch.calls.tripleMonitor(tel);
|
|
2793
|
-
},
|
|
2794
|
-
'tripleBreakin': function(tel) {
|
|
2795
|
-
checkInit();
|
|
2796
|
-
dispatch.calls.tripleBreakin(tel);
|
|
2797
|
-
},
|
|
2798
|
-
'tripleHungup': function(tel) {
|
|
2799
|
-
checkInit();
|
|
2800
|
-
dispatch.calls.tripleHungup(tel);
|
|
2801
|
-
},
|
|
2802
|
-
'callRecord': function(tel) {
|
|
2803
|
-
checkInit();
|
|
2804
|
-
dispatch.calls.callRecord(tel);
|
|
2805
|
-
},
|
|
2806
|
-
'callRecordEnd': function(tel) {
|
|
2807
|
-
checkInit();
|
|
2808
|
-
dispatch.calls.callRecordEnd(tel);
|
|
2809
|
-
},
|
|
2810
|
-
'groupCall': function(groupId,autoAnswer,allAudience) {
|
|
2811
|
-
checkInit();
|
|
2812
|
-
dispatch.calls.groupCall(groupId,autoAnswer,allAudience);
|
|
2813
|
-
},
|
|
2814
|
-
'groupCancel': function(groupId) {
|
|
2815
|
-
checkInit();
|
|
2816
|
-
dispatch.calls.groupCancel(groupId);
|
|
2817
|
-
},
|
|
2818
|
-
'selectCall': function(tels,autoAnswer,allAudience) {
|
|
2819
|
-
checkInit();
|
|
2820
|
-
dispatch.calls.selectCall(tels,autoAnswer,allAudience);
|
|
2821
|
-
},
|
|
2822
|
-
'selectCancel': function() {
|
|
2823
|
-
checkInit();
|
|
2824
|
-
dispatch.calls.selectCancel();
|
|
2825
|
-
},
|
|
2826
|
-
'groupSame' : function(memIds,autoAnswer,allAudience) {
|
|
2827
|
-
checkInit();
|
|
2828
|
-
dispatch.calls.groupSame(memIds,autoAnswer,allAudience);
|
|
2829
|
-
},
|
|
2830
|
-
'groupNotify': function(groupId,files,type,times,notifyId) {
|
|
2831
|
-
checkInit();
|
|
2832
|
-
dispatch.calls.groupNotify(groupId,files,type,times,notifyId);
|
|
2833
|
-
},
|
|
2834
|
-
'selectNotify': function(tels,files,type,times,notifyId,confirm) {
|
|
2835
|
-
checkInit();
|
|
2836
|
-
dispatch.calls.selectNotify(tels,files,type,times,notifyId,confirm);
|
|
2837
|
-
},
|
|
2838
|
-
'makeCallSame': function(tels, meetId) {
|
|
2839
|
-
checkInit();
|
|
2840
|
-
dispatch.calls.makeCallSame(tels, meetId);
|
|
2841
|
-
},
|
|
2842
|
-
'openVideo': function(callNumber,callId,businessId,avRecord) {
|
|
2843
|
-
checkInit();
|
|
2844
|
-
dispatch.calls.openVideo(callNumber,callId,businessId,avRecord);
|
|
2845
|
-
},
|
|
2846
|
-
'closeVideo': function(callNumber) {
|
|
2847
|
-
checkInit();
|
|
2848
|
-
dispatch.calls.closeVideo(callNumber);
|
|
2849
|
-
},
|
|
2850
|
-
'notifyRecordOP': function(tel, title, opType, filename) {
|
|
2851
|
-
checkInit();
|
|
2852
|
-
dispatch.calls.notifyRecordOP(tel, title, opType, filename);
|
|
2853
|
-
}
|
|
2854
|
-
};
|
|
2855
|
-
// 会议相关操作
|
|
2856
|
-
this.meets = {
|
|
2857
|
-
'requestMeets': function(fn) {
|
|
2858
|
-
checkInit();
|
|
2859
|
-
dispatch.meets.requestMeets(fn);
|
|
2860
|
-
},
|
|
2861
|
-
'requestMeet': function(id, fn) {
|
|
2862
|
-
checkInit();
|
|
2863
|
-
dispatch.meets.requestMeet(id, fn);
|
|
2864
|
-
},
|
|
2865
|
-
'requestMeetMembers': function(id,fn) {
|
|
2866
|
-
checkInit();
|
|
2867
|
-
dispatch.meets.requestMeetMembers(id,fn);
|
|
2868
|
-
},
|
|
2869
|
-
'requestMeetMember': function(meetId,tel,fn) {
|
|
2870
|
-
checkInit();
|
|
2871
|
-
dispatch.meets.requestMeetMember(meetId,tel,fn);
|
|
2872
|
-
},
|
|
2873
|
-
'listMeets': function(fn) {
|
|
2874
|
-
checkInit();
|
|
2875
|
-
dispatch.meets.listMeets(fn);
|
|
2876
|
-
},
|
|
2877
|
-
'getMeet': function(id, fn) {
|
|
2878
|
-
checkInit();
|
|
2879
|
-
dispatch.meets.getMeet(id, fn);
|
|
2880
|
-
},
|
|
2881
|
-
'createMeet': function(name,businessId,resultCallback) {
|
|
2882
|
-
checkInit();
|
|
2883
|
-
dispatch.meets.createMeet(name,businessId,resultCallback);
|
|
2884
|
-
},
|
|
2885
|
-
'createMeetDetail': function(name, businessId, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2886
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers, defineAttr) {
|
|
2887
|
-
checkInit();
|
|
2888
|
-
dispatch.meets.createMeetDetail(name, businessId,resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2889
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers, defineAttr);
|
|
2890
|
-
},
|
|
2891
|
-
'editMeet': function(meetId, meetName, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2892
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers) {
|
|
2893
|
-
checkInit();
|
|
2894
|
-
dispatch.meets.editMeet(meetId, meetName, resultCallback, meetAccess, meetAttr, timeBegin,
|
|
2895
|
-
timeEnd, passwdSpeaker, passwdAudience, meetMembers);
|
|
2896
|
-
},
|
|
2897
|
-
'endMeet': function(id) {
|
|
2898
|
-
checkInit();
|
|
2899
|
-
dispatch.meets.endMeet(id);
|
|
2900
|
-
},
|
|
2901
|
-
'destroyMeet': function(id) {
|
|
2902
|
-
checkInit();
|
|
2903
|
-
dispatch.meets.destroyMeet(id);
|
|
2904
|
-
},
|
|
2905
|
-
'lock': function(id) {
|
|
2906
|
-
checkInit();
|
|
2907
|
-
dispatch.meets.lock(id);
|
|
2908
|
-
},
|
|
2909
|
-
'unlock': function(id) {
|
|
2910
|
-
checkInit();
|
|
2911
|
-
dispatch.meets.unlock(id);
|
|
2912
|
-
},
|
|
2913
|
-
'startRecord': function(id) {
|
|
2914
|
-
checkInit();
|
|
2915
|
-
dispatch.meets.startRecord(id);
|
|
2916
|
-
},
|
|
2917
|
-
'stopRecord': function(id) {
|
|
2918
|
-
checkInit();
|
|
2919
|
-
dispatch.meets.stopRecord(id);
|
|
2920
|
-
},
|
|
2921
|
-
'startPlayVoice': function(id) {
|
|
2922
|
-
checkInit();
|
|
2923
|
-
dispatch.meets.startPlayVoice(id);
|
|
2924
|
-
},
|
|
2925
|
-
'stopPlayVoice': function(id) {
|
|
2926
|
-
checkInit();
|
|
2927
|
-
dispatch.meets.stopPlayVoice(id);
|
|
2928
|
-
},
|
|
2929
|
-
'getMeetRecord': function(id, tel, fn) {
|
|
2930
|
-
checkInit();
|
|
2931
|
-
dispatch.meets.getMeetRecord(id, tel, fn);
|
|
2932
|
-
},
|
|
2933
|
-
'joinMember': function(id, tel, businessId, level, autoAnswer) {
|
|
2934
|
-
checkInit();
|
|
2935
|
-
dispatch.meets.joinMember(id,tel,businessId,level,autoAnswer);
|
|
2936
|
-
},
|
|
2937
|
-
'joinVideoMember': function(id, tel, businessId, level, autoAnswer) {
|
|
2938
|
-
checkInit();
|
|
2939
|
-
dispatch.meets.joinVideoMember(id,tel,businessId,level,autoAnswer);
|
|
2940
|
-
},
|
|
2941
|
-
'changeMemberLevel': function(id, tel, level) {
|
|
2942
|
-
checkInit();
|
|
2943
|
-
dispatch.meets.changeMemberLevel(id,tel,level);
|
|
2944
|
-
},
|
|
2945
|
-
'changeMemberToSpeaker': function(id, tel) {
|
|
2946
|
-
checkInit();
|
|
2947
|
-
dispatch.meets.changeMemberToSpeaker(id,tel);
|
|
2948
|
-
},
|
|
2949
|
-
'changeMemberToAudience': function(id, tel) {
|
|
2950
|
-
checkInit();
|
|
2951
|
-
dispatch.meets.changeMemberToAudience(id,tel);
|
|
2952
|
-
},
|
|
2953
|
-
'changeMemberToChairman': function(id, tel) {
|
|
2954
|
-
checkInit();
|
|
2955
|
-
dispatch.meets.changeMemberToChairman(id,tel);
|
|
2956
|
-
},
|
|
2957
|
-
'kickMember': function(id, tel) {
|
|
2958
|
-
checkInit();
|
|
2959
|
-
dispatch.meets.kickMember(id, tel);
|
|
2960
|
-
},
|
|
2961
|
-
'privateTalk': function(id, tel) {
|
|
2962
|
-
checkInit();
|
|
2963
|
-
dispatch.meets.privateTalk(id, tel);
|
|
2964
|
-
},
|
|
2965
|
-
'backToMeet': function(id, tel) {
|
|
2966
|
-
checkInit();
|
|
2967
|
-
dispatch.meets.backToMeet(id, tel);
|
|
2968
|
-
}
|
|
2969
|
-
};
|
|
2970
|
-
//对讲组相关操作
|
|
2971
|
-
this.groupPoc = {
|
|
2972
|
-
'requestMemsStatus': function(fn) {
|
|
2973
|
-
checkInit();
|
|
2974
|
-
dispatch.groupPoc.requestMemsStatus(fn);
|
|
2975
|
-
},
|
|
2976
|
-
'requestMemStatus': function(pocNo,fn) {
|
|
2977
|
-
checkInit();
|
|
2978
|
-
dispatch.groupPoc.requestMemStatus(pocNo,fn);
|
|
2979
|
-
},
|
|
2980
|
-
'requestGroupsStatus': function(fn) {
|
|
2981
|
-
checkInit();
|
|
2982
|
-
dispatch.groupPoc.requestGroupsStatus(fn);
|
|
2983
|
-
},
|
|
2984
|
-
'requestGroupStatus': function(groupNo,isTmp,fn) {
|
|
2985
|
-
checkInit();
|
|
2986
|
-
dispatch.groupPoc.requestGroupStatus(groupNo,isTmp,fn);
|
|
2987
|
-
},
|
|
2988
|
-
'listMemStatus': function(fn) {
|
|
2989
|
-
checkInit();
|
|
2990
|
-
dispatch.groupPoc.listMemStatus(fn);
|
|
2991
|
-
},
|
|
2992
|
-
'listGroupStatus': function(fn) {
|
|
2993
|
-
checkInit();
|
|
2994
|
-
dispatch.groupPoc.listGroupStatus(fn);
|
|
2995
|
-
},
|
|
2996
|
-
'listTempPoc' : function(fn) {
|
|
2997
|
-
checkInit();
|
|
2998
|
-
dispatch.groupPoc.listTempPoc(fn);
|
|
2999
|
-
},
|
|
3000
|
-
'listMemSos': function(fn) {
|
|
3001
|
-
checkInit();
|
|
3002
|
-
dispatch.groupPoc.listMemSos(fn);
|
|
3003
|
-
},
|
|
3004
|
-
'listPhoneStatus': function(fn) {
|
|
3005
|
-
checkInit();
|
|
3006
|
-
dispatch.groupPoc.listPhoneStatus(fn);
|
|
3007
|
-
},
|
|
3008
|
-
'delMemSos': function(pocNo, fn) {
|
|
3009
|
-
checkInit();
|
|
3010
|
-
dispatch.groupPoc.delMemSos(pocNo, fn);
|
|
3011
|
-
},
|
|
3012
|
-
'listJoinGroupReq': function(fn) {
|
|
3013
|
-
checkInit();
|
|
3014
|
-
dispatch.groupPoc.listJoinGroupReq(fn);
|
|
3015
|
-
},
|
|
3016
|
-
'getGroupStatus': function(groupNo,isTmp,resultCallback) {
|
|
3017
|
-
checkInit();
|
|
3018
|
-
dispatch.groupPoc.getGroupStatus(groupNo,isTmp,resultCallback);
|
|
3019
|
-
},
|
|
3020
|
-
'getGroupMemOnlineNum':function(resultCallback){
|
|
3021
|
-
checkInit();
|
|
3022
|
-
dispatch.groupPoc.getGroupMemOnlineNum(resultCallback);
|
|
3023
|
-
},
|
|
3024
|
-
'talkbackCall': function(callNumber,pocNo,groupId,groupNo,callType,resultCallback) {
|
|
3025
|
-
checkInit();
|
|
3026
|
-
dispatch.groupPoc.talkbackCall(callNumber,pocNo,groupId,groupNo,callType,resultCallback);
|
|
3027
|
-
},
|
|
3028
|
-
'talkbackEnd': function(pocNo,groupNo) {
|
|
3029
|
-
checkInit();
|
|
3030
|
-
dispatch.groupPoc.talkbackEnd(pocNo,groupNo);
|
|
3031
|
-
},
|
|
3032
|
-
'talkbackChange': function(pocNo,groupSwitchNo,resultCallback) {
|
|
3033
|
-
checkInit();
|
|
3034
|
-
dispatch.groupPoc.talkbackChange(pocNo,groupSwitchNo,resultCallback);
|
|
3035
|
-
},
|
|
3036
|
-
'speakPower': function(pocNo,pocCmd,groupNo,resultCallback) {
|
|
3037
|
-
checkInit();
|
|
3038
|
-
dispatch.groupPoc.speakPower(pocNo,pocCmd,groupNo,resultCallback);
|
|
3039
|
-
},
|
|
3040
|
-
'createPocGroup': function(groupJsonData, resultCallback) {
|
|
3041
|
-
checkInit();
|
|
3042
|
-
dispatch.groupPoc.createPocGroup(groupJsonData, resultCallback);
|
|
3043
|
-
},
|
|
3044
|
-
'deleteGroup': function(groupId,resultCallback) {
|
|
3045
|
-
checkInit();
|
|
3046
|
-
dispatch.groupPoc.deleteGroup(groupId,resultCallback);
|
|
3047
|
-
},
|
|
3048
|
-
'joinGroupMem': function(groupId,memId,resultCallback) {
|
|
3049
|
-
checkInit();
|
|
3050
|
-
dispatch.groupPoc.joinGroupMem(groupId,memId,resultCallback);
|
|
3051
|
-
},
|
|
3052
|
-
'removeGroupMem': function(groupId, memIds,resultCallback) {
|
|
3053
|
-
checkInit();
|
|
3054
|
-
dispatch.groupPoc.removeGroupMem(groupId,memIds,resultCallback);
|
|
3055
|
-
},
|
|
3056
|
-
'getPocGroups': function(resultCallback) {
|
|
3057
|
-
checkInit();
|
|
3058
|
-
dispatch.groupPoc.getPocGroups(resultCallback);
|
|
3059
|
-
},
|
|
3060
|
-
'getPocGroupMem': function(id,resultCallback) {
|
|
3061
|
-
checkInit();
|
|
3062
|
-
dispatch.groupPoc.getPocGroupMem(id,resultCallback);
|
|
3063
|
-
},
|
|
3064
|
-
'getDisPatchOperInfo': function(token,resultCallback){
|
|
3065
|
-
checkInit();
|
|
3066
|
-
dispatch.groupPoc.getDisPatchOperInfo(token,resultCallback);
|
|
3067
|
-
},
|
|
3068
|
-
'creatTmpPoc' : function(resultCallback){
|
|
3069
|
-
checkInit();
|
|
3070
|
-
dispatch.groupPoc.creatTmpPoc(resultCallback);
|
|
3071
|
-
},
|
|
3072
|
-
'leaveTmpPocMembers' : function(callNumber,groupNo,resultCallback) {
|
|
3073
|
-
checkInit();
|
|
3074
|
-
dispatch.groupPoc.leaveTmpPocMembers(callNumber,groupNo,resultCallback);
|
|
3075
|
-
},
|
|
3076
|
-
'openCloudEye' : function(pocNo,resultCallback) {
|
|
3077
|
-
checkInit();
|
|
3078
|
-
dispatch.groupPoc.openCloudEye(pocNo,resultCallback);
|
|
3079
|
-
},
|
|
3080
|
-
'closeCloudEye' : function(pocNo,resultCallback) {
|
|
3081
|
-
checkInit();
|
|
3082
|
-
dispatch.groupPoc.closeCloudEye(pocNo,resultCallback);
|
|
3083
|
-
},
|
|
3084
|
-
'rejectJoinGroup': function(pocNo, groupNo, resultCallback) {
|
|
3085
|
-
checkInit();
|
|
3086
|
-
dispatch.groupPoc.rejectJoinGroup(pocNo, groupNo, resultCallback);
|
|
3087
|
-
},
|
|
3088
|
-
'delJoinGroup': function(pocNo, groupNo, resultCallback) {
|
|
3089
|
-
checkInit();
|
|
3090
|
-
dispatch.groupPoc.delJoinGroup(pocNo, groupNo, resultCallback);
|
|
3091
|
-
},
|
|
3092
|
-
'ctrlPocMems': function(pocMembers, groupNo, ctrlPPTCmd, resultCallback) {
|
|
3093
|
-
checkInit();
|
|
3094
|
-
dispatch.groupPoc.ctrlPocMems(pocMembers, groupNo, ctrlPPTCmd, resultCallback);
|
|
3095
|
-
}
|
|
3096
|
-
};
|
|
3097
|
-
}
|
|
3098
|
-
|
|
3099
|
-
// 常量定义
|
|
3100
|
-
Dispatch.prototype.event_const = event_const;
|
|
3101
|
-
DispatchSub.prototype.event_const = event_const;
|
|
3102
|
-
DispatchProxy.prototype.event_const = event_const;
|
|
3103
|
-
DispatchXDomain.prototype.event_const = event_const;
|
|
3104
|
-
DispatchProxy.prototype.status_const = status_const;
|
|
3105
|
-
|
|
3106
|
-
return window.scooper.dispatch = new DispatchProxy();
|
|
3107
|
-
}));
|