示例#1
0
 /**
  * Change state if connected call was terminated.
  *
  * @param event
  */
 void handleAgentCompleteEvent(AgentCompleteEvent event) {
   AsteriskAgentImpl agent = getAgentByAgentId(event.getChannel());
   if (agent == null) {
     logger.error("Ignored AgentCompleteEvent for unknown agent " + event.getChannel());
     return;
   }
   agent.updateState(AgentState.AGENT_IDLE);
 }
示例#2
0
  /**
   * On AgentsEvent create a new Agent.
   *
   * @param event generated by Asterisk server.
   */
  void handleAgentsEvent(AgentsEvent event) {
    AsteriskAgentImpl agent =
        new AsteriskAgentImpl(
            server,
            event.getName(),
            "Agent/" + event.getAgent(),
            AgentState.valueOf(event.getStatus()));
    logger.info("Adding agent " + agent.getName() + "(" + agent.getAgentId() + ")");

    addAgent(agent);
  }
示例#3
0
 /**
  * Change state if agent logs out.
  *
  * @param event
  */
 void handleAgentCallbackLogoffEvent(AgentCallbackLogoffEvent event) {
   AsteriskAgentImpl agent = getAgentByAgentId("Agent/" + event.getAgent());
   if (agent == null) {
     logger.error(
         "Ignored AgentCallbackLogoffEvent for unknown agent "
             + event.getAgent()
             + ". Agents: "
             + agents.values().toString());
     return;
   }
   agent.updateState(AgentState.AGENT_LOGGEDOFF);
 }
示例#4
0
 /**
  * Change state if agent logs in.
  *
  * @param event
  */
 void handleAgentLoginEvent(AgentLoginEvent event) {
   AsteriskAgentImpl agent = getAgentByAgentId("Agent/" + event.getAgent());
   if (agent == null) {
     synchronized (agents) {
       logger.error(
           "Ignored AgentLoginEvent for unknown agent "
               + event.getAgent()
               + ". Agents: "
               + agents.values().toString());
     }
     return;
   }
   agent.updateState(AgentState.AGENT_IDLE);
 }
示例#5
0
 /**
  * Set state of agent.
  *
  * @param agent
  */
 private void updateAgentState(AsteriskAgentImpl agent, AgentState newState) {
   logger.info("Set state of agent " + agent.getAgentId() + " to " + newState);
   synchronized (agent) {
     agent.updateState(newState);
   }
 }
示例#6
0
 /**
  * Add a new agent to the manager.
  *
  * @param agent agent to add.
  */
 private void addAgent(AsteriskAgentImpl agent) {
   synchronized (agents) {
     agents.put(agent.getAgentId(), agent);
   }
   server.fireNewAgent(agent);
 }