Few days ago, we were told that JM un-officially supports JEP-0114 but that it has not been tested yet. As I recently need to connect my JM server to foreign IM networks, I checked the jabber.org components list to get an external component that would provide me a transport to MSN or ICQ or AIM or Y!, but it seems that all available components are designed for jabberd or ejabbered (without JEP-0114 support).
As a result, I sent a mail to jadmin mailing list to try to get some projects that could suit me, but I thought that maybe someone here have already tested it.
So:
Does someone know some external transport components that could work with JM?
Did someone test the JEP-0114 support of JM? (if the developpers have not performed tests yet, when is it schedule?)
After reading some coponents’’ documentation, it seems that a transport component, such as pyMSNt for example, communicates with the XMPP server thanks to a socket. Moreover, the server and the component must share a secret string (as defined in JEP-0114). The component is also defined with a name such as component.XMPPServerDomain.
As a consequence, as I would like to test some transport components on Jive Messenger (which is the server that best responds to my needs ), I would like to know how to configure the socket and where to define the secret so that JM accepts this component. As I suppose JM’'s developers have not enough time to test some component with their server, I promise to post my compliance results asap.
I don’'t know of any external transport implementation available for JM. Alex is writing an MSN gateway but we need first to fix this url=http://www.jivesoftware.org/issues/browse/JM-190issue[/url] which affects rosters removals. Let me know if you found a transport for JM though it may have some problems when removing contacts from the roster.
Did someone test the JEP-0114 support of JM? (if
the developpers have not performed tests yet, when is
it schedule?)
I have tested it thoroughly but since I wrote both the client and the server code it is potentially possible that there is a hidden bug in the code or a misunderstanding of the JEP. Let me know if you were able to test any other external component with JM.
Gato >> As I said before, I found some component that should work with JM but I do not know how to configure JM so that it recognize them… Perhaps could you give me further explication about component installation on JM…
like to know how to configure the socket and where to
define the secret so that JM accepts this component.
Currently Messenger is listening on port 5222 (same port that regular clients are using) for external components. You will need to set the component.external.secretKey property with the secret key value. Currently all components will need to use the same secret key.
As I suppose JM’'s developers have not enough time to
test some component with their server, I promise to
Well, I saved time to test external components. I tried the Python ones: PyAIMt, PyICQt and PyMSNt.
I installed easily AIM and ICQ transport. They are all recognized by the Service Discovery but I cannot use it. Indeed, I am not able to register my AIM/ICQ account on the transport. I think it might be a simple configuration trouble…
For PyMSNt, I still get an OpenSSL problem that I cannot solve…
As I have no more time today, I will finish my tests at the end of the week.
Regards,
Seb
PS: if someone want to test these components, notice that they are compliant with Twisted 1.3 library and not with the latest one
In order to isolate the variables being tested I would suggest testing external components support and transports in different test cases. So I think that it would help to first get working a simpler component and then try connecting a transport to Messenger.
They are all recognized by the Service Discovery but I cannot use it.
Does this mean that you are able to discover the server items using a client? So are you able to discover the gateway when sending a disco#items request?
I am not able to register my AIM/ICQ account on the transport
We currently officially support internal components and unofficially external components. We followed JEP-114 to implement external components and currently the accept method is the only one being supported.
Using Whack it is possible to drop the same jar file that we use for internal components in Whack. If the plugin includes a component.xml file then Whack will register the component with the server.
Our plan is to include in future versions some features mentioned in the Jabberd2 component protocol such as url=http://jabberd.jabberstudio.org/dev/docs/component.shtml#sect-id25930963.3. Binding a domain[/url] and url=http://jabberd.jabberstudio.org/dev/docs/component.shtml#sect-id2589209 3.7. Domain advertisements[/url].
Gato >> As I need Transport components, I began installing these components…
I sorted out my problems about running PyMSNt and, as the others, it is recognised but not active. What I mean is that, while I use Psi to browse the services available on the XMPP server (I suppose it uses disco#items), I can see the transport components (node: aim.domain, msn.domain…) but I cannot register on these services (to use my MSN account for example) and, as a result, I cannot chat with foreign networks’’ users.
In the error log, I get this error each 3 seconds:
+2005.04.21 10:49:30 org.jivesoftware.messenger.net.SocketReadThread.run(SocketReadThread.java:160) Connection closed before session established
If I can save time, I will try to test a simple component and give you some feedback. But, as business is business (and my boss wants results soon!), I must carry on working on my projects, so, I installed an ejabberd server with transports (I need to write a client API that could use transports, I am going to try to code it with Smack). However, I would like to use JM instead of ejabberd because it is more user friendly and written in Java… So it would be great if transport components could work with JM soon
With a closer look, I found that the error that was logged each 3 seconds was due to ghost processes of transport components that were trying to connect to the server. Since I killed these process and restart properly the server and the transport components, I have not got any error logged…