VoIP Call without Internet Connection

Our business works on a call & communication inside a LAN without an internet connection solution with a signaling server placed inside the Local Area Network.

How can we make and keep a socket open on an iOS device to do signaling operations between the app and the server to get voice calls and messages in the organization.

In this case I think there is no connection to Apple's PushKit to activate the CallKit and open the app to Ring for an incoming call.

Is there an alternative to do so, like having a Local Push server (instead of apns) defined for organization's iOS devices with a certificate or profile to be used by that iOS devices to get push notifications from or having a single socket from the iOS app connected to a signaling server and keeping it connected (like background voip that is deprecated in iOS 10) to somehow with a Local notification inform the callee with an incoming call.

If there can be a way or many ways to do so please inform us with needed steps or alternatives.

Thanks in advance

Replies

I have been researching this for a while...

Apple would bascially say: "No".

A lot of people that do enterprise secured VOIP are crying on this forum and it looks like Apple doesn't care.

The current work around is to build against iOS 9 SDK with XCode 7. But there is no future to that.

Our app suffers from the same problem. Luckily most of our customer that need closed network use Android. Apple would probably lost a few sales over there just because of this...

Thank you for your answer. Did apple officialy confirmed that these 2 ways that I have mentioned is not gonna work at that you say Apple basically says: "No." to that without showing an alternative solution to it? The business is a rational and very possible solution and I think apple should have a rational answer to the accured problem. If not we have the android app ready and working in that organization and we should abandon everyone with an iPhone and that is not a good way to do that.

Apple did give an "alternative solution" which is to open some ports from your closed network to the Internet so you can receive pushes, which is probably not what you want.

See this thread: https://forums.developer.apple.com/thread/50106

Our app use to keep socket open in background, but in iOS10 all the socket will be killed after a couple of seconds when you enter the background.

If your app doesn't need to go to AppStore, you might get away with faking a APNS server in your local network, but that is really a long shot...