Question

I have read about what most people say that it is not possible to create iOS applications for the app store that is able to record calls as there are no public frameworks available that has this function. In this situation it means to record phone calls directly using the default phone app provided by Apple.

However, I have also came across several app store applications that records phone calls. While there are no public frameworks that that are able to record calls, I believe these applications in the app store uses VOIP (such as Viber). I know the difference between VOIP and direct call recording that VOIP delivers voice communications over Internet Protocol (IP) networks, such as the Internet.

My question is how VOIP is called from code in applications. Is VOIP called from some public frameworks since private frameworks are not allowed in the appstore?

Edited: Removed 2nd question

Was it helpful?

Solution

These apps are not recording Phone.app calls from the device. Think of it like Skype or a similar service for your computer. Although your computer cannot make calls, services can use VOIP (Voice Over IP) to send audio data to a server. The same thing is happening with these App Store apps.

  1. A user downloads a call recording app on the App Store.
  2. The user makes a phone call to someone from WITHIN THE APP THEY DOWNLOADED.
  3. The app starts sending voice data to the server and THE SERVER proxies the call to the destination number. You will notice that the interface for the "end call" button and dial pad are different, this is because Phone.app is not being used.

Now that the app is just sending it's own audio data, it has access to and can record it.

The open source application, siphon, is a great example of how VOIP can be implemented using Objective-C in an iOS app.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top