powered by Jive Software

Is it possible to show presence w/o being in the other users roster

I have been using chat in a different way then usual. Using Jive Messenger/Smack and jwchat. On the server side I control what a user sees in their client based upon selecting different web page links. The user cannot manually add a user or group. I am able to populate the rosters/users accordly based upon my rules. I have also bypassed the subscription approval process in the client as well as an autoapproval process. I have had fairly good results with this method but some undesirable side effects. There are issues I still need to resolve Mainly: I have notice on the admin page that presence is available for any user for the admin. What I would like to know is if there is a way to get presence of another user w/o that other user having you in their roster. Basically, I want presence of any user in my roster but don’'t want to effect the other users roster. I want to bypass the subscription approval process and just give presence information to the client that requests it for all the users in their roster. I am going to take a look in the Messenger code to explore this as an option. I would appreciate any ideas or direction on how I may be able to accomplish this.

Hey surfer,

What you are trying to achieve does not go along with the XMPP spec. According to the XMPP spec each user should control who is able to get his presence. Anyway, you can write a plugin and a component that may answer the presence of a given JID. So your client will need to send a request to this new component for getting the presence of a user.

Let me know if you need more details about this new component.


– Gato

Would it be possible to connect to the SQL-DB to recieve the Presence of the user like session-summary.jsp does on the admin-console?

Sure this would have nothing to do with XMPP but it would be an easy way to create a web based status indicator.

Depending on what type of flexibility you need, shared groups might be a good feature to use as well. In any case, any custom functionality you need should be possibel through writing a plugin.




is there a document how to write plugins for JM (… for beginners … ?

Not really sure if there is one for beginners but I did see this with the Jive Messenger documentation:

http://www.jivesoftware.org/builds/messenger/docs/latest/documentation/plugin-de v-guide.html

I hope that helps.



realsurfer you did exactly what i´m trying to acomplishe, can you tell how you did it ?


Thank you real surfer for your reply (?),

you were real helpfull.

Hi jcorreia,

I had to make customizations both to the Jive messenger server and a client to accomplish what I wanted. The mods basically bypassed the normal subscription process and handled presence differently.

In regard to presence, instead of only sending presence to users in my roster, I was interested in sending presence to users that had me in their roster. Currently, I just broadcast my presence to all active users when my presence state changes. I plan to go back and do it the other way at some time. I also took advantage of a probePresence method in the presenceManager that I could direct presence from and to a specified user. For example when a user retrieves their roster, I probe for presence of each user in that roster and send it to retrieving user.

The big difference of my approach is that a user cannot add or remove an entry directly from their roster. I utilized SMACK on the backend which dynamically changes a users roster based upon different rules and clicking on web links. I realize this is not XMPP compliant but my intent is very different and this is a private messaging network inwhich there is no need for a subscription process since it is controlled by other rules. There was one other minor mod I needed to make to the connection class in SMACK. I removed the login/logout presence for the server resource.

BTW, I originally was using JWCHAT as the client but continued to run into various timeout issues that ulitmately made me question the stability. Subsequently, I have been using JBother instead.

Hope that helps