Author Message
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Hello,

We have developed a dialer using JTAPI and we use ACDAddress.getLoggedOnAgents() to check for the logged agents in a skill.

We have noticed, the last time right now, that sometimes, this function does not return all the agents. This is causing that some agents are not receving calls.

Has this ever happened to any of you?

Do you know why this could be caused?

Thank you very much.

Ricardo Sosa.
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Update: when we restart the tomcat where the application is running, it works ok.

It looks like it could be something related with the libraries.

Thank you again.
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Hello again,

One more thing I have seen is: if we remove an agent from a skill, using CMS, while the agent is logged in, this function still returns this agent as if he/she still belong to the skill. If the agent logs out and in again, it works correctly.

I don't know if these two things are related, but it could be.

Regards.
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Online
Changes to agent configuration, such as their skills, only take effect after they log out. Therefore, the behavior you describe for getLoggedOnAgents() is correct.

Martin
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Hello Martin,

thanks for your reply. What do you mean by "Changes to agent configuration, such as their skills, only take effect after they log out"?

Do you refer to AES?

It is strange, because when they are added to the skill while they are logged, it is updated in the result from this function, but not when removing.

Also, in CMS we see them updated correctly.

Thank you again.

ric
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Online
I am talking about Communication Manager. Changes to the Agent on Communication manager will not actually take effect until the agent logs out.

CMS may show that the agent no longer has the skill but calls to the hunt-group may still be routed to the agent.

Martin
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Hello again Martin,

I think that is the behaviour when you change the skills through ASA, but not if you are using CMS.

According to "Avaya Call Management System Administration r17" (https://downloads.avaya.com/css/P8/documents/100170084)

"Skill changes take effect immediately for agents who are in AUX work mode, AVAIL (available),
or logged out. Changes are pending for agents on calls or in ACW work mode until the agent
enters the AUX work mode, becomes available, or logs out. Because of this, agents who
frequently have calls on hold may have skill changes remain pending for a longer time than
expected." (pg 133)

Thank you again.
RicardoSosa
Joined: Dec 1, 2011
Messages: 43
Offline
Hello again,

I still did not solve this issue, we opened an issue with Avaya Support and we have seen the following.

I will explain the test:

  • We have 2 agents logged, only one of them belonging to a skill that we are querying.

  • Check in CMS and CM that only one agent is in the skill

  • Then add the other agent to the skill

  • Check in CMS and CM that both agents are in the skill

  • Then remove the second agent from the skill

  • Check in CMS and CM that only one agent is in the skill



  • My code:

    @Override
    public String[] getReadyAgentsInGroupExtension(String sGroupExt) throws InvalidArgumentException, MethodNotSupportedException
    {
    logger.debug(">> getReadyAgentsInGroupExtension: " + sGroupExt);
    ArrayList<String> asAgents = new ArrayList<String>();

    if ( sGroupExt != null ) {
    Object auxACD = oProvider.getAddress(sGroupExt);
    if ( auxACD != null && auxACD instanceof ACDAddress){
    ACDAddress oACD = (ACDAddress) auxACD;
    [b]Agent[] agents = oACD.getLoggedOnAgents();[/b]
    if ( agents != null && agents.length > 0){
    for (Agent oAgent : agents){

    [b]logger.debug(oAgent.getAgentID() + ": " + oAgent.getState());[/b]
    if(oAgent.getState() == Agent.READY || oAgent.getState() == Agent.WORK_READY)
    asAgents.add(oAgent.getAgentID());
    }
    }else{
    logger.info("No agents logged on " + sGroupExt);
    }
    }else{
    logger.warn("oACD is null. Group extension: " + sGroupExt);
    }
    }else{
    logger.warn("Group extension is null");
    }
    logger.debug("<< getReadyAgentsInGroupExtension: " + asAgents);
    return asAgents.toArray(new String[asAgents.size()]);
    }



    The issue is that after the third step of the test getLoggedOnAgents keeps returning both agents. These are the logs:

    2018-06-07 16:48:14 DEBUG JtapiCallGenerator:249 - >> getReadyAgentsInGroupExtension: 1262
    2018-06-07 16:48:15 DEBUG JtapiCallGenerator:260 - 1314: 3
    ...
    2018-06-07 16:54:31 DEBUG JtapiCallGenerator:249 - >> getReadyAgentsInGroupExtension: 1262
    2018-06-07 16:54:32 DEBUG JtapiCallGenerator:260 - 1314: 3
    2018-06-07 16:54:32 DEBUG JtapiCallGenerator:260 - 1316: 3
    ...
    2018-06-07 16:57:02 DEBUG JtapiCallGenerator:249 - >> getReadyAgentsInGroupExtension: 1262
    2018-06-07 16:57:03 DEBUG JtapiCallGenerator:260 - 1314: 3
    2018-06-07 16:57:03 DEBUG JtapiCallGenerator:260 - 1316: 3


    Agent 1316 keeps showing until he/she logs out, even when it does not belong to 1262.

    Another strange thing that we just discover is that in the jtapi logs it does not show. How is it possible that it does not show on jtapi logs but it is returned by the method?

    These are the libraries that I am using:

    <dependency>
    <groupId>com.avaya</groupId>
    <artifactId>ecsjtapia</artifactId>
    <version>6.3.0.121</version>
    </dependency>
    <dependency>
    <groupId>com.avaya</groupId>
    <artifactId>jtapiex</artifactId>
    <version>6.3.0.121</version>
    </dependency>


    I hope that, with this new information, someone is able to help me here.

    I have logs to send if necessary.

    Thank you again.

    Ricardo Sosa.
    MartinFlynn
    Joined: Nov 30, 2009
    Messages: 1922
    Online
    This looks to be beyond the scope of what can be dealt with on the forum. If you are a paid member, you can open a technical support ticket and one of my colleagues will try to help you with this.

    Martin
    RicardoSosa
    Joined: Dec 1, 2011
    Messages: 43
    Offline
    Hello again,

    I have checked that the same issue happens when I use JTAPI exerciser:
    - get the provider
    - get the ACDAddress associated with the skill
    - call getLoggedOnAgents()

    It shows agents that were in the skill when the skill is removed with CMS while they are logged.

    I think something is wrong with the JTAPI library or I am missing something here.

    Regards.
    Go to:   
    Mobile view