muc / Shared roster group

I'm hoping someone can help me... I also hope this isn't too confusing a question...

I'm trying to set up a ejabberd server that users can inform a group of people if they have a problem with a computer...

I want to have 2 groups... Users and Tech Support.. I want the users to be able to message all the Technical support people at once and the other users not to be able to see the communications between the two groups..

I can create 2 "Shared Roster Groups" one for all users and one for the technical support people.. I can make everyone able to message the technical support group by placing the Technical support Roster group as a "Displayed Group" under the Users "Shared Roster Groups"

Is their a way that I can make the users message all the people in the tech support group as if they are one? Should I try and create a "single" Tech support user and have multiple people use that account? Will there be issues with detecting presence? (sorry if thats a stupid idea) Should I try and create a "Chat room" for the Tech users and put that room in the "Displayed Group" of the Users "Shared Roster Groups"

thanks
dm

michaedi wrote: A) Should I

michaedi wrote:

A) Should I try and create a "single" Tech support user and have multiple people use that account?
Will there be issues with detecting presence? (sorry if thats a stupid idea)

Multiple clients can login to the same Jabber account at the same time, if each client picks a different "resource". But this won't solve your problem, because ejabberd only sends the messages to the client with higher priority of all the connected to an account.

michaedi wrote:

B) Should I try and create a "Chat room" for the Tech users and put that room in the "Displayed Group" of the Users "Shared Roster Groups"

Users can only send messages to a room if they are occupants of the room. And you don't want all your users to join the Tech room, right?

C) Similar to B, but: a user with some problem joins the Tech room to chat with the tech guys.

D) Register an account called "techbot". Develop or customize a program that logins to that account (example: Neutron is written in Python), and does this: for each received message, the bot forwards it to the list of tech accounts). Add that techbot account to all the users rosters with shared_roster.

Thank you so much for

Thank you so much for pointing me in a direction...

Are you saying... Neutron will forward messages to the tech accounts? Or are you saying that I should look at customizing Neutron to do this.. ?

thanks
dm

I suppose Neutron does not

I suppose Neutron does not support that feature. But you can implement it.

You can also search and test other XMPP bots.

Thanks badlop for helping me

Thanks badlop for helping me and pointing me in the right direction...

What I've written so far is embarrassing.. you would be like.. omg... but I will post it once it gets cleaned up and tested a little.. :)

thanks
David Michaels..

anyways... to get neutron to

anyways... to get neutron to forward a chat msg to multiple users..

In config.txt I added a variable for the users I want to forward too...

'FORWARD': ['user1','user2','user3',USERNAME],

I butchered neutron.py a little...

def msg(target, body):

#    msg = xmpp.Message(target, body)
   for f in FORWARD:
     msg = xmpp.Message(f+'@'+SERVER,body)
     if GROUPCHATS.has_key(target):
             msg.setType('groupchat')
     else:
             msg.setType('chat')
             JCON.send(msg)
     call_outgoing_message_handlers(target, body)



def smsg(type, source, body):


        if type == 'public':
                msg(source[1], source[2] + ': ' + body)
        elif type == 'private':
#               msg(source[0], body)
             if not source[0] == source[1]:
                msg(source[0], source[1] + ': ' + body )


I also created a new plug-in fwd_plugin.py based on log_plugin.py

#$ neutron_plugin 01

import re

######################

def fwd_handler_message(type, source, body):
        reply = str(body)
        smsg(type, source, reply)


def fwd_handler_outgoing_message(target, body):
        reply = body
        type = 'chat'
        smsg(type, target, reply)


register_message_handler(fwd_handler_message)
register_outgoing_message_handler(fwd_handler_outgoing_message)
Syndicate content