Author Message
MajGab8852
Joined: Feb 22, 2017
Messages: 16
Offline
Hello there,

I have a strange problem: some sessions which are dropped by the OD application end up as Far-End Disconnect instead of Near-End Disconnect. I checked the OD and VXML logs and it seems like the connection.disconnect.hangup event arrives twice.

First of all, the environment:
  • OD 6.0 SP3 (06.00.13.01)

  • EP 7.0.2


  • The OD logic is as follows:

    image

    Disconnect node obviously disconnects the call, no custom logic. SetReason_N sets Outcome variable as 'N' (for reporting purposes). There is also SetReason_F to set Outcome to 'F' (not on the image). Wrapup servlet signals the ending session to other non-OD components.

    Engine_Hangup inside:

    image

    Engine_Hangup contains some after-call processing, setting up some variables, etc, and also contains a hookpoint called Engine_Hook (inside Body) for customer-specific logic. throw_dkAbandon throws custom event to signal unexpected disconnect, event is caught in the parent application, and is handled as a Far-End Disconnect.

    OD log:

    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : SetReason_N
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Assigning [N] to [CallOutcome]

    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Engine_Hangup
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Pushed Stack Frame [/Engine_Hangup]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Start
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu_cache] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUCacheVariableFactory]
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUVariableFactory]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : throw_dkAbandon
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : SetReason_F
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Popped Stack Frame [/Engine_Hangup]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Assigning [F] to [CallOutcome]

    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Engine_Hangup
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Pushed Stack Frame [/Engine_Hangup]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Start
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu_cache] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUCacheVariableFactory]
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUVariableFactory]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : setOutVars
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body-Begin
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body-Hook_Hangup
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Pushed Stack Frame [/Hook_Hangup]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Start
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUVariableFactory]
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Creating variable [vdu_cache] from factory [com.avaya.sce.runtime.connectivity.ic.pdc.VDUCacheVariableFactory]
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body-Begin
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body-Return
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Subflow return node "Body-Return" forwarding to "Return"
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Return
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Body-Return
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Popped Stack Frame [/Hook_Hangup]
    information [Hook_Hangup]
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Subflow return node "Body-Return" forwarding to "Return"
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Return
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Wrapup
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : ** Popped Stack Frame [/Engine_Hangup]
    information [Engine_Hangup]
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : session id:*****mpp***** | Engine_Main:Wrapup | @@@@@ END SESSION START
    DEBUG - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : session id:*****mpp***** | Engine_Main:Wrapup | @@@@@ END SESSION END
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Using SCESession 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main servlet : Return
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Removing session from AvayaSessionTermination Servlet
    INFO - 4A3A401B2A088D4E12F548F65A3AF7E8:/Engine_Main : Termination URL reply : <?xml version="1.0" encoding="UTF-8"?>

    The black bold part is the beginning, after the Disconnect node (not in the logs). SetReason_N is called, as it should be. The problem appears in the red bold part: after entering to Engine_Hangup, a Disconnect event arrives immediately, and the logic continues on the 'On Disconnect' output of the Approot, throwing a dkAbandon event, which causes the call to be reported as Far-End Disconnect instead of Near-End. The thing is that the OD logic is working as it should, the problem comes from deeper. VXML log:

    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|Fetching fresh copy of http://******/Engine_Main/Disconnect?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main from server|******mpp*****####
    ||FINE|VB|6344|Session=******mpp*****|successfully sent message VXML_PAGE_LOADED|******mpp*****####
    ||FINE|CommonVXI.Prompt|32455|Session=******mpp*****|osbprompt.cpp:865:(bargin: we can play)|******mpp*****####
    ||FINE|VB|6344|Session=******mpp*****|successfully sent message VXML_DIALOG_DISCONNECT|******mpp*****####
    ||FINE|CommonVXI.Prompt|32455|Session=******mpp*****|(bargin, we can play)|******mpp*****####
    |PAVB_03335|INFO|VB|32455|Session=******mpp*****|Got VoiceXML exception: connection.disconnect.hangup in http://******/Engine_Main/Disconnect?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main|******mpp*****####
    ||FINE|CommonVXI.Interpreter|32455|Session=******mpp*****|VXI::DoEvent - Enter|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetChannel::GetAbsoluteNameSetReason_N?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1403:SBinetHttpStream::getHeaderInfo: Waited 4ms for HTTP response|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1409:SBinetHttpStream::getHeaderInfo: rc=0, HttpStatus=200|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|Fetching fresh copy of http://******/Engine_Main/SetReason_N?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main&avayadonotsave___noinputcount=0&avayadonotsave___nomatchcount=0 from server|******mpp*****####
    ||FINE|VB|6344|Session=******mpp*****|successfully sent message VXML_PAGE_LOADED|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetChannel::GetAbsoluteName/Engine_Hangup/Start?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main&sagecall=Language|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1403:SBinetHttpStream::getHeaderInfo: Waited 7ms for HTTP response|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1409:SBinetHttpStream::getHeaderInfo: rc=0, HttpStatus=200|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|Fetching fresh copy of http://******/Engine_Hangup/Start?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main&sagecall=Language from server|******mpp*****####
    ||FINE|VB|6344|Session=******mpp*****|successfully sent message VXML_PAGE_LOADED|******mpp*****####
    ||FINE|CommonVXI.Jsi|32455|Session=******mpp*****|SBjsiFuncs.cpp:148:SBjsiCreateContext: entering |******mpp*****####
    ||FINE|CommonVXI.Jsi|32455|Session=******mpp*****|SBjsiFuncs.cpp:181:SBjsiCreateContext: exiting: returned rc=0|******mpp*****####
    |PAVB_03335|INFO|VB|32455|Session=******mpp*****|Got VoiceXML exception: connection.disconnect.hangup in http://******/Engine_Hangup/Start?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main&sagecall=Language|******mpp*****####
    ||FINE|CommonVXI.Interpreter|32455|Session=******mpp*****|VXI::DoEvent - Enter|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetChannel::GetAbsoluteNamethrow_dkAbandon?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1403:SBinetHttpStream::getHeaderInfo: Waited 3ms for HTTP response|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|SBinetHttpStream.cpp:1409:SBinetHttpStream::getHeaderInfo: rc=0, HttpStatus=200|******mpp*****####
    ||FINE|CommonVXI.Cache|32455|Session=******mpp*****|Fetching fresh copy of http://******/Engine_Hangup/throw_dkAbandon?___DDSESSIONID=0B14F9727475E86E557A98E82C929989%3A%2FEngine_Main&avayadonotsave___noinputcount=0&avayadonotsave___nomatchcount=0 from server|******mpp*****####

    The red bold parts show the duplicate disconnect event. Any ideas about this?

    When I set MPP logging to FINEST level, I saw two messages preceding the connection.disconnect.hangup events: in the Disconnect node, just before the event, there was a VXML_DIALOG_DISCONNECT message, but VPChannel::IsHangup kept returning false even after this. Then, in the Engine_Hangup start node there was a VXML_DIALOG_HANGUP message, and after this VPChannel::IsHangup returned true. Then, the next disconnect event happened.

    I'd really appreciate the help, I'm out of ideas. This does not look like an OD issue to me, as the same logic is installed at other customers as well, and it works fine for them. Even for this customer, the same error doesn't happen for every session.
    RossYakulis
    Joined: Nov 6, 2013
    Messages: 2652
    Offline
    I checked with the platform folks. Apparently they have seen this before and there is a not fix available. You will have to go through platform support for that but you can reference my comments.
    RossYakulis
    Joined: Nov 6, 2013
    Messages: 2652
    Offline
    The platform folks say "They can get Ep7.0.2.0.0364 hotfix from our support people to see if it fixes their problem."

    MajGab8852
    Joined: Feb 22, 2017
    Messages: 16
    Offline
    Thanks @RossYakulis, this solved our problem. It took some time to push this through our customer, but now it's installed, and everything works fine.
    Go to:   
    Mobile view