appleboy / gorush

A push notification server written in Go (Golang).
MIT License
7.88k stars 836 forks source link

voip push #547

Open jason-shen opened 3 years ago

jason-shen commented 3 years ago

Hi all

this lib looks really good, just a question, does this support ios voip push? push_type=voip

i couldn't find anything in the docs

any advice would be awesome

thanks advance

Jason

slimus commented 3 years ago

Hi @jason-shen !

If I read PushKit and Supporting PushKit Notifications in Your App correclty you don't need any changes in your server (or in gorush in this case).

When you implement PushKit for app just send push notification to correct device token and APNs will do all work for you.

jason-shen commented 3 years ago

Hi @jason-shen !

If I read PushKit and Supporting PushKit Notifications in Your App correclty you don't need any changes in your server (or in gorush in this case).

When you implement PushKit for app just send push notification to correct device token and APNs will do all work for you.

do you have to pass the type to apn? as i use onesignal now, they require to pass the push_type as voip to their server

thanks @slimus

slimus commented 3 years ago

@jason-shen I found information about this param So gorush has this param in notification request. Can you please try it and write your result?

jason-shen commented 3 years ago

@jason-shen I found information about this param So gorush has this param in notification request. Can you please try it and write your result?

I don't have this install yet will try it once I have it install and report the result here

Cheers

appleboy commented 3 years ago

@jason-shen See the PR: https://github.com/appleboy/gorush/pull/424

jason-shen commented 3 years ago

@jason-shen See the PR: https://github.com/appleboy/gorush/pull/424

Thats a year ago so is the still the case

janvda commented 3 years ago

@jason-shen , I am also interested in using voip push for ios. You are referring to PR #424 but that PR is merged. So I would expect that it should be possible now.

jason-shen commented 3 years ago

I still haven't got around trying this, would be cool if you could try it out, and let us know the result

janvda commented 3 years ago

@jason-shen in order to try this, I think that i need to create

and I can only create those when having a paid apple developer account (= 99 $ /year). With the free apple developer account I don't seem to be able to create those keys.

jason-shen commented 3 years ago

I have one, I can create a test key for you if you want one

janvda commented 3 years ago

Thanks for the offer, I am wondering what you would need exactly in that case from me in case of Establishing a Certificate-Based Connection to APNs (another option is a token based connection).

Obtain a Provider Certificate from Apple

You obtain a provider certificate from your developer account on developer.apple.com. In the certificates section:

1. Add a new certificate.
2. Select Apple Push Notification service SSL (Sandbox & Production) for the type and click Continue.
3. Select the App ID (also known as Bundle ID) of your app and click Continue.
4. Generate a Certificate Signing Request (CSR) on your server.
5. Click Continue.
6. Upload your CSR file and click Continue.
7. Download the resulting certificate.

So the App ID (step 3) in my case is 360065638 as I am using the linphone app.

The instructions for step 4 to generate a CSR can be found here :

ycherniavskyi commented 2 years ago

I would like to confirm that the current stable version support voip as push_type.

Here is the post that sends VoIP PushKit message to iOS:

curl -X "POST" "http://localhost:8088/api/push" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "notifications": [
    {
      "tokens": [
        "<VoIP PushKit token>"
      ],
      "data": {
        "has_video": "false",
        "caller_name": "Name",
        "caller_id": "+0123456789",
        "caller_id_type": "number",
        "uuid": "00000000-0000-0000-0000-000000000000"
      },
      "topic": "<App Bundle ID>.voip",
      "push_type": "voip",
      "platform": 1
    }
  ]
}'