zhoufan vor 9 Monaten
Ursprung
Commit
c976e3b657

+ 1 - 1
midware-service/src/main/java/midware/service/eslclient/EslEventListenerEvent.java

365
                             if (agent1 != null) agent1.setAgentState(EslAgentEnum.talking.ordinal());
365
                             if (agent1 != null) agent1.setAgentState(EslAgentEnum.talking.ordinal());
366
                         }
366
                         }
367
                         break;
367
                         break;
368
-                    case CHANNEL_HANGUP_COMPLETE:
368
+                    case CHANNEL_HANGUP:
369
                         if (chan != null) {
369
                         if (chan != null) {
370
                             String sid = chan.getSessionId();
370
                             String sid = chan.getSessionId();
371
                             if (session == null) session = EslCommon.getSessionById(sid);
371
                             if (session == null) session = EslCommon.getSessionById(sid);

+ 69 - 68
midware-service/src/main/java/midware/service/init/EslClientService.java

56
                 try {
56
                 try {
57
                     if (EslCommon.agents.size() > 0) {
57
                     if (EslCommon.agents.size() > 0) {
58
                         for (Agent a : EslCommon.agents) {
58
                         for (Agent a : EslCommon.agents) {
59
-                            logout(a.getAgent(), a.getGroup(),"");
59
+                            logout(a.getAgent(), a.getGroup(), "");
60
                             a.setAgentState(EslAgentEnum.logout.ordinal());
60
                             a.setAgentState(EslAgentEnum.logout.ordinal());
61
                         }
61
                         }
62
-                        EslCommon.agents=new ArrayList<>();
62
+                        EslCommon.agents = new ArrayList<>();
63
                     }
63
                     }
64
 
64
 
65
                     client.connect(config.getHost(), config.getPort(), config.getPassword(), config.getTimeout());
65
                     client.connect(config.getHost(), config.getPort(), config.getPassword(), config.getTimeout());
80
                     //扫描已注册的分机
80
                     //扫描已注册的分机
81
                     scanExten();
81
                     scanExten();
82
                     //设置中间件根目录
82
                     //设置中间件根目录
83
-                    String path=new File("").getAbsolutePath();
84
-                    client.sendAsyncApiCommand(EslCommandEnum.global_setvar.name(), "md_base_dir=" +path );
83
+                    String path = new File("").getAbsolutePath();
84
+                    client.sendAsyncApiCommand(EslCommandEnum.global_setvar.name(), "md_base_dir=" + path);
85
                 } catch (Exception e) {
85
                 } catch (Exception e) {
86
                     log.error("fs reConnect Exception", e);
86
                     log.error("fs reConnect Exception", e);
87
                 }
87
                 }
94
             //扫描已注册的分机
94
             //扫描已注册的分机
95
             scanExten();
95
             scanExten();
96
             //设置中间件根目录
96
             //设置中间件根目录
97
-            String path=new File("").getAbsolutePath();
98
-            client.sendAsyncApiCommand(EslCommandEnum.global_setvar.name(), "md_base_dir=" +path );
97
+            String path = new File("").getAbsolutePath();
98
+            client.sendAsyncApiCommand(EslCommandEnum.global_setvar.name(), "md_base_dir=" + path);
99
         }
99
         }
100
 
100
 
101
         EslCommon.checkAuth();
101
         EslCommon.checkAuth();
105
     public void destroy() {
105
     public void destroy() {
106
         if (EslCommon.agents.size() > 0) {
106
         if (EslCommon.agents.size() > 0) {
107
             for (Agent a : EslCommon.agents) {
107
             for (Agent a : EslCommon.agents) {
108
-                logout(a.getAgent(), a.getGroup(),"");
108
+                logout(a.getAgent(), a.getGroup(), "");
109
                 a.setAgentState(EslAgentEnum.logout.ordinal());
109
                 a.setAgentState(EslAgentEnum.logout.ordinal());
110
             }
110
             }
111
-            EslCommon.agents=new ArrayList<>();
111
+            EslCommon.agents = new ArrayList<>();
112
         }
112
         }
113
     }
113
     }
114
 
114
 
182
     }
182
     }
183
 
183
 
184
     //坐席签入
184
     //坐席签入
