Awesome
#Oshiya Oshyia is an app server for mobile XMPP clients as specified in XEP-0357. As such it receives push notification contents from those clients' XMPP servers and forwards them to the popular push notification services, e.g. APNS. It is implemented as XMPP component (see XEP-0114).
Clients can register using adhoc commands. Oshiya aims to be compatible with mod_push concerning commands and app server behaviour. This allows XEP-0357-compatible clients using mod_push's internal app server on an ejabberd server or, as an alternative, any XEP-0114-compatible server running Oshiya.
Oshiya is part of a GSoC 2015 project. Please send feedback.
##Features Oshiya will support these push services:
- APNS (Apple push notification service)
- GCM (Google cloud messaging)
- Mozilla SimplePush
- Ubuntu Push
- WNS (Windows notification service)
Currently only the GCM and APNS backends are usable. The Ubuntu backend is implemented but untested.
##Prerequisites
- libcurl 7.28.0 or later
- expat
- cmake 2.8 or later
##Installation
git clone https://github.com/royneary/oshiya.git
cd oshiya
git submodule update --init --recursive
mkdir build
cd build
# the config file path and the data storage location can be configured using cmake options
cmake -DCONFIG_FILE="/etc/oshiya/oshiya.yml" -DSTORAGE_DIR="/var/run/oshiya/" ..
make
# no automatic file copying à la make install yet
##Configuration currently there's only an example config (mod_push's configuration is similar, see README.md over there):
components:
-
host: "push.chatninja.org"
server_host: "xmpp1.chatninja.org"
port: 5237
password: "ABCDEF123456"
pubsub_host: "pubsub.chatninja.org"
backends:
-
type: gcm
certfile: "/etc/ssl/chatninja.pem"
app_name: "chatninja"
auth_key: "sdfF73HFk_fdhj8JFjfzqALkdj81dfjhs0jdEkf"
-
type: ubuntu
certfile: "/etc/ssl/chatninja.pem"
app_name: "any"
-
host: "apple-push.chatninja.org"
server_host: "xmpp2.chatninja.org"
port: 5238
password: "POIUZT987654"
pubsub_host: "pubsub.chatninja.org"
backends:
-
type: apns
certfile: "/etc/ssl/chatninja_apns.pem"
app_name: "chatninja"
##Pubsub service configuration The pubsub service is where the XMPP servers publish the push notification contents. It has to fulfill XEP-0357's requirements. Here is how ejabberd having mod_pubsub and mod_push installed can be configured:
mod_pubsub:
host : "pubsub.chatninja.org"
nodetree : "tree"
plugins:
- "push"