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
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.
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.