185
-    public boolean login(String agent, String ext, String group,String action) {
185
+    public boolean login(String agent, String ext, String group, String action) {
186
         String result = "";
186
         String result = "";
187
         try {
187
         try {
188
             String command = EslCommandEnum.callcenter_config.name();
188
             String command = EslCommandEnum.callcenter_config.name();
216
             // 添加梯队到队列等价于坐席组
216
             // 添加梯队到队列等价于坐席组
217
             group = StringHelper.isEmpty(group) ? "ZXZ" : group;
217
             group = StringHelper.isEmpty(group) ? "ZXZ" : group;
218
             arg = " tier add " + group + " " + agent + " 1 1"
218
             arg = " tier add " + group + " " + agent + " 1 1"
219
-                    +"\r\nJob-UUID:" + action + "|"+ System.currentTimeMillis();
219
+                    + "\r\nJob-UUID:" + action + "|" + System.currentTimeMillis();
220
             client.sendAsyncApiCommand(command, arg);
220
             client.sendAsyncApiCommand(command, arg);
221
-            
221
+
222
         } catch (Exception e) {
222
         } catch (Exception e) {
223
             log.error(agent + "|" + ext + "|" + group + " 签入失败", e);
223
             log.error(agent + "|" + ext + "|" + group + " 签入失败", e);
224
         }
224
         }
226
     }
226
     }
227
 
227
 
228
     //坐席签出
228
     //坐席签出
229
-    public boolean logout(String agent, String group,String action) {
229
+    public boolean logout(String agent, String group, String action) {
230
         String result = "";
230
         String result = "";
231
         try {
231
         try {
232
             String command = EslCommandEnum.callcenter_config.name();
232
             String command = EslCommandEnum.callcenter_config.name();
236
             // 删除梯队
236
             // 删除梯队
237
             group = StringHelper.isEmpty(group) ? "ZXZ" : group;
237
             group = StringHelper.isEmpty(group) ? "ZXZ" : group;
238
             arg = " tier del " + group + " " + agent
238
             arg = " tier del " + group + " " + agent
239
-                    +"\r\nJob-UUID:" + action + "|"+ System.currentTimeMillis();
239
+                    + "\r\nJob-UUID:" + action + "|" + System.currentTimeMillis();
240
             client.sendAsyncApiCommand(command, arg);
240
             client.sendAsyncApiCommand(command, arg);
241
-            
241
+
242
         } catch (Exception e) {
242
         } catch (Exception e) {
243
             log.error(agent + "|" + group + " 签出失败", e);
243
             log.error(agent + "|" + group + " 签出失败", e);
244
         }
244
         }
246
     }
246
     }
247
 
247
 
248
     //坐席置忙/置闲
248
     //坐席置忙/置闲
