Skip to end of metadata
Go to start of metadata

Plugin Information

View Jabber (XMPP) notifier and control on the plugin site for more information.

Integrates Jenkins with the Jabber/XMPP instant messaging protocol. Note that you also need to install the instant-messaging plugin.This plugin enables Jenkins to send build notifications via Jabber, as well as let users talk to Jenkins via a 'bot' to run commands, query build status etc.. 

Installation Requirements

This plugin needs the instant-messaging plugin. Please ensure that the latest version of this plug-in is also installed.

Java 7 Needed

Note that since version 1.26 Java 7 is needed as a requirement to run the plugin. If you still require Java 6 please stay with 1.25 or lower

Features

See instant-messaging plugin.

Connecting to Google Talk

If you have a GMail or Google Mail account, specify the full e-mail address, such as john.smith@gmail.com. If you are a Google App user, specify full e-mail address like john.smith@example.com

NB: if you have a european gmail account, you may need john.smith@googlemail.com

Expand "Advanced settings" and put server address talk.google.com otherwise it won't work.

It's suggested to create a user for Jenkins. Remember to log in once to accept the terms & conditions. You may also have to invite people to chat before Jenkins may actually send the chat message.

In Jenkins configuration you may also have to uncheck Enable SASL authentication.

If you have issues, check Jenkins > Manage Jenkins > System Log.

User authenticated user for the command 'bot'

If you have a secure Jenkins that does not allow anonymous user to build, you will need to have a user for Jabber. !build command can give an error as discussed in JENKINS-15897.  As of version 1.35, the error is misleading as Jenkins complains about the command syntax instead of unauthorized access error.

Adding a dedicated authenticated user for the bot could fix this problem:

  • Add a new Jenkins user (will assume the username is notification)
  • If using Matrix-based security (Manage Jenkins -> Configure Global Security), add permission for the notification user for Job build, cancel, discover and read
  • Create a new global credentials and set the password for the user notification
  • In Jabber Plugin Configuration, set the Jenkins username to notification

Debugging Problems

If you experience any problems using the plugin please increase the log level of the logger hudson.plugins.jabber to FINEST (see Logging ), try to reproduce the problem and attach the collected logs to the JIRA issue.

Changelog

Version 1.36 (2017-07-22)

  • Bumped Smack to 4.1.9 JENKINS-45599 - Getting issue details... STATUS

Version 1.35 (2015-05-02)

  • Fixed 'retry with legacy SSL' logic if server doesn't respond at all to other connection attempts JENKINS-28169

Version 1.33 (2015-02-16)

  • Don't make concurrent build wait because previous build finished yet (with instant-messaging-plugin 1.33) JENKINS-26892

Version 1.31 (Dec. 20, 2014)

Version 1.30 (Nov. 20, 2014)

  • Completely disable vCard support, because of another potential bug in Smack (JENKINS-25676)

Version 1.29 (Nov. 10, 2014)

  • Workaround for vCard parsing problem in Smack library (JENKINS-25515)

Version 1.28 (Oct. 28, 2014)

  • HipChat closes connections after 150s of inactivity. Implemented keep-alive for HipChat (JENKINS-25222)

Version 1.27 (Oct. 26, 2014)

  • Fix: old messages in chatrooms weren't ignored by v1.26

Version 1.26 (Oct. 14, 2014)

  • Attention: Needs Java 7 at least. If you're still using Java 6, stay with version 1.25!
  • add an option to accept all (untrusted) SSL certificates
  • Upgrade to Smack Api 4.0.4

Version 1.25 (Dec. 15, 2012)

  • support resource in Jabber IDs
  • use configured nickname as general nick, too, not just in chatrooms (JENKINS-11903)

Version 1.24 (Oct. 13, 2012)

  • Fixed a bug when upgrading from older versions on Windows (JENKINS-15469)

Version 1.23

Version 1.22

See instant-messaging plugin 1.21 for new features.

Version 1.21

Version 1.20

  • the bot user now has a nice vCard/avatar image

Version 1.19

  • DNS lookup of Jabber server by servicename didn't work (JENKINS-10523)
  • new option to allow e-mail addresses to be used as Jabber ids (JENKINS-8594)

Version 1.18

  • bot commands via private message were not recognized under certain circumstances (JENKINS-9954)

Version 1.17

