Is it possible to use anonymous access of Prosody to implement live help?

178 views
Skip to first unread message

Ying LEE

unread,
Dec 15, 2015, 9:10:27 PM12/15/15
to prosody-dev
When a guest visits a website, he may wants to ask help. This application is usually called live help. Actually there are a lot of solutions based on database already, such as https://livehelperchat.com/. And such a kind of application can forward the message to and from XMPP client so that the guest can chat with some staff, who is using XMPP client.

I am wondering whether there is a pure XMPP solution. In other words, the guest uses anonymous account of XMPP and then chat with someone.

Maybe there can be two options:

1. The guest chats in a MUC, then some bot forward to and from to an XMPP account. At least to notify someone to join the MUC.
2. The guest chat directly to someone by a server side function.


Any comments?


Thank you,

Ying

Adrien CLERC

unread,
Dec 16, 2015, 9:05:19 AM12/16/15
to proso...@googlegroups.com
Le 16/12/2015 02:36, Ying LEE a écrit :
> When a guest visits a website, he may wants to ask help. This
> application is usually called live help. Actually there are a lot of
> solutions based on database already, such
> as https://livehelperchat.com/. And such a kind of application can
> forward the message to and from XMPP client so that the guest can chat
> with some staff, who is using XMPP client.
>
> I am wondering whether there is a pure XMPP solution. In other words,
> the guest uses anonymous account of XMPP and then chat with someone.
>
Hi,

This is really a simple answer to your question, but have a look at
https://mini.jappix.com/
Personnally, I'm using jappix with a MUC and anonymous so people can
contact me with a simple web browser. But I have to be logged in to my
XMPP account.
Jappix mini might be a better solution for your use case.

Adrien

Ying LEE

unread,
Dec 17, 2015, 8:46:36 AM12/17/15
to prosody-dev
I tried Jappix mini, but it doesn't fit my requirement.

1. If I assign a permanent MCU to the anonymous visitor, all anonymous visitors will share the same communication contents. There is privacy problem. Of course, if it is possible for guests to post but not to read, this solution can work but I cannot find such a setting.
2. If I dynamically create a temporary MCU to the anonymous visitor, the communication is private, but how can staff know he should join this MCU. For as I know ( wish I am wrong), an anonymous XMPP user cannot initiate a chat with others.

I guess I have to do some server side coding, which is the reason I post the question here.


Ying

Thijs Alkemade

unread,
Dec 17, 2015, 1:34:41 PM12/17/15
to proso...@googlegroups.com
Hi Ying,

I don't know how Jappix works, but one approach to live help systems is to
create a new MUC (with a randomly generated name [1]) when a user requests the
help and then send invitations to the people who can offer help. Once one
person has accepted the invitation the user is informed that they are talking
to someone. This makes it relatively easy to scale this to multiple people, as
long as they don't talk in a chat where another support person is already
present.

You could implement all of this in JavaScript using BOSH to connect to the
XMPP server, or you could implement it as a component on the server (which
would allow you to keep the list of support people private).

Hope this helps,
Thijs

[1] There's also XEP-0307, but I think that's overkill.
> --
> You received this message because you are subscribed to the Google Groups "prosody-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to prosody-dev...@googlegroups.com.
> To post to this group, send email to proso...@googlegroups.com.
> Visit this group at https://groups.google.com/group/prosody-dev.
> For more options, visit https://groups.google.com/d/optout.

signature.asc

Kim Alvefur

unread,
Dec 17, 2015, 1:43:54 PM12/17/15
to proso...@googlegroups.com
On 2015-12-17 19:34, Thijs Alkemade wrote:
> one approach to live help systems is to
> create a new MUC (with a randomly generated name [1]) when a user requests the
> help and then send invitations to the people who can offer help

Perhaps have a look at http://code.matthewwild.co.uk/support-chat/ which
if I remember correctly does what you describe.

--
Kim "Zash" Alvefur

signature.asc

Ying LEE

unread,
Dec 20, 2015, 11:08:50 PM12/20/15
to prosody-dev, za...@zash.se
As a demo, support-chat is the one I am looking for. But, I am wondering there is some security problems. For the team MUC is known by client by checking the source code, and team MUC is open to anonymous visitors. So it is easy to use an XMPP client to access team MUC and get the private messages (of course, not all) between other visitors and supporters.

Any way, it is a good prototype.

Thank you,

Ying

Matthew Wild

unread,
Dec 21, 2015, 10:10:51 AM12/21/15
to Prosody IM Developers Group, Kim Alvefur
On 21 December 2015 at 04:08, Ying LEE <mr.yi...@gmail.com> wrote:
> As a demo, support-chat is the one I am looking for. But, I am wondering
> there is some security problems. For the team MUC is known by client by
> checking the source code, and team MUC is open to anonymous visitors. So it
> is easy to use an XMPP client to access team MUC and get the private
> messages (of course, not all) between other visitors and supporters.

The MUC is used only for co-ordination and discovery of the (online)
members of teams. The initial message/invitation is sent privately, so
is not visible to other users in the room. The supporters then join
the private room that the user created, and all discussion happens
there.

At the end of the day it is, like many other services on the internet,
providing an anonymous chat service. So yes, it is wise to be aware of
what is and isn't visble or accessible to anonymous users. A service
would, for example, probably want to put some restrictions on
submitting queries, but that would need to be enforced server-side,
and not in the client code.

Regards,
Matthew
Reply all
Reply to author
Forward
0 new messages