Browse Source

Updates to support Live Call 2, i.e. agent first

tags/1.0.29
ymlam 2 years ago
parent
commit
940e276ab2
3 changed files with 56 additions and 42 deletions
  1. +8
    -7
      src/main/java/altk/comm/engine/Broadcast.java
  2. +45
    -34
      src/main/java/altk/comm/engine/CommEngine.java
  3. +3
    -1
      src/main/java/altk/comm/engine/XMLSAXBroadcast.java

+ 8
- 7
src/main/java/altk/comm/engine/Broadcast.java View File

@@ -361,14 +361,13 @@ public abstract class Broadcast
job.startTime = now; job.startTime = now;
} }
// Service the jobs
// But first get dependent resource
// which includes allocation from capacity. Only returns when the required allocation
// is obtained. Example, RTP port allocation, limit due to total number of allowable calls.
ServicePrerequisites prerequisites = secureServicePrerequisites();

try try
{ {
// Service the jobs
// But first get dependent resource
// which includes allocation from capacity. Only returns when the required allocation
// is obtained. Example, RTP port allocation, limit due to total number of allowable calls.
ServicePrerequisites prerequisites = secureServicePrerequisites();
int transactions = processJobs(batch, serviceProviderPeer, prerequisites); int transactions = processJobs(batch, serviceProviderPeer, prerequisites);
incrementTransactions(transactions); incrementTransactions(transactions);
} }
@@ -538,6 +537,7 @@ public abstract class Broadcast
// Return regular or error response // Return regular or error response
String responseXML = getResponseXML(myException); String responseXML = getResponseXML(myException);
PrintWriter writer; PrintWriter writer;
response.setContentType("application/xml;charset=UTF-8");
try try
{ {
writer = response.getWriter(); writer = response.getWriter();
@@ -646,8 +646,9 @@ public abstract class Broadcast
* Obtains the required components to support a service; e.g. RTP port, or a place * Obtains the required components to support a service; e.g. RTP port, or a place
* in maximum total number of calls. Does not return till the reequired prerequisites are obtained. * in maximum total number of calls. Does not return till the reequired prerequisites are obtained.
* @return null, if no prerequisite is required, as in the case of email and sms engines. * @return null, if no prerequisite is required, as in the case of email and sms engines.
* @throws Exception
*/ */
abstract protected ServicePrerequisites secureServicePrerequisites();
abstract protected ServicePrerequisites secureServicePrerequisites() throws Exception;


abstract public void closeServiceProvider(Object serviceProvider); abstract public void closeServiceProvider(Object serviceProvider);




+ 45
- 34
src/main/java/altk/comm/engine/CommEngine.java View File

@@ -386,53 +386,64 @@ public abstract class CommEngine extends HttpServlet
CommonLogger.alarm.error("Cannot write a reply: " + e); CommonLogger.alarm.error("Cannot write a reply: " + e);
return; return;
} }
String get = (String)request.getParameter("get");
if (get == null)
try
{
String get = (String)request.getParameter("get");
if (get == null)
{
throw new Exception("No 'get' parameter in HTTP GET quierysring");
}
if (get.equalsIgnoreCase("status"))
{
response.setContentType("application/xml");
getStatus(request, out);
}
else if (get.equalsIgnoreCase("cancel_broadcast"))
{
cancelBroadcast(request, out);
}
else if (get.equalsIgnoreCase("pause_broadcast"))
{
pauseBroadcast(request, out);
}
else if (get.equalsIgnoreCase("resume_broadcast"))
{
resumeBroadcast(request, out);
}
else if (get.equalsIgnoreCase("configuration"))
{
getConfiguration(request, out);
}
else if (get.equalsIgnoreCase("configure"))
{
configure(request, out);
}
else
{
out.write(get + " not supported");
}
out.close();
}
catch (Exception e)
{ {
myLogger.warn("While handling HTTP GETE: " + e.getMessage(), e);
// Return http status BAD REQUEST // Return http status BAD REQUEST
int httpStatus = HttpServletResponse.SC_BAD_REQUEST; int httpStatus = HttpServletResponse.SC_BAD_REQUEST;
try try
{ {
response.sendError(httpStatus); response.sendError(httpStatus);
} }
catch (IOException e)
catch (IOException e1)
{ {
myLogger.warn("Unnable to return HTTP error code " + httpStatus);
myLogger.warn("Unnable to return HTTP error code " + httpStatus, e1);
} }
return;
}
if (get.equalsIgnoreCase("status"))
{
getStatus(request, out);
}
else if (get.equalsIgnoreCase("cancel_broadcast"))
{
cancelBroadcast(request, out);
} }
else if (get.equalsIgnoreCase("pause_broadcast"))
{
pauseBroadcast(request, out);
}
else if (get.equalsIgnoreCase("resume_broadcast"))
{
resumeBroadcast(request, out);
}
else if (get.equalsIgnoreCase("configuration"))
{
getConfiguration(request, out);
}
else if (get.equalsIgnoreCase("configure"))
{
configure(request, out);
}
else
{
out.write(get + " not supported");
}
out.close();
} }


/** /**

*
*
* Writes configuration in JSON string to out * Writes configuration in JSON string to out
* @param request * @param request
* @param out * @param out


+ 3
- 1
src/main/java/altk/comm/engine/XMLSAXBroadcast.java View File

@@ -23,7 +23,8 @@ import altk.common.engine.util.UTF8BenevolentDecoder;


public abstract class XMLSAXBroadcast extends Broadcast public abstract class XMLSAXBroadcast extends Broadcast
{ {

protected String rootNodeName;
protected class BaseParserHandler extends DefaultHandler protected class BaseParserHandler extends DefaultHandler
{ {
/** /**
@@ -52,6 +53,7 @@ public abstract class XMLSAXBroadcast extends Broadcast
{ {
// Initialize characters to start collecting // Initialize characters to start collecting
characters = new StringBuffer(); characters = new StringBuffer();
if (rootNodeName == null) rootNodeName = qName;
if (qName.equals("recipient")) if (qName.equals("recipient"))
{ {


Loading…
Cancel
Save