zhoufan 1 год назад
Родитель
Сommit
3f6e4be5ea

+ 11 - 7
midware-api/src/main/resources/application-dev.yml

@@ -1,12 +1,11 @@
1 1
 server:
2 2
   port: 9000
3
-swagger: true
4 3
 
5 4
 spring:
6 5
   datasource:
7 6
     type: com.alibaba.druid.pool.DruidDataSource
8 7
     driver-class-name: com.mysql.cj.jdbc.Driver
9
-    url: jdbc:mysql://192.168.1.200:3306/midware?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
8
+    url: jdbc:mysql://192.168.1.200:3306/hjzx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
10 9
     username: root
11 10
     password: 800100
12 11
 
@@ -30,17 +29,22 @@ spring:
30 29
     timeout: 20
31 30
 
32 31
 common:
32
+  gateway:
33
+    #注册网关
34
+    register:
35
+    #源号码
36
+    origination:
33 37
   tts:
34 38
     #modelscope/ekho
35 39
     type: modelscope
36
-    url: http://192.168.1.17:8000/call
40
+    url: http://192.168.1.81:8000/call
37 41
 
38 42
   ai:
39
-    llm: http://192.168.1.40:7861/chat/chat
40
-    zsk: http://192.168.1.40:7861/chat/kb_chat
41
-    sjk: http://192.168.1.40:7861/chat/db_chat
43
+    llm: http://192.168.1.89:7861/chat/chat
44
+    zsk: http://192.168.1.89:7861/chat/kb_chat
45
+    sjk: http://192.168.1.89:7861/chat/db_chat
42 46
     es: http://192.168.1.15:8800/km/doc/getLastInfo
43 47
 
44
-  funasr: ws://192.168.1.40:10095
48
+  funasr: ws://192.168.1.89:10095
45 49
   #funasr/mrcp
46 50
   asr: funasr

+ 20 - 12
midware-api/src/main/resources/application-production.yml

@@ -1,42 +1,50 @@
1 1
 server:
2 2
   port: 9000
3
-swagger: false
4 3
 
5 4
 spring:
6 5
   datasource:
7 6
     type: com.alibaba.druid.pool.DruidDataSource
8 7
     driver-class-name: com.mysql.cj.jdbc.Driver
