zhoufan 1 gadu atpakaļ
vecāks
revīzija
5cf59004f6

+ 16 - 4
midware-service/src/main/java/midware/service/eslclient/EslEventListener.java

@@ -32,6 +32,7 @@ public class EslEventListener implements IEslEventListener {
32 32
     @Override
33 33
     public void eventReceived(EslEvent event) {
34 34
         //System.out.println(1 + "|" + JSON.toJSONString(event));
35
+        //log.warn(1 + "|" + JSON.toJSONString(event));
35 36
 
36 37
         IRecordService iRecordService = SpringHelper.getBean(IRecordService.class);
37 38
         EslClientService eslClientService = SpringHelper.getBean(EslClientService.class);
@@ -211,6 +212,7 @@ public class EslEventListener implements IEslEventListener {
211 212
                                 record.setCallerAgent(callerAgent.getAgent());
212 213
                                 record.setGroupNo(callerAgent.getGroup());
213 214
                                 record.setOpType(callerAgent.getOpType());
215
+                                if (callerAgent.getOpType() == 1) callerAgent.setOpType(0);
214 216
                             }
215 217
                             record.setCallee(calleeNum);
216 218
                             if (calleeAgent != null) record.setCalleeAgent(calleeAgent.getAgent());
@@ -272,8 +274,17 @@ public class EslEventListener implements IEslEventListener {
272 274
                         uw.eq(Record::getId, chan.getRecordId()).set(Record::getRingTime, new Date());
273 275
                         iRecordService.updateBatch(uw);
274 276
                     }
277
+                    //签入视频话机外呼
278
+                    if(chan != null && chan.getSessionSort() == 1 && !session.isVideo()&& isVideo) {
279
+                        session.setVideo(true);
280
+                        uw = new LambdaUpdateWrapper<>();
281
+                        uw.eq(Record::getId, chan.getRecordId()).set(Record::getIsVideo, 1);
282
+                        iRecordService.updateBatch(uw);
283
+                    }
275 284
                     break;
276 285
                 case CHANNEL_ANSWER:
286
+                    if (callerNum.equals(chanNames[2])) {
287
+                    }
277 288
                     if (chan != null && !chan.isAnswer()) {
278 289
                         chan.setAnswer(true);
279 290
                         //呼出号码应答通知坐席
@@ -293,6 +304,7 @@ public class EslEventListener implements IEslEventListener {
293 304
                                 //会议第三方应答则将原会话加入会议
294 305
                                 if (values[0].equals("Meeting") && chan.getSessionSort() == 3) {
295 306
                                     eslClientService.talkJoinMeeting(chan.getSessionId());
307
+                                    eslClientService.setConferenceExitSound(chan.getSessionId(),true);
296 308
                                     session.setMeeting(true);
297 309
                                 }
298 310
                             }
@@ -305,7 +317,6 @@ public class EslEventListener implements IEslEventListener {
305 317
                             }
306 318
                             //呼出
307 319
                             if (session.getType() == 2 && !session.isAnswer()) {
308
-                                session.setVideo(isVideo);
309 320
                                 Agent callerAgent = EslCommon.getAgentByExten(callerNum);
310 321
                                 if (callerAgent != null) callerAgent.setAgentState(EslAgentNum.talking.ordinal());
311 322
                             }
@@ -340,8 +351,8 @@ public class EslEventListener implements IEslEventListener {
340 351
                             }
341 352
 
342 353
                             uw = new LambdaUpdateWrapper<>();
343
-                            uw.set(Record::getRecordPath, chan.getRecordPath()).set(Record::getIsVideo, session.isVideo() ? 1 : 0)
344
-                                    .set(Record::getAnswerTime, new Date()).set(Record::getIsAnswer, 1);
354
+                            uw.set(Record::getRecordPath, chan.getRecordPath()).set(Record::getAnswerTime, new Date())
355
+                                    .set(Record::getIsAnswer, 1);
345 356
                             uw.eq(Record::getId, chan.getRecordId());
346 357
                             iRecordService.updateBatch(uw);
347 358
 
@@ -406,7 +417,7 @@ public class EslEventListener implements IEslEventListener {
406 417
                             if (agent.getOpType() == 4) {
407 418
                                 isupdate = false;
408 419
                             }
409
-                            agent.setOpType(0);
420
+                            if (agent.getOpType() > 1) agent.setOpType(0);
410 421
                         }
411 422
                     }
412 423
 
@@ -472,6 +483,7 @@ public class EslEventListener implements IEslEventListener {
472 483
     @Override
473 484
     public void backgroundJobResultReceived(EslEvent event) {
474 485
         //System.out.println(2 + "|" + JSON.toJSONString(event));
486
+        //log.warn(2 + "|" + JSON.toJSONString(event));
475 487
 
476 488
         String bodys = event.getEventBodyLines().size() > 0 ? event.getEventBodyLines().get(0) : "";
477 489
         String uuid = event.getEventHeaders().get("Job-UUID");