" /> SuspendForEvent - Genesys CTI User Forum

Author Topic: SuspendForEvent  (Read 12063 times)

Vic

  • Guest
SuspendForEvent
« on: January 01, 1970, 12:00:00 AM »
Advertisement
Hi, guys,

I was looking into SuspendForEvent function for URS and have a really simple question has anyone used it? When would you want to use it?


Offline Kevin S

  • Full Member
  • ***
  • Posts: 145
  • Karma: 4
Re: SuspendForEvent
« Reply #1 on: October 23, 2006, 06:41:54 PM »
  • Best Answer
  • Though I cannot tell how old the post is, I'll reply to it anyway....

    One case (provided by Genesys) would be if you wanted to make sure the consult leg of a call was completed before starting your routing, and wanted to provide some treatment, other than ringback.

    For just ringback, use "give_treatment=true" and "route_consult_call=false" in URS Options.

    Otherwise,
    1.  give a treatment to the consult leg of the call
    2.  Wait for the transfer to be completed with SuspendForEvent(EventPartyChanged)
    3.  continue routing the call for the inbound leg.

    Other case in my next post....

    Offline Kevin S

    • Full Member
    • ***
    • Posts: 145
    • Karma: 4
    Re: SuspendForEvent
    « Reply #2 on: October 23, 2006, 06:47:31 PM »
  • Best Answer
  • A second circumstance would be if you want to wait for a KVP to be attached - mainly because you have to make a decision based on it.

    In one of my strategies, I retrieve data from a specific source, and attach/update the data to the call. In some cases, I use these KVPs from within VTO scripts to make decisions within the VTO script itself. 

    The SuspendForEvent allows me to make sure the required KVPs are attached/updated before the VTO treatment is provided - thereby preventing the caller from getting improper treatments and/or handling.

    Offline Adam G.

    • Hero Member
    • *****
    • Posts: 552
    • Karma: 12
    • Still Gorgeous.......
    Re: SuspendForEvent
    « Reply #3 on: October 23, 2006, 10:10:04 PM »
  • Best Answer
  • SuspendForEvent is also used for RONA functionality (if supported by the PBX).

    I'll put a doc on the wiki on how to use it for RONA in the next 24 hours or so.


    Offline Eisa

    • Newbie
    • *
    • Posts: 6
    • Karma: 0
    Re: SuspendForEvent
    « Reply #4 on: October 27, 2006, 02:38:05 AM »
  • Best Answer
  • I'm using it waiting for the IVR to change some attached data and then take the control from the IVR

    Offline deadmeat

    • Jr. Member
    • **
    • Posts: 75
    • Karma: -2
    Re: SuspendForEvent
    « Reply #5 on: January 27, 2016, 01:53:50 PM »
  • Best Answer
  • Hello guys. Have a question on this function. i want to do some post routing (trigeering DB procedure) only after the call is being released. When I put it after routing block, DB is triggered as the call is answered by CSR. As I understand, after the routing block in IRD, I should put this function with timeout = empty, Type = EventReleased, Event = ? Should I leave Event empty or add there KVP like connectionID or something ? Any ideas, would be very grateful ?

    Offline Kubig

    • Hero Member
    • *****
    • Posts: 2755
    • Karma: 44
    Re: SuspendForEvent
    « Reply #6 on: January 27, 2016, 02:22:57 PM »
  • Best Answer
  • As is mentioned in documentation:

    [quote]The Event parameter can be empty. If specified, the string or the variable (representing the string) must be in the key-value list format using one of the following keys: event, thisdn, otherdn, thirdpartydn, dnis, ani, collecteddigits, referenceid, userdata, and extensions.[/quote]

    Offline terry

    • Sr. Member
    • ****
    • Posts: 328
    • Karma: 35
    Re: SuspendForEvent
    « Reply #7 on: January 27, 2016, 06:40:12 PM »
  • Best Answer
  • Event can be left empty (it provides extra details about event to be intercepted, in case you need to react not just on any EventReleased but on one with some specific properties).
    Timeout should be set to some reasonable value (not empty) - how long you want to wait this event.
    And you need to make sure (configure URS if needed) that URS will receive tevents  (like EventReleased) on DNs.

    Offline deadmeat

    • Jr. Member
    • **
    • Posts: 75
    • Karma: -2
    Re: SuspendForEvent
    « Reply #8 on: January 28, 2016, 09:59:34 AM »
  • Best Answer
  • Thank you guys for the replies. First I thought that I should enter in Event something like connection ID. To catch eventrelease from concrete interaction. One more question. Correct if I am wrong, for URS to monitor events on DN, I should add event_arrive = routerequest in configuration of this DN ?

    Offline terry

    • Sr. Member
    • ****
    • Posts: 328
    • Karma: 35
    Re: SuspendForEvent
    « Reply #9 on: January 28, 2016, 06:34:07 PM »
  • Best Answer
  • For agents' DNs event_arrive can be  ringing, established, treatmentrequired. The last value is safer if you do not want to run strategies on agent's DN.
    Alternatives:
      option transit_dn set to true on agent DN
      option call_monitoring on URS set to true (if you interested specifically in EventReleased). 

    Offline deadmeat

    • Jr. Member
    • **
    • Posts: 75
    • Karma: -2
    Re: SuspendForEvent
    « Reply #10 on: January 29, 2016, 08:53:13 AM »
  • Best Answer
  • Well, thank you guys for your help. But I'm facing problems anyway. I've set call_monitoring to true in URS config options. Restarted URS. On DN (routing point where strategy is loaded) Under URS_p(URS application name) event_arrive=routerequest. Still after I release a call function doesn't catch event released. It waits for time out and returns return:timeout. Actually I'm out of options now, why it could happen. I had suspensions that I should tell suspendforevent some hard link like connection id or transaction id for example. To make this function wait for eventreleased on this particular interaction. Or maybe from the other side, it's because of incorrect format of eventreleased:
    [code]
    received from 65200(SIP_p)cc-vm-psip-pr:3000(fd=) message EventAgentNotReady
    AttributeThisDN '9900'
    AttributeAgentID '2048'
    AttributeAgentWorkMode 3 (AfterCallWork)
    AttributeTimeinSecs 1454055995 (12:26:35)
    AttributeTimeinuSecs 713798
    AttributeEventSequenceNumber 000000001cf26d78
    AttributeExtensions [72] 00 02 01 00..
    'WrapUpTime' 3
    'AgentSessionID' '0024MGHV80ATH4CT0KSTO2LAES39PKM5'
    received from 65200(SIP_p)cc-vm-psip-pr:3000(fd=) message EventReleased
    AttributeCallState 0
    AttributeCallType 2
    AttributePropagatedCallType 2
    AttributeCallID 8592723
    AttributeConnID 0082026d1e67016e
    AttributeCallUUID '02BNTA1V7SATH4CT0KSTO2LAES0867AJ'
    AttributeUserData [816] 00 24 00 00..
    'TIMESTAMP_START' '1454055991'
    'DNIS' ''
    'CUSTOMER_TYPE' 'PPP'
    'CUSTOMER_VALUE' 'C'
    'LANGUAGE' 'RU'
    'FIRST_NAME' 'Mehdiyev Fuad'
    'LAST_NAME' 'Bakcell'
    'MSISDN' '994555902585'
    'ERRSTATUS' 'false'
    'SUBSID' '50159565'
    'WB_INDICATOR' ''
    'SECCODE' '3323'
    'SERVICE_TYPE' 'GEN'
    'URSCONNID' '0082026d1e67016e'
    'RVQID' ''
    'RVQDBID' ''
    'RTargetTypeSelected' '0'
    'RTargetRuleSelected' ''
    'RTargetObjectSelected' '2048'
    'RTargetObjSelDBID' '150'
    'RTargetAgentSelected' '2048'
    'RTargetPlaceSelected' 'Place_9900'
    'RTenant' 'Resources'
    'RStrategyName' 'Catch_EventAbandoned'
    'RStrategyDBID' '156'
    'CBR-actual_volume' ''
    'CBR-Interaction_cost' ''
    'CBR-contract_DBIDs' ''
    'CBR-IT-path_DBIDs' ''
    'RRequestedSkillCombination' ''
    'RRequestedSkills'(list)
    'CustomerSegment' 'default'
    'ServiceType' 'default'
    'ServiceObjective' ''
    'AutoMarkDone' 'Yes'
    'AMD_timeout' '1'
    AttributeDNIS '6930'
    AttributeANI '994555902585'
    AttributeThisDN '9900'
    AttributeAgentID '2048'
    AttributeThisDNRole 2
    AttributeThisQueue '6930'
    AttributeOtherDN '994555902585'
    AttributeOtherDNRole 1
    AttributeExtensions [84] 00 03 00 00..
    'OtherTrunkName' 'Trunk_MSSBHQH01'
    'BusinessCall' 1
    'ReleasingParty' '2 Remote'
    AttributeTimeinSecs 1454055995 (12:26:35)
    AttributeTimeinuSecs 714100
    AttributeEventSequenceNumber 000000001cf26d79
    12:26:36.562_T_I_0082026d1e67016e [14:0c] EventReleased is received for ts SIP_p[SIP_Switch] (this dn=9900)
        _T_I_0082026d1e67016e [14:0a] del DN (SIP_p[SIP_Switch] 9900 2ed1390) controlled=0 calluuid=1 cleanup=0(ref.id=0)
        _T_W_0082026d1e67016e [14:0a] there is no DNs for call, selfdestruction(0)
    12:26:36.562_I_I_0082026d1e67016e [01:08] call (6990-2f19160) deleting truly
    0082026d1e67016e, 01/29/16@12:26:36.562, 9900(SIP_p) -> @ [abandoned dropped dumb  0 0], tms: 3942= (N)3942 + (T)0 + (X)0 + (S)0 + (W)0 + (F)0 + (R)0, trg:
    CALL (0082026d1e67016e) HISTORY ( Abandon Dropped ):
    12:26:36.562 Int 20005 interaction 0082026d1e67016e is abandoned
    received from 65200(SIP_p)cc-vm-psip-pr:3000(fd=) message EventOnHook
    AttributeThisDN '9900'
    AttributeTimeinSecs 1454055995 (12:26:35)
    AttributeTimeinuSecs 714419
    AttributeEventSequenceNumber 000000001cf26d7b
    received from 65200(SIP_p)cc-vm-psip-pr:3000(fd=) message EventReleased
    AttributeThisDN 'SIP_Switch::'
    AttributeCallType 2
    AttributePropagatedCallType 2
    AttributeCallID 8592723
    AttributeConnID 0082026d1e67016e
    AttributeCallUUID '02BNTA1V7SATH4CT0KSTO2LAES0867AJ'
    AttributeUserData [816] 00 24 00 00..
    'TIMESTAMP_START' '1454055991'
    'DNIS' ''
    'CUSTOMER_TYPE' 'PPP'
    'CUSTOMER_VALUE' 'C'
    'LANGUAGE' 'RU'
    'FIRST_NAME' 'Mehdiyev Fuad'
    'LAST_NAME' 'Bakcell'
    'MSISDN' '994555902585'
    'ERRSTATUS' 'false'
    'SUBSID' '50159565'
    'WB_INDICATOR' ''
    'SECCODE' '3323'
    'SERVICE_TYPE' 'GEN'
    'URSCONNID' '0082026d1e67016e'
    'RVQID' ''
    'RVQDBID' ''
    'RTargetTypeSelected' '0'
    'RTargetRuleSelected' ''
    'RTargetObjectSelected' '2048'
    'RTargetObjSelDBID' '150'
    'RTargetAgentSelected' '2048'
    'RTargetPlaceSelected' 'Place_9900'
    'RTenant' 'Resources'
    'RStrategyName' 'Catch_EventAbandoned'
    'RStrategyDBID' '156'
    'CBR-actual_volume' ''
    'CBR-Interaction_cost' ''
    'CBR-contract_DBIDs' ''
    'CBR-IT-path_DBIDs' ''
    'RRequestedSkillCombination' ''
    'RRequestedSkills'(list)
    'CustomerSegment' 'default'
    'ServiceType' 'default'
    'ServiceObjective' ''
    'AutoMarkDone' 'Yes'
    'AMD_timeout' '1'
    AttributeDNIS '6930'
    AttributeANI '994555902585'
    AttributeTimeinSecs 1454055995 (12:26:35)
    AttributeTimeinuSecs 714987
    AttributeEventSequenceNumber 000000001cf26d7c
    12:26:36.563_M_I_ [10:17] SO(2dcb210 732 2) ten=Resources name=2048@SS_URS_p.A: CHANGE OF STATE (CallInbound->AfterCallWork)[1454055996 1 0]
        _M_I_ [10:17] SO(2dcb210 732 2) ten=Resources name=2048@SS_URS_p.A: voice media status: 0 1 0
        _M_I_ [10:17] -ready DN 9900 @ SIP_Switch (type 1 AfterCallWork time=1454055996) for ag 2048, pl Place_9900, AfterCallWork time=1454055996
        _M_I_ [10:17] SO(2dcb210 732 2) ten=Resources name=2048@SS_URS_p.A: 0(1) ready DNs reported, dT=0
    [/code]

    What is confusing me, that AttributeThisDN 'SIP_Switch::'. Should it be like this ?

    Offline terry

    • Sr. Member
    • ****
    • Posts: 328
    • Karma: 35
    Re: SuspendForEvent
    « Reply #11 on: February 01, 2016, 07:00:46 PM »
  • Best Answer
  • There is no need to set event_arrive on RP in this case (on RP this option by default is routerequest).
    It is about setting this option on agent's DN (9900 probably).

    Looks like interpretation of provided log fragment can be like this:
    option event_arrive on agent DN is set to ringing or established.
    As result:
      As this option specifies the event that will make URS to start strategy on this DN - after call was routed to agent (and strategy begin wait for event)
          there was ringing and established on agent DN and URS started (attempted at least) for this call new session.
          Since this moment old session will no get any tevents (URS can have many session for the same connid but only one of them (the latest) will receive
          tevents)

    Basically recommendations is:
    - set this option on agent DN to treatmentrequired.  It makes URS register on DN, monitor calls on it but never starting any new sessions - original
      session can wait event as long as it want.

    - or (alternatively) do not use event_arrive on agent's DN but instead set on this DN transit_dn to true

    - or (alternatively) do not use event_arrive/transit_dn at all but instead set call_monitoring (on entire URS) to true.
        In last 2 cases probably will be good to increase value of option hanged_call_time.



    Offline deadmeat

    • Jr. Member
    • **
    • Posts: 75
    • Karma: -2
    Re: SuspendForEvent
    « Reply #12 on: February 02, 2016, 08:51:27 AM »
  • Best Answer
  • [quote author=terry link=topic=723.msg42154#msg42154 date=1454353246]
    Basically recommendations is:
    - set this option on agent DN to treatmentrequired.  It makes URS register on DN, monitor calls on it but never starting any new sessions - original
      session can wait event as long as it want.

    - or (alternatively) do not use event_arrive on agent's DN but instead set on this DN transit_dn to true

    - or (alternatively) do not use event_arrive/transit_dn at all but instead set call_monitoring (on entire URS) to true.
        In last 2 cases probably will be good to increase value of option hanged_call_time.
    [/quote]

    Thank you terry. let me check. Previously event_arrive was ringing on all agents extensions. It was made due to catch 231 DN is Busy error. Later on I have set call_monitoring = true and restarted URS. Now let me check with event_arrive = treatmentrequired and without event_arrive at all.

    Offline deadmeat

    • Jr. Member
    • **
    • Posts: 75
    • Karma: -2
    Re: SuspendForEvent
    « Reply #13 on: February 02, 2016, 08:59:45 AM »
  • Best Answer
  • Finally. event_arrive = treatmentrequired worked fine. Call_monitoring was set to true earlier. Thank you guys for your help.