Created attachment 116533 [details]
Logs from telepathy-gabble demonstrating hang.
I have an account on Slack.com with the XMPP gateway enabled. I can connect to this using Pidgin. When I create the XMPP account through telepathy the connection hangs at "connecting". I've attached slightly redacted logs with the place where it hangs marked. Logs after that occur after quitting Empathy.
Logs generated by:
G_MESSAGES_DEBUG=all GABBLE_PERSIST=1 GABBLE_DEBUG=all /usr/lib/telepathy/telepathy-gabble 2>&1 | tee gabble.log
Then running empathy with only the Slack account enabled.
I've seen this as well.
I have a contact at Slack that would willing to help investigate.
Anyone have a test slack team I could join that has the XMPP gateway turned on?
I can take a look to see if I can figure out whats missing.
Just tried from telepathy-gabble 0.18.3 using empathy 3.12.12 and was able to make a connection to slack and received messages.
Unfortunately sending a message causes empathy to think that its sending forever without ever realizing that it was sent.
Also I saw error messages like this in Empathy debug Logs.
_write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='get' to='general@conference.<team>.xmpp.slack.com' id='66522600901'
* query xmlns='http://jabber.org/protocol/disco#info'
_end_element_ns: Received stanza
* iq xmlns='jabber:client' type='error' id='66522600901' from='general@conference.<team>.xmpp.slack.com'
* error type='cancel'
* service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
* text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
that make me think they didn't implement all of the XMPP MUC spec.
They looks like they're not meeting the requirements for section 6.4 of http://xmpp.org/extensions/xep-0045.html
And considering room browsing doesn't work I suspect they didn't implement other disco#info requests.
Gabble 0.18.3 unconditionally includes XEP-0085 chat activity messages in the MUC groupchat message. which triggers an error from Slack.
I manually sent a groupchat message without an activity message, and did not get the error.
A disco#info request to the <team>.xmpp.slack.com gateway does not include <feature var='http://jabber.org/protocol/chatstates'/> indicating that slack doesn't support chat states.
It would seem to me that gabble should check to see if a server supports chat states before including them in a message.