Awesome Open Source
Awesome Open Source


Fork Me Now! Spread the project for great good!

An ejabberd module to send offline messages as PUSH notifications for iOS.

Consider using mod_push which implements XEP-0357 and works with many PUSH services.

This module has nothing to do with XEP-0357 so far.

The main goal of this module is to send all offline messages to the registered (see Usage) clients via APNS.



Because of the dependencies such as xml.hrl, logger.hrl, etc it's recommended to compile the module with ejabberd itself: put it in the ejabberd/src directory and run the default compiler.


To let the module work fine with Apple Push Notification Service APIs, put these lines in the modules section:

  address: ""
  port: 2195
  certfile: "cert.pem"
  keyfile: "key.pem"

You can use a password field in case if you have a password-protected certificate.

Usage (Client to server):

You need to send this stanza to the server over the XMPP connection, to let the server know your client token:

<iq to="YourServer" type="set">
  <register xmlns="" >

The key will be kept in mnesia database and completely belong to the JabberID which it was sent from.

What it sends to APNS:

      "alert": "Hello!",
      "sound": "default"
  "source": "[email protected]",
  "destination":"[email protected]"


The module works fine with recent ejabberd versions.

For the older ones, checkout the ejabberd14 and ejabberd16 branches.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Erlang (10,497
Module (2,836
Push Notifications (743
Push (376
Xmpp (369
Apns (198
Related Projects