[solved] Tigase not compatible with Wippien client?

Ronald Chuck
Added about 3 years ago

Tigase does not seem to be compatible with the Wippien IM client(

Error Message: Invalid Login: 401, .

Other clients are working fine (pidgin, xabber) but wippien does not work!


fixed bad grammar

Replies (7)

Added by Daniel Wisnewski IoT 1 Cloud about 3 years ago

Thanks for the message Ronald, I will investigate this and see what's up.

Added by Ronald Chuck about 3 years ago

Thank you for your answer daniel!

tail -f tiase.log.0 output when clicking "Test Account" in wippien client:

Little Background Info: Tigase authenticates users against LDAP directory, but I do not think this causes the error because authentication works fine with other clients and there is nothing in the logs. It really seems like an communication problem between client and server I however may be completely wrong. (It is really hard to understand this logfile for an layperson like me ;P)


Picture of Wippien Error message attached.

Added by Andrzej Wójcik IoT 1 CloudTigaseTeam about 3 years ago

From what I see in provided logs Wippien IM client sends session establishment:

<iq xmlns="jabber:client" type="set" id="28650">
  <session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>

before resource is binded for this connection. As following XML responsible for binding resource to session is sent AFTER Wippien sends session establishmemt shown above:

<iq xmlns="jabber:client" type="set" id="28651">
  <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">

According to XMPP RFC3921 session esablishment should follow this rules:

However, there are several pre-conditions that MUST be met before a client can establish an instant messaging and presence session. These are:

Stream Authentication -- a client MUST complete stream authentication as documented in [XMPP‑CORE] before attempting to establish a session or send any XML stanzas.

Resource Binding -- after completing stream authentication, a client MUST bind a resource to the stream so that the client's address is of the form , after which the entity is now said to be a "connected resource" in the terminology of [XMPP‑CORE].

According to this quote Wippien IM client sends session establishment BEFORE sending resource binding and due to that Tigase XMPP Server returns error - as Wippien IM do not follow XMPP RFC.

In provided logs I found following XML sent from Tigase XMPP Server which explains why XMPP session establishment was rejected:

<iq type="error" xmlns="jabber:client" id="28650">
  <session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>
  <error type="auth" code="401">
    <not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
    <text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">You must bind the resource first:</text>

Added by Ronald Chuck about 3 years ago

Okay thank you, I will try to contact the wippien developers.

Added by Ronald Chuck about 3 years ago

Is there anything that can be done on server side?

Added by Andrzej Wójcik IoT 1 CloudTigaseTeam about 3 years ago

In theory we could modify Tigase XMPP Server to ignore sent session establishment before resource is binded instead of sending error (what is currently done). However I'm against that as I think that current behavior of Tigase XMPP Server is correct as it ensures proper implementation and use of XMPP as defined in RFC.

Added by Ronald Chuck about 3 years ago

They fixed the problem :)

Kreso was very responsive, and he also rebuilt Wippien with the new working wodXMPP module.


Attached inofficial Wippien build with newest wodXMPP module working with tigase.

(I do not think that this will be released on, development has stopped some years ago!)