Ver Código Fonte

点,mqqt,软电话修改

miaofuhao 5 anos atrás
pai
commit
0fc79e73a8

+ 1 - 0
CallCenterWeb.UI/Script/Common/huayi.config.js

@@ -6,6 +6,7 @@ huayi.config = {
6 6
     callcenter_url: "https://api.zzdx.800100.com.cn:8033/",      //生产环境 前端Web站IP和端口
7 7
     socket_ip: "sip.800100.com.cn",//WebSocket通讯ip
8 8
     socket_port: "9443",    //WebSocket通讯端口
9
+    mqqt_port: 8083,
9 10
     menuworktime: 30000,    //菜单工单数量刷新间隔
10 11
     indextime: 60000,     //首页报表刷新间隔
11 12
 	sip_uri_:"sip:"+$.cookie("extno")+"@sip.800100.com.cn", 

+ 2 - 3
CallCenterWeb.UI/index.html

@@ -106,7 +106,7 @@
106 106
                                     <p>接回</p>
107 107
                                 </li>
108 108
                                 <li datafun="Login">
109
-                                    <i class="iconfont fa-5x Login"></i>
109
+                                    <i class="iconfont fa-5x Login active"></i>
110 110
                                     <p>签入</p>
111 111
                                 </li>
112 112
                                 <li datafun="Logout">
@@ -200,7 +200,6 @@
200 200
 
201 201
             </div>
202 202
         </div>
203
-
204 203
     </div>
205 204
 
206 205
     <!--外呼键盘-->
@@ -593,7 +592,6 @@
593 592
         </div>
594 593
         <div class="phone_btn_bot">
595 594
     		<div class="posbtn1 testCall" onclick="testCall()"><img src="img/call_out-icon.png"/></div>
596
-    		
597 595
     		<div class="posbtn2 phoneNum_clear" style="left: 45%;">清除</div>
598 596
     		<div class="posbtn3 testCall" style="right: 24%;" onclick="inCall()"><img src="img/call_out-icon.png"/></div>
599 597
     		<div class="posbtn3 hangup" style="right: 7%;" onclick="hangup()"><img src="img/hangu-iconp.png"/></div>
@@ -606,6 +604,7 @@
606 604
     <script src="./js/plugins/pace/pace.min.js"></script>
607 605
     <script src="./js/plugins/iCheck/icheck.min.js"></script>
608 606
     <script src="./css/laydate/laydate.js"></script>
607
+    <script src="./js/paho-mqtt.js"></script>
609 608
     <script src="./js/main.js?v=1.5"></script>
610 609
     <script src="./js/index.js?v=2.0"></script>
611 610
     <script src="./js/zTree/jquery.ztree.core.js"></script>

+ 1 - 4
CallCenterWeb.UI/js/index.js

@@ -1,13 +1,10 @@
1 1
 $(document).ready(function() {
2
-
3 2
 	if(/mobile/i.test(navigator.userAgent) || /android/i.test(navigator.userAgent)) {
4 3
 		$(".title-box").hide();
5 4
 	}
6
-
7 5
 	if($.cookie("token") == null) {
8 6
 		window.location.href = "login.html";
9 7
 	}
10
-
11 8
 	obj.AgentExten = $.cookie("extno");
12 9
 	if(obj.AgentExten == undefined) {
13 10
 		$(".Gnumbox").hide();
@@ -29,6 +26,7 @@ $(document).ready(function() {
29 26
 			if(result.data.FileUrl[0]){
30 27
 				$(".yhtx").attr("src", result.data.FileUrl[0].F_Url);
31 28
 			}
29
+			//alert($.cookie("extno")+"+"+result.data.user.F_UserCode+"+"+$.cookie("User"))
32 30
 			obj.AgentGroup = result.data.user.F_SeartGroupID;
33 31
 			obj.AgentID = result.data.user.F_UserCode;
34 32
 			if(result.data.user.F_SeatFlag) {
@@ -39,7 +37,6 @@ $(document).ready(function() {
39 37
 			}
40 38
 		}
41 39
 	})
42
-
43 40
 	//分机号
44 41
 	//话务相关
45 42
 	$("#top-search li").click(function() {

+ 244 - 248
CallCenterWeb.UI/js/main.js

@@ -1,243 +1,234 @@
1
-var ws, n = 0,
2
-	timer,hidTel,hidCallID,hidActionID;
3
-var lockReconnect = false; //避免重复连接
4
-var obj = {};
5
-var signState;
6
-var cls = 0;
7
-var lasttime = new Date().getTime();
8
-//创建scoket连接
9
-function createWebSocket() {
10
-	try {
11
-		$("#top-search li i").removeClass("active");
12
-		
13
-		Connect();
14
-	} catch(e) {
15
-		reconnect();
16
-	}
1
+//客户端选项
2
+var option = {
3
+	"ServerUri": huayi.config.socket_ip, //mqqt_port
4
+	"ServerPort": huayi.config.mqqt_port,
5
+	"extenSet": $.cookie("extno"),
6
+	"ClientId": $.cookie("User"),
7
+	"TimeOut": 5,
8
+	"KeepAlive": 100,
9
+	"CleanSession": false,
10
+	"SSL": false
17 11
 }
18
-//连接
12
+var obj = {};
13
+//连接mqqt
19 14
 function Connect() {
20
-
21
-		ws = new WebSocket("wss://" + huayi.config.socket_ip + ":" + huayi.config.socket_port);
22
-		ws.onopen = function() {
23
-			console.log(new Date() + "    " + "建立连接");
24
-
25
-			//心跳检测重置
26
-			heartCheck.reset().start();
27
- 
28
-			cls = 0;
29
-			$(".Login").addClass("active");
30
-//			//自动签入
31
-//			lasttime = new Date().getTime();
32
-//			obj.Type = "Login";
33
-//			obj.AgentType = "0";
34
-//			Send(); /*2018-05-19zhangshaungnan注释*/
35
-		};
36
-		//接收到消息的回调方法
37
-		ws.onmessage = function(evt) {
38
-			//如果获取到消息,心跳检测重置
39
-			//拿到任何消息都说明当前连接是正常的
40
-			heartCheck.reset().start();
41
-			var myDate = new Date();
42
-			//console.log(myDate + "  receive  " + evt.data);
43
-			var data = JSON.parse(evt.data)[0];
44
-			if(data) {
45
-				var rlt = data.Result;
46
-				if(rlt == true) {
47
-					var type = data.Type;
48
-					switch(type.toLowerCase()) {
49
-						//case "heart": HeartBack(); break;//心跳
50
-						case "login":
51
-							LoginBack();
52
-							break; //签入
53
-						case "logout":
54
-							LogoutBack();
55
-							break; //签出
56
-						case "dropcall":
57
-							DropCallBack();
58
-							break; //挂断
59
-						case "makecall":
60
-							MakeCallBack();
61
-							break; //外呼
62
-						case "setstate":
63
-							SetState(data);
64
-							break; //置忙置闲
65
-							//case "saybusy": SayBusyBack(data); break;
66
-							//case "sayfree": SayFreeBack(data); break;
67
-						case "meeting":
68
-							MeetingBack();
69
-							break; //多方通话
70
-						case "transfer":
71
-							TransferBack();
72
-							break; //转移
73
-						case "hold":
74
-							HoldBack();
75
-							break; //保持
76
-						case "retrieve":
77
-							RetrieveBack();
78
-							break; //接回
79
-						case "incoming":
80
-							IncomingBack(data);
81
-							break; //来电
82
-						case "subscribe":
83
-							SubScribeBack();
84
-							break; //监测
85
-						case "subscribecancel":
86
-							SubScribeCancelBack();
87
-							break; //停止监测
88
-						case "agentstate":
89
-							AgentStateBack(data);
90
-							break; //坐席状态
91
-						case "linestate":
92
-							LineStateBack(data);
93
-							break; //线路状态
94
-						case "motorsetstate":
95
-							SayFreeBack();
96
-							break; //班长置闲
97
-						case "linestateagent":
98
-							LineStateAgentBack(data);
99
-							break; //线路状态通知
100
-//						case "agentstateagent":
101
-//	                        AgentStateAgentBack(data);
102
-//	                        break; //坐席状态通知
103
-	                        
104
-						case "callid":
105
-							CallIDBack(data);
106
-							break; //获取callid
107
-						case "recordpath":
108
-							RecordPathBack(data);
109
-							break; //录音返回
110
-
111
-					}
112
-				} else {
113
-					if(rlt == false) {
114
-                        //$(".hwzt").text('操作失败!');
115
-                        //外呼失败的文字展示
116
-                        if (data.Type.toLowerCase() == "makecall") {
117
-                            switch (data.ErrorCode) {
118
-                                case 1: $(".hwzt").text(' 挂机,请重试!'); break;
119
-                                case 2: $(".hwzt").text(' FS外呼命令失败,请重试!'); break;
120
-                                case 3: $(".hwzt").text(' 外呼获取座席失败,请重试!'); break;
121
-                                case 4: $(".hwzt").text(' 座席置忙禁止座席外呼,请重试!'); break;
122
-                                case 5: $(".hwzt").text(' 主叫座席分机非空闲或摘机拨号,请重试!'); break;
123
-                                case 6: $(".hwzt").text(' 为外呼设置座席状态失败,请重试!'); break;
124
-                                case 7: $(".hwzt").text(' 被叫座席非空闲,请重试!'); break;
125
-                                case 8: $(".hwzt").text(' 执行分机呼叫失败, 未找到分机通道,请重试!'); break;
126
-                                case 9: $(".hwzt").text(' 执行分机呼叫失败, 无法绑定分机通道,请重试!'); break;
127
-                                case 10: $(".hwzt").text(' 禁止分机自呼,请重试!'); break;
128
-                                case 11: $(".hwzt").text(' 发送分机呼叫Esl命令失败,请重试!'); break;
129
-                                case 12: $(".hwzt").text(' 目标分机非空闲,请重试!'); break;
130
-                                case 13: $(".hwzt").text(' 主控通道非空闲,请重试!'); break;
131
-                                case 14: $(".hwzt").text(' 校验不通过绑定本端逻辑线路失败,请重试!'); break;
132
-                                case 15: $(".hwzt").text(' 校验不通过本端当前线路忙,请重试!'); break;
133
-                                case 16: $(".hwzt").text(' 校验不通过对端线路状态忙,请重试!'); break;
134
-                                case 17: $(".hwzt").text(' 被叫关机,请重试!'); break;
135
-                                case 18: $(".hwzt").text(' 无效号码,请重试!'); break;
136
-                                case 19: $(".hwzt").text(' 无人接听,请重试!'); break;
137
-                                case 20: $(".hwzt").text(' 交换机错误(用户无法接通),请重试!'); break;
138
-                                case 21: $(".hwzt").text(' 话机外呼执行数据交换操作失败未找到分机通道,请重试!'); break;
139
-                                case 22: $(".hwzt").text(' 话机外呼执行数据交换操作失败分机通道未绑定任务,请重试!'); break;
140
-                                case 23: $(".hwzt").text(' 执行设备外呼任务失败无法获取对应线路,请重试!'); break;
141
-                            }
142
-                        }
143
-						if(data.Type=='AcdConnectNotify'){
144
-							$("#top-search li i").removeClass("active");
145
-							$(".hwzt").text('Acd未连接');
146
-						}
147
-					} else {
148
-						$(".hwzt").text(rlt);
149
-						//layer.confirm(rlt, {
150
-						//    btn: ['确定']
151
-						//});
152
-					}
153
-				}
154
-			}
155
-		};
156
-		//连接关闭的回调方法
157
-		ws.onclose = function(evt) {
158
-			if(cls == 0) {
159
-				cls = 1;
160
-				//console.log("连接关闭!");
161
-				//layer.confirm('连接关闭!', {
162
-				//    btn: ['确定']
163
-				//});
164
-				$(".hwzt").text('连接关闭!');
165
-				$("#top-search li i").removeClass("active");
166
-				reconnect();
167
-			}
168
-		};
169
-		//连接发生错误的回调方法
170
-		ws.onerror = function(evt) {
171
-			//产生异常
172
-			$(".hwzt").text('连接出现异常!');
173
-			console.log(ws);
174
-			if(ws == null || ws.readyState != ws.OPEN) {
175
-				console.log(new Date() + "开始重连");
176
-				reconnect();
177
-			}
178
-
179
-		};
180
-}
181
-
182
-//重连
183
-function reconnect() {
184
-	if(lockReconnect) return;
185
-	lockReconnect = true;
186
-	//没连接上会一直重连,设置延迟避免请求过多
187
-	setTimeout(function() {
188
-		console.log(new Date() + "    " + "重连中……");
189
-		createWebSocket("wss://" + huayi.config.socket_ip + ":" + huayi.config.socket_port);
190
-		lockReconnect = false;
191
-	}, 2000);
15
+	client = new Paho.Client(huayi.config.socket_ip, huayi.config.mqqt_port,$.cookie("User"), )
16
+	client.onConnectionLost = onConnectionLost; //连接断开
17
+	client.onMessageArrived = onMessageArrived; //接收消息
18
+	client.connect({
19
+		invocationContext: {
20
+			host: option.ServerUri, //IP地址
21
+			port: option.ServerPort, //端口号
22
+			path: client.path,
23
+			clientId: option.ClientId //标识
24
+		},
25
+		timeout: option.TimeOut, //连接超时时间
26
+		keepAliveInterval: option.KeepAlive, //心跳间隔
27
+		cleanSession: option.CleanSession, //是否清理Session
28
+		useSSL: option.SSL, //是否启用SSL
29
+		onSuccess: onConnect, //连接成功回调事件
30
+		onFailure: onError //连接失败回调事件
31
+	});
192 32
 }
193 33
 //发送
194 34
 function Send() {
195
-	if(ws.readyState != ws.OPEN) {
196
-		reconnect();
197
-	}
198
-	if(ws.readyState == ws.OPEN) {
199
-		console.log(new Date() + "  send  " + JSON.stringify(obj));
200
-		ws.send(JSON.stringify(obj));
35
+	var message = new Paho.Message(JSON.stringify(obj));
36
+	message.destinationName = "TopicServer"; //"TopicServer";   currentTopic.Topic
37
+	client.send(message);
38
+	console.log(message);
39
+	WriteToStatus("发布了主题为TopicServer的消息:" + message);
40
+}
41
+//连接成功事件
42
+function onConnect() {
43
+	WriteToStatus("连接成功!");
44
+	client.subscribe(option.ClientId);
45
+	WriteToStatus("成功订阅主题:" + option.ClientId);
46
+}
47
+//连接失败事件
48
+function onError(e) {
49
+	WriteToStatus("连接失败:" + JSON.stringify(e))
50
+}
51
+//连接断开事件
52
+function onConnectionLost(e) {
53
+	if(e.errorCode !== 0) {
54
+		WriteToStatus("连接异常断开:" + e.errorMessage);
201 55
 	}
202 56
 }
203
-//心跳检测
204
-var heartCheck = {
205
-	timeout: 25000, //25秒
206
-	timeoutObj: null,
207
-	serverTimeoutObj: null,
208
-	reset: function() {
209
-		clearTimeout(this.timeoutObj);
210
-		clearTimeout(this.serverTimeoutObj);
211
-		return this;
212
-	},
213
-	start: function() {
214
-		var self = this;
215
-		this.timeoutObj = setTimeout(function() {
216
-			//这里发送一个心跳,后端收到后,返回一个心跳消息,
217
-			//onmessage拿到返回的心跳就说明连接正常
218
-			obj.Type = "Heart";
219
-			Send();
220
-			self.serverTimeoutObj = setTimeout(function() { //如果超过一定时间还没重置,说明后端主动断开了
221
-				ws.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
222
-			}, self.timeout)
223
-		}, this.timeout)
57
+//状态输出
58
+function WriteToStatus(data) {
59
+	var now = new Date();
60
+	var message = '[' + now.toLocaleTimeString() + ']' + data;
61
+	console.log(message);
62
+}
63
+//接收消息事件
64
+function onMessageArrived(data) {
65
+	console.log(data.payloadString)
66
+	var data = JSON.parse(data.payloadString)[0];
67
+	if(data) {
68
+		var rlt = data.Result;
69
+		if(rlt == true) {
70
+			var type = data.Type;
71
+			switch(type.toLowerCase()) {
72
+				case "login":
73
+					LoginBack();
74
+					break; //签入
75
+				case "logout":
76
+					LogoutBack();
77
+					break; //签出
78
+				case "dropcall":
79
+					DropCallBack();
80
+					break; //挂断
81
+				case "makecall": //MakeCall
82
+					MakeCallBack(data);
83
+					break; //外呼
84
+				case "setstate":
85
+					SetState(data);
86
+					break; //置忙置闲
87
+					//case "saybusy": SayBusyBack(data); break;
88
+					//case "sayfree": SayFreeBack(data); break;
89
+				case "meeting":
90
+					MeetingBack();
91
+					break; //多方通话
92
+				case "transfer":
93
+					TransferBack();
94
+					break; //转移
95
+				case "hold":
96
+					HoldBack();
97
+					break; //保持
98
+				case "retrieve":
99
+					RetrieveBack();
100
+					break; //接回
101
+				case "incoming":
102
+					IncomingBack(data);
103
+					break; //来电
104
+				case "subscribe":
105
+					SubScribeBack();
106
+					break; //监测
107
+				case "subscribecancel":
108
+					SubScribeCancelBack();
109
+					break; //停止监测
110
+				case "agentstate":
111
+					AgentStateBack(data);
112
+					break; //坐席状态
113
+				case "linestate":
114
+					LineStateBack(data);
115
+					break; //线路状态
116
+				case "motorsetstate":
117
+					SayFreeBack();
118
+					break; //班长置闲
119
+				case "linestateagent":
120
+					LineStateAgentBack(data);
121
+					break; //线路状态通知
122
+				case "callid":
123
+					CallIDBack(data);
124
+					break; //获取callid
125
+				case "recordpath":
126
+					RecordPathBack(data);
127
+					break; //录音返回
128
+
129
+			}
130
+		} else {
131
+			if(rlt == false) {
132
+				//$(".hwzt").text('操作失败!');
133
+				//外呼失败的文字展示
134
+				if(data.Type.toLowerCase() == "makecall") {
135
+					switch(data.ErrorCode) {
136
+						case 1:
137
+							$(".hwzt").text(' 挂机,请重试!');
138
+							break;
139
+						case 2:
140
+							$(".hwzt").text(' FS外呼命令失败,请重试!');
141
+							break;
142
+						case 3:
143
+							$(".hwzt").text(' 外呼获取座席失败,请重试!');
144
+							break;
145
+						case 4:
146
+							$(".hwzt").text(' 座席置忙禁止座席外呼,请重试!');
147
+							break;
148
+						case 5:
149
+							$(".hwzt").text(' 主叫座席分机非空闲或摘机拨号,请重试!');
150
+							break;
151
+						case 6:
152
+							$(".hwzt").text(' 为外呼设置座席状态失败,请重试!');
153
+							break;
154
+						case 7:
155
+							$(".hwzt").text(' 被叫座席非空闲,请重试!');
156
+							break;
157
+						case 8:
158
+							$(".hwzt").text(' 执行分机呼叫失败, 未找到分机通道,请重试!');
159
+							break;
160
+						case 9:
161
+							$(".hwzt").text(' 执行分机呼叫失败, 无法绑定分机通道,请重试!');
162
+							break;
163
+						case 10:
164
+							$(".hwzt").text(' 禁止分机自呼,请重试!');
165
+							break;
166
+						case 11:
167
+							$(".hwzt").text(' 发送分机呼叫Esl命令失败,请重试!');
168
+							break;
169
+						case 12:
170
+							$(".hwzt").text(' 目标分机非空闲,请重试!');
171
+							break;
172
+						case 13:
173
+							$(".hwzt").text(' 主控通道非空闲,请重试!');
174
+							break;
175
+						case 14:
176
+							$(".hwzt").text(' 校验不通过绑定本端逻辑线路失败,请重试!');
177
+							break;
178
+						case 15:
179
+							$(".hwzt").text(' 校验不通过本端当前线路忙,请重试!');
180
+							break;
181
+						case 16:
182
+							$(".hwzt").text(' 校验不通过对端线路状态忙,请重试!');
183
+							break;
184
+						case 17:
185
+							$(".hwzt").text(' 被叫关机,请重试!');
186
+							break;
187
+						case 18:
188
+							$(".hwzt").text(' 无效号码,请重试!');
189
+							break;
190
+						case 19:
191
+							$(".hwzt").text(' 无人接听,请重试!');
192
+							break;
193
+						case 20:
194
+							$(".hwzt").text(' 交换机错误(用户无法接通),请重试!');
195
+							break;
196
+						case 21:
197
+							$(".hwzt").text(' 话机外呼执行数据交换操作失败未找到分机通道,请重试!');
198
+							break;
199
+						case 22:
200
+							$(".hwzt").text(' 话机外呼执行数据交换操作失败分机通道未绑定任务,请重试!');
201
+							break;
202
+						case 23:
203
+							$(".hwzt").text(' 执行设备外呼任务失败无法获取对应线路,请重试!');
204
+							break;
205
+					}
206
+				}
207
+				if(data.Type == 'AcdConnectNotify') {
208
+					$("#top-search li i").removeClass("active");
209
+					$(".hwzt").text('Acd未连接');
210
+				}
211
+			} else {
212
+				$(".hwzt").text(rlt);
213
+			}
214
+		}
224 215
 	}
225 216
 }
226 217
 
218
+
227 219
 //签入
228 220
 function LoginBack() {
229
-	signState=true
230 221
 	$("#top-search li i").removeClass("active");
231 222
 	$(".Logout").addClass("active");
232 223
 	$(".SayBusy").addClass("active");
233 224
 	$(".MakeCall").addClass("active");
225
+
234 226
 	$(".zxzt").removeClass("br").addClass("bl");
235 227
 	$(".fwzt").removeClass("br").addClass("bl");
236
-	$(".hwzt").text('空闲');
228
+	$(".hwzt").text('空闲'); 
237 229
 }
238 230
 //签出
239 231
 function LogoutBack() {
240
-	signState=false
241 232
 	$("#top-search li i").removeClass("active");
242 233
 	$(".Login").addClass("active");
243 234
 	$(".zxzt").removeClass("bl").addClass("br");
@@ -265,7 +256,6 @@ function IncomingBack(data) {
265 256
 		hidTel=data.Number;
266 257
 		hidCallID=timestamp;
267 258
 	}
268
-	
269 259
 }
270 260
 
271 261
 //***************************************************
@@ -283,14 +273,6 @@ function DropCallBack() {
283 273
 	if(window.frames['iframe'+ hidCallID +'']){
284 274
 		 window.frames['iframe'+ hidCallID +''].$(".td-call").hide();
285 275
 	}
286
-	$(".tooltip_text").text("通话结束...");
287
-//	timeStrart=true;
288
-//	timeReg=true;
289
-//	testStart();
290
-//	setTimeout(function () {
291
-//		reg();
292
-//	}, 2000)
293
-
294 276
 }
295 277
 //线路状态通知
296 278
 function LineStateAgentBack(data) {
@@ -298,7 +280,6 @@ function LineStateAgentBack(data) {
298 280
 	//0分机不可用,1空闲,2摘机等待拨号,3正在拨号,4呼出振铃,5来电振铃,6通话中,7播放忙音中,8移除IP分机,9通话保持中
299 281
 	if(data.State == '0') {
300 282
 		$(".hwzt").text('分机不可用'); //左下角状态显示
301
-		//$(".fwzt").removeClass("br").removeClass("bl");
302 283
 		$(".fwzt").removeClass("bl").addClass("br");//20180509 by fanlongfei 增加话机状态灯
303 284
 		$(".zxzt").removeClass("bl").addClass("br");//20180509 by fanlongfei 增加坐席状态灯
304 285
 	}
@@ -310,11 +291,6 @@ function LineStateAgentBack(data) {
310 291
 			$(".zxzt").removeClass("bl").addClass("br");
311 292
 		}
312 293
 		else{
313
-			if (thjsTel) {
314
-				$(".tooltip_text").text("通话结束...");	
315
-				clearInter();
316
-				thjsTel=false;
317
-			}
318 294
 			$(".hwzt").text('空闲'); //左下角状态显示
319 295
 			$(".zxzt").removeClass("br").addClass("bl");
320 296
 		}
@@ -358,7 +334,6 @@ function LineStateAgentBack(data) {
358 334
 	}
359 335
 	if(data.State == '5') {
360 336
 		$(".hwzt").text('来电振铃'); //左下角状态显示
361
-		//$(".fwzt").removeClass("bl").addClass("br");
362 337
 		$(".fwzt").removeClass("br").addClass("bl");//20180509 by fanlongfei 增加话机状态灯
363 338
 		$(".zxzt").removeClass("bl").addClass("br");//20180509 by fanlongfei 增加坐席状态灯
364 339
 		if (hidTel && hidCallID) {
@@ -390,10 +365,8 @@ function LineStateAgentBack(data) {
390 365
 		$(".Transfer").addClass("active");
391 366
 		$(".Meeting").addClass("active");
392 367
 		if(data.CallDirection=="in"){
393
-//			if (objiframe.attr("data-id") == './callScreen/callScreen.html?tel=' + hidTel + '&CallID=' + hidCallID + '') {
394
-				setTimeout (window.frames['iframe'+ hidCallID +''].calling(),500);/*2018-05-19 zhangshuangnan 修改  ps: 因软电话设置为 自动应答 通话时间不计时问题*/
395
-//		    }
396
-		}
368
+			etTimeout (window.frames['iframe'+ hidCallID +''].calling(),500);/*2018-05-19 zhangshuangnan 修改  ps: 因软电话设置为 自动应答 通话时间不计时问题*/
369
+		} 
397 370
 	}
398 371
 	if(data.State == '7') {
399 372
 		$(".hwzt").text('播放忙音中'); //左下角状态显示
@@ -410,9 +383,32 @@ function toDub(i) {
410 383
 	return i < 10 ? "0" + i : "" + i;
411 384
 }
412 385
 //外呼
413
-function MakeCallBack() {
386
+function MakeCallBack(data) {
387
+	var makeCallPhone = $.cookie("makeCallPhone");
414 388
 	$("#top-search li i").removeClass("active");
415 389
 	$(".DropCall").addClass("active");
390
+	
391
+	//外呼弹屏
392
+	if(data.CallID!=0){
393
+		var p = '<a href="javascript:;" class="active J_menuTab" data-id="./callScreen/callScreen.html?tel=' + makeCallPhone + '&CallID=' + makeCallId + '">外呼弹屏' + makeCallPhone + ' <i class="fa fa-times-circle"></i></a>';
394
+		$(".J_menuTab").removeClass("active");
395
+		var nif = '<iframe class="J_iframe J_iframeNew" name="iframe'+ makeCallId  +'"  width="100%" height="100%" src="./callScreen/callScreen.html?Number=' + makeCallPhone + '&CallID=' + makeCallId + '&ActionID=' + data.ActionID + '" frameborder="0" data-id="./callScreen/callScreen.html?tel=' + makeCallPhone + '&CallID=' + makeCallId + '" seamless></iframe>';
396
+		$(".J_mainContent").find("iframe.J_iframe").hide().parents(".J_mainContent").append(nif);
397
+		$(".J_menuTabs .page-tabs-content").append(p);
398
+		hidTel=makeCallPhone;
399
+		hidCallID=makeCallId;
400
+		hidActionID=data.ActionID;
401
+	}else{
402
+		var timestamp = Date.parse(new Date());
403
+		var p = '<a href="javascript:;" class="active J_menuTab" data-id="./callScreen/callScreen.html?tel=' + makeCallPhone + '&CallID='+timestamp+'">外呼弹屏' + makeCallPhone + ' <i class="fa fa-times-circle"></i></a>';
404
+		$(".J_menuTab").removeClass("active");
405
+		var nif = '<iframe class="J_iframe J_iframeNew" name="iframe'+timestamp+'"  width="100%" height="100%" src="./callScreen/callScreen.html?Number=' + makeCallPhone + '&CallID='+timestamp+'" frameborder="0" data-id="./callScreen/callScreen.html?tel=' + makeCallPhone + '&CallID='+timestamp+'" seamless></iframe>';
406
+		$(".J_mainContent").find("iframe.J_iframe").hide().parents(".J_mainContent").append(nif);
407
+		$(".J_menuTabs .page-tabs-content").append(p);
408
+		hidTel=makeCallPhone;
409
+		hidCallID=timestamp;
410
+	}
411
+	setTimeout (window.frames['iframe'+ hidCallID +''].calling(),500);
416 412
 }
417 413
 
418 414
 //置忙置闲
@@ -423,6 +419,7 @@ function SetState(obj) {
423 419
 		$(".zxzt").removeClass("bl").addClass("br");
424 420
 		$(".hwzt").text('置忙');
425 421
 		$("#isml").val(1)
422
+
426 423
 	}
427 424
 	if(obj.State == '2') {
428 425
 		$(".SayBusy").addClass("active");
@@ -479,6 +476,10 @@ function SubScribeBack() {
479 476
 }
480 477
 //取消监测
481 478
 function SubScribeCancelBack() {
479
+//	var obj = $("iframe:visible")
480
+//	if(obj.attr("data-id") == "./TelCall/SeatMonitor.html") {
481
+//		window.frames[obj.attr("name")].();
482
+//	}
482 483
 	$('#content-main .J_iframeNew').each(function(i,n){
483 484
 		if($(this).attr('data-id') == "./TelCall/SeatMonitor.html"){
484 485
 			window.frames[$(this).attr("name")].Stop();
@@ -506,13 +507,8 @@ function LineStateBack(data) {
506 507
 //录音返回
507 508
 function RecordPathBack(data) {
508 509
 	$(".hidCallID").val(data.CallID);
509
-	//if ($(".hidTel").val() && $(".hidCallID").val()) {
510
-	//    $.post(huayi.config.callcenter_url + 'CallInScreen/UpdateLY', { callid: $(".hidCallID").val(),path:data.RecPath, "token": $.cookie("token") }, function (result) {
511
-	//        result = JSON.parse(result);
512
-	//        if (result.state.toLowerCase() == "success") {
513
-	//        }
514
-	//    })
515
-	//}
510
+	// 外呼返回CallId
511
+	makeCallId = data.CallID;
516 512
 	
517 513
 	if(hidTel) {
518 514
 		$.post(huayi.config.callcenter_url + 'CallInScreen/UpdateLY', {
@@ -542,4 +538,4 @@ function getNowFormatDate() {
542 538
 		" " + date.getHours() + seperator2 + date.getMinutes() +
543 539
 		seperator2 + date.getSeconds();
544 540
 	return currentdate;
545
-}
541
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 2395 - 0
CallCenterWeb.UI/js/paho-mqtt.js


+ 1 - 0
CallCenterWeb.UI/login.html

@@ -162,6 +162,7 @@
162 162
                         /*验证请求*/
163 163
                         if (data.state == "success") {
164 164
                             $.cookie("token", data.data.token, { expires: 7 });
165
+                            $.cookie("User",User, { expires: 7 })
165 166
                             $.cookie("extno", userSeat, { expires: 7 });
166 167
                             window.location.href = "index.html";
167 168
                         } else {