I can connect with Slack through jabber
and chat with individual users, but I can't join channels. There are some instructions here, but I don't know which jabber
commands to use. I've tried jabber-muc-join
and jabber-groupchat-join
, but neither of those seem to work. I use conference.name.xmpp.slack.com
for the server name.
Asked
Active
Viewed 2,881 times
3

Matthew Piziak
- 5,958
- 3
- 29
- 77
-
start a jabber call in slack with slack command: /jabbercall – Mike Molloy Oct 09 '18 at 13:24
2 Answers
4
The Slack XMPP server doesn't provide correct information about chat rooms in response to an information discovery query. Could you try the following function and see if M-x jabber-join-slack-room
lets you join the room?
(defun jabber-join-slack-room (jc group nickname)
(interactive
(let ((account (jabber-read-account))
(group (jabber-read-jid-completing "group: ")))
(list account group (jabber-muc-read-my-nickname account group))))
;; The Slack server does not return a proper disco result:
;;
;; 1. The disco response has no 'from' attribute. It should be
;; copied from the 'to' attribute of the request, so that the client
;; can correlate the request and the response.
;;
;; 2. The response doesn't contain an identity of "conference",
;; which jabber.el looks for to confirm that this is in fact a
;; conference room. (It would be confusing to try to "join" one of
;; your contacts.)
;;
;; 3. The disco response doesn't contain the feature
;; "muc_passwordprotected", so jabber.el doesn't know that it needs
;; to provide a password.
;;
;; Therefore, let's seed the correct information into the disco
;; cache before joining the room.
(jabber-disco-got-info
jc `(iq ((type . "result")
(from . ,group)
(id . "emacs-iq-21272.27175.175195")
(xmlns . "jabber:client")
(to . ,(jabber-connection-jid jc)))
(query ((xmlns . "http://jabber.org/protocol/disco#info"))
(identity ((category . "conference") (type . "text")))
(feature ((var . "http://jabber.org/protocol/muc")))
(feature ((var . "muc_passwordprotected")))))
(list nil))
(jabber-muc-join jc group nickname t))
I brought these issues to the attention of the Slack team in March 2014.

legoscia
- 6,012
- 29
- 54
-
When I invoke `jabber-join-slack-room`, it returns a result `member` for every member on the team, as well as `member@name.xmpp.slack.com`. None of the rooms appear in the result list. – Matthew Piziak Jul 11 '15 at 22:42
-
Right, you'll have to type in `roomname@conference.name.xmpp.slack.com`. Not sure if there's a way to get tab completion for existing rooms... – legoscia Jul 12 '15 at 00:08
-
2
It's a bug.
I've raised a ticket on jabber.el, and notified Slack of the problem. Their first tier support has escalated it; hopefully it'll be fixed soon.

Drew
- 75,699
- 9
- 109
- 225

Duncan Bayne
- 121
- 2