diff --git a/campaign/src/main/resources/logback.xml b/campaign/src/main/resources/logback.xml
index 2f84c827..e20bd991 100644
--- a/campaign/src/main/resources/logback.xml
+++ b/campaign/src/main/resources/logback.xml
@@ -7,14 +7,14 @@
true
- %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
+ %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
${log.dir}/${project.artifactId}.log
- %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{15} %msg %n
+ %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n
${log.dir}/%d{yyyy-MM, aux}/${project.artifactId}-%d{yyyy-MM-dd}.%i.log
diff --git a/cms/src/main/resources/logback.xml b/cms/src/main/resources/logback.xml
index 88ba4a20..8aace720 100644
--- a/cms/src/main/resources/logback.xml
+++ b/cms/src/main/resources/logback.xml
@@ -7,14 +7,14 @@
true
- %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
+ %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
${log.dir}/${project.artifactId}.log
- %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{15} %msg %n
+ %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n
${log.dir}/%d{yyyy-MM, aux}/${project.artifactId}-%d{yyyy-MM-dd}.%i.log
diff --git a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentRegister.java b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentRegister.java
index 7757e33d..58e71ad4 100644
--- a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentRegister.java
+++ b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentRegister.java
@@ -1,5 +1,6 @@
package com.pudonghot.yo.fsagent.listener;
+import com.pudonghot.yo.util.LogMDC;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@@ -27,6 +28,7 @@ public class AgentRegister {
condition = "#root.args[0].getName() == 'CUSTOM'"
+ " and #root.args[0].getSubclass() == 'sofia::register'")
public void onAgentRegister(final Event event) {
+ LogMDC.setTraceId();
log.debug("On agent register event [{}].", event.getHeaders());
final String realm = event.getHeader("realm");
diff --git a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentUnregister.java b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentUnregister.java
index a2074ad5..e8cd8dd8 100644
--- a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentUnregister.java
+++ b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/AgentUnregister.java
@@ -1,5 +1,6 @@
package com.pudonghot.yo.fsagent.listener;
+import com.pudonghot.yo.util.LogMDC;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@@ -27,6 +28,7 @@ public class AgentUnregister {
condition = "#root.args[0].getName() == 'CUSTOM'"
+ " and #root.args[0].getSubclass() == 'sofia::unregister'")
public void onAgentUnregister(final Event event) {
+ LogMDC.setTraceId();
log.debug("On agent unregister event [{}].", event.getHeaders());
final String realm = event.getHeader("realm");
diff --git a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/ApplicationStartup.java b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/ApplicationStartup.java
index 030391ef..0ba3fede 100644
--- a/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/ApplicationStartup.java
+++ b/fsagent/src/main/java/com/pudonghot/yo/fsagent/listener/ApplicationStartup.java
@@ -1,5 +1,6 @@
package com.pudonghot.yo.fsagent.listener;
+import com.pudonghot.yo.util.LogMDC;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.TimeUnit;
import org.springframework.util.Assert;
@@ -48,6 +49,7 @@ public class ApplicationStartup implements ApplicationListener params) {
- return params.get("Caller-Context");
- }
+ protected Tenant getTenant(final DataWrapper data) {
+ final Integer tenantId = data.getTenantId();
+ if (tenantId != null) {
+ return tenantService.find(tenantId);
+ }
- protected Tenant getTenant(final Map params) {
- return tenantService.find(new Search(Tenant.REALM, getRealm(params)));
+ return tenantService.find(
+ new Search(Tenant.REALM, data.getCallerContext()));
}
protected void recFile(
diff --git a/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/InnerHelpServiceImpl.java b/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/InnerHelpServiceImpl.java
index 85618d2a..cb4051ce 100644
--- a/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/InnerHelpServiceImpl.java
+++ b/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/InnerHelpServiceImpl.java
@@ -5,6 +5,7 @@ import com.pudonghot.yo.model.domain.Agent;
import com.pudonghot.yo.fs.model.domain.Channel;
import org.freeswitch.esl.client.inbound.Client;
import org.apache.dubbo.config.annotation.Service;
+import com.pudonghot.yo.service.CommonAgentService;
import com.pudonghot.yo.fsagent.api.InnerHelpService;
import com.pudonghot.yo.service.CommonChannelService;
import com.pudonghot.yo.fsagent.service.dialplan.Suffix;
@@ -21,9 +22,10 @@ public class InnerHelpServiceImpl implements InnerHelpService {
@Autowired
private Client fsClient;
@Autowired
+ private CommonAgentService commonAgentService;
+ @Autowired
private CommonChannelService commonChannelService;
-
/**
* {@inheritDoc}
*/
@@ -61,7 +63,7 @@ public class InnerHelpServiceImpl implements InnerHelpService {
return;
}
- final String realm = agentChannel.getContext();
+ final String realm = commonAgentService.getRealm(agent);
fsClient.api("uuid_dual_transfer",
agentChannel.getUuid(),
@@ -83,7 +85,7 @@ public class InnerHelpServiceImpl implements InnerHelpService {
return;
}
- final String realm = agentChannel.getContext();
+ final String realm = commonAgentService.getRealm(agent);
fsClient.api("uuid_dual_transfer",
agentChannel.getUuid(),
diff --git a/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/IvrTransferServiceImpl.java b/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/IvrTransferServiceImpl.java
index f0c9b108..f2d99cc4 100644
--- a/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/IvrTransferServiceImpl.java
+++ b/fsagent/src/main/java/com/pudonghot/yo/fsagent/service/dubbo/impl/IvrTransferServiceImpl.java
@@ -8,6 +8,7 @@ import org.apache.commons.lang3.StringUtils;
import com.pudonghot.yo.fs.model.domain.Channel;
import org.freeswitch.esl.client.inbound.Client;
import org.apache.dubbo.config.annotation.Service;
+import com.pudonghot.yo.service.CommonAgentService;
import com.pudonghot.yo.service.CommonChannelService;
import com.pudonghot.yo.service.CommonCallDataService;
import com.pudonghot.yo.fsagent.api.IvrTransferService;
@@ -25,6 +26,8 @@ public class IvrTransferServiceImpl implements IvrTransferService {
@Autowired
private Client fsClient;
@Autowired
+ private CommonAgentService commonAgentService;
+ @Autowired
private CommonChannelService commonChannelService;
@Autowired
private CommonCallDataService commonCallDataService;
@@ -39,7 +42,7 @@ public class IvrTransferServiceImpl implements IvrTransferService {
final String agentId = String.valueOf(agent.getId());
final Channel agentChannel = channels.getLeft();
- final String realm = agentChannel.getContext();
+ final String realm = commonAgentService.getRealm(agent);
fsClient.api("uuid_setvar",
channels.getRight().getUuid(),
@@ -69,7 +72,7 @@ public class IvrTransferServiceImpl implements IvrTransferService {
onValidChannels(agent, channels -> {
final Channel agentChannel = channels.getLeft();
- final String realm = agentChannel.getContext();
+ final String realm = commonAgentService.getRealm(agent);
fsClient.api("uuid_dual_transfer",
agentChannel.getUuid(),
diff --git a/fsagent/src/main/resources/logback.xml b/fsagent/src/main/resources/logback.xml
index dcafc95c..1e0e82a4 100644
--- a/fsagent/src/main/resources/logback.xml
+++ b/fsagent/src/main/resources/logback.xml
@@ -6,14 +6,14 @@
true
- %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
+ %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
${log.dir}/${project.artifactId}.log
- %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{15} %msg %n
+ %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n
${log.dir}/%d{yyyy-MM, aux}/${project.artifactId}-%d{yyyy-MM-dd}.%i.log
diff --git a/lib/fs-model/src/main/java/com/pudonghot/yo/fs/model/domain/Channel.java b/lib/fs-model/src/main/java/com/pudonghot/yo/fs/model/domain/Channel.java
index 45070665..aab65279 100644
--- a/lib/fs-model/src/main/java/com/pudonghot/yo/fs/model/domain/Channel.java
+++ b/lib/fs-model/src/main/java/com/pudonghot/yo/fs/model/domain/Channel.java
@@ -15,21 +15,10 @@ import lombok.experimental.FieldNameConstants;
@Table("channels")
@FieldNameConstants(prefix = "")
public class Channel extends DomainModel {
- private String context;
private String uuid;
private String callUuid;
- private Direction direction;
private String name;
private String presenceId;
- private Long createdEpoch;
-
- /**
- * if channel is leg A
- * @return true if channel is leg A
- */
- public boolean isLegA() {
- return uuid.equals(callUuid);
- }
/**
* {@inheritDoc}
@@ -56,9 +45,4 @@ public class Channel extends DomainModel {
throw new UnsupportedOperationException(
"Channel has no primary value");
}
-
- public enum Direction {
- inbound,
- outbound
- }
}
diff --git a/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonAgentService.java b/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonAgentService.java
index 162c09b9..218e42b7 100644
--- a/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonAgentService.java
+++ b/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonAgentService.java
@@ -8,6 +8,14 @@ import com.pudonghot.yo.model.domain.Agent;
*/
public interface CommonAgentService {
+ /**
+ * get realm of agent
+ *
+ * @param agent agent
+ * @return realm of agent
+ */
+ String getRealm(Agent agent);
+
/**
* lock idle agent of queue
*
diff --git a/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonChannelService.java b/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonChannelService.java
index b6a82a7c..fb7f9065 100644
--- a/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonChannelService.java
+++ b/lib/service-common/src/main/java/com/pudonghot/yo/service/CommonChannelService.java
@@ -1,11 +1,10 @@
package com.pudonghot.yo.service;
+import java.util.List;
import com.pudonghot.yo.model.domain.Agent;
import org.apache.commons.lang3.tuple.Pair;
import com.pudonghot.yo.fs.model.domain.Channel;
-import java.util.List;
-
/**
* @author Donghuang
* @date Jul 12, 2020 16:41:18
@@ -34,5 +33,5 @@ public interface CommonChannelService {
* @param agent agent
* @return channels of agent
*/
- List list(final Agent agent);
+ List list(Agent agent);
}
diff --git a/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonAgentServiceImpl.java b/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonAgentServiceImpl.java
index d53ee963..7610f5d9 100644
--- a/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonAgentServiceImpl.java
+++ b/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonAgentServiceImpl.java
@@ -24,6 +24,8 @@ public class CommonAgentServiceImpl
implements CommonAgentService {
private final RLock AGENT_LOCK;
+ @Autowired
+ private TenantMapper tenantMapper;
@Autowired
private CommonDelayScheduleService delayScheduleService;
@Autowired
@@ -35,6 +37,13 @@ public class CommonAgentServiceImpl
AGENT_LOCK = redisson.getLock("AGENT_LOCK");
}
+ /**
+ * {@inheritDoc}
+ */
+ public String getRealm(final Agent agent) {
+ return tenantMapper.find(agent.getTenantId()).getRealm();
+ }
+
/**
* {@inheritDoc}
*/
diff --git a/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonChannelServiceImpl.java b/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonChannelServiceImpl.java
index 9acb320c..7a077246 100644
--- a/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonChannelServiceImpl.java
+++ b/lib/service-common/src/main/java/com/pudonghot/yo/service/impl/CommonChannelServiceImpl.java
@@ -4,9 +4,9 @@ import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.tuple.Pair;
import com.pudonghot.yo.model.domain.Agent;
-import com.pudonghot.yo.mapper.TenantMapper;
import com.pudonghot.yo.fs.mapper.ChannelMapper;
import com.pudonghot.yo.fs.model.domain.Channel;
+import com.pudonghot.yo.service.CommonAgentService;
import com.pudonghot.yo.service.CommonChannelService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +19,7 @@ public class CommonChannelServiceImpl implements CommonChannelService {
@Autowired
private ChannelMapper channelMapper;
@Autowired
- private TenantMapper tenantMapper;
+ private CommonAgentService commonAgentService;
/**
* {@inheritDoc}
@@ -77,10 +77,6 @@ public class CommonChannelServiceImpl implements CommonChannelService {
}
private String presenceId(final Agent agent) {
- return agent.getAgent() + "@" + getRealm(agent);
- }
-
- private String getRealm(final Agent agent) {
- return tenantMapper.find(agent.getTenantId()).getRealm();
+ return agent.getAgent() + "@" + commonAgentService.getRealm(agent);
}
}
diff --git a/lib/util/src/main/java/com/pudonghot/yo/util/LogMDC.java b/lib/util/src/main/java/com/pudonghot/yo/util/LogMDC.java
index 2aec47c1..66260e70 100644
--- a/lib/util/src/main/java/com/pudonghot/yo/util/LogMDC.java
+++ b/lib/util/src/main/java/com/pudonghot/yo/util/LogMDC.java
@@ -1,6 +1,7 @@
package com.pudonghot.yo.util;
import org.slf4j.MDC;
+import java.util.UUID;
/**
* @author Donghuang
@@ -28,6 +29,16 @@ public class LogMDC {
/**
* set trance id
+ */
+ public static void setTraceId() {
+ final UUID uuid = UUID.randomUUID();
+ MDC.put(TRACE_ID, Long.toHexString(uuid.getMostSignificantBits())
+ + Long.toHexString(uuid.getLeastSignificantBits()));
+ }
+
+ /**
+ * set trance id
+ *
* @param traceId trance id
*/
public static void setTraceId(final String traceId) {
diff --git a/lib/web-common/pom.xml b/lib/web-common/pom.xml
index 1c8f5d72..db17c0d4 100644
--- a/lib/web-common/pom.xml
+++ b/lib/web-common/pom.xml
@@ -29,6 +29,10 @@
com.wacai.tigon
tigon-common
+
+ com.pudonghot.yo
+ yo-util
+
org.springframework.boot
spring-boot-autoconfigure
diff --git a/lib/web-common/src/main/java/com/pudonghot/yo/common/listener/RequestListener.java b/lib/web-common/src/main/java/com/pudonghot/yo/common/listener/RequestListener.java
index 55b05e53..ccd53285 100644
--- a/lib/web-common/src/main/java/com/pudonghot/yo/common/listener/RequestListener.java
+++ b/lib/web-common/src/main/java/com/pudonghot/yo/common/listener/RequestListener.java
@@ -1,6 +1,7 @@
package com.pudonghot.yo.common.listener;
import lombok.extern.slf4j.Slf4j;
+import com.pudonghot.yo.util.LogMDC;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;
@@ -18,6 +19,7 @@ public class RequestListener implements ServletRequestListener {
*/
@Override
public void requestInitialized(final ServletRequestEvent sre) {
+ LogMDC.setTraceId();
sre.getServletRequest().setAttribute(metricsKey, System.currentTimeMillis());
}
diff --git a/openapi/src/main/resources/logback.xml b/openapi/src/main/resources/logback.xml
index 20115f54..797282a1 100644
--- a/openapi/src/main/resources/logback.xml
+++ b/openapi/src/main/resources/logback.xml
@@ -7,14 +7,14 @@
true
- %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
+ %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
${log.dir}/${project.artifactId}.log
- %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{15} %msg %n
+ %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n
${log.dir}/%d{yyyy-MM, aux}/${project.artifactId}-%d{yyyy-MM-dd}.%i.log
diff --git a/state/src/main/resources/logback.xml b/state/src/main/resources/logback.xml
index 2f84c827..e20bd991 100644
--- a/state/src/main/resources/logback.xml
+++ b/state/src/main/resources/logback.xml
@@ -7,14 +7,14 @@
true
- %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
+ %magenta(%d{"yyyy-MM-dd HH:mm:ss,SSS"}) [%thread][%X{traceId}] %highlight(%-5level) %cyan(%logger{15}) - %msg %n
${log.dir}/${project.artifactId}.log
- %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread] %-5level %logger{15} %msg %n
+ %d{"yyyy-MM-dd HH:mm:ss,SSS"} [%thread][%X{traceId}] %-5level %logger{15} %msg %n
${log.dir}/%d{yyyy-MM, aux}/${project.artifactId}-%d{yyyy-MM-dd}.%i.log