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.

  • start a jabber call in slack with slack command: /jabbercall Commented Oct 9, 2018 at 13:24

2 Answers 2


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)
   (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.
   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.

  • When I invoke jabber-join-slack-room, it returns a result member for every member on the team, as well as [email protected]. None of the rooms appear in the result list. Commented Jul 11, 2015 at 22:42
  • Right, you'll have to type in [email protected]. Not sure if there's a way to get tab completion for existing rooms...
    – legoscia
    Commented Jul 12, 2015 at 0:08
  • That works great, thanks very much! Commented Jul 12, 2015 at 0:29

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.