Is CallKit Sufficient - ios

I am new to ios development. I am trying to build a voip app and I was wondering, is callkit all I need? or I need to integrate it with an already built voip app, using for example WebRTC?

As you might have guessed, CallKit alone is not sufficient.
CallKit only provides the system-calling UI, and you need to develop the backend system for yourself. (Of course, you can use Web RTC instead of VoIP.)
Use CallKit to integrate your calling services with other call-related apps on the system. CallKit provides the calling interface, and you handle the back-end communication with your VoIP service.
https://developer.apple.com/documentation/callkit

Related

Socket.io vs xmpp for a mobile chat app

I have to build a realtime chat app in iOS, which can later also have voice and video calling. I want to use a scalable and light weight solution integrated with the backend, making sure that the solution also supports calling in the future.
I'm not too sure if socket.io supports voice and video calls; Should I use that or xmpp? Or any other similar solution?
As it was written above socket.io is a chat server implementation using Websockets, while XMPP is a protocol.
I'd recommend using an XMPP chat server in this case.
For audio/video calls implementation you will need to implement signaling via XMPP to establish connection between the devices before the call.
Also for audio/video chat implementation you will need STUN/TURN/ICE server and you will need to add client-side implementation for passing media streams from peer-to-peer if you choose WebRTC peer-to-peer option.
There is an easier way as well. You can use a ready XMPP based server and SDK to build your app. For example, ConnectyCube provides such service.
They have a ready backend and SDKs you can use for building chat and audio/video chat apps. Also they already have a TURN server, so you do not need to worry about this part too.

iOS Call Screen Capability

I'm trying to build an App with video calling capabilities like Skype and I'm trying to figure out how to make it ring with the native call screen as Skype, Hangouts and several other big apps do.
Are those APIs public? If so what are they called/where can I find the documentation on them?
Thanks
Yes CallKit allows yoy to use native UI to provide Voip calling for your app. However you need to be aware that connection and calling itself must be implemented on your own.

Use callKit to show call history in UI iOS

I am trying to use the CallKit in my VoIP App to show the call history in UI iOS.
But I can not find any tutorial to how use CallKit and write code in VoIP App.
If you are trying to make a VoIP app which uses CallKit I recommend starting by reviewing Apple's sample code app, Speakerbox, which demonstrates using CallKit.
There is no API for an app to query or read from the device's Recents list (aka call history records). But if an app uses CallKit, its calls will be included in the Recents list.

iPhone app with call features

I'm trying to get into a new project, by creating an iOS application. But before I start I would like to understand some points:
is it possible to let an application make a phone call? So what I mean is, assumed we have a phone number and would like to call it. Would it be possible to use an (my) application to call this number?
is it possible to let an application speak during a phone call? So after the application started the call, would it be possible that some predefined statements are said in the call?
is it possible that this application hears, registers and analyses what the other person on the phone line is saying? (Leaving apart the privacy issue, assuming that the other person is willing to do that).
Could you please help me? If my question aren't clear, please tell me, I will try to explain it in another way.
Many Thanks
F.P.
iOS is very restricted in terms of the system behaviors third party applications can influence.
To answer your question bluntly, a third party application could prompt the user to initiate a phone / FaceTime call. Once the call is initiated however, your app would enter a background state and relinquish control to the system. The app would not be able to contribute or read any data related to the system phone / FaceTime call.
iOS 10 introduces a VoIP extension, CallKit, which allows third party apps to use the built in calling UI with a custom protocol. You could implement your own protocol (and host servers for handling the exchange of information) and build an extension to make it feel like a system call. You'd be responsible for all aspects of the custom call protocol and thus reading voices, contributing audio, etc. would all be possible (and up to your implementation).
Outside of iOS 10, you would have to built your own VoIP system and interface entirely from scratch.
For more info on CallKit:
WWDC Enhancing VoIP Apps with CallKit
CallKit Enabled Sample App

Can iOS Web Apps receive Apple Push notifications?

I'm trying to evaluate whether to implement my application as a Web App or native app and was wondering if its possible to a web app to receive Apple Push notifications?
I suspect not but want to confirm so.
TIA
No, you must use the SDK, the best way to achieve this would be to have a wrapper app for your web app.

Resources