Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -618,4 +618,22 @@ public String redisFetch(@Param("{\"sessionID\":\"sessionID/callID String\"}") @

}

@Operation(summary = "Create outbound call request")
@PostMapping(value = "/createOutboundCallRequest", consumes = MediaType.APPLICATION_JSON, produces = MediaType.APPLICATION_JSON, headers = "Authorization")
public String createOutboundCallRequest(
@Param(value = "{\"beneficiaryRegID\":\"Long - beneficiary registration ID\", "
+ "\"providerServiceMapID\":\"Integer - provider service map ID\", "
+ "\"requestedFor\":\"String - reason for outbound call\", "
+ "\"prefferedDateTime\":\"Timestamp - preferred date time for call\", "
+ "\"createdBy\":\"String - created by user\"}") @RequestBody String request) {
OutputResponse response = new OutputResponse();
try {
response.setResponse(beneficiaryCallService.createOutboundCallRequest(request).toString());
} catch (Exception e) {
logger.error("createOutboundCallRequest failed with error " + e.getMessage(), e);
response.setError(e);
}
return response.toString();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,6 @@ public interface BeneficiaryCallService {

String cTIFilePathNew(String request) throws IEMRException, JsonMappingException, JsonProcessingException;

OutboundCallRequest createOutboundCallRequest(String request) throws IEMRException, JsonMappingException, JsonProcessingException;

}
Original file line number Diff line number Diff line change
Expand Up @@ -1834,4 +1834,21 @@ public String cTIFilePathNew(String request) throws IEMRException, JsonMappingEx
return recordingPath;
}

@Override
public OutboundCallRequest createOutboundCallRequest(String request) throws IEMRException, JsonMappingException, JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
OutboundCallRequest outboundCallRequest = objectMapper.readValue(request, OutboundCallRequest.class);

if (outboundCallRequest.getBeneficiaryRegID() == null) {
throw new IEMRException("beneficiaryRegID is required");
}
if (outboundCallRequest.getProviderServiceMapID() == null) {
throw new IEMRException("providerServiceMapID is required");
}

outboundCallRequest = outboundCallRequestRepository.save(outboundCallRequest);
return outboundCallRequest;
}

}
27 changes: 17 additions & 10 deletions src/main/java/com/iemr/common/service/cti/CTIServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
import com.iemr.common.utils.http.HttpUtils;
import com.iemr.common.utils.mapper.InputMapper;
import com.iemr.common.utils.response.OutputResponse;
import org.springframework.beans.factory.annotation.Value;

