UnifiedPush over XMPP - a specification - and implementation of Gateway and Distributor https://up.chat.sum7.eu
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
genofire 612d577b21
continuous-integration/drone the build was successful Details
fix validation of notifcation by sender/from address
Reviewed-on: #19
2 years ago
.ci ci: add test and woodpicker/droneCI support 2 years ago
.woodpecker ci: add test and woodpicker/droneCI support 2 years ago
distributor Add a not condition to an if statement 2 years ago
gateway depends: update mellium.im/xmpp to main 2 years ago
messages depends: update mellium.im/xmpp to main 2 years ago
.gitignore first xmpp tries 3 years ago
README.md ci: add test and woodpicker/droneCI support 2 years ago


UnifiedPush over XMPP

DroneCI Go Report Card Go Reference

UnifiedPush is an specification how push notifications delieveries between application server and application. This is an implementation of the UnifiedPush specifications to delievere 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 receive the push notifications

XMPP Messages


Request for Register

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


on success:

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

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>




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">
  <body>Here is the Notification content</body>

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


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

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