I am evaluating using Mattermost for internal corporate chat. This includes potentially using the Mattermost Push Notifications Service to push notifications to corporate iPhones. Mattermost says:
For organizations who want to keep internal communications behind their firewall, this service encrypts notification messages with a private key under your control before sending them to Apple's public push notification service for delivery to your iOS devices.
Implementing a push notification service to push notifications to iPhones is new to me. I have seen other posts about the reliability and privacy of the APNS, but are there any options for sending notifications through a service that doesn't have to go through Apple? If the answer is no, the implication is that all notifications for the 1B+ iPhones on the planet go through Apple...correct? Again this is new to me so I am just trying to clarify my understanding of the overall architecture.
The answer seems to be: Yes, every iphone notification have to go through Apple. At least the VoIP notifications.
From this discussion in Apple's developer forum regarding deprecating VoIP background registration vs. enforcing the use of PushKit:
iOS 10 VoIP background mode no longer supported
Question:
How can we use an iOS 10 VoIP App (…) in closed internal networks (…) where no connetion to the internet is possible?
Answer from apple staff:
There’s no supported way to do this. To use CallKit you must link with the iOS 10 SDK, and if you link with the iOS 10 SDK you will not be able to use the legacy VoIP API.
IMO, this answer implies, that there is no self hosted private push service desinged into the apple push eco-system. Otherwise, the apple guy would have stated it here.
Related
I've just read alot about push notification servers, self-hosted ones as well as cloud. and I am pretty much confused about one aspect.
I need push notifications for my Android/iOS app for more than a million devices using the same app. now there is no free service for that scale and paid services will result in too much monthly fees, so I thought about running my own server with an open source solution. I've checked Many but parse seems to be the best fit. but they say that it uses FCM and I know from google pricing that it is free only for a limited number of registered devices. I thought that hosting my own push server would spare me those fees; but it seems like not; what good is it then ? wouldnt it be better to just use FCM directly ?
Delivering push notifications to Android (with Google Play Services) and iOS will always use FCM or APNS respectively. The reason is that those services are built into the operating system, or built closer to the operating system than regular application can function and get reliability and battery life advantages from that. Both FCM and APNS are completely free and unlimited, although both have quota to protect the services against abuse.
There are many services (such as Parse Push, Airship, OneSignal, etc) that build on top of FCM and APNS to provide higher level messaging operations. But at a lower level these will be using APNS and FCM for the actual delivery of the messages.
That's also what you have to think of when you considering building your own server: what will that server actually do to deliver the messages to the devices? If you're not using FCM/APNS, how do you get the message to the device, especially when the user is not actively using the app?
I want to develop an application which sends a Message from iPhone to other iPhone over the internet, I want to receive the Message from other iPhone even if my iPhone is running in the background.
I have seen the WiTap application, but socket will get disconnect when application is closed or if there is screen lock.
So is that possible to develop the application so that I can receive the message even if my app running in the background forever?
From my little Knowledge, You can't do it through WiFi.
When a screen lock happened, device will automatically OFF the wifi connection for increasing battery life.Thats why socket connection getting disconnected.
In iOS, apps can’t do a lot in the background. Apps are only allowed to do limited set of activities so battery life is conserved.
But what if something interesting happens and you wish to let the user know about this, even if they’re not currently using your app.
For example, maybe the user received a new chat. Since the app isn’t currently running, it cannot check for these events.
Luckily, Apple has provided a solution to this. Instead of your app continuously checking for events or doing work in the background, you can write a server-side component to do this instead.
You can do it using Apple Push Notification Service.
It uses push technology through a constantly open IP connection to forward notifications from the servers of third party applications to the Apple devices; such notifications may include badges, sounds or custom text alerts. In iOS 5, Notification Center enhanced the user experience of push and local notifications.
More details are here
Note: details and screen shots are taken from raywenderlich website/blog.
I am wondering about an iPhone application called Call Recorder - IntCall.
Can anybody explain how a number can be dialed via an application without using the device numberpad and cellular network? What API provides this service? I have seen many third-party click to call services, but is there an API available for mobile apps on iOS or Android?
You can't make calls on the cellular network, only the default dialer app can do this.
The app in your link is a VoIP app and uses its own VoIP client to record the conversation.
We are the developers of this app. As rckoenes said, it's a VoIP app and uses a VoIP library and our VoIP server to implement the recording.
There are a few VoIP libraries, some free, but we have purchased a library (expensive).
In general VoIP is not that easy to implement. You need to understand the protocol and you need to have a server that supports what your apps need to do.
I'm looking for any reference projects or key learning from anyone who has implemented XMPP/Jabber to successfully send notifications to iOS devices (iPhone/iPad).
I'm considering using an XMPP server (OpenFire specifically) to provide a single cross platform mobile push system. C2DM for android has a number of annoying requirements like users having Google accounts. This is what got me started looking at XMPP. I also need to support pushing to iOS devices. I know all about APNS, however I'm wondering if I could use the XMPP server for both Android and iOS platforms (and possibly more like Black Berry).
The things I feel might come up are:
iOS killing any persistent connection to the XMPP server. Will it
auto reconnect?
iOS preventing access to certain ports or protocols.
Anything to be aware of here?
Other gotchas one would only discover
by trying this?
Here you can find the answer to your first question:
when your app goes in background you (the client) close the connection
with the xmpp server. When your app comes back into foreground you
reopen the connection. If your server need to send messages to your
client, it must use push notifications. When the client receives the
notification can (it depends on the user action) go back to
foreground.
(source: iOS Backgrounding & XMPPFramework)
I need to send remote APNS notifications from my server application to my iPhone applications. I want to know the frequency with which I can send remote APNS notifications in the following scenarios:
From my server application to the iPhone application on the same device.
From my server application to the iPhone applications on different devices.
I know that Apple has set some limit on this, but I do not know the limit.
Thanks
As per my information Apple has not specified any specific limit but following text in programming guide of service.
Apple Push Notification service continually monitors providers for irregular behavior, looking for sudden spikes of activity, rapid connect-disconnect cycles, and similar activity. Apple seeks to notify providers when it detects this behavior, and if the behavior continues, it may put the provider’s certificate on a revocation list and refuse further connections. Any continued irregular or problematic behavior may result in the termination of a provider's access to APNs.
Following paragraph is given here
If you find any further details then post here......