Spark transfer chat to other agent button is not visible

Hi Team,
I am using openfire fastpath and webchat plugin to enable company support activity.
Agent are using Spark to login and can chat with customers.
But Agents are not able to transfer the chat to another agent, because transfer chat option is not visible on spark chat window. Do we need some extra configuration to enable that button.

Also wants to know if we have any other application like Spark or web application, which we can use for agent login.

Which version of Openfire and Spark are you using? Can you provide screenshots please?

Hi Guus

I got the spark code from git and running it by mvn exec:java.
I made 2 copies of the code so that i can run two instances of spark to login 2 different agents.
able to login by two different agents and chat with user is running ok.
but i am not able to see any button in spark for transferring the chat to other agent.
There is one option i found “invite”. but it is for inviting other agents to current chat.
With the help of “invite” option i can invite agents to the current chat and then first agent can leave the room. This is some kind of workaround (am i right).

Please check attached screenshots for all screens.

Separate chat window screen shot.

Invite option:

Hi Guus,

In above example i am using fastpath-webchat.war for user login and spark (git repository code) for agent login.

I tried with one more scenario inverse plugin (http://localhost:7070/inverse/) for user login and spark for agent login. when i try this approach, i am able to see agent transfer button.

but when i click on transfer button on chat window i am getting below error on console.

Blockquote
[WARNING]
java.lang.ClassCastException: org.jxmpp.jid.impl.LocalAndDomainpartJid cannot be cast to java.lang.String
at org.jivesoftware.fastpath.workspace.invite.WorkgroupInvitationDialog.hasSelectedAgent (WorkgroupInvitationDialog.java:203)
at org.jivesoftware.fastpath.workspace.Workpane.inviteOrTransfer (Workpane.java:361)
at org.jivesoftware.fastpath.workspace.Workpane.access$500 (Workpane.java:75)
at org.jivesoftware.fastpath.workspace.Workpane$7.actionPerformed (Workpane.java:327)
at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:252)
at com.jtattoo.plaf.BaseButtonListener.mouseReleased (BaseButtonListener.java:60)
at java.awt.AWTEventMulticaster.mouseReleased (AWTEventMulticaster.java:289)
at java.awt.AWTEventMulticaster.mouseReleased (AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent (Component.java:6533)
at javax.swing.JComponent.processMouseEvent (JComponent.java:3324)
at java.awt.Component.processEvent (Component.java:6298)
at java.awt.Container.processEvent (Container.java:2238)
at java.awt.Component.dispatchEventImpl (Component.java:4889)
at java.awt.Container.dispatchEventImpl (Container.java:2296)
at java.awt.Component.dispatchEvent (Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4897)
at java.awt.LightweightDispatcher.processMouseEvent (Container.java:4534)
at java.awt.LightweightDispatcher.dispatchEvent (Container.java:4475)
at java.awt.Container.dispatchEventImpl (Container.java:2282)
at java.awt.Window.dispatchEventImpl (Window.java:2746)
at java.awt.Component.dispatchEvent (Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl (EventQueue.java:760)
at java.awt.EventQueue.access$500 (EventQueue.java:97)
at java.awt.EventQueue$3.run (EventQueue.java:709)
at java.awt.EventQueue$3.run (EventQueue.java:703)
at java.security.AccessController.doPrivileged (Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:90)
at java.awt.EventQueue$4.run (EventQueue.java:733)
at java.awt.EventQueue$4.run (EventQueue.java:731)
at java.security.AccessController.doPrivileged (Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent (EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run (EventDispatchThread.java:82)

i also tried with inviting other agent to this chat and then select that agent and click on transfer button, but still same error.

So now i have below questions on transfer chat functionality-

1.Transfer button is not showing up when user start chat with webchat.war
2.When user login with inverse plugin then Transfer button is showing up but on click it is throwing above quoted error.
3.If i try to login as agent in inverse plugin page, i am not able to join the workgroup as agent. workgroup recognizes me as a normal user and start assigning me a agent from queue.
4.Is there any alternative to spark application or any web application. Tried spark web also but customer - agent flow is not working there.

Thanks for your support.

  1. I believe in this case this is just a chat and not a regular Fastpath queue request. Because if it is a request, agents receive a popup and then join the chat with a user and then GUI has all the regular menus like canned responses and transfer buttons. I haven’t used Webchat part myself, so not sure why it is not working. When you use regular client and send a message to Fastpath workgroup/queue, you are presented with questions (name, email, question) and then you are added to the queue. I guess when a user joins via webchat there is no such form, so user is not in queue and then this is just a plain chat. I’m guessing for this to work webchat needs to hook into Fastpath queue somehow, but i don’t know how to config that. Webchat is an old plugin and is not even available for download officially as it had various issues.
  2. As i have described above this works because user is added to the queue after messaging to the queue address and filling the form. The error with that button is some bug, because Spark was updated many times and Fastpath part was not touched by anyone for a very long time, so some parts might be broken.
  3. Fastpath only works for agents in Spark, because Spark has a special GUI programmed for that. Fastpath is a unique Spark feature. Although it uses a workgroups standard, but implementation is unique to Spark, so it won’t automatically appear in any other client unless someone adds such function. Which i doubt many will do. Inverse is just a fork of Converse client and i don’t think author of Converse will be interested in implementing Fastpath.
  4. No. As i’ve said Fastpath is unique to Spark.
  1. When user start chat from webchat.war, then also agent is receiving popup and user presented question (name , email, questions). it means it is not a direct chat. it is going through queue. this can be a bug in spark.
  2. If fastpath part was not touched by anyone for a very long time then how we can trust on new version of Openfire+Fastpath+Spark (i downloaded latest version). There should be recommended version to use this trio.
  3. I asked this question because on https://github.com/igniterealtime/openfire-fastpath-plugin website, shown example to login as agent by inverse plugin. but when i login as agent it is not working as expected.As per this git repository it is possible to login as agent in inverse.
  4. ok

please support, if there is a way to run customer - agent flow using fastpath+spark without any bug/issue.

  1. This could also be a bug in Webchat if it is not sending it in a way Spark is expecting it.
  2. These are open source projects done by volunteers in their spare time. Nobody was interested in supporting Webchat or Fastpath so it became old and broken. There are paid professional services offered though. Maybe someone would be willing to work on that.
  3. Specifically you might ask @Dele_Olajide about 3. (as it seems these Inverse screenshots were done by him) what part of queues it supports. I was not aware of it. It might be that it supports general workgroup standard, but Spark has more unique features built on top of that. Also, maybe it requires some specific version of Inverse or Fastpath Service plugin.
  4. Not currently. Unless someone decides to work on fixing all the bugs (or someone sponsors such work). I’m not a developer myself, so can’t say how hard it will be to fix that.