|
|
@@ -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
|
}
|