Code with Finding: |
class AsteriskServerImpl {
public void originateAsync(OriginateAction originateAction, OriginateCallback cb) throws ManagerCommunicationException
{
final Map<String, String> variables;
final String traceId;
traceId = ACTION_ID_PREFIX_ORIGINATE + idCounter.getAndIncrement();
if (originateAction.getVariables() == null)
{
variables = new HashMap<String, String>();
}
else
{
variables = new HashMap<String, String>(originateAction.getVariables());
}
// prefix variable name by "__" to enable variable inheritence across
// channels
variables.put("__" + Constants.VARIABLE_TRACE_ID, traceId);
originateAction.setVariables(variables);
// async must be set to true to receive OriginateEvents.
originateAction.setAsync(Boolean.TRUE);
originateAction.setActionId(traceId);
if (cb != null)
{
final OriginateCallbackData callbackData;
callbackData = new OriginateCallbackData(originateAction, DateUtil.getDate(), cb);
// register callback
synchronized (originateCallbacks)
{
originateCallbacks.put(traceId, callbackData);
}
}
initializeIfNeeded();
sendActionOnEventConnection(originateAction);
}
}
|