Some basic questions regarding fastpath and its XMPP communication

Hello everybody,

I am quite new to XMPP and fastpath and I have some simple questions regarding fastpath.

From my undertanding the queue will try to get a remote-user for a user as soon as that user enters a multi-user-chat, right?

So, for example the user with the name “NeedHelp” would enter a multi-user-chat (which will automaticly be created as soon as I create a workgroup) and right then the Queue would try to find a remote-chat-partner (lets call the guy “Supporter”) for him.

So now those several “supporters” can apply to have a chat session with that “NeedHelp”-User.

Once a supporter applies to chat with “NeedHelp” what would happen now?

From my understanding the “NeedHelp” guy would get a XMPP Message with a request to join a new chat?

So, is that what the client application has to react to to continue with the REAL chat?

And another question: Is there any way to request all available queues on a client application?

Basicly from my understnading a

WORKGROUP is like a COMPANY

while

QUEUEs are like DEPARTMENTS in that COMPANY.

My plan would be to first choose a COMPANY and then get a list of all DEPARTMENTS in that company…but to do so I need a way to request a list of queues…right?

Thanks in advance

AffenDev wrote:

Hello everybody,

I am quite new to XMPP and fastpath and I have some simple questions regarding fastpath.

From my undertanding the queue will try to get a remote-user for a user as soon as that user enters a multi-user-chat, right?

So, for example the user with the name “NeedHelp” would enter a multi-user-chat (which will automaticly be created as soon as I create a workgroup) and right then the Queue would try to find a remote-chat-partner (lets call the guy “Supporter”) for him.

So now those several “supporters” can apply to have a chat session with that “NeedHelp”-User.

Once a supporter applies to chat with “NeedHelp” what would happen now?

From my understanding the “NeedHelp” guy would get a XMPP Message with a request to join a new chat?

So, is that what the client application has to react to to continue with the REAL chat?

I don’t follow what you are saying here. Are you trying to develop a client for FastPath outside of Spark?

The main way I’ve been able to get insight about the XMPP messages flying back and forth in order to connect a customer to an agent is by turning on the debugger console in Spark before I log in.

Try it with initiating a chat from the standard webchat, and then try it again by initiating one by directly IMing @workgroup.fully.qualified.domian.

And another question: Is there any way to request all available queues on a client application?

Basicly from my understnading a

WORKGROUP is like a COMPANY

while

QUEUEs are like DEPARTMENTS in that COMPANY.

My plan would be to first choose a COMPANY and then get a list of all DEPARTMENTS in that company…but to do so I need a way to request a list of queues…right?

It really depends on what you want to do. Out of the box, there is no need to expose either workgroups or queues to users.

If you have a “sales” workgroup and a “support” workgroup, you simply have a link to “chat with sales” some place and a “chat with support” in another place.

With queues, the idea is to let the plugin decide where to route the call. So in your sales workgroup you might have two queues - “Default queue” and “supervisors”. Maybe you only want supervisors taking calls when everyone else is busy.

Or maybe your form has a field for ‘department’ - lets say it is a drop down with Hats, Sports and Underwear. Set up queues for each of those, then create routing rules to send the customer to the appropriate queue based on that field. Have a backup in case no one is covering that particular queue. The user never needs to know that the department she chose is unavailable.

That’s the idea anyway - what are you hoping to do?

Hi calebtr,

Hope you are doing well.

My requirement is that if there are multiple members in a single queue, and when a chat request comes, then each of those members will get an opportunity to accept that chat request and start chatting. Also that would seem like a group chat where each of the members are able to see each other’s chat.

Is group chatting possible in Fastpath Webchat or is it just like any other one-to-one chat with the difference that if one of the queue members rejects the chat request, the chat request would go to the other member and in this way the cycle continues.

Any help would be greatly appreciated.

@Bodhisatwa, The Fastpath use case is for a single user to request a chat. That request is offered to the first available “agent”. If that user rejects or the request times out, then the request is forwarded to the next available agent. The original user can end the chat. The agent can transfer the chat or invite other users to join the chat.

If you are interacting with the fastpath service directly via spark or some other XMPP client then the flow is as follows:

  1. user a (NeedHelp) sends a message to the full workgroup JID (ex: test-workgroup@workgroup.exampleserver.com)
  2. the workgroup then responds with it’s configured form questions, one at a time
  3. NeedHelp responds to each question
  4. Once all of the form questions have been asked the workgroup routes the user to the appropriate queue as defined by your routing rules
  5. The workgroup will offer this request to each agent in the queue one at a time in a round robin fashion (sorted by longest idle, total number of active chats and if they have already rejected this offer, not necessarily in that order)
  6. When one of the agents accepts the chat the workgroup creates a MUC room and invites both the agent and the user
  7. Once both parties have left the room the workgroup will destroy the MUC room

If you’re interacting with it via something like a web interface (like the fastpath-webchat component) the process is essentially the same, except you skip steps 1 - 3 and submit the form questions all at once and hop into the queue

Let me know if you have any further questions about this process or if you have any other questions.