Genesys CTI User Forum

Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: Barn5ter on May 21, 2015, 09:46:35 AM

Title: WDE Customization, automatically marking done on a chat release
Post by: Barn5ter on May 21, 2015, 09:46:35 AM
Hi There

We are currently using WDE 8.5.105.12 and we are experiencing some freezing issues (being investigated by Genesys) when a second chat lands at a desktop. It seems to coincide as Chat 1 is Marked as Done and Chat 2 arrives.

As a quick fix, I am trying to see if there is an easy way to customize the WDE desktop to mark every chat as Done when we hit the End Chat button.

I know for voice calls we have the option voice.mark-done-on-release. I am basically trying to achieve the same thing but for chat interactions.

Just wondering if anyone else has given this a go in the past? Its one of those one's where I am saying to myself "surely someone has tried to do this?"  :)
If anyone could give me some pointers where to start looking in the code I would be grateful. I believe all I need to do is "insert a command" in accordance with the .NET developers guide. I am not a developer myself, but I have one at hand who is also looking at the issue. I am just seeing if I can give him some guidance as to where to look.  ;D


All help gratefully received,
Title: Re: WDE Customization, automatically marking done on a chat release
Post by: Kubig on May 21, 2015, 10:35:43 AM
Try to use command like "InteractionChatAcceptChat" (I didn't try it).

Just to the issue, I am using WDE 8.5 with more than 2 chats and have never encountered this issue.
Title: Re: WDE Customization, automatically marking done on a chat release
Post by: Barn5ter on May 21, 2015, 10:46:16 AM
OK thanks for that will let the developer take a look.

In regard to the issue, that's good to know. Don't suppose you are using it over a published application via Citrix? Engineering have accepted it as a definite issue, hoping to have fix in 8.5.106.29, when it comes out.

Back to the code, can anyone give me a bit more detail around this?
Title: Re: WDE Customization, automatically marking done on a chat release
Post by: OXE_4400 on May 21, 2015, 06:13:39 PM
8.5.106.29 and 8.5.106.30 already available for download.
Title: Re: WDE Customization, automatically marking done on a chat release
Post by: Barn5ter on May 22, 2015, 09:03:00 AM
Yeah apologies giving you the wrong versions. So .29 was believed to contain our fix, but it did not in the end. We could still cause freezing .30 only has a fix for Preview dialling. So I guess I am waiting for .31  :P !

Still seeking any further info on the customization.
Title: Re: WDE Customization, automatically marking done on a chat release
Post by: qtalal on August 27, 2016, 11:30:49 AM
[quote author=Barn5ter link=topic=8857.msg39485#msg39485 date=1432201595]
Hi There

We are currently using WDE 8.5.105.12 and we are experiencing some freezing issues (being investigated by Genesys) when a second chat lands at a desktop. It seems to coincide as Chat 1 is Marked as Done and Chat 2 arrives.

As a quick fix, I am trying to see if there is an easy way to [b]customize the WDE desktop to mark every chat[/b] as Done when we hit the End Chat button.

I know for voice calls we have the option voice.mark-done-on-release. I am basically trying to achieve the same thing but for chat interactions.

Just wondering if anyone else has given this a go in the past? Its one of those one's where I am saying to myself "surely someone has tried to do this?"  :)
If anyone could give me some pointers where to start looking in the code I would be grateful. I believe all I need to do is "insert a command" in accordance with the .NET developers guide. I am not a developer myself, but I have one at hand who is also looking at the issue. I am just seeing if I can give him some guidance as to where to look.  ;D


All help gratefully received,
[/quote]

a late answer but might be helpful to other :)

you can call the "InteractionChatWorkflow" command as follows :

                KeyValueCollection ReasonsObj = new KeyValueCollection();
                KeyValueCollection ExtensionObj = new KeyValueCollection();

                IDictionary<string, object> param = new Dictionary<string, object>();
                param.Add("CommandParameter", NewIXN);
                param.Add("Reasons", ReasonsObj);
                param.Add("Extensions", ExtensionObj);
                CMDManager.GetChainOfCommandByName("InteractionChatWorkflow").Execute(param);

if you want to trigger the above when the "End Chat button" is hit, you need to call the above code when the state of the interaction is marked as "ended" in an event handler as follows:

1- Register Event Handler:
InteractionManager.InteractionEvent += new EventHandler<EventArgs<IInteraction>>(GDE_EventHandler);

2- Monitor "eventsessioninfo" event:
protected void GDE_EventHandler(object sender, EventArgs<IInteraction> e)
        {           
                IInteraction NewIXN = e.Value;
                string NewIXNMediaType = NewIXN.Media.Name.ToLower();
                switch (NewIXNMediaType)
                {
                    case "chat":
                        string IXNEventType = NewIXN.EntrepriseLastInteractionEvent.Name.ToLower();
                        string EntIXNState = NewIXN.EntrepriseInteractionCurrent.State.ToString().ToLower();
                        switch (IXNEventType)
                        {
                            case "eventsessioninfo":
                                switch (EntIXNState)
                                {
                                    case "ended":
                                        KeyValueCollection ReasonsObj = new KeyValueCollection();
                                        KeyValueCollection ExtensionObj = new KeyValueCollection();

                                        IDictionary<string, object> param = new Dictionary<string, object>();
                                        param.Add("CommandParameter", NewIXN);
                                        param.Add("Reasons", ReasonsObj);
                                        param.Add("Extensions", ExtensionObj);
                                        CMDManager.GetChainOfCommandByName("InteractionChatWorkflow").Execute(param);
                                        break;
                                }
                        }
                }
        }