@Service
public class CTIServiceImpl implements CTIService {
Expand Down Expand Up @@ -96,6 +97,10 @@ public class CTIServiceImpl implements CTIService {
@Autowired
private IEMRCalltypeRepositoryImplCustom iemrCalltypeRepositoryImplCustom;


@Value("${cti-server-ip}")
private String ctiServerIP;

public CTIServiceImpl() {
if (httpUtils == null) {
httpUtils = new HttpUtils();
Expand Down Expand Up @@ -635,7 +640,7 @@ public OutputResponse disconnectCall(String request, String remoteAddr) throws I
String agentIP = !agentIPResp.equals(DEFAULT_IP) ? agentIPResp : remoteAddr;

ctiDisconnectURL = ConfigProperties.getPropertyByName("disonnect-api-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
ctiDisconnectURL = ctiDisconnectURL.replace("cti_server", ctiServerIP).replace("AGENT_ID", agentID)
.replace("SESSION_ID", callID).replace("AGENT_IP", agentIP)
.replace("IS_FEEDBACK", agent.getIsFeedback() + "");
Expand All @@ -658,6 +663,7 @@ public OutputResponse disconnectCall(String request, String remoteAddr) throws I
@Override
public OutputResponse switchToInbound(String request, String remoteAddr) throws IEMRException, JSONException, JsonMappingException, JsonProcessingException {
OutputResponse output = new OutputResponse();
logger.info("Server IP="+ctiServerIP);
String ctiDisconnectURL;
ObjectMapper objectMapper = new ObjectMapper();
CallBeneficiary agent = objectMapper.readValue(request, CallBeneficiary.class);
Expand All @@ -668,7 +674,7 @@ public OutputResponse switchToInbound(String request, String remoteAddr) throws
String agentIP = !agentIPResp.equals(DEFAULT_IP) ? agentIPResp : remoteAddr;

ctiDisconnectURL = ConfigProperties.getPropertyByName("switch-to-inbound-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
ctiDisconnectURL = ctiDisconnectURL.replace("CTI_SERVER", ctiServerIP).replace("AGENT_ID", agentID)
.replace("AGENT_IP", agentIP);

Expand All @@ -694,7 +700,7 @@ public OutputResponse switchToOutbound(String request, String remoteAddr) throws
ObjectMapper objectMapper = new ObjectMapper();
CallBeneficiary agent = objectMapper.readValue(request, CallBeneficiary.class);
ctiDisconnectURL = ConfigProperties.getPropertyByName("switch-to-outbound-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
String agentID = (agent.getAgent_id() != null) ? agent.getAgent_id() : "";

String agentIPResp = getAgentIP(agentID);
Expand Down Expand Up @@ -724,7 +730,8 @@ public OutputResponse getAgentIPAddress(String request, String remoteAddr) throw
AgentState agent = objectMapper.readValue(request, AgentState.class);
String agentID = (agent.getAgent_id() != null) ? agent.getAgent_id() : "";
String ctiDisconnectURL = ConfigProperties.getPropertyByName("get-agent-ip-address-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");

ctiDisconnectURL = ctiDisconnectURL.replace("CTI_SERVER", ctiServerIP).replace("AGENT_ID", agentID);
// HttpUtils httpUtils = new HttpUtils();
logger.info("getAgentIPAddress calls calling url: " + ctiDisconnectURL);
Expand All @@ -749,7 +756,7 @@ public String getAgentIP(String agentID) throws JsonMappingException, JsonProces
String agentIP = DEFAULT_IP;
ObjectMapper objectMapper = new ObjectMapper();
ctiDisconnectURL = ConfigProperties.getPropertyByName("get-agent-ip-address-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
ctiDisconnectURL = ctiDisconnectURL.replace("CTI_SERVER", ctiServerIP).replace("AGENT_ID", agentID);
// HttpUtils httpUtils = new HttpUtils();
logger.info("getAgentIPAddress calls calling url: " + ctiDisconnectURL);
Expand All @@ -771,7 +778,7 @@ public OutputResponse blockNumber(String request, String remoteAddr) throws IEMR
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
BlockUnblockNumber agent = objectMapper.readValue(request, BlockUnblockNumber.class);
blockNumberURL = ConfigProperties.getPropertyByName("block-api-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
blockNumberURL = blockNumberURL.replace("CTI_SERVER", ctiServerIP)
.replace("MOBILE", (agent.getPhoneNo() != null) ? agent.getPhoneNo() : "")
.replace("CAMPAIGN_NAME", (agent.getCampaignName() != null) ? agent.getCampaignName() : "");
Expand All @@ -798,7 +805,7 @@ public OutputResponse unblockNumber(String request, String remoteAddr) throws IE
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
BlockUnblockNumber agent = objectMapper.readValue(request, BlockUnblockNumber.class);
unblockNumberURL = ConfigProperties.getPropertyByName("unblock-api-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
unblockNumberURL = unblockNumberURL.replace("CTI_SERVER", ctiServerIP)
.replace("MOBILE", (agent.getPhoneNo() != null) ? agent.getPhoneNo() : "")
.replace("CAMPAIGN_NAME", (agent.getCampaignName() != null) ? agent.getCampaignName() : "");
Expand All @@ -825,7 +832,7 @@ public OutputResponse getAvailableAgentSkills(String request, String remoteAddr)
String availableAgentsURL;
AgentSkills agent = objectMapper.readValue(request, AgentSkills.class);
availableAgentsURL = ConfigProperties.getPropertyByName("get-available-agents-URL");
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
availableAgentsURL = availableAgentsURL.replace("CTI_SERVER", ctiServerIP)
.replace("SKILL", (agent.getSkill() != null) ? agent.getSkill() : "")
.replace("CAMPAIGN_NAME", (agent.getCampaignName() != null) ? agent.getCampaignName() : "");
Expand Down Expand Up @@ -873,7 +880,7 @@ public OutputResponse transferCall(String request, String remoteAddr) throws IEM
availableAgentsURL = ConfigProperties.getPropertyByName("call-transfer-to-campaign-URL");
// transfer_from = "";
}
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
availableAgentsURL = availableAgentsURL.replace("CTI_SERVER", ctiServerIP)
.replace("TRANSFER_FROM", transfer_from).replace("TRANSFER_TO", transfer_to)
.replace("CAMPAIGN_NAME", transfer_campaign_info).replace("SKILL_NAME", skill)
Expand Down Expand Up @@ -918,7 +925,7 @@ public OutputResponse customerPreferredLanguage(CustomerLanguage custLang, Strin
String languageName = (custLang.getLanguage() != null) ? custLang.getLanguage().trim() : "";
String custPhoneNo = (custLang.getCust_ph_no() != null) ? custLang.getCust_ph_no().trim() : "";
String actionName = (custLang.getAction() != null) ? custLang.getAction().trim() : "";
String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
// String ctiServerIP = ConfigProperties.getPropertyByName("cti-server-ip");
preferredLanguageURL = preferredLanguageURL.replace("CTI_SERVER", ctiServerIP)
.replace("CAMPAIGN_NAME", campaignName).replace("LANGUAGE_NAME", languageName)
.replace("CUSTOMER_PHONE", custPhoneNo).replace("ACTION_NAME", actionName);
Expand Down
Loading