249
-    public boolean setWork(String agent, boolean isWork,String action) {
249
+    public boolean setWork(String agent, boolean isWork, String action) {
250
         String result = "";
250
         String result = "";
251
         try {
251
         try {
252
             String command = EslCommandEnum.callcenter_config.name();
252
             String command = EslCommandEnum.callcenter_config.name();
253
             String state = isWork ? "'Available'" : "'On Break'";
253
             String state = isWork ? "'Available'" : "'On Break'";
254
             String arg = " agent set status " + agent + " " + state
254
             String arg = " agent set status " + agent + " " + state
255
-                    +"\r\nJob-UUID:" + action + "|"+ System.currentTimeMillis();
255
+                    + "\r\nJob-UUID:" + action + "|" + System.currentTimeMillis();
256
             result = client.sendAsyncApiCommand(command, arg);
256
             result = client.sendAsyncApiCommand(command, arg);
257
-            
257
+
258
         } catch (Exception e) {
258
         } catch (Exception e) {
259
             String state = isWork ? "置闲" : "置忙";
259
             String state = isWork ? "置闲" : "置忙";
260
             log.error(agent + "|" + isWork + " " + state + "失败", e);
260
             log.error(agent + "|" + isWork + " " + state + "失败", e);
263
     }
263
     }
264
 
264
 
265
     //删除
265
     //删除
266
-    public boolean kill(String chanId,String action) {
266
+    public boolean kill(String chanId, String action) {
267
         String result = "";
267
         String result = "";
268
         try {
268
         try {
269
             result = client.sendAsyncApiCommand(EslCommandEnum.uuid_kill.name(), chanId
269
             result = client.sendAsyncApiCommand(EslCommandEnum.uuid_kill.name(), chanId
270
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis());
270
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis());
271
-            
271
+
272
         } catch (Exception e) {
272
         } catch (Exception e) {
273
             log.error(chanId + " 删除失败", e);
273
             log.error(chanId + " 删除失败", e);
274
         }
274
         }
280
         String result = "";
280
         String result = "";
281
         try {
281
         try {
282
             String command = EslCommandEnum.uuid_broadcast.name();
282
             String command = EslCommandEnum.uuid_broadcast.name();
283
-            String arg = chanId + " hangup::NORMAL_CLEARING" ;
283
+            String arg = chanId + " hangup::NORMAL_CLEARING";
284
             result = client.sendAsyncApiCommand(command, arg);
284
             result = client.sendAsyncApiCommand(command, arg);
285
         } catch (Exception e) {
285
         } catch (Exception e) {
286
-            log.error( chanId + " app挂断失败", e);
286
+            log.error(chanId + " app挂断失败", e);
287
         }
287
         }
288
         return !result.equals("");
288
         return !result.equals("");
289
     }
289
     }
290
 
290
 
291
     //分机呼叫
291
     //分机呼叫
292
-    public boolean extenCall(String callerNum, String calleeNum,String action) {
292
+    public boolean extenCall(String callerNum, String calleeNum, String action) {
293
         String result = "";
293
         String result = "";
294
         try {
294
         try {
295
             String fix = action.substring(action.lastIndexOf("|") + 1);
295
             String fix = action.substring(action.lastIndexOf("|") + 1);
313
     }
313
     }
314
 
314
 
315
     //呼叫2个号码并桥接
315
     //呼叫2个号码并桥接
316
-    public boolean bridgeNum(String callerNum, String calleeNum,String action) {
316
+    public boolean bridgeNum(String callerNum, String calleeNum, String action) {
317
         String result = "";
317
         String result = "";
318
         try {
318
         try {
319
             String command = EslCommandEnum.originate.name();
319
             String command = EslCommandEnum.originate.name();
320
             String arg = " {call_caller=" + callerNum + ",call_callee=" + calleeNum + ",call_type=2"
320
             String arg = " {call_caller=" + callerNum + ",call_callee=" + calleeNum + ",call_type=2"
321
-                    + getOrigination(calleeNum) +"}"+ getCallString(callerNum)
321
+                    + getOrigination(calleeNum) + "}" + getCallString(callerNum)
322
                     + " &bridge({call_caller=" + callerNum + getOrigination(calleeNum)
322
                     + " &bridge({call_caller=" + callerNum + getOrigination(calleeNum)
323
                     + "}" + getCallString(calleeNum) + ")"
323
                     + "}" + getCallString(calleeNum) + ")"
324
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
324
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
331
     }
331
     }
332
 
332
 
333
     //协商呼叫
333
     //协商呼叫
334
-    public boolean consult(String chanId, String callerNum,String calleeNum,String action) {
334
+    public boolean consult(String chanId, String callerNum, String calleeNum, String action) {
335
         String result = "";
335
         String result = "";
336
         try {
336
         try {
337
-            String fix = action.substring(action.lastIndexOf("|")+1);
337
+            String fix = action.substring(action.lastIndexOf("|") + 1);
338
             String command = EslCommandEnum.uuid_broadcast.name();
338
             String command = EslCommandEnum.uuid_broadcast.name();
339
             String arg = chanId + " att_xfer::{origination_caller_id_number=12356,record_concat_video=true"
339
             String arg = chanId + " att_xfer::{origination_caller_id_number=12356,record_concat_video=true"
340
                     + ",call_caller=" + callerNum + ",call_callee=" + calleeNum.substring(fix.length()) + "}" + getCallString(calleeNum)
340
                     + ",call_caller=" + callerNum + ",call_callee=" + calleeNum.substring(fix.length()) + "}" + getCallString(calleeNum)
341
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
341
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
342
             result = client.sendAsyncApiCommand(command, arg);
342
             result = client.sendAsyncApiCommand(command, arg);
343
-            
343
+
344
         } catch (Exception e) {
344
         } catch (Exception e) {
345
             log.error(chanId + "|" + calleeNum + " 协商呼叫失败", e);
345
             log.error(chanId + "|" + calleeNum + " 协商呼叫失败", e);
346
         }
346
         }
348
     }
348
     }
349
 
349
 
350
     //强插
350
     //强插
351
-    public boolean insert(String callerNum,String calleeNum, String sessionId,String action) {
351
+    public boolean insert(String callerNum, String calleeNum, String sessionId, String action) {
352
         String result = "";
352
         String result = "";
353
         try {
353
         try {
354
             String command = EslCommandEnum.originate.name();
354
             String command = EslCommandEnum.originate.name();
363
     }
363
     }
364
 
364
 
365
     //强截
365
     //强截
366
-    public boolean intercept(String callerNum,String calleeNum, String chanId,String sessionId,String action) {
366
+    public boolean intercept(String callerNum, String calleeNum, String chanId, String sessionId, String action) {
367
         String result = "";
367
         String result = "";
368
         try {
368
         try {
369
             Session session = EslCommon.getSessionById(sessionId);
369
             Session session = EslCommon.getSessionById(sessionId);
380
     }
380
     }
381
 
381
 
382
     //监听
382
     //监听
383
-    public boolean listen(String callerNum,String calleeNum, String sessionId,String action) {
383
+    public boolean listen(String callerNum, String calleeNum, String sessionId, String action) {
384
         String result = "";
384
         String result = "";
385
         try {
385
         try {
386
             String command = EslCommandEnum.originate.name();
386
             String command = EslCommandEnum.originate.name();
387
-            String arg = " {origination_caller_id_number=" + callerNum+ ",cc_member_session_uuid=" + sessionId
388
-                    + ",absolute_codec_string='PCMA,PCMU',call_callee=" + calleeNum+ "}user/" + callerNum + " &eavesdrop(" + sessionId + ")"
387
+            String arg = " {origination_caller_id_number=" + callerNum + ",cc_member_session_uuid=" + sessionId
388
+                    + ",absolute_codec_string='PCMA,PCMU',call_callee=" + calleeNum + "}user/" + callerNum + " &eavesdrop(" + sessionId + ")"
389
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
389
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
390
             result = client.sendAsyncApiCommand(command, arg);
390
             result = client.sendAsyncApiCommand(command, arg);
391
-            
391
+
392
         } catch (Exception e) {
392
         } catch (Exception e) {
393
             log.error(callerNum + "|" + sessionId + " 监听失败", e);
393
             log.error(callerNum + "|" + sessionId + " 监听失败", e);
394
         }
394
         }
426
             try {
426
             try {
427
                 Integer.parseInt(agent);
427
                 Integer.parseInt(agent);
428
                 at = agent.replaceAll("(.)", " $1").substring(1);
428
                 at = agent.replaceAll("(.)", " $1").substring(1);
429
-            } catch (Exception ex) { }
429
+            } catch (Exception ex) {
430
+            }
430
 
431
 
431
             String path = TtsHelper.TextToSpeechAgent("你好," + at + "号话务员为您服务", agent);
432
             String path = TtsHelper.TextToSpeechAgent("你好," + at + "号话务员为您服务", agent);
432
             String arg = chanId + " playback::" + path + " both";
433
             String arg = chanId + " playback::" + path + " both";
482
     }
483
     }
483
 
484
 
484
     //放音收号
485
     //放音收号
485
-    public boolean playAndGetDigits(String path,String var, String chanId) {
486
+    public boolean playAndGetDigits(String path, String var, String chanId) {
486
         String result = "";
487
         String result = "";
487
         try {
488
         try {
488
             String command = EslCommandEnum.uuid_broadcast.name();
489
             String command = EslCommandEnum.uuid_broadcast.name();
498
     }
499
     }
499
 
500
 
500
     //放音识别
501
     //放音识别
501
-    public boolean playAndDetectSpeech(String path,String var,  String chanId) {
502
+    public boolean playAndDetectSpeech(String path, String var, String chanId) {
502
         String result = "";
503
         String result = "";
503
         try {
504
         try {
504
             String command = EslCommandEnum.uuid_broadcast.name();
505
             String command = EslCommandEnum.uuid_broadcast.name();
519
         String result = "";
520
         String result = "";
520
         try {
521
         try {
521
             String command = EslCommandEnum.uuid_break.name();
522
             String command = EslCommandEnum.uuid_break.name();
522
-            String arg = chanId ;
523
+            String arg = chanId;
523
             result = client.sendAsyncApiCommand(command, arg);
524
             result = client.sendAsyncApiCommand(command, arg);
524
         } catch (Exception e) {
525
         } catch (Exception e) {
525
-            log.error( chanId + " 暂停播放语音失败", e);
526
+            log.error(chanId + " 暂停播放语音失败", e);
526
         }
527
         }
527
         return !result.equals("");
528
         return !result.equals("");
528
     }
529
     }
529
 
530
 
530
     //语音识别
531
     //语音识别
531
-    public boolean funasr(String chanId,boolean isAsr) {
532
+    public boolean funasr(String chanId, boolean isAsr) {
532
         String result = "";
533
         String result = "";
533
         try {
534
         try {
534
             String command = EslCommandEnum.uuid_audio_stream.name();
535
             String command = EslCommandEnum.uuid_audio_stream.name();
542
             params.put("hotwords", null);
543
             params.put("hotwords", null);
543
             String arg = "";
544
             String arg = "";
544
             if (isAsr) {
545
             if (isAsr) {
545
-                String url=SpringHelper.getRequiredProperty("common.funasr");
546
+                String url = SpringHelper.getRequiredProperty("common.funasr");
546
                 arg = chanId + " start " + url + " mono 16k " + JSON.toJSONString(params);
547
                 arg = chanId + " start " + url + " mono 16k " + JSON.toJSONString(params);
547
             } else {
548
             } else {
548
                 arg = chanId + " stop " + JSON.toJSONString(params);
549
                 arg = chanId + " stop " + JSON.toJSONString(params);
576
     }
577
     }
577
 
578
 
578
     //呼叫号码加入会议
579
     //呼叫号码加入会议
579
-    public boolean callJoinMeeting(String callerNum, String calleeNum, String meetingId,String action) {
580
+    public boolean callJoinMeeting(String callerNum, String calleeNum, String meetingId, String action) {
580
         String result = "";
581
         String result = "";
581
         try {
582
         try {
582
             String fix = action.substring(action.lastIndexOf("|") + 1);
583
             String fix = action.substring(action.lastIndexOf("|") + 1);
593
 
594
 
594
             String arg = " {cc_member_session_uuid=" + meetingId
595
             String arg = " {cc_member_session_uuid=" + meetingId
595
                     + getOrigination(calleeNum)
596
                     + getOrigination(calleeNum)
596
-                    + ",call_callee=" + calleeNum.substring(fix.length())+",call_caller=" + callerNum
597
+                    + ",call_callee=" + calleeNum.substring(fix.length()) + ",call_caller=" + callerNum
597
                     + ",transfer_ringback=local_stream://moh,ringback=local_stream://moh"
598
                     + ",transfer_ringback=local_stream://moh,ringback=local_stream://moh"
598
                     + argstr + "}" + getCallString(calleeNum)
599
                     + argstr + "}" + getCallString(calleeNum)
599
                     // + " " + meetingId + " xml ExtenMeeting";
600
                     // + " " + meetingId + " xml ExtenMeeting";
608
     }
609
     }
609
 
610
 
610
     //开启/关闭静音
611
     //开启/关闭静音
611
-    public boolean setMute(String chanId, boolean isMute,String action) {
612
+    public boolean setMute(String chanId, boolean isMute, String action) {
612
         String result = "";
613
         String result = "";
613
         try {
614
         try {
614
             String command = EslCommandEnum.uuid_audio.name();
615
             String command = EslCommandEnum.uuid_audio.name();
615
             String arg = chanId + (isMute ? " start" : " stop") + " write mute -4"
616
             String arg = chanId + (isMute ? " start" : " stop") + " write mute -4"
616
-                    +"\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
617
+                    + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
617
             result = client.sendAsyncApiCommand(command, arg);
618
             result = client.sendAsyncApiCommand(command, arg);
618
 
619
 
619
         } catch (Exception e) {
620
         } catch (Exception e) {
624
     }
625
     }
625
 
626
 
626
     //开启/关闭保持
627
     //开启/关闭保持
627
-    public boolean setHold(String chanId, boolean isHold,String action) {
628
+    public boolean setHold(String chanId, boolean isHold, String action) {
628
         String result = "";
629
         String result = "";
629
         try {
630
         try {
630
             String command = EslCommandEnum.uuid_hold.name();
631
             String command = EslCommandEnum.uuid_hold.name();
640
     }
641
     }
641
 
642
 
642
     //录音
643
     //录音
643
-    public boolean record(String chanId, String filePath,boolean isRecord) {
644
+    public boolean record(String chanId, String filePath, boolean isRecord) {
644
         String result = "";
645
         String result = "";
645
         try {
646
         try {
646
             String command = EslCommandEnum.uuid_record.name();
647
             String command = EslCommandEnum.uuid_record.name();
669
     }
670
     }
670
 
671
 
671
     //转满意度
672
     //转满意度
672
-    public boolean transferMyd(String chanId,String action) {
673
+    public boolean transferMyd(String chanId, String action) {
673
         String result = "";
674
         String result = "";
674
         try {
675
         try {
675
             String command = EslCommandEnum.uuid_transfer.name();
676
             String command = EslCommandEnum.uuid_transfer.name();
676
             //String arg = chanId + " turnmyd xml ForExten";
677
             //String arg = chanId + " turnmyd xml ForExten";
677
             String arg = chanId + " 'set:hangup_after_bridge=false,ivr:myd' inline"
678
             String arg = chanId + " 'set:hangup_after_bridge=false,ivr:myd' inline"
678
-                    +"\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
679
+                    + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
679
             result = client.sendAsyncApiCommand(command, arg);
680
             result = client.sendAsyncApiCommand(command, arg);
680
-            
681
+
681
         } catch (Exception e) {
682
         } catch (Exception e) {
682
             log.error(chanId + " 转满意度失败", e);
683
             log.error(chanId + " 转满意度失败", e);
683
         }
684
         }
685
     }
686
     }
686
 
687
 
687
     //转移号码
688
     //转移号码
688
-    public boolean transfer(String chanId,String callerNum, String calleeNum,String action) {
689
+    public boolean transfer(String chanId, String callerNum, String calleeNum, String action) {
689
         String result = "";
690
         String result = "";
690
         try {
691
         try {
691
             String fix = action.substring(action.lastIndexOf("|") + 1);
692
             String fix = action.substring(action.lastIndexOf("|") + 1);
710
     }
711
     }
711
 
712
 
712
     //发送按键
713
     //发送按键
713
-    public boolean sendDtmf(String chanId, String dtmf,String action) {
714
+    public boolean sendDtmf(String chanId, String dtmf, String action) {
714
         String result = "";
715
         String result = "";
715
         try {
716
         try {
716
             String command = EslCommandEnum.uuid_send_dtmf.name();
717
             String command = EslCommandEnum.uuid_send_dtmf.name();
717
             String arg = chanId + " " + dtmf
718
             String arg = chanId + " " + dtmf
718
-                    +"\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
719
+                    + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
719
             result = client.sendAsyncApiCommand(command, arg);
720
             result = client.sendAsyncApiCommand(command, arg);
720
-            
721
+
721
         } catch (Exception e) {
722
         } catch (Exception e) {
722
             log.error(chanId + "|" + dtmf + " 发送按键失败", e);
723
             log.error(chanId + "|" + dtmf + " 发送按键失败", e);
723
         }
724
         }
748
             String command = EslCommandEnum.conference.name();
749
             String command = EslCommandEnum.conference.name();
749
             String arg = meetingId + " exit_sound " + (isplay ? "on" : "off");
750
             String arg = meetingId + " exit_sound " + (isplay ? "on" : "off");
750
             result = client.sendAsyncApiCommand(command, arg);
751
             result = client.sendAsyncApiCommand(command, arg);
751
-            
752
+
752
         } catch (Exception e) {
753
         } catch (Exception e) {
753
             log.error(meetingId + "|" + isplay + " 设置会议离开失败", e);
754
             log.error(meetingId + "|" + isplay + " 设置会议离开失败", e);
754
         }
755
         }
756
     }
757
     }
757
 
758
 
758
     //设置会议人员是否静音
759
     //设置会议人员是否静音
759
-    public boolean setConferenceIsMute(String meetingId, String chanId, boolean isMute,String action) {
760
+    public boolean setConferenceIsMute(String meetingId, String chanId, boolean isMute, String action) {
760
         String result = "";
761
         String result = "";
761
         try {
762
         try {
762
             String memberId = getConferenceMemberId(meetingId, chanId);
763
             String memberId = getConferenceMemberId(meetingId, chanId);
784
     }
785
     }
785
 
786
 
786
     //自动外呼
787
     //自动外呼
787
-    public boolean autoCall(String callerNum, String calleeNum,String taskId,String phoneId) {
788
+    public boolean autoCall(String callerNum, String calleeNum, String taskId, String phoneId) {
788
         String result = "";
789
         String result = "";
789
         try {
790
         try {
790
             String command = EslCommandEnum.originate.name();
791
             String command = EslCommandEnum.originate.name();
810
         return !result.equals("");
811
         return !result.equals("");
811
     }
812
     }
812
 
813
 
813
-    public boolean appCommand(String chanId,String command, String arg) {
814
+    public boolean appCommand(String chanId, String command, String arg) {
814
         try {
815
         try {
815
-            SendMsg sm=new SendMsg(chanId);
816
+            SendMsg sm = new SendMsg(chanId);
816
             sm.addCallCommand("execute");
817
             sm.addCallCommand("execute");
817
             sm.addExecuteAppName(command);
818
             sm.addExecuteAppName(command);
818
             sm.addExecuteAppArg(arg);
819
             sm.addExecuteAppArg(arg);
826
     //源号码
827
     //源号码
827
     private String getOrigination(String calleeNum) {
828
     private String getOrigination(String calleeNum) {
828
         String str = "";
829
         String str = "";
829
-        String origination= SpringHelper.getRequiredProperty("common.gateway.origination");
830
+        String origination = SpringHelper.getRequiredProperty("common.gateway.origination");
830
         if (!EslCommon.existExten(calleeNum) && StringHelper.isNotEmpty(origination)) {
831
         if (!EslCommon.existExten(calleeNum) && StringHelper.isNotEmpty(origination)) {
831
             str = ",origination_caller_id_number=" + origination;
832
             str = ",origination_caller_id_number=" + origination;
832
         }
833
         }
839
         String callStr = "user/" + calleeNum;
840
         String callStr = "user/" + calleeNum;
840
         //呼叫外线号码
841
         //呼叫外线号码
841
         if (!EslCommon.existExten(calleeNum)) {
842
         if (!EslCommon.existExten(calleeNum)) {
842
-            String register= SpringHelper.getRequiredProperty("common.gateway.register");
843
+            String register = SpringHelper.getRequiredProperty("common.gateway.register");
843
             if (StringHelper.isNotEmpty(register)) {
844
             if (StringHelper.isNotEmpty(register)) {
844
-                callStr = "sofia/internal/" + calleeNum + "@" + register;
845
-
846
-//            //注册网关
847
-//            EslMessage message = client.sendSyncApiCommand("sofia_contact", "9400");
848
-//            if (message != null && message.getBodyLines().size() > 0) {
849
-//                String gwip = message.getBodyLines().get(0);
850
-//                callStr = "sofia/internal/" + calleeNum + gwip.substring(gwip.indexOf("@"));
851
-//            }
845
+                //callStr = "sofia/internal/" + calleeNum + "@" + register;
846
+
847
+                //注册网关
848
+                EslMessage message = client.sendSyncApiCommand("sofia_contact", register);
849
+                if (message != null && message.getBodyLines().size() > 0) {
850
+                    String gwip = message.getBodyLines().get(0);
851
+                    callStr = "sofia/internal/" + calleeNum + gwip.substring(gwip.indexOf("@"));
852
+                }
852
 
853
 
853
             } else {
854
             } else {
854
                 callStr = "sofia/gateway/hykj/" + calleeNum;
855
                 callStr = "sofia/gateway/hykj/" + calleeNum;

+ 2 - 1
midware-util/src/main/java/midware/util/enums/EslEventEnum.java

6
     CHANNEL_PROGRESS_MEDIA("媒体进度"),
6
     CHANNEL_PROGRESS_MEDIA("媒体进度"),
7
     CHANNEL_ANSWER("接听"),
7
     CHANNEL_ANSWER("接听"),
8
     CHANNEL_BRIDGE("桥接"),
8
     CHANNEL_BRIDGE("桥接"),
9
-    CHANNEL_HANGUP_COMPLETE("挂机完成"),
9
+    CHANNEL_HANGUP("挂机"),
10
+    //CHANNEL_HANGUP_COMPLETE("挂机完成"),
10
     //CHANNEL_HOLD("保持"),
11
     //CHANNEL_HOLD("保持"),
11
     //CHANNEL_UNHOLD("接回"),
12
     //CHANNEL_UNHOLD("接回"),
12
     //CHANNEL_EXECUTE_COMPLETE("执行完成"),
13
     //CHANNEL_EXECUTE_COMPLETE("执行完成"),