Is there any way to let all user(even who are not Roster) see each other name and avatar ?
Explain what do you mean. In Openfire you can use shared groups, which will share users of one group to selected groups or all users, so they will automatically appear on everyone's roster. Not sure what you mean by avatars though. You can enable sharing by going into group settings.
Well, I want to let all user see each other avatar and name without being each other roster. like whatsapp ( members can see avatar and name of everyone without being Roster)
I wanted to let two stranger chat to each other and see photo and name of themselves.
So, go to Admin Console, go to Users/Groups menu > Groups submenu. Create a group. Open that group. Check the "Enable contact list group sharing" radio button. Enter the sharing name for that group (how it should appear in rosters). Select "All users" below. Press "Save Contact List Settings" button. Then go below and add all your users to that group (manually one by one, using their usernames). Then your users should restart their clients and they should see that group with all the users. It should work for most of the clients that support groups.
I don't want to share rosters. I need two completely stranger ( not in each other rosters) see each other photo's and name.
let say you have whatsapp acount. then in a MUC i can see your name and avatar without being forced to have you in my roster.
how can i get the same feature in Openfire?
I don't use WhatsApp, so it is hard to understand what exactly do you need. If both users are in MUC and their clients support showing avatars and room's settings are not restricting this, then yes, they can see each other nicknames and avatars. If you want this to work even if users are offline, then currently Openfire doesn't support this. I know that one contributor is currently implementing XEP-0369: Mediated Information eXchange (MIX) for Openfire, which should allow users to stay in MUC and receive messages even when not online/in-room. Not sure when it will be done though.
wroot Thanks for your answer, Every messaging app I've ever used,share avatar and name for every user in the network. I'm trying to achieve same with Openfire. Which messaging app you have ever worked with? in all messaging app I've worked with you can talk to strangers (who is not in your Roster), see their avatar or their name without being forced to have them in your Roster.
You can chat with persons not on your roster in xmpp too. Roster is only needed for subscription to presence (online, away, etc.). Say in Spark you can go to Actions > Start a chat and enter someone's jabber id and start chatting without having them in your roster. I don't quite understand what you mean. On one hand you don't want to add users to your roster to see them, on the other hand you want to see them. It's a contradiction. There is no some kind of "directory" with all users in xmpp. And for me such directory would be too similar to just putting all the users into one group and sharing it to everyone. You can use search, but you need to know what you are looking for. Although you can search using * and it will return every user (without avatars though, just the names, but maybe some client can show avatars in search). Anyway, xmpp is based on its standards and is following them in general. It has its own view on how IM should work. If that doesn't work for you, you look for another app/solution.
I have used a number of IMs in the past (ICQ, Skype, MSN, Gtalk, Hangouts etc.). Most of them didn't have a huge list of all users and one had to use search to find and add contacts (some still operate this way).
Diffidently I have problem to elaborate my need and I couldn't explain my question clearly, I've been working with xmpp and openfire for quite a long time.
I know I can chat with everyone in xmpp by knowing their JID, Question is how can i see their avatar too? I'm using Conversations as a client of Openfire but I can't see their photo unless I had them in my Roster. same with Emphaty .
to explain it more let me make a scenario :
Say in Spark I go to Actions > Start a chat and enter someone's jabber id and start chatting without having them in my roster. That is good BUT i can not see their avatar unless i add them to my roster. if roster is only for seeing someone status so how and why seeing someone avatar is limited to my rosters?
Based on this XEP-0153: vCard-Based Avatars it looks like avatars (as a part of vCard) are also only available if you are subscribed to someone's presence (avatar as some sort of presence in itself, so you can't peak at it without the other user giving you a permission).
Thanks now we are on the right track.
based on your comment I can not see someone avatar unless i subscribe for his presence.
Because subscription to presence is only allowed for Rosters , I don't have any way to ask such a permission from user who is not in my roster!
as a result I can not see avatar of people who are not in my roster!
Is there any way to give such a permission to all users so they can see my picture?
I don't know of such way. Presence subscription is a fundamental part of xmpp. The only closest thing is to use Subscription plugin. But that will only automate subscription approval. You would still have to subscribe/add someone. So, not really a solution. Shared groups allows you skip subscription requests, approval, search. But it adds everyone to the roster.
Thanks it really helped. so I have to find a hack on vCard based avatars .
Retrieving data ...