powered by Jive Software

Component plugin and packets != message


I have implemented a plugin (which is also a component) that returns automated answers to certain queries. I’'ve done all this working only on message packets and ignoring everything else I receive.

Now I want the component to register to the msn transport so that it can be accessed from there. I was told that, in order to achieve that, I have to register a transport with the component and send my presence to all the roster.

I’‘ve managed to answer the IQ disco and get the component in the list of services available (I copied this from the asterisk plugin) but I don’'t know what to do with the presence packets I receive. I tried creating and sending a new presence packet from the component to the client but the client does not see the component online.

As you can see I don’'t know the protocol very much so I will accept some documents to read as a valid answer

Have any of you managed to register a component with the msn network?



ok i think you got 2 things to worry about,

the one thing is the registration of the component to your msn-transport.

documentation or sniffing a registration session.

see http://msn-transport.jabberstudio.org/docs/developer.html

you only need to do this once for a component (maybe you can even just “hack” the PyMSNt storage database, some xml files i think it was, and add a entry for your component. After that its just sending a

to the msn-transport and you see your component comming online on the msn network.

and secondly setting up a “roster” for the component so that when your component comes online, the members get notified (if you need it).

I think i’'ve read somewhere that components manage there own rosters, so you got to write that.


packets dont need a reply, basicly its just notification that tells you that someone logged in/logged off and so on, try reading the muc jep, http://www.jabber.org/jeps/jep-0045.html#enter, for some basic understanding on what to do with presence and components/extensions.

i’'ll see if i can make some code, just the basics for this, this weekend and see if my train of thoughts is correct…


Thank you for your answer.

I have managed to get the component registered to the gateway sniffing the registration session as you said. The problem is that sending the packet is not enough for the transport to see me online.

I think the problem is the roster. I guess I need to set up a roster for the component in order to have the gateway notified of my status.

Any ideas about where to find documentation on how to manage the roster from the component?

I’‘ll add something to this. Now I tried registering the component to a user’'s roster and all works fine. I see the component online.

Could it be that for some reason the server is not routing my presence packets to the msn component?

This is the conversation I have with the component:


This is solved in this other thread: