" /> LDS doesn't logout agent on client disconnect - Genesys CTI User Forum

Author Topic: LDS doesn't logout agent on client disconnect  (Read 3254 times)

Offline Padawan

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
LDS doesn't logout agent on client disconnect
« on: August 22, 2012, 03:31:35 PM »
Advertisement
Hi everyone!

I have a problem to solve. Actually i need to first find out if it has a possible solution.

[b]The scenario is the following:[/b]

- There is a front-end client which performs CTI functions using Genesys Platform SDK (like RequestMakeCall, RequestInitiateTransfer, RequestAgentLogin, RequestAgentLogout, etc.)

- Since the client is placed in a different network from our Agent SIP Server, we use a TServer Proxy (Load Distribution Server) to forward requests to our Agent SIPServer. The Agent Front-End connects and perform actions through this TServe Proxy.

- And we have our SIP Server which is responsible for logins and logouts of agents, and other stuffs

[b]The problem is:[/b]

When the agent client application finalizes/crashes or the pc dies for any reason, the AgentLogin keeps logged in and the agent cant re-login upon client re-start.

Analising logs, i found that the TServer Proxy receives and indication that the client died and the connection was ended:

16:36:13.585 Exception on 584 for 512 - (external)
16:36:13.585 client 584, sessionId=106169374 will be deleted from Sender(65339) & Receiver(584)
[color=red]16:36:13.585 Trc 04524 Client ' - SPv7203ST' disconnected[/color]
16:36:13.585 Removed 0 oustanding and 0 queued requests from clnt 584 (left 0 requests)
16:36:13.585 Removed 0 oustanding and 0 queued requests from clnt 584 (left 0 requests)
16:36:13.585 Removed 0 oustanding and 0 queued requests from clnt 584 (left 0 requests)
16:36:13.585 Clnt size for DN (047571) = 10
16:36:13.585 Client  - SPv7203ST (584) unregistered for Call Monitoring
16:36:13.585 Client  - SPv7203ST (584) unregistered for Call Monitoring Startup
16:36:13.585 Client  - SPv7203ST (584) unregistered for Transaction Monitoring
16:36:13.585 Client  - SPv7203ST (584) unregistered for Register All
16:36:13.585 Client  - SPv7203ST (584) unregistered for VSP Control
16:36:13.585 sip_server_p : Left 17 clients
16:36:13.585 RemoveReceiver 584 ( - SPv7203ST)

When this message is received, TServer Proxy doesnt generate any RequestAgentLogout to SIPServer, and the that agent login associated to the client disconnected becomes locked to another login. A error is delivered to TServerProxy when a login requets is sent using the same AgentLogin (EventError).

I have logout-on-disconnect option enabled as "true" in Agent SIPServer, but since SIPServer's client is actually the TServerProxy (who really does all the requests) and its connection is still ok, SIPServer doesnt do anything to prevent this.

In my understanding, the LDS / TServerProxy component should send a RequestAgentLogout to SIPServer when a client associated to a agent logged in has a disconnection. I didnt find any option on LDS User Guide which could help solve this problem.

Help guys!

Offline bublepaw

  • Sr. Member
  • ****
  • Posts: 283
  • Karma: 10
Re: LDS doesn't logout agent on client disconnect
« Reply #1 on: August 22, 2012, 06:45:11 PM »
Hi Padawan,

logout-on-disconnect is SIP Server specific feature. As such it was not implemented in LDS which is generic component. There are two ways to solve Your problem

a) fill a feature request on Genesys support - it may take some time to process it
b) implement auto logout on application side. For that You have two cases
- when somebody else tries to login to the DN that was used by "crashed" agent - this one is simple - when You send TRegister message for such DN in response You will get info if there is already agent 1234 loged and You can sent logout request
- same agent tries to login somewhere else - this is little more tricky - I didn't have time to test but I think it should be possible to query statserver to get place and DN to which specific agent is logged it and use this information to logout agent from previous DN.

Pawel

Offline Padawan

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
Re: LDS doesn't logout agent on client disconnect
« Reply #2 on: August 22, 2012, 07:54:08 PM »
Hi Bublepaw! Thanks a lot for your reply!

I was prepared to hear that unfortunately LDS doesnt do that  :P....

I was arguing with my teammates how we could manage this if it was not possible to treat by default in LDS. Since this feature is only available in SIPServer, having client side application treating it was already in our backup plan  ;)

We thought about doing this on client side:
- Client application requesting a logout when DN is already carrying an agent login. As you said, it should check if the login already attached to the DN is the same trying to "relogin". This is necessary so that no other agent could logout any other agent "accidently".
- Client side use another application to check for client and cti-link health (some sort of polling) and then perform necessary actions so that no agent become stuck. Actions could be identify client failure and then request agent logout (must know which DN that client registered at and which agent login was used)
- Or the same polling feature requesting constantly Genesys side for agent activity info.

Open a Feature Request is interesting but will take longer to become a ready-to-use solution.

Thanks for the advice!