How to get a list of users registered on openfire server using xmpp iOS framework ?

2,127 views
Skip to first unread message

AMOL PATIL

unread,
Apr 8, 2014, 1:20:19 AM4/8/14
to xmppfr...@googlegroups.com
Hi All,
I am creating iOS app using xmpp framework. I am done with integration and all. App receives user list only when you create a group on openfire server.
I am unable get a list of users registered on my domain. 
Do I need to send a user list request separately ? Or is there any setting at server side for the same ?

Any help is appriciated !

Thanks.

Vitaly Takmazov

unread,
Apr 8, 2014, 1:30:43 AM4/8/14
to xmppfr...@googlegroups.com
> list of users registered on my domain
In a common scenario - user populate his contact list (roster) himself.
But if you want all users have predefined roster with other people on your domain - see shared roster groups - 
http://community.igniterealtime.org/docs/DOC-1619

Rashmikant Makwana

unread,
May 27, 2014, 6:38:47 AM5/27/14
to xmppfr...@googlegroups.com
Hi Amol,

Did you find a solution to this problem? I am also stuck on this problem from few days and I am not able to find out a solution.

Thanks

arpan...@purologics.com

unread,
Sep 29, 2014, 6:48:34 AM9/29/14
to xmppfr...@googlegroups.com
Finally i found the alternative answer for this by searching users using their username and all users.

1.For every contact with gmail id us...@gmail.com

2.for particular user with specific name use userName.

3.to get all user from open fire server just put "*" in search string.

    //Request
    - (void)getDetailsofRegisteredUser {
   
        //To Search Peticular User either by using their name, email or username
        NSString *userBare1  = [[[[self appDelegate] xmppStream] myJID] bare];
        NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
        [query addAttributeWithName:@"xmlns" stringValue:@"jabber:iq:search"];
   
        NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"];
        [x addAttributeWithName:@"type" stringValue:@"submit"];
   
        NSXMLElement *formType = [NSXMLElement elementWithName:@"field"];
        [formType addAttributeWithName:@"type" stringValue:@"hidden"];
        [formType addAttributeWithName:@"var" stringValue:@"FORM_TYPE"];
        [formType addChild:[NSXMLElement elementWithName:@"value" stringValue:@"jabber:iq:search" ]];
   
        NSXMLElement *userName = [NSXMLElement elementWithName:@"field"];
        [userName addAttributeWithName:@"var" stringValue:@"Username"];
        [userName addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1" ]];
   
   
    - (void)getDetailsofRegisteredUser {
   
        //To Search Peticular User either by using their name, email or username
        NSString *userBare1  = [[[[self appDelegate] xmppStream] myJID] bare];
        NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
        [query addAttributeWithName:@"xmlns" stringValue:@"jabber:iq:search"];
   
        NSXMLElement *x = [NSXMLElement elementWithName:@"x" xmlns:@"jabber:x:data"];
        [x addAttributeWithName:@"type" stringValue:@"submit"];
   
        NSXMLElement *formType = [NSXMLElement elementWithName:@"field"];
        [formType addAttributeWithName:@"type" stringValue:@"hidden"];
        [formType addAttributeWithName:@"var" stringValue:@"FORM_TYPE"];
        [formType addChild:[NSXMLElement elementWithName:@"value" stringValue:@"jabber:iq:search" ]];
   
        NSXMLElement *userName = [NSXMLElement elementWithName:@"field"];
        [userName addAttributeWithName:@"var" stringValue:@"Username"];
        [userName addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1" ]];
   
        NSXMLElement *name = [NSXMLElement elementWithName:@"field"];
        [name addAttributeWithName:@"var" stringValue:@"Name"];
        [name addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
   
        NSXMLElement *email = [NSXMLElement elementWithName:@"field"];
        [email addAttributeWithName:@"var" stringValue:@"Email"];
        [email addChild:[NSXMLElement elementWithName:@"value" stringValue:@"1"]];
   
        //Here in the place of SearchString we have to provide registered user name or emailid or username,For all user put @"*"  (if it matches in Server it provide registered user details otherwise Server provides response as empty)
        NSXMLElement *search = [NSXMLElement elementWithName:@"field"];
        [search addAttributeWithName:@"var" stringValue:@"search"];
        [search addChild:[NSXMLElement elementWithName:@"value" stringValue:[NSString stringWithFormat:@"%@", SearchString]]];
   
        [x addChild:formType];
        [x addChild:userName];
        [x addChild:name];
        [x addChild:email];
        [x addChild:search];
        [query addChild:x];
   
        NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
        [iq addAttributeWithName:@"type" stringValue:@"set"];
        [iq addAttributeWithName:@"id" stringValue:@"searchByUserName"];
        [iq addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"search.%@",DOMAIN_NAME]];
        [iq addAttributeWithName:@"from" stringValue:userBare1];
        [iq addChild:query];
        [[[self appDelegate] xmppStream] sendElement:iq];
   
    }
   
    //We will get response here
   
    - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
    {
   
        DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
        NSLog(@"searched format %@", iq);

   
    }

On Tuesday, April 8, 2014 10:50:19 AM UTC+5:30, AMOL PATIL wrote:
Reply all
Reply to author
Forward
0 new messages