NOTE: I know neither the iPhone SDK or Objective C, just wondering if possible.

I know obviously it would have to be on a Jailbroken device anyway, but it is technically possible for a iPhone call recording application to be made, or is it not possible to hook into the calls or the audio input/output?

I know obviously there would be no 'official' way of doing it and certainly not from an App Store application. And I know there are call recording apps which place outgoing calls through their own servers.

Just wondering if the reason it doesn't exist yet is just because no-one has coded it or if it's not actually possible?

This would probably be a better question to ask on SO, as they would have much better knowledge of what is and isn't possible from a programmers perspective.
–
Josh KAug 27 '10 at 14:24

2

All answers here provide an app that needs either internet connection or calling another number first. To me, that means the actual recording is taking place in a central and not within iPhone. That's hopefully not what this question is about. I at least am expecting an app actually able to do it even without internet and specially with no need to call an international number back and forth.
–
CawasDec 24 '10 at 15:10

What can be added here to the responses to get you an answer to this question? (feel free to answer it yourself if you reached a conclusion different than the ones proposed)
–
bmike♦Mar 13 '12 at 15:36

Really good service. But it needs no jailbreaking anymore and it is, just like every other "iphone recording app" out there, actually done within a call center the whole process, through an access number.
–
CawasDec 24 '10 at 15:21

There is no easy way since that part of the software and hardware is secured.

Of course it's possible in the theoretical sense as the voice recorder and music mixing apps show the power of signal processing hardware and software has access to both streams of sound.

Someone would need to re-do some or all of the iOS code and change it. But what's simple in concept is surely complex and perhaps too costly to happen in reality.

You simply take the code that listens to the stream of microphone data inside the mobile Phone app and dump a file to storage as well as encoding it for voice calling. If that app calls an API rather than doing that processing itself, then you would implement the recording there. You would do the same for the incoming data and could either add time markers for later mixing or mix it down as the call is being handled.

This code is of course not in place using the documented API so you would need to patch the app after a jailbreak or uncover an undocumented API to actually implement this feature.

The use case is so obvious that if this were sitting there, hundreds of apps would be doing this already.

It's definitely possible, and almost certainly unnecessary to read directly from memory. Apple's private APIs are discoverable using both Xcode and certain 3rd party Objective-C class browsers.

If you need your unasked question answered ("How would one implement an iPhone call recorder?"), Then I agree with Josh K: head over to stackoverflow.com. Or get in touch with the folks at Rogue Amoeba, as they've already solved this problem on Mac OS X, which shares the exact same low-level libraries as iOS.

About your comment, clozach, for an app on apple store being able to do it, it could only be one that requires you to dial another number first. So it's not technically an iPhone call recorder.
–
CawasDec 24 '10 at 15:04

Someone smart enough to crack this recording nut would likely realize they could sell their work to the FBI/CIA for far more than the consumer public would ever pay.
–
bmike♦Aug 4 '11 at 14:21

1

Sorry bmike, but any state agency does not need to deal with this person. They most certainly, if pushed, can get the conversation easily in transit. Furthermore, they are extraordinarily suspicious, of our sketchy genius. That is attention one does not want when one could sell the app to unfaithful spouses all over the planet, 50 bucks a pop, if it worked. Easily.
–
chiggsySep 17 '11 at 4:01