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.
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.
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": "user@example.com",
"destination":"user2@example.com"
}
Compatibility:
The module works fine with recent ejabberd versions.
For the older ones, checkout the ejabberd14 and ejabberd16 branches.