powered by Jive Software

How to use the "user search" plugin

I’'ve tried to use miranda to search for users, but failed

here is the log:


SEND:<iq type=’‘set’’ id=’‘keh_10’’ to=’‘localhost’’><query xmlns=’‘jabber:iq:search’’>baron

(0034A150:488) Data sent

<iq type=’‘set’’ id=’‘keh_10’’ to=’‘localhost’’><query xmlns=’‘jabber:iq:search’’>baron

(0034A150:488) Data received


I found the line “feature-not-implemented”

do I have any misconception on the user search plugin?


Hey baronng,

The problem is that the IQ packet is being sent to the server itself instead of the search service. Miranda should be sending the IQ packet to something like this “search.localhost” instead of “localhost”. You should check if you can configure the JID (i.e. address) of the search service. Otherwise, you might want to submit the problem to Miranda developers.


– Gato


I’'ve tried to initiate a search to search.localhost, and it replay “feature-not-implemented”

so it is still a problem of miranda or?


(00344398:792) Data sent

<iq type=’‘set’’ id=’‘keh_6’’ to=’‘search.localhost’’><query xmlns=’‘jabber:iq:search’’>ng

(00344398:792) Data received

recvResult = 196


Just to confirm, did you install the search plugin?


Oops, you do make it pretty clear in your first post that you’'re using the plugin. However, it looks like the Miranda code is wrong. It should be doing an IQ GET before a SET. Otherwise, it has no way to know what fields to use.


user search is not problem ,but must be add “user search” plugin !!!

thanks man

I’'ve installed the plugin and i could search it using exodus


looks like it could search now after I put “search.myworkstationname” in the user dictionary server JID in miranda

it issued a search packet to jive server and nothing returns:

Miranda LOG:

(0034D8D0:480) Data sent

<iq type=’‘set’’ id=’‘keh_3’’ to=’‘search.ws4332041’’><query xmlns=’‘jabber:iq:search’’>Ng

it seems that the plugin crashed when I take a look at the Error log on Jive Messager:

2005.03.09 11:47:07 [org.jivesoftware.messenger.IQRouter.handle(IQRouter.java:220)

] Could not route packet


at org.jivesoftware.messenger.plugin.SearchPlugin.processSetPacket(SearchPlugin.ja va:206)

at org.jivesoftware.messenger.plugin.SearchPlugin.handleIQ(SearchPlugin.java:179)

at org.jivesoftware.messenger.plugin.SearchPlugin.processPacket(SearchPlugin.java: 150)

at org.jivesoftware.messenger.InternalComponentManager$RoutableComponent.process(I nternalComponentManager.java:297)

at org.jivesoftware.messenger.IQRouter.handle(IQRouter.java:149)

at org.jivesoftware.messenger.IQRouter.route(IQRouter.java:74)

at org.jivesoftware.messenger.PacketRouter.route(PacketRouter.java:65)

at org.jivesoftware.messenger.net.SocketReadThread.readStream(SocketReadThread.jav a:254)

at org.jivesoftware.messenger.net.SocketReadThread.run(SocketReadThread.java:110)


Hi baronng,

Thanks for the feedback, xml output and stacktrace. It looks like Miranda is not using data forms for its search functionality which unfortunately is something that the current version of the search plugin requires. Reading through the specifications again it looks like in order for the plugin to be fully compliant the plugin should support non-data form searching. Until that is implemented I’'d suggest using either Psi or Exodus since they both work well with the current search plugin.




So the miranda’'s jabber plugin has no problem at all?

Thanks for the great plugin; I’‘m looking forward for its next release where it’'s fully compliant to the specification



Hi baron,

So the miranda’'s jabber plugin has no problem at


I would think it probably works, but I’'m not sure.

Thanks for the great plugin; I’'m looking forward for

its next release where it’'s fully compliant to the


Are you a miranda expert? Do you know if miranda has an xml window to view the data exchange between the client and server?



I think you could:

goto “Option” -> “Network” -> click “Log Options” -> under “Log to” GroupBox, check “File” and enter the name of the log file

then you could do a user search when you have loggin in jabber

I think the XML for user searching from miranda is different from Exodus:

the user plugin cannot process the follow


<iq type=’‘set’’ id=’‘keh_4’’ to=’'search.jabberserver>

<query xmlns=’‘jabber:iq:search’’>




but the plugin can handle:



looking forward for the User plugin update to support miranda

(or could the author release the source code?I think I could help on this


Hi baron,

Thanks for the tip on where to find the logging for Miranda.

If you look at url=http://www.jabber.org/jeps/jep-0055.htmlJEP-0055[/url] you’‘ll notice there are two methods to handle searches, a basic method and an extended method. The vast majority of clients use the “recommended” extended method since it allows for greater flexability and control. Looking at the specifications you can see how both methods begin the same way to discover what search fields are supported by the service, because of this there is no way to determine on the server side which method the client is using. So, what this all means is that only one method of searching can be active at a given time. The plugin could certainly be altered to support the basic search method but I think a better solution would be to allow the Messenger admin a way to toggle between the search methods from the admin console. Take a look at the attached screen shot to see what I’'m referring to.

If you want to look at the source for the plugin it’'s available as part of the Messenger source which is available url=http://www.jivesoftware.org/source.jsphere[/url].

Hope that helps,


Have you tested what happens if you return both? Ie.

<iq type=''result''
  <query xmlns=''jabber:iq:search''>
      Fill in one or more fields to search
      for any matching Jabber users.
    <x xmlns=''jabber:x:data'' type=''form''>

No, actually I haven’‘t. The same thought occured to me today while I was having lunch. I’‘ll be sure to try it and report back what I find. Or, if someone else wants to take a stab at it that’'d be fine with me.



Miranda Search Update:

Looking into this a bit further I’‘ve discovered that Miranda is not following the JEP-0055 protocol. Specifically, it is not making a request to discover the available search fields; rather it appears to be assuming that searches can be done on a prespecified set of fields (jid, email, nick, first and last name). I would still very much like to see support for the basic (non-data form) method of searching added to the plugin but I’‘m reluctant to make changes to support a single clients’’ way of doing things. So, I’'m going to see if I can find a client that follows the protocol and then go from there.



hm… interesting screenshot:) These menu items (User Import Export Plugin and User Search). This has come with 2.1.3 version? I’‘m siting with 2.1.2 now. I’'m curious about this Exp/Imp plugin:) Are you working on it?

Hi wroot,

I probably shouldn’‘t have posted that screenshot; I’'ve been off my game the past couple of days, too little sleep and too much coffee.

But, since you mentioned it, yes I’‘ve developed a plugin that allows the exporting and importing of user data (including roster info) via xml files. There are a couple of issues that I need to resolve before releasing it. I had hoped to talk to the developers about it at yesterday’‘s chat but I kept getting pulled away before I had a chance to do so. Depending on the feedback I get the plugin could be released for 2.1.2, but I suspect it will probably have to wait for 2.1.3. There’'s a thread url=http://www.jivesoftware.org/forums/thread.jspa?forumID=40&threadID=13965here[/url] that first prompted me to begin work on the plugin.

Hope that helps,