|
|
@@ -1206,9 +1206,22 @@ public class CallApi extends MsgHandlerBase {
|
|
|
phone = phoneAndCaseInfo;
|
|
|
}
|
|
|
|
|
|
+ boolean dtuReverse = false;
|
|
|
+ try {
|
|
|
+ dtuReverse = gatewayList.get(0) != null && gatewayList.get(0).getRegister() == 2;
|
|
|
+ } catch (Exception ignored) {
|
|
|
+ }
|
|
|
+ boolean skipDestPhoneDecrypt = false;
|
|
|
+ try {
|
|
|
+ skipDestPhoneDecrypt = callArgs.getArgs().getBooleanValue("skipDestPhoneDecrypt");
|
|
|
+ } catch (Exception ignored) {
|
|
|
+ }
|
|
|
+ skipDestPhoneDecrypt = skipDestPhoneDecrypt || dtuReverse;
|
|
|
+
|
|
|
boolean isNumeric = StringUtils.isNumeric(phone.replace(" ", "").replace("-", "").trim());
|
|
|
- // 电话号码不是数字的情况下,需要解密号码字符串
|
|
|
- if (!isNumeric) {
|
|
|
+ // 普通线路:非数字 destPhone 按 DES HEX 解密(历史逻辑)
|
|
|
+ // DTU 反向 register=2:destPhone 为叁友 AES 密文,跳过 DES,原样下发给 FS
|
|
|
+ if (!isNumeric && !skipDestPhoneDecrypt) {
|
|
|
String key = SystemConfig.getValue("phone_encrypted_key");
|
|
|
phone = EncryptUtil.getInstance().DESdecode(phone, key);
|
|
|
if (null == phone) {
|
|
|
@@ -1216,9 +1229,15 @@ public class CallApi extends MsgHandlerBase {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
+ if (!isNumeric && skipDestPhoneDecrypt) {
|
|
|
+ logger.info("{} 软电话外呼 DTU 跳过 destPhone DES 解密,phoneEncryptType={}, destLen={}",
|
|
|
+ getTraceId(),
|
|
|
+ callArgs.getArgs().getString("phoneEncryptType"),
|
|
|
+ phone != null ? phone.length() : 0);
|
|
|
+ }
|
|
|
|
|
|
- logger.info("{} 软电话外呼收到 startSession:destPhone={}, callType={}, gatewayList摘要={}",
|
|
|
- getTraceId(), phone, callType, summarizeGatewayList(gatewayList));
|
|
|
+ logger.info("{} 软电话外呼收到 startSession:destPhone={}, callType={}, dtuReverse={}, skipDestPhoneDecrypt={}, gatewayList摘要={}",
|
|
|
+ getTraceId(), phone, callType, dtuReverse, skipDestPhoneDecrypt, summarizeGatewayList(gatewayList));
|
|
|
|
|
|
String uuidInner = UuidGenerator.GetOneUuid();
|
|
|
String uuidOuter = UuidGenerator.GetOneUuid();
|