Java Voice Platform SDK bug

Who knows something about Java platform SDK?
I am coding with Java platform SDK 7.2 and I suspect that there is a bug in a receive method of protocol class. I could send and receive through it for about a day and then all of a sudden it can’t get no response from t-server though it successfully transmits requests using the same instance and t-server’s log shows that there is a response going back to it.

If I reboot my app everything gets back to norm. Is it a bug or am I plain dumb?

Steve

Steve:

We are getting the events like this:


       try {
           while(true) {

               response = receiveFromTserver(this.protocol,
this.tSvMode);
               if (response == null) {
                   objLog.WriteLog(objLog.DEBUG,
"DoQueueFromTserver(run)", "Info: T-server's a reply is null");
                   Thread.sleep(1000);
                   continue;
               }
               objLog.WriteLog(objLog.INFO, "DoQueueFromTserver(run)",
response.toString());

               eventId = response.messageId();
               switch(eventId) {
                   case EventAgentLogin.ID:
                   case EventAgentLogout.ID:
                   case EventRegistered.ID:
                   case EventAgentReady.ID:
                   case EventRinging.ID:
                   case EventEstablished.ID:
                   case EventAbandoned.ID:
                   case EventHeld.ID:
                   case EventRetrieved.ID:
                   case EventPartyChanged.ID:
                   case EventReleased.ID:
                   case EventAgentNotReady.ID:
                   case EventAttachedDataChanged.ID:
                   case EventError.ID:
                   case EventDialing.ID:
                   case EventPartyAdded.ID:
                   case EventPartyDeleted.ID:
                       objT.sendResponseToClient(this.tSvName,
response, dnInfo);
                       objLog.WriteLog(objLog.DEBUG,
"DoQueueFromTserver(run)", "T-server Event( " +
CodeIndication.getTseverEvent(eventId) +

" ) ---> client thisDN(" + dnInfo.get("dn") +

") orgConnID (" + dnInfo.get("cn") + ")");
                       break;
                   default: break;
               }
           }
       } catch (Exception e) {
           objLog.WriteLog(objLog.ERROR, "DoQueueFromTserver(run)",
"Error : T-server's protocol broken thisDN["+this.tSvName+"] ==> " + e);
           return;
       }

Are you doing it the same way as well?

1 Like

Steve:

sorry if it took me a while, but I think I know what your problem is: addp or lack of thereof.
Genesys SDK by default does not use addp in a connection, and I was able to recreate a situation where Genesys would not notice that session went down south for the rest of the weekend. This is plain and simple to do:

  1. take three hubs and connect hub one to two and two to three.
  2. connect your application to hub one
  3. connect Genesys T-Server to hub three
  4. once your application is connected and running, try disconnecting hub#2 for a few seconds and then connect it back in. The link will be still there but session won’t. What is worse, you will see session die on T-Server side but not on your application side. Once I have added addp, I could no longer recreate the problem.

so, I really strongly suggest for you to look into adding addp - chances are you already did it between your post and my reply, right?

1 Like