Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UnifiedPush support #3135

Closed
matrixbot opened this issue Nov 1, 2024 · 6 comments
Closed

UnifiedPush support #3135

matrixbot opened this issue Nov 1, 2024 · 6 comments

Comments

@matrixbot
Copy link
Collaborator

This issue was originally created by @johnlpe at matrix-org/dendrite#3135.

Please add support for UnifiedPush push notification protocol/standard.

We need push notifications, but we don’t want use centralized online service that read we all notifications, like Android has Google Firebase Messaging Service and iOS has Apple Push Notification service. UnifiedPush protcol is the solution for this. UnifiedPush is open protocol/standard for connection between online service (Application Server) → notification service (Push Server) and notification service’s client (Push Distributor) → application (End User Application). It enables the user to choose the service through he receives his push notifications.

Especially GNU/Linux on mobile is very big need of push notifications and with UnifiedPush we can fix it.

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3135 (comment).

Element Android already works pretty well with UnifiedPush (I'm using my own ntfy instance for this)
ntfy also implements the /_matrix/push/v1/notify endpoint, making it a push gateway. https://docs.ntfy.sh/publish/#matrix-gateway

So I do believe that on the server side there is nothing more we can do, I think it's more of a client thing.

(Also, welcome to Github :))

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @johnlpe at matrix-org/dendrite#3135 (comment).

Element Android already works pretty well with UnifiedPush (I'm using my own ntfy instance for this)
ntfy also implements the /_matrix/push/v1/notify endpoint, making it a push gateway. https://docs.ntfy.sh/publish/#matrix-gateway

I think we need:
On the server (Application Server): the ability to send notifications to the push notification server (Push Server) via UnifiedPush protocol and some way configure to which URL, account and password.
On the client (End User Application): the ability to receive notifications from Push Distributor via UnifiedPush and configure push notification settings of the Application Server. I think the support of the configure the Application Server in the web application is enough, but good if native clients also have it.

I don't see the configuration options in Element Web or others and I suspect Dendrite or Synapse doesn't have full support.

So I do believe that on the server side there is nothing more we can do, I think it's more of a client thing.

We also have lot of work with Push Systems/distributor softwares.

(Also, welcome to Github :))

You noticed too :D How? Checked who here again beg new features?

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3135 (comment).

I think we need:
On the server (Application Server): the ability to send notifications to the push notification server (Push Server) via UnifiedPush protocol and some way configure to which URL, account and password.

Dendrite/Synapse both implement setting to which URL to send notifications to, but it is only sending to a Push Gateway. It is up to the Push Gateway how to deliver the message, be it UnifiedPush, GCM or some other way. And with ntfy on the client you can configure the account and password to use.

On the client (End User Application): the ability to receive notifications from Push Distributor via UnifiedPush and configure push notification settings of the Application Server. I think the support of the configure the Application Server in the web application is enough, but good if native clients also have it.

Element Android let's you configure which push provider you want to use, so if you have ntfy installed, you either have the choice to use that, background synchronization or, if using Google Services, GCM. This is stored in Dendrite/Synapse and if there's a notification both will notify the configured Push Gateway.

I don't see the configuration options in Element Web or others and I suspect Dendrite or Synapse doesn't have full support.

Element Web/Desktop is using responses to /sync (I think) to determine when to notify the user, so this only works when the client in question is running.

You noticed too :D How? Checked who here again beg new features?

Well, hovering over your name just said "Joined Github this month"

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @johnlpe at matrix-org/dendrite#3135 (comment).

I think we need:
On the server (Application Server): the ability to send notifications to the push notification server (Push Server) via UnifiedPush protocol and some way configure to which URL, account and password.

Dendrite/Synapse both implement setting to which URL to send notifications to, but it is only sending to a Push Gateway. It is up to the Push Gateway how to deliver the message, be it UnifiedPush, GCM or some other way.

Why Dendrite/synapse don't implement UnifiedPush directly? (https://unifiedpush.org/spec/server/) And how connecton to a Push Gateway is authenticated?

And with ntfy on the client you can configure the account and password to use.

Unfortunately, ntfy doesn't implement proper authentication :( (binwiederhier/ntfy#808)

On the client (End User Application): the ability to receive notifications from Push Distributor via UnifiedPush and configure push notification settings of the Application Server. I think the support of the configure the Application Server in the web application is enough, but good if native clients also have it.

Element Android let's you configure which push provider you want to use, so if you have ntfy installed, you either have the choice to use that, background synchronization or, if using Google Services, GCM. This is stored in Dendrite/Synapse and if there's a notification both will notify the configured Push Gateway.

Does Element Web have this setting? In the UI?

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @johnlpe at matrix-org/dendrite#3135 (comment).

@S7evinK

@matrixbot
Copy link
Collaborator Author

This comment was originally posted by @S7evinK at matrix-org/dendrite#3135 (comment).

As written by clokep here, this should go into the matrix specification.

We can't just implement something in Dendrite with Apps (e.g. Element) not aware of native UP support. This would have to be implemented in apps as well. And if we just do something different then Synapse/other homeservers, we would end up with different End User Application implementations for each of the homeservers, which is not what we want.

We'd want something like POST /_matrix/v3/configureUnifiedPush with specific fields in the request, so servers/app wanting to use UP know exactly what to send and expect.

Suggest we discuss this over in matrix-org/sygnal#340

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant