[APP] Call recorder (ROOT access needed) [Nov 24 update]

Search This thread

tjhart85

Senior Member
May 13, 2009
349
12
Good concept, and I like the idea. However, I think this violates privacy laws here in the United States. In order to make this legal, you would have to state to the caller on the other end that the conversation is currently being recorded. I'm pretty sure as long as that statement is said, it would be legal.
That is a completely state issue. Some states only require ONE party to know about the recording & that would be you.

Some states require both parties to be made aware, but both don't have to consent as long as they know about it.

I think wire tapping applies to a third party recording a conversation between two unaware parties.
That also depends on the state.

But, either way, it's still very useful, even if for only when you call companies. Since they already acknowledged that the call may be monitored, both parties have been made aware. Their recordings only ever help them & when you say that said something else, they magically weren't recording your specific conversation.
 
Last edited:

Moriraaca

Member
Sep 4, 2010
7
1
Well, as all of us I love this app's idea, but as most of us, it's not working for me (Galaxy S). I was wondering though, if I could make this app running. For what I understand, the problem lays in absence of files voc* in /dev directory. But than again, there should be some similar devices responsible for managing sound during call, right? They are just probably named differently. So, the idea is, if we could find this devices, and then make links for them (e.g. ln -s /dev/whatever/device/name/is /dev/voc1 etc.), this MIGHT work... Unfortunately, though I'm quite familiar with linux, I'm definitely not a linux-pro, so I'm not sure which devices we are looking for... I found on my Galaxy S directory snd under /dev, and nothing else which resembled me some audio-related devices. Here is the listing from /dev/snd:

Code:
ls -l
crw-rw---- root     audio    116,  33 2010-10-21 12:03 timer
crw-rw---- root     audio    116,  32 2010-10-21 12:03 controlC1
crw-rw---- root     audio    116,  56 2010-10-21 12:03 pcmC1D0c
crw-rw---- root     audio    116,  48 2010-10-21 12:03 pcmC1D0p
crw-rw---- root     audio    116,   0 2010-10-21 12:03 controlC0
crw-rw---- root     audio    116,  24 2010-10-21 12:03 pcmC0D0c
crw-rw---- root     audio    116,  16 2010-10-21 12:03 pcmC0D0p

But I'm not sure if I'm looking in the right place, and I don't want to mess with my system right now (though soon I'm going to flash my device, so before this I can mess around a bit). There is also another problem: let's say we have devices voc1, voc2, voc3 etc on Hero, then first of them might do something, second something else... I don't know exactly what they are doing, because I'm noob where it comes to sound-related stuff ;-). But nevertheless, if we have differently named devices (e.g. pcmC1D0c or whatever) then it might be necessary to link them with respect to what these devices do.

So, bottom up, big question to the author: does rvoix use devices voc* explicitly, or the only thing we need to do with them is to chmod 666, and the system will do the rest (i.e. handle recording)? In the first case, it might be harder (or even impossible) to run this app on other devices, but in the second case it should be fairly easy.

And question to others: maybe someone (possibly smarter than me ;-)) isn't afraid of messing with his system to see if my idea actually works? I'll try it anyway, but as I said not right now, maybe in one-two weeks.

Cheers.
 

avs333

Senior Member
Apr 12, 2005
239
312
What about battery draining?
This great app is also tiny enough not to reduce drastically battery duration?
It just sleeps waiting for a new call, and it needs almost no resources while recording it.
If you don't select "MP3" to encode the recorded calls, rest assured you'll never see any battery drain.
I'd love to see this generalized to not require the HTC driver. Do you think that would be possible?
Regretfully, I don't think so.

As far as I know, some devices (allegedly, SE X10) support line recording out of the box, and you can use standard SDK functions to record the other side (meaning that any program like Any Call Recorder will work nice with them).

In other devices, a proper hardware support may be either missing at all, or blocked (in hardware, in radio image). This is the worst case, and there's nothing to do with that.