Version 1.16

Version 1.15

Version 1.14

Version 1.13

  • new feature: new chat notifier which prints the failing tests, too JENKINS-7035

Version 1.12

  • improvement: bot commands are now extensible and open for other plugins (see class BotCommand).
  • improvement: added an extension point to customize the message the bot sends to chats for notification (see class BuildToChatNotifier).
  • improvement: re-added legacy SSL support (seems like there are still some XMPP servers out there which need it) (JENKINS-6863 )

Version 1.11

  • fixed: disconnects (and no reconnects) when changing the global config (JENKINS-6993)
  • improved behaviour when plugin is disabled. I.e. doesn't log unnecessary stuff.
  • fixed: plugin's configure option not visible JENKINS-5978 JENKINS-5233

Version 1.10

  • fixed: notify upstream commiter would have notified committers of 'old' builds (JENKINS-6712)
  • improvement: print useful project names for matrix jobs (JENKINS-6560 )
  • fixed: don't delay Hudson startup (JENKINS-4346 )
  • feature: userstat command for bot (JENKINS-6147 )
  • fixed: don't count offline computer for the executors count (JENKINS-6387)
  • improvement: print fully qualified Jabber ID in build cause (JENKINS-4970 )

Version 1.9

  • allow to pass build parameters with the build command (JENKINS-5058 )
  • fixed: bot disconnected from conferences when expose presence was false (JENKINS-6101 )

Version 1.8

  • fixed connection problem with eJabberd (JENKINS-6032)
  • fixed connection problem with GoogleTalk (JENKINS-6009, JENKINS-6018)
    • if connection does not out-of-the-box, please disable SASL authentication (new Jabber option under 'Configure System') and try again
  • fixed connection problem with Prosody server (JENKINS-5803)

Version 1.7

ATTENTION again: there seem to be issues authenticating to several Jabber servers with this release. So currently the best option is to stay with Jabber v1.5 and instant-messaging v1.4. Sorry for all the inconvenience!

  • fixed regression introduced in 1.6: old target configurations weren't read correctly (JENKINS-5976)
  • upgrade to Smack library 3.1.0 (JENKINS-5805)
    • ATTENTION: Legacy SSL is no longer supported. If you really need Legacy SSL, you should stay with v1.5 and instant-messaging plugin v1.4.
  • Acceptance mode for subscription requests is now configurable (JENKINS-5836)
    • Attention: this feature is not tested thoroughly, yet

Version 1.6

ATTENTION: there seems to be an issue with reading old configs. I'll publish a fixed version shortly!

  • compatibility with instant-messaging plugin 1.5

Version 1.5

Version 1.4

  • compatibility with instant-messaging plugin 1.3
  • some very minor issues

Version 1.3

  • fixed: NullPointerException if plugin was disabled in global config

Version 1.2

Version 1.1

  • works in secured Hudson instances if you specify a username and password for the Jabber bot
  • new !comment command which adds a description to builds
  • show dependency to instant-messaging plugin in update center description (D'oh, that didn't work as expected. Hope it will in 1.2)
  • this version needs Hudson 1.319 or higher