9
-    url: jdbc:mysql://172.16.20.169:3306/kfyy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
10
-    username: kfyy
11
-    password: 29oBbf6rVhAc0xdk
8
+    url: jdbc:mysql://127.0.0.1:3306/xlrx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
9
+    username: root
10
+    password: Mb@DH1i{Y[cmH6[PW4TMziL}Y~f1+2(i
12 11
 
13 12
   redis:
14 13
     # 地址
15
-    host: 172.16.20.169
14
+    host: 127.0.0.1
16 15
     # 端口,默认为6379
17 16
     port: 6379
18 17
     # 数据库索引
19 18
     database: 7
20 19
     # 密码
21
-    password: iVDOLix2bCC21ZEY
20
+    password: DZFs0EFzMORZfpNx5tb1lpEwGZjSWjB1
22 21
     # 连接超时时间
23 22
     timeout: 10s
24 23
 
25 24
   freeswitch:
26 25
     #不在一台服务器时修改为具体ip
27
-    host: 0.0.0.0
26
+    host: 127.0.0.1
28 27
     port: 8021
29
-    password: irFNj6snoWpxGIhF
28
+    password: 123456
30 29
     timeout: 20
31 30
 
32 31
 common:
32
+  gateway:
33
+    #注册网关
34
+    register:
35
+    #源号码
36
+    origination:
33 37
   tts:
34 38
     #modelscope/ekho
35 39
     type: modelscope
36
-    url: http://192.168.1.17:8000/call
40
+    url: http://192.168.1.81:8000/call
37 41
 
38 42
   ai:
39
-    zsk: http://192.168.1.40:7861/chat/kb_chat
40
-    sjk: http://192.168.1.40:7861/db_base/search_db
43
+    llm: http://192.168.1.89:7861/chat/chat
44
+    zsk: http://192.168.1.89:7861/chat/kb_chat
45
+    sjk: http://192.168.1.89:7861/chat/db_chat
46
+    es: http://192.168.1.15:8800/km/doc/getLastInfo
41 47
 
42
-  funasr: ws://192.168.1.40:10095
48
+  funasr: ws://192.168.1.89:10095
49
+  #funasr/mrcp
50
+  asr: funasr

+ 2 - 0
midware-service/src/main/java/midware/service/eslclient/EslEventListenerCustom.java

@@ -25,6 +25,8 @@ public class EslEventListenerCustom implements IEslEventListener {
25 25
     @Override
26 26
     public void eventReceived(EslEvent event) {
27 27
 
28
+        if(EslCommon.auth.isExpire()) return;
29
+        
28 30
         String eventname = event.getEventName();
29 31
 
30 32
         Map<String, String> header = event.getEventHeaders();

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

@@ -36,6 +36,8 @@ public class EslEventListenerEvent implements IEslEventListener {
36 36
         //System.out.println(1 + "|" + JSON.toJSONString(event));
37 37
         //log.warn(1 + "|" + JSON.toJSONString(event));
38 38
 
39
+        if(EslCommon.auth.isExpire()) return;
40
+
39 41
         String eventname = event.getEventName();
40 42
 
41 43
         Map<String, String> header = event.getEventHeaders();
@@ -57,6 +59,8 @@ public class EslEventListenerEvent implements IEslEventListener {
57 59
                 String chanId = header.get("Unique-ID");
58 60
                 // 获取主叫
59 61
                 String callerNum = header.get("Caller-Caller-ID-Number");
62
+                String caller = header.get("variable_call_caller");
63
+                if (StringHelper.isNotEmpty(caller))  callerNum = caller;
60 64
                 // 获取被叫
61 65
                 String calleeNum = header.get("Caller-Callee-ID-Number");
62 66
                 if (StringHelper.isEmpty(calleeNum)) calleeNum = header.get("Caller-Destination-Number");
@@ -64,7 +68,7 @@ public class EslEventListenerEvent implements IEslEventListener {
64 68
                 String ccId = header.get("variable_cc_member_session_uuid");
65 69
                 if (StringHelper.isNotEmpty(ccId)) callId = ccId;
66 70
                 //代码呼叫时,create事件得到正确的被叫号码
67
-                String called = header.get("variable_call_called");
71
+                String called = header.get("variable_call_callee");
68 72
                 if (StringHelper.isNotEmpty(called)) {
69 73
                     calleeNum = called;
70 74
                     //会议打外线主叫和被叫改变了

+ 39 - 20
midware-service/src/main/java/midware/service/init/EslClientService.java

@@ -295,13 +295,14 @@ public class EslClientService {
295 295
             String fix = action.substring(action.lastIndexOf("|") + 1);
296 296
             String command = EslCommandEnum.originate.name();
297 297
 //            String arg = " {instant_ringback=true,origination_caller_id_number=" + callerNum
298
-//                    + ",call_called=" + calleeNum.substring(fix.length()) + ",record_concat_video=true"
298
+//                    + ",call_callee=" + calleeNum.substring(fix.length()) + ",record_concat_video=true"
299 299
 //                    + ",transfer_ringback=local_stream://moh,ignore_early_media=true"
300 300
 //                    + "}user/" + callerNum + " &bridge(" + getCallString(calleeNum) + ")"
301 301
 //                    + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
302
-            String arg = " {origination_caller_id_number=" + callerNum + ",call_called=" + calleeNum.substring(fix.length())
302
+            String arg = " {origination_caller_id_number=" + callerNum + ",call_callee=" + calleeNum.substring(fix.length())
303 303
                     + ",record_concat_video=true,transfer_ringback=local_stream://moh,ringback=${us-ring}"
304
-                    + "}user/" + callerNum + " &bridge(" + getCallString(calleeNum) + ")"
304
+                    + "}user/" + callerNum + " &bridge({call_caller=" + callerNum + getOrigination(calleeNum) + "}"
305
+                    + getCallString(calleeNum) + ")"
305 306
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
306 307
             result = client.sendAsyncApiCommand(command, arg);
307 308
 
@@ -316,8 +317,10 @@ public class EslClientService {
316 317
         String result = "";
317 318
         try {
318 319
             String command = EslCommandEnum.originate.name();
319
-            String arg = " {origination_caller_id_number=" + callerNum + ",call_called=" + calleeNum
320
-                    + ",call_type=2}" + getCallString(callerNum) + " &bridge(" + getCallString(calleeNum) + ")"
320
+            String arg = " {call_caller=" + callerNum + ",call_callee=" + calleeNum + ",call_type=2"
321
+                    + getOrigination(calleeNum) +"}"+ getCallString(callerNum)
322
+                    + " &bridge({call_caller=" + callerNum + getOrigination(calleeNum)
323
+                    + "}" + getCallString(calleeNum) + ")"
321 324
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
322 325
             result = client.sendAsyncApiCommand(command, arg);
323 326
 
@@ -333,8 +336,8 @@ public class EslClientService {
333 336
         try {
334 337
             String fix = action.substring(action.lastIndexOf("|")+1);
335 338
             String command = EslCommandEnum.uuid_broadcast.name();
336
-            String arg = chanId + " att_xfer::{origination_caller_id_number=" + callerNum+",record_concat_video=true"
337
-                    + ",call_called=" + calleeNum.substring(fix.length()) + "}" + getCallString(calleeNum)
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)
338 341
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
339 342
             result = client.sendAsyncApiCommand(command, arg);
340 343
             
@@ -350,7 +353,7 @@ public class EslClientService {
350 353
         try {
351 354
             String command = EslCommandEnum.originate.name();
352 355
             String arg = " {origination_caller_id_number=" + callerNum + ",cc_member_session_uuid=" + sessionId
353
-                    + ",call_called=" + calleeNum + "}user/" + callerNum + " &three_way(" + sessionId + ")"
356
+                    + ",call_callee=" + calleeNum + "}user/" + callerNum + " &three_way(" + sessionId + ")"
354 357
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
355 358
             result = client.sendAsyncApiCommand(command, arg);
356 359
         } catch (Exception e) {
@@ -366,7 +369,7 @@ public class EslClientService {
366 369
             Session session = EslCommon.getSessionById(sessionId);
367 370
             String command = EslCommandEnum.originate.name();
368 371
             String arg = " {origination_caller_id_number=" + callerNum + ",cc_member_session_uuid=" + sessionId
369
-                    + ",call_called=" + calleeNum + "}user/" + callerNum + " &intercept(" + chanId + ")"
372
+                    + ",call_callee=" + calleeNum + "}user/" + callerNum + " &intercept(" + chanId + ")"
370 373
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
371 374
             result = client.sendAsyncApiCommand(command, arg);
372 375
 
@@ -382,7 +385,7 @@ public class EslClientService {
382 385
         try {
383 386
             String command = EslCommandEnum.originate.name();
384 387
             String arg = " {origination_caller_id_number=" + callerNum+ ",cc_member_session_uuid=" + sessionId
385
-                    + ",call_called=" + calleeNum+ "}user/" + callerNum + " &eavesdrop(" + sessionId + ")"
388
+                    + ",call_callee=" + calleeNum+ "}user/" + callerNum + " &eavesdrop(" + sessionId + ")"
386 389
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
387 390
             result = client.sendAsyncApiCommand(command, arg);
388 391
             
@@ -587,8 +590,9 @@ public class EslClientService {
587 590
                 argstr = ",record_concat_video=true,conference_auto_record=" + path;
588 591
             }
589 592
 
590
-            String arg = " {origination_caller_id_number=" + callerNum + ",cc_member_session_uuid=" + meetingId
591
-                    + ",call_called=" + calleeNum.substring(fix.length())
593
+            String arg = " {cc_member_session_uuid=" + meetingId
594
+                    + getOrigination(calleeNum)
595
+                    + ",call_callee=" + calleeNum.substring(fix.length())+",call_caller=" + callerNum
592 596
                     + ",transfer_ringback=local_stream://moh,ringback=${us-ring}"
593 597
                     + argstr + "}" + getCallString(calleeNum)
594 598
                     // + " " + meetingId + " xml ExtenMeeting";
@@ -639,7 +643,7 @@ public class EslClientService {
639 643
         String result = "";
640 644
         try {
641 645
             String command = EslCommandEnum.uuid_record.name();
642
-            String arg = chanId + (isRecord ? " start" : " stop") + filePath;
646
+            String arg = chanId + (isRecord ? " start " : " stop ") + filePath;
643 647
             result = client.sendAsyncApiCommand(command, arg);
644 648
         } catch (Exception e) {
645 649
             String state = isRecord ? "开启" : "关闭";
@@ -688,13 +692,13 @@ public class EslClientService {
688 692
             //String arg = chanId + " " + calleeNum + " xml ForExten";
689 693
 //            String arg = chanId + " 'm:^:set:hangup_after_bridge=false^set:record_concat_video=true^"
690 694
 //                    + "set:instant_ringback=true^set:transfer_ringback=local_stream://moh^"
691
-//                    + "bridge:{ignore_early_media=true,origination_caller_id_number=" + callerNum + ",call_called="
695
+//                    + "bridge:{ignore_early_media=true,origination_caller_id_number=" + callerNum + ",call_callee="
692 696
 //                    + calleeNum.substring(fix.length()) + "}" + getCallString(calleeNum) + "' inline"
693 697
 //                    + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
694 698
             String arg = chanId + " 'm:^:set:hangup_after_bridge=false^set:record_concat_video=true^"
695 699
                     + "set:transfer_ringback=local_stream://moh^set:ringback=${us-ring}^"
696
-                    + "bridge:{origination_caller_id_number=" + callerNum + ",call_called="
697
-                    + calleeNum.substring(fix.length()) + "}" + getCallString(calleeNum) + "' inline"
700
+                    + "bridge:{call_caller=" + callerNum + ",call_callee=" + calleeNum.substring(fix.length())
701
+                    + getOrigination(calleeNum) + "}" + getCallString(calleeNum) + "' inline"
698 702
                     + "\r\nJob-UUID: " + action + "|" + System.currentTimeMillis();
699 703
             result = client.sendAsyncApiCommand(command, arg);
700 704
 
@@ -765,7 +769,8 @@ public class EslClientService {
765 769
         String result = "";
766 770
         try {
767 771
             String command = EslCommandEnum.originate.name();
768
-            String arg = " {origination_caller_id_number=" + callerNum + ",task_id=" + taskId + ",phone_id=" + phoneId + ",call_type=3}"
772
+            String arg = " {task_id=" + taskId + ",phone_id=" + phoneId + ",call_type=3"
773
+                    + getOrigination(calleeNum) + "}"
769 774
                     + getCallString(calleeNum) + " &park()";
770 775
             result = client.sendAsyncApiCommand(command, arg);
771 776
 
@@ -799,20 +804,34 @@ public class EslClientService {
799 804
         return false;
800 805
     }
801 806
 
807
+    //源号码
808
+    private String getOrigination(String calleeNum) {
809
+        String str = "";
810
+        if (!EslCommon.existExten(calleeNum) && StringHelper.isNotEmpty(CommonConfig.gateway_origination)) {
811
+            str = ",origination_caller_id_number=" + CommonConfig.gateway_origination;
812
+        }
813
+        return str;
814
+    }
815
+
802 816
     //呼叫字符串
803 817
     private String getCallString(String calleeNum) {
804 818
         //呼叫内线分机号码
805 819
         String callStr = "user/" + calleeNum;
806 820
         //呼叫外线号码
807 821
         if (!EslCommon.existExten(calleeNum)) {
808
-            callStr = "sofia/gateway/hykj/" + calleeNum;
822
+            if (StringHelper.isNotEmpty(CommonConfig.gateway_register)) {
823
+                callStr = "sofia/internal/" + calleeNum + CommonConfig.gateway_register;
809 824
 
810
-//            //动态ip
811
-//            EslMessage message = client.sendSyncApiCommand("sofia_contact", "");
825
+//            //注册网关
826
+//            EslMessage message = client.sendSyncApiCommand("sofia_contact", "9400");
812 827
 //            if (message != null && message.getBodyLines().size() > 0) {
813 828
 //                String gwip = message.getBodyLines().get(0);
814 829
 //                callStr = "sofia/internal/" + calleeNum + gwip.substring(gwip.indexOf("@"));
815 830
 //            }
831
+
832
+            } else {
833
+                callStr = "sofia/gateway/hykj/" + calleeNum;
834
+            }
816 835
         }
817 836
         return callStr;
818 837
     }

+ 12 - 0
midware-util/src/main/java/midware/util/config/CommonConfig.java

@@ -7,6 +7,18 @@ import org.springframework.context.annotation.Configuration;
7 7
 @Data
8 8
 @Configuration
9 9
 public class CommonConfig {
10
+    public static String gateway_register;
11
+    @Value("${common.gateway.register}")
12
+    private void setGatewayRegister(String register) {
13
+        CommonConfig.gateway_register = register;
14
+    }
15
+    public static String gateway_origination;
16
+    @Value("${common.gateway.origination}")
17
+    private void setGatewayOrigination(String origination) {
18
+        CommonConfig.gateway_origination = origination;
19
+    }
20
+
21
+
10 22
     public static String tts_type;
11 23
     @Value("${common.tts.type}")
12 24
     private void setTtsType(String ttsType) {