From 33e026a92d9585df83f3940374c05d888e91d5a2 Mon Sep 17 00:00:00 2001 From: Donghuang Date: Wed, 8 Sep 2021 00:06:27 +0800 Subject: [PATCH] add format_cdr.conf --- .../fsagent/controller/BaseXmlController.java | 11 +++ .../fsagent/controller/ConfigController.java | 33 ++++--- .../fsagent/controller/PostCdrController.java | 23 +++++ .../fsagent/model/FormatCdrConfFtlModel.java | 19 ++++ .../yo/fsagent/service/LocalApiService.java | 7 ++ .../service/impl/LocalApiServiceImpl.java | 3 + .../templates/config/format_cdr.conf.xml | 88 +++++++++++++++++++ 7 files changed, 172 insertions(+), 12 deletions(-) create mode 100644 server/src/main/java/com/pudonghot/yo/fsagent/controller/PostCdrController.java create mode 100644 server/src/main/java/com/pudonghot/yo/fsagent/model/FormatCdrConfFtlModel.java create mode 100644 server/src/main/resources/templates/config/format_cdr.conf.xml diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/controller/BaseXmlController.java b/server/src/main/java/com/pudonghot/yo/fsagent/controller/BaseXmlController.java index 1721e31a..1886bb82 100644 --- a/server/src/main/java/com/pudonghot/yo/fsagent/controller/BaseXmlController.java +++ b/server/src/main/java/com/pudonghot/yo/fsagent/controller/BaseXmlController.java @@ -56,6 +56,17 @@ public class BaseXmlController { return view; } + /** + * add view attr model + * + * @param view view + * @param val attr value + * @return view + */ + protected FreeMarkerView attr(final FreeMarkerView view, final Object val) { + return attr(view, "model", val); + } + /** * add view attr * diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/controller/ConfigController.java b/server/src/main/java/com/pudonghot/yo/fsagent/controller/ConfigController.java index cb85bd0d..bff99c34 100644 --- a/server/src/main/java/com/pudonghot/yo/fsagent/controller/ConfigController.java +++ b/server/src/main/java/com/pudonghot/yo/fsagent/controller/ConfigController.java @@ -13,6 +13,8 @@ import com.pudonghot.yo.fsagent.util.OdbcUtils; import org.springframework.stereotype.Controller; import com.pudonghot.yo.fsagent.service.IvrMenuService; import com.pudonghot.yo.fsagent.service.GatewayService; +import com.pudonghot.yo.fsagent.service.LocalApiService; +import com.pudonghot.yo.fsagent.model.FormatCdrConfFtlModel; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Qualifier; @@ -40,6 +42,8 @@ public class ConfigController extends BaseXmlController { private DataSource dataSource; @Autowired private IvrMenuService ivrMenuService; + @Autowired + private LocalApiService localApiService; public static final Pattern PATTERN_IP_SIP_HOST = patternIpSipHost(); private List REALM_PARAM_NAMES = @@ -81,8 +85,7 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch sofia config XML."); - log.debug("XML sofia config [{}].", params); + log.info("Fetch sofia config XML, params [{}].", params); val view = configView("sofia.conf.xml"); val gateways = gatewayService.list( @@ -98,8 +101,7 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch ACL config XML."); - log.debug("XML ACL config [{}].", params); + log.info("Fetch ACL config XML, params [{}].", params); return configView("acl.conf.xml"); } @@ -114,8 +116,7 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch ODBC CDR config XML."); - log.debug("XML ODBC CDR [{}].", params); + log.info("Fetch ODBC CDR config XML, params [{}].", params); val view = configView("odbc_cdr.conf.xml"); attr(view, "odbcDsn", OdbcUtils.odbcDsn((DruidDataSource) dataSource)); @@ -128,8 +129,7 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch event socket config XML."); - log.debug("XML event socket config [{}].", params); + log.info("Fetch event socket config XML, params [{}].", params); return configView("event_socket.conf.xml"); } @@ -138,8 +138,7 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch cURL config XML."); - log.debug("XML cURL [{}].", params); + log.info("Fetch cURL config XML, params [{}].", params); return configView("curl.conf.xml"); } @@ -169,12 +168,22 @@ public class ConfigController extends BaseXmlController { @RequestParam final Map params) { - log.info("Fetch FIFO config XML."); - log.debug("XML IVR [{}].", params); + log.info("Fetch FIFO config XML, params [{}].", params); return configView("fifo.conf.xml"); } + @RequestMapping(params = "key_value=format_cdr.conf") + public FreeMarkerView formatCdrConfig( + @RequestParam + final Map params) { + + log.info("Fetch Format config XML, params [{}].", params); + + return attr(configView("format_cdr.conf.xml"), + new FormatCdrConfFtlModel(localApiService.getCdrPostUrl())); + } + /** * {@inheritDoc} */ diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/controller/PostCdrController.java b/server/src/main/java/com/pudonghot/yo/fsagent/controller/PostCdrController.java new file mode 100644 index 00000000..5d9755b7 --- /dev/null +++ b/server/src/main/java/com/pudonghot/yo/fsagent/controller/PostCdrController.java @@ -0,0 +1,23 @@ +package com.pudonghot.yo.fsagent.controller; + +import java.util.Map; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author Donghuang
+ * Jan 06, 2020 18:05:31 + */ +@Slf4j +@Controller +public class PostCdrController { + + @PostMapping("/fsa/api/cdr/post") + public void postCdr( + @RequestParam + final Map params) { + log.info("Post cdr params: {}", params); + } +} diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/model/FormatCdrConfFtlModel.java b/server/src/main/java/com/pudonghot/yo/fsagent/model/FormatCdrConfFtlModel.java new file mode 100644 index 00000000..1012e05c --- /dev/null +++ b/server/src/main/java/com/pudonghot/yo/fsagent/model/FormatCdrConfFtlModel.java @@ -0,0 +1,19 @@ +package com.pudonghot.yo.fsagent.model; + +import lombok.Getter; +import lombok.ToString; +import java.io.Serializable; +import lombok.RequiredArgsConstructor; + +/** + * @author Donghuang + * @date Sep 07, 2021 10:38:18 + */ +@Getter +@ToString +@RequiredArgsConstructor +public class FormatCdrConfFtlModel implements Serializable { + private static final long serialVersionUID = 1L; + + private final String postUrl; +} diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/service/LocalApiService.java b/server/src/main/java/com/pudonghot/yo/fsagent/service/LocalApiService.java index d7867f27..9908e698 100644 --- a/server/src/main/java/com/pudonghot/yo/fsagent/service/LocalApiService.java +++ b/server/src/main/java/com/pudonghot/yo/fsagent/service/LocalApiService.java @@ -48,4 +48,11 @@ public interface LocalApiService { * @return post rec url */ String getPostRecUrl(); + + /** + * on cdr post url + * + * @return post cdr url + */ + String getCdrPostUrl(); } diff --git a/server/src/main/java/com/pudonghot/yo/fsagent/service/impl/LocalApiServiceImpl.java b/server/src/main/java/com/pudonghot/yo/fsagent/service/impl/LocalApiServiceImpl.java index 8623c638..08af8a3a 100644 --- a/server/src/main/java/com/pudonghot/yo/fsagent/service/impl/LocalApiServiceImpl.java +++ b/server/src/main/java/com/pudonghot/yo/fsagent/service/impl/LocalApiServiceImpl.java @@ -41,6 +41,8 @@ public class LocalApiServiceImpl private String agentReadyUrl; @Getter private String agentNotReadyUrl; + @Getter + private String cdrPostUrl; /** * {@inheritDoc} @@ -67,5 +69,6 @@ public class LocalApiServiceImpl postRecUrl = getUrl("/fsa/api/post-rec"); agentReadyUrl = getUrl("/fsa/api/agent/ready"); agentNotReadyUrl = getUrl("/fsa/api/agent/not-ready"); + cdrPostUrl = getUrl("/fsa/api/cdr/post"); } } diff --git a/server/src/main/resources/templates/config/format_cdr.conf.xml b/server/src/main/resources/templates/config/format_cdr.conf.xml new file mode 100644 index 00000000..80b3b7e2 --- /dev/null +++ b/server/src/main/resources/templates/config/format_cdr.conf.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file