Version 1.0

  • This is the first release which is based on the Instant Messaging Plugin
    • Make sure that the instant messaging plugin is installed, too
    • ATTENTION: Although much care has been taken to make this version compatible with 0.11 it cannot be guaranteed that all configuration options can be migrated successfully!
  • enable/disable checkbox [JENKINS-2495
  • made reconnection logic more robust
  • fixed status not going back to 'available' after build finishes (again) [JENKINS-4337]

Version 0.11

  • fixed per-job configuration display
  • fixed jabber user-property not being visible
  • command aliases in bot
  • fixed status not going back to 'available' after build finishes [JENKINS-4337]
  • option to inform 'culprits' on subsequent build failures

Version 0.10

  • fixed infinite loop if previous build was aborted [JENKINS-4290]
  • plugin's Jabber status changes based on Hudson's busy state [JENKINS-620]
  • fixed handling of single quotes [JENKINS-3215]
  • started refactoring to split-out protocol independent part in a shareable plugin

Version 0.9

  • automatic reconnect on lost connections
  • new notification strategy: "failures and fixes"
  • default suffix for Jabber IDs. When entered, Jabber IDs can be inferred from Hudson user ids
    I.e. Jabber ID = <hudson_id><extension> (issue #1527)
  • 'botsnack' command massively improved (wink)
  • 'status' command can show all jobs for a view (-v <view>)
  • new 'health' command
  • bot now also works in 1-on-1 chat (issue 4057)
  • lots of refactorings and code clean up

Version 0.8

  • Two new commands are added: "!testresult" and "!abort"

Version 0.7

  • URL Encoding in messages for SCM suspects (issue #2693)
  • Add legacy SSL support and alternate nickname for group-chat (issue #2699)
  • Jobs with spaces can now be launched via messages (issue #2700)

Version 0.6

  • Notification for maven builds

Version 0.5

  • Updated to work with Hudson 1.218.
  • Fix for url encoding (issue #909)

0.4 (2007/11/22)

  • Organized the configuration screen for gradual exposure to details.
  • The plugin now works with Google Talk. (JENKINS-1021)
  • Improved help documentation.
  • Fixed NPE when no initial group chat is configured.

20 Comments

  1. Setting in Hudson admin for jabber ( for my gmail account) that did not result in an error when saving:

    server: talk.google.com

    port: 5222

    login: "gmail login" -> without 'gmail.com' (specifying full gmail address did not work)

  2. I upgraded from v0.11 to v1.0, then it is stopped to launch Jabber Plugin.
    I read my hudson log, there are some errors about plug-in dependency.
    Does this plug-in depends Instant Messenger Plugin now?
    I installed Instant Messenger Plugin, and restart my hudson, it is fine to launch.
    Is this correct?

    1. Unknown User (ckutz)

      Yes, that's what the changelog says.

      1. OK. But I was confused when I upgraded at update center on my Hudson.
        Could you write about the dependency at update center?

  3. Hello,

    First, kudos on the jabber plugin, it has become an essential part of our hudson set-up. Second, is there a problem with the latest version of the jabber plugin? I have not been able to upgrade to the the latest version of Hudson (as of today v1.335) because the jabber plugin does not work with this version of Hudson; therefore, i am always forced to roll-back to version 1.328. Any thoughts/suggestions? Thank you kindly.

    1. Unknown User (ckutz)

      I'm not running 1.335 and its difficult to say what might be the problem without any further information. Please open a new issue with a description of 'what does not work' mean and any additional information (e.g. log file, stacktrace)

      thanks

      1. My apologies, I realize that "does not work" is not very descriptive; I will need to reproduce the issue and i will get all the pertinent information so that i can open a proper issue with all the info. Thanks!

        1. Unknown User (ckutz)

          FYI: I shortly tried it with 1.335 and didn't see any problems.Do you have the corresponding version of the instant-messaging plugin installed?

          BTW: I'll release a new version of the plugins later today - no big changes for the Jabber plugin though.

          1. BTW, I apologize but I was not able to upgrade my hudson until today; installing the im plugin did the trick. I have upgraded to hudson v1.336 with the new jabber plugin and the im plugin and I have no issues. Thanks for pointing that out and keep up the good work!

  4. Hi,

    Upgraded to 1.10 and now getting in the log:
    WARNING: SASL authentication failed using mechanism PLAIN:
    at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
    at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
    at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
    at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)

    Thanks,
    Wade

    1. Unknown User (kutzi@gmx.de)

      Please try the "disable SASL authentication" checkbox. Also, please use the issue tracker to report bugs and/or the mailing list to ask questions.

  5. For me the plugin only excepts the first command from the chat and than stays silent.

    e.g. right after hudson starts up and the Jabber plugin connects, the contact shows up on Jabber, when it joins the chat and I send "!help" it responds, but the second time I write a command it jus doesn't react.

  6. Can someone help me why I am getting this message

    Jabber notifier plugin: Sending notification to: <my jabber id>
    Jabber notifier plugin: ERROR not connected. Cannot send message to '<my jabber id>'

    Here is the log information
    Apr 21, 2011 12:40:26 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
    WARNING: Exception of original (without legacy SSL) connection attempt:
    – caused by: Connection failed. No response from server.:
    at hudson.plugins.jabber.im.transport.JabberIMConnection.retryConnectionWithLegacySSL(JabberIMConnection.java:336)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:303)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:149)
    at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:42)
    at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:60)
    at hudson.plugins.im.IMConnectionProvider.access$500(IMConnectionProvider.java:17)
    at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:173)
    at java.lang.Thread.run(Unknown Source)
    Nested Exception:
    Connection failed. No response from server.:
    at org.jivesoftware.smack.PacketReader.startup(PacketReader.java:164)
    at org.jivesoftware.smack.XMPPConnection.initConnection(XMPPConnection.java:945)
    at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:904)
    at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:293)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:149)
    at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:42)
    at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:60)
    at hudson.plugins.im.IMConnectionProvider.access$500(IMConnectionProvider.java:17)
    at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:173)
    at java.lang.Thread.run(Unknown Source)

    Apr 21, 2011 12:40:26 PM hudson.plugins.jabber.im.transport.JabberIMConnection retryConnectionWithLegacySSL
    WARNING: Retrying with legacy SSL failed: Connection failed. No response from server.

    Apr 21, 2011 12:39:26 PM hudson.plugins.jabber.im.transport.JabberConnectionDebugger
    FINE: SENT: <stream:stream to="im.something.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">

    Apr 21, 2011 12:39:26 PM hudson.plugins.jabber.im.transport.JabberIMConnection retryConnectionWithLegacySSL
    INFO: Retrying connection with legacy SSL
    Apr 21, 2011 12:38:26 PM hudson.plugins.jabber.im.transport.JabberConnectionDebuggerFINE: SENT: </stream:stream>

    Apr 21, 2011 12:38:26 PM hudson.plugins.jabber.im.transport.JabberConnectionDebugger
    FINE: SENT: <presence id="CQuJr-6" type="unavailable"></presence>

    Apr 21, 2011 12:38:26 PM hudson.plugins.jabber.im.transport.JabberConnectionDebugger
    FINE: SENT: <stream:stream to="im.something.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">

    Apr 21, 2011 12:38:26 PM hudson.plugins.jabber.im.transport.JabberIMConnection createConnection
    INFO: Trying to connect to XMPP on im.something.com:5223/im.something.com with SASL

    Thanks,
    Ajay

    1. Please post questions/issues to the Jenkins user mailing list and/or the issue tracker.

  7. When trying to connect I get a server error 500 complaining about a VCard.save?

    Dec 13, 2011 1:04:36 PM hudson.plugins.jabber.im.transport.JabberIMConnection connect
    INFO: Connected to XMPP on talk.google.com:5222/gmail.com using TLS

    Dec 13, 2011 1:04:36 PM hudson.plugins.jabber.im.transport.JabberIMConnection createVCardIfNeeded
    WARNING: internal-server-error(500)
    at org.jivesoftware.smackx.packet.VCard.save(VCard.java:515)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createVCard(JabberIMConnection.java:408)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createVCardIfNeeded(JabberIMConnection.java:368)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:314)
    at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:154)
    at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:42)
    at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:65)
    at hudson.plugins.im.IMConnectionProvider.access$600(IMConnectionProvider.java:22)
    at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:183)
    at java.lang.Thread.run(Thread.java:636)

  8. I'm really missing a test button that would send a test IM to selected contacts. Set up can be tricky.

  9. How do I customize the IM? I notice: see class BuildToChatNotifier - how can I change this, where is it, do I need to compile it?

    I would like to be able to use Jenkins environment variables (similar to the email plugin, e.g. https://jenkins/job/$PROJECT_NAME/$BUILD_NUMBER/). Since our Jenkins is https the default :8080 that is used in the IM is a dead link.

    An option to configure the message similar to the e-mail plugin on a global or per job basis would be great.

    Likewise, would be nice to configure the "Yawn, I'm so bored" (or other) message(s) / taglines.

    Additionally, for whatever reason, !status <job> doesn't work - gives "unknown job" - I also tried !status -v <job> and !status <job> -v and got either the same unknown job or java exception.

    I am using Jenkins 1.514 and 1.25 plugins.

    Thanks for your help!

    Bill

  10. I tested this by using account from my colleague at company which is logged in using cisco jabber client.

    It stops working any time user gets disconnected (for instance by screensaver).

    Naturally it wont work for our ldap jenkins user since it has not client connected ever.

    How can I fix this  ?

  11. How does the plugin authenticate the jabber user? The bot commands are not working, even though my user has all the rights checked. I'm using Role-Based Strategy.