Home

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:

Currently only the GCM and APNS backends are usable. The Ubuntu backend is implemented but untested.

##Prerequisites

##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"