Skip to content
This repository has been archived by the owner on Mar 14, 2023. It is now read-only.

Latest commit

 

History

History
63 lines (45 loc) · 2.05 KB

README.md

File metadata and controls

63 lines (45 loc) · 2.05 KB

mod_apns

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.

Donate

Compilation:

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.

Configuration:

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

mod_apns:
  address: "gateway.push.apple.com"
  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="https://apple.com/push" >
    <token>TOKEN</token>
  </register>
</iq>

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

What it sends to APNS:

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

Compatibility:

The module works fine with recent ejabberd versions.

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