UnifiedPush over XMPP - a specification - and implementation of Gateway and Distributor https://up.chat.sum7.eu
Go to file
Geno 4a88e1d4a7 docs: first readme message
wip #9
2021-09-14 11:36:12 +02:00
distributor distributor: improve logging 2021-09-14 09:49:59 +02:00
gateway gateway: improve logging to be more privat 2021-09-14 09:31:45 +02:00
messages docs: first readme message 2021-09-14 11:36:12 +02:00
.gitignore first xmpp tries 2021-09-09 23:12:29 +02:00
README.md docs: first readme message 2021-09-14 11:36:12 +02:00

README.md

UnifiedPush over XMPP

UnifiedPush is an specification how push notifications delivered between application server and application. This is an implementation of the UnifiedPush specifications to delivere push notification over XMPP.

In this project has following components:

  • Gateway (also called an Push Provider or Server) which could be registered as an XMPP Component on an Server
  • Distributor for Linux using the D-Bus Specification which implement an very small XMPP-Client to recieve the push notifications

XMPP Messages

Register

Request for Register

<iq from="push-distributer@example.org/device" to="up.chat.sum7.eu" type="set" id="register-id">
  <register xmlns='unifiedpush.org'>
    <token>token-from-distributer-regisration</token>
  </register>
</iq>

Responses

on success:

<iq from="push-distributer@example.org/device" to="up.chat.sum7.eu" type="result" id="register-id">
  <register xmlns='unifiedpush.org'>
    <endpoint>https://an-endpoint-for-application-server.localhost/UP?token=public-token</endpoint>
  </register>
</iq>

on failure:

<iq from="push-distributer@example.org/device" to="up.chat.sum7.eu" type="error" id="register-id">
  <register xmlns='unifiedpush.org'>
    <error>a reason of failure</error>
  </register>
</iq>

Unregister

TODO

Notification

For the push notification it-self the origin <message/> is used with following Position of Token and Content.

<message from="up.chat.sum7.eu" to="push-distributer@example.org/device" id="message-id">
  <subject>token-from-distributer-regisration</subject>
  <body>Here is the Notification content</body>
</message>

The message sender from should be validated from distributor, for not recieving invalid or manipulated push Messages.

Wordings

We are using over the complete system three kind of tokens:

  • Public Token which is part of the Endpoint and is for using between Gateway and Application-Server
  • External Token which is used between Gateway and Distributor
  • Internal Token which is used between Distributor and Application