Some others may lack kernel drivers. If the kernel sources are open, there's a hope that somebody will patch them to include this stuff.

Also, the drivers may exist, but just not compiled in (like in G1 where as I know they were removed from 2.2 kernels). I think this may be fixed for many devices based on MSM7xxx chipsets.

So I can't say something very specific regarding this question.
All I have is my Hero, and this program was intended exclusively for this device.

It's nice if it works on some others, and it'd be even nicer if somebody ports it to them (I am unable to do that all by myself).
cool app. anyone know if it would be possible to play an audio file directly to the caller? would come in handy rickrolling damn telemarketers :D
The "Auto answer" mode was meant to do that, but it didn't work on my device.
If you want to give it a try, copy a 8kHz 16bit mono pcm file (i.e. wav file without the header) to "/sdcard/voix/myvoice" (for example, see the attached file taken from AirVoice), and switch on that mode in Settings. Hope your device won't reboot on an incoming call :D
This is amazing app. The only thing I would beg the author to consider a white status bar icon for normal running service as colored icons there usually break the aestetics of Android UI. The icon can change or become colored while recording, but when only running in the background it should remain white.
The status bar icon itself is terrible, do excuse me, I'm not an artist...
Could somebody please upload a better one (24x24 and 16x16 pngs with transparency)?
Good concept, and I like the idea. However, I think this violates privacy laws here in the United States. In order to make this legal, you would have to state to the caller on the other end that the conversation is currently being recorded. I'm pretty sure as long as that statement is said, it would be legal.
Of course, it's bad if it violates the Law, but I had no luck transferring the voice to the other side up to now, either in conversation or in Auto-Answer mode.
As a temporal workaround, I think that the law abiding user could inform the other side himself :)
So, bottom up, big question to the author: does rvoix use devices voc* explicitly, or the only thing we need to do with them is to chmod 666, and the system will do the rest (i.e. handle recording)? In the first case, it might be harder (or even impossible) to run this app on other devices, but in the second case it should be fairly easy.
Gravely, it's the first case. The HTC driver uses a protocol which is different from that of the standard sound drivers. It *might* be possible to port the program to your device (Alsa drivers, as I see from the listing), but it'd definitely require some kernel hacking beforehand.
 

Attachments

  • myvoice.zip
    90.3 KB · Views: 231

Jolest

Senior Member
Suggestions:

1) Add a list of known "works"/"doesn't-work" phones+ROMS to the opening post of this thread.

2) Add a list of recorded calls in the app UI with options for [Play] and [Delete].

3) If you add the feature that someone suggested to auto-limit the number of recordings kept, also add an option to the recording list in #2 above to [Lock]/[Unlock] recordings. Locked recordings would have some visual indicator in the list that they are locked, would not be auto-deleted, would NOT count twords the recorded-calls auto-delete limit, and would take a special "Yes, I'm REALLY sure I want to delete this locked recording." confirmation if someone tried to delete it from the recorded calls list.
 

ndavidetnt

Senior Member
Jan 24, 2009
118
7
sorry for the OT, but I love the theme shown in the first post. Is it possible to have it on my Desire?
 

firero

Member
Dec 12, 2009
8
8
Hi, it works also on htc magic (rogers 2.1). 2 issues to report:
- error: could not open output file in case that number contains *
- recorded sound level is very very low (if i put the call on speaker than i obtain a better result)

logcat for "*" issue:
I/ActivityManager( 214): Starting activity: Intent { flg=0x10000000 cmp=com.voix/.Secretaire bnds=[0,106][320
,170] }
I/ActivityManager( 214): Displayed activity com.voix/.Secretaire: 303 ms (total 303 ms)
I/RVoixSrv( 2972): OutNumReceiver: new outgoing call *222
I/RVoixSrv( 2972): onReceive(), state = OFFHOOK
I/libvoix ( 2972): start_record
I/libvoix ( 2972): in downlink thread
E/libvoix ( 2972): cannot open output file
I/libvoix ( 2972): started record threads
I/RVoixSrv( 2972): started recording to O-10-23-0006-*222
I/libvoix ( 2972): in uplink thread
E/libvoix ( 2972): cannot open output file
I/RVoixSrv( 2972): onReceive(), state = IDLE
I/RVoixSrv( 2972): stop recording
I/libvoix ( 2972): stop_record
I/libvoix ( 2972): in encode thread
I/libvoix ( 2972): recorder threads complete, encoding
E/libvoix ( 2972): encode: input file not found
I/libvoix ( 2972): java notified
 

Moriraaca

Member
Sep 4, 2010
7
1
Gravely, it's the first case. The HTC driver uses a protocol which is different from that of the standard sound drivers. It *might* be possible to port the program to your device (Alsa drivers, as I see from the listing), but it'd definitely require some kernel hacking beforehand.

Well, that's a shame. Kernel hacking is definitely way to much for my skills. Thank you for quick answer though :)
 

avs333

Senior Member
Apr 12, 2005
239
312
Suggestions:

1) Add a list of known "works"/"doesn't-work" phones+ROMS to the opening post of this thread.

2) Add a list of recorded calls in the app UI with options for [Play] and [Delete].

3) If you add the feature that someone suggested to auto-limit the number of recordings kept, also add an option to the recording list in #2 above to [Lock]/[Unlock] recordings. Locked recordings would have some visual indicator in the list that they are locked, would not be auto-deleted, would NOT count twords the recorded-calls auto-delete limit, and would take a special "Yes, I'm REALLY sure I want to delete this locked recording." confirmation if someone tried to delete it from the recorded calls list.
Thank you! I had similar thoughts in mind, but hadn't yet time to implement some simple manager of recordings which I suppose would be handy.
I think I'll do that very soon now.

Hi, it works also on htc magic (rogers 2.1). 2 issues to report:
- error: could not open output file in case that number contains *
- recorded sound level is very very low (if i put the call on speaker than i obtain a better result)
Yes! Of course, I forgot we're on FAT filesystem, now trying to figure out what other characters this M$ monster dislikes. As a temporary fix, replaced all '*' with '#'.

The following is added in the beta build I attach here (it wasn't much tested, so I decided to put it here and not on the first page):

1. In-call recording mode for all call types.
2. Sound boost for uplink and downlink channels (0=no boost, 4=max).
3. Better interface including photos for non-automatic recording modes. If you add any photos as "Contact Name.png" to "/sdcard/voix/images", they'll override those from your contacts. (This is because the standard ones look very ugly when scaled, the window size is 240x240).

I'll be grateful for any bug reports or comments.
 

Attachments

  • rVoix.apk
    222 KB · Views: 262
Last edited:

G-Fetus6

Senior Member
May 21, 2009
94
0
anyway you can build this app for other phones. id like to use it for sure on my moto cliq 2.1 vanilla rom :D
 

del4

Senior Member
Jan 25, 2007
462
4
Arizona
The following is added in the beta build I attach here (it wasn't much tested, so I decided to put it here and not on the first page):

1. In-call recording mode for all call types.
2. Sound boost for uplink and downlink channels (0=no boost, 4=max).
3. Better interface including photos for non-automatic recording modes. If you add any photos as "Contact Name.png" to "/sdcard/voix/images", they'll override those from your contacts. (This is because the standard ones look very ugly when scaled, the window size is 240x240).

I'll be grateful for any bug reports or comments.

When I install this version, I get the "Device does not exist, or its permissions cannot be changed." error upon launching the app and am then returned to the uninstall screen. However, when I use the version in the 4th post it launches and runs fine. BTW, you may want to move that version to the 1st post since it's the latest stable build. ;)

Great app idea and thanks for the continued development. Can't wait to see you include some of the options already discussed!
 

avs333

Senior Member
Apr 12, 2005
239
312
When I install this version, I get the "Device does not exist, or its permissions cannot be changed." error upon launching the app and am then returned to the uninstall screen. However, when I use the version in the 4th post it launches and runs fine. BTW, you may want to move that version to the 1st post since it's the latest stable build.
;)
This is weird, and I'm *very* disappointed because I just can't reproduce it! Could you please test the version I attach now? If the problem persists, I'll make a special debug build to find out why (before moving anything to the 1st post).

------------------------------

The following is added to the build I attach here:

1) A simple file browser where you can play/delete recordings, or mark them as "important" (see below).
Tap on any recording will play it; long tap on an unimportant recording will launch a menu; long tap on an important recording will make it unimportant.

2) Auto-cleaning by three criteria (number of recordings, total size of recordings, and time since the recording was made). As for the first two, the eldest files are deleted first. Important recordings are not taken into account in either of these criteria, and are never deleted. The cleaning is made after each recording (not to start any additional services).
Also, there's an option to delete *outgoing* calls which are too short (in case you redial somebody who's not answering or hanged up too early). This does not apply to "In-call manual control" mode because you might need to record some short reply there (e.g. phone number).

This build needs testing, please report any problems or bugs, or suggestions.

Enjoy!
 

Attachments

  • rVoix.apk
    235 KB · Views: 207
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    I wrote this program because I was unable to find a good app capable of recording the other side of the call properly.

    Except for AirVoice, all such apps record the speaker rather than the line, and you barely hear the other side in the recordings.

    The guy who wrote AirVoice knew the trick but seemed to be very annoyed by the negative feedback from Android Market, where the users of various devices (with the list of supported ones clearly stated!) tried to install that program. Because it wasn't open source, I had to disassemble it in order to write what I wanted exactly.

    So the app uses an esoteric HTC driver, and NEEDS THE ROOT ACCESS just to open the device. If you do "adb shell chmod 666 '/dev/voc*' ", it'll never ask you for root access (but you have to be ROOT to execute that command).

    It writes the calls in either WAV (recommended) or MP3 format (not tested much; needs some time to encode the file after the call, but the size is about 4 times smaller), stereo (left ear is your voice, right is that of the other party), to "/sdcard/voix" directory.

    The kernel driver itself is kinda buggy. Actually, the auto-answer mode is non-functional for kendon's & ninpo's kernels (others not tested). Do NOT select it in Settings unless you've got such ROM and particularly need to reboot your phone on each incoming call :). It'd be nice if somebody try to fix that.

    If you select "Ask each time" for any incoming calls, be sure to wait half a mo until the confirmation dialog appears. The "Foreground service" (default) setting is also recommended because Android may otherwise kill it if memory is low.

    Any comments are welcome. I'm not sure that I'll ever add something to this program because I'm too lazy for that, but any bugs will reasonably be fixed. The code is open source, PM me if you're a programmer and have any ideas how to improve it.

    =======================
    NOV 24 UPDATE

    Numerous improvements/corrections/bugfixes (I'm not removing the previous version as this one haven't been much tested).

    Enjoy!


    3
    Hi, app is open source, but where i can find source code of driver?

    Thank you!

    vicvondoom.

    The driver is a part of Linux kernel. If you have a Hero (or some other HTC device), see http://developer.htc.com.

    As for rVoix, I've started a project at http://code.google.com/p/rvoix yesterday.
    There is also a branch started by seo who succeeded in rVoix integration with Phone.apk/Settings.apk in his Espresso ROM for Magic.
    Developers are welcome!
    2
    Greate works.Thank you .I will try it.Haha
    2
    Thanks.
    Looks more promising than that of the regular Desire or Desire HD.
    At least we have a certain rs30100002:00000000 here (the "1" might as well be a flag indicating a newer implementation).
    OK, I'll make a kernel when I have time, and PM it to you. Let's check if this remote server is backward compatible, or explorable otherwise.
    1
    Galaxy S I9000 report:"device does not exist or its permissions cannot be changed"