Pregunta

i'm trying to get more info in the nimbuzz protocol, and possibly find any open source implementations.

http://en.wikipedia.org/wiki/Nimbuzz_IM

it seems that nimbuzz allows connecting between users of different protocols, BUT it provides its own network for communication between nimbuzz users

EDIT

of, i've been able to figure out that the nimbuzz chat protocol is XMPP, i've ventured into trying to connect and chat with an XMPP client library like agsXMPP.

I've been unable so far to connect or do anything, my code so far looks like:

        XmppClientConnection xmpp;

        void onLoginHandler(object o)
        {
            xmpp.Send(new Message("someFriend@nimbuzz.com", MessageType.chat, "hello world!"));
        }

        void errorHandler(object sender, Element e)
        {
        }

        void exceptionHandler(object sender, Exception ex)
        {
        }

        void rosterStartHandler(object sender)
        {
        }

        void rosterEndHandler(object sender)
        {
        }

        void rosterItemHandler(object sender, RosterItem item)
        {
        }

..... and then trying to open with

xmpp = new XmppClientConnection("nimbuzz.com");
                xmpp.AutoRoster = true;
                xmpp.ConnectServer = "o.nimbuzz.com";
                xmpp.OnLogin += onLoginHandler;
                xmpp.OnAuthError += errorHandler;
                xmpp.OnError += exceptionHandler;
                xmpp.OnRosterStart += rosterStartHandler;
                xmpp.OnRosterItem += rosterItemHandler;
                xmpp.OnRosterEnd += rosterEndHandler;
                xmpp.Open("myaccount@nimbuzz.com", "mypassword");

However after i bit in enter in the OnAuthError with the following element:

<not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />

I've tried to sniff the packets at nimbuzz login with wireshark, and despite some handshaking XMPP packets, the rest seems to be encrypted, this is what i was able to sniff:

<stream:stream to='nimbuzz.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xml:lang='en'>

server - 195.211.49.6 (o.nimbuzz.com)
<stream:features>
<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
<compression xmlns="http://jabber.org/features/compress">
<method>zlib</method>
</compression>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism>
<mechanism>DIGEST-MD5</mechanism>
</mechanisms>
<register xmlns="http://jabber.org/features/iq-register"/>
</stream:features>

client - <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>

server - <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>

Question if anyone is able to find the right way to connect to nimbuzz chat with an open source XMPP library and post the solution here, i'll award the question reward. (I might increase the bounty if the problem takes me more than the remaining 4 days)

¿Fue útil?

Solución

in xmpp.Open you have to pass username and password.

Your username is myaccount, not myaccount@nimbuzz.com. myaccount@nimbuzz.com is your Jid (Jabber Id).

Otros consejos

Ok after a session of WireShark, it seems that nimbuzz is actually the xmpp protocol

// xmpp.ConnectServer = "o.nimbuzz.com";

You have to use openfire.nimbuzz.com for connecting nimbuzz

&

Add this and try ---- >

ConnectionConfiguration config = new ConnectionConfiguration(URLConstants.XMPP_HOST, URLConstants.XMPP_PORT);
        config.setSASLAuthenticationEnabled(false);
 config.setSASLAuthenticationEnabled(false);
 config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
 config.setCompressionEnabled(false);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top