Log in

View Full Version : Windows Mobile Revolution: call recording supported on almost all handsets!


Menneisyys
03-24-2009, 01:22 PM
Up until now, very few smartphone platforms allowed for recording calls: most notably, Symbian S60 (but not UIQ). Windows Mobile (WinMo), apart from some models (HTC s310 / Oxygen, x7500 / Athena etc.) didn’t allow this. The BlackBerry platform and the iPhone don’t allow this either. (Albeit, with the release of iPhone OS 3.0 and the voice recorder coming with it, it’s not guaranteed the situation will remain the same.)

Note that the reason WinMo can’t record calls has always been different from BlackBerry and the (2.x OS-based) iPhone. The latter two in no way allow for running any voice recorder apps while a call is taking place (I’ve VERY thoroughly tested this on both platforms and, on the iPhone, with several third-party voice recorder apps); WinMo has always done so – it did allow for running a sound recorder app while, at the same time, the same handset was taking place in a conversation. It’s just that not at an acceptable quality – so far, you had to rely on the sound bleed from the speaker to the microphone to record the other party. Recording your voice, of course, has always worked (with the exception of some very rare models like the O2 Flame, where the situation was the opposite: the other party’s voice was recorded, but not yours) as the mike easily picked up your voice – after all, it’s way more loud than the other party’s thin voice bleeding from the speaker of the phone. Sure, enabling speakerphone helped the situation (more advanced call recorder apps like Resco and VITO AudioNotes automatically do this if you instruct them to do so) to some degree, but the resulting quality was still a long cry away from that of, say, recorded calls on the Symbian S60 (mostly, Nokia) platform. And, of course, you can’t use speakerphone all the time; for example, if you don’t want the people around you know what you’re being told – or don’t want to disturb them with a loud phone.

It can’t much enough be stressed the importance of this hack. With call recording enabled on most handsets, the usability of the platform as a “plain” phone has greatly been increased. This is also bad news for the BlackBerry and iPhone folks – Windows Mobile has turned out to be better in this respect (too) ;-)

Previous hacks

It was just a few days ago that I’ve explained (http://www.smartphonemag.com/cms/blog/9/call-recording-supported-some-new-htc-handsets-eg-touch-hd) the (then, current) hacks that might work on some handsets to enable call recording. In the meantime, a new, much easier (Registry-only) hack has become available, with which you can really easily, without having to waste hours on reading through some ICR-dedicated threads. That is, you don't need to give a try to the methods outlined in my previous article; you don't need to read the linked (e.g., Touch HD) threads either to learn how to set up the previous hacks, what they do, what their restrictions are etc.

Installation

You only have to download and execute the CAB file linked from the first post of THIS (http://forum.xda-developers.com/showthread.php?t=493118) thread (I've also mirrored it (http://www.winmobiletech.com/sekalaiset/2%20Way%20Recording.cab) – just click the link, save the CAB file and execute it on your handset). Note that it’s both compatible with the touchscreen-enabled Windows Mobile Professional (aka Pocket PC) and the touchscreen-less Windows Mobile Standard (aka MS Smartphone) platforms.

Compatibility

This application (more specifically, a registry hack) seems to be compatible with a lot of phone models and a lot of (both factory and “cooked”) firmware versions; for example, the HTC Kaiser with a lot of different ROM’s, the HTC Wizard also with tons of ROM’s (I’ve tested it with character’s AMP (http://forum.xda-developers.com/showpost.php?p=2077663&postcount=9)), the HTC Vox (s710) WM Standard smartphone running the official, non-cooked ROM etc. (This also means it's compatible with both WM Standard and WM Professional.)

There, however, are phone models? phone models running a specific firmware version? that don’t seem to work with the hack (read: they don’t allow for recording the other party at a tolerable volume); for example, the HTC Universal running Tomal’s 8.5 cooked WM 6.1 ROM (http://forum.xda-developers.com/showthread.php?t=454906). This, however, doesn’t necessarily mean the Universal won’t be able to record calls with any else ROM.

Make sure you check out THIS (http://forum.xda-developers.com/showthread.php?t=496303) thread (and, most importantly, the compatibility list in the first post) for more info on which models are surely supported. Also, please post (let us know about) your experiences in the thread (no private messages / mails to me!) or here.
What apps can you record calls with?

After this, you can test / start recording calls easily with, for example, the built-in Notes application (don’t forget you need to explicitly enable the Recording Toolbar in it!) or, on the WM Standard platform, Voice Notes. Note that this application (as with HTC’s ICR) can only start recording manually; there aren’t automatic call recording capabilities.

Should you want something better (that is, apps with automatic call recording, storing the caller/called name/phone number and the date), get one of the following apps (note that there are quite a few other, [automatic] call recording-capable titles; nevertheless, these are the ones I recommend the most):

* PMRecorder by Motoblast (http://www.1800message.com/SPWM5CallRec.cab). Note that it also has an online tutorial HERE (http://www.1800message.com/usepmr.aspx). This app is free, unless you want to use its online upload and accessibility capabilities. (To get rid of the latter, just untick the two checkboxes under “1800message.com” in Options.) Unfortunately, this also means you can’t record high-quality, but compressed recordings with PMRecorder: only AMR (which has very bad sound quality) is supported. (Sure, you can use uncompressed WAV files instead, but they do take a lot of storage.)

Note that, as has also been explained in my previous, pretty big article (http://www.smartphonemag.com/cms/blogs/3/how_can_i_record_phone_conversations_on) on the app,

1. if you want to listen to your recordings on any other (for example, desktop / notebook) computer or simply outside PMRecorder you’ll want to download PMRBackup.zip (http://slil.ru/22681970) (I’ve also mirrored it HERE (http://www.winmobiletech.com/sekalaiset/PMRBackup.zip)). Unzip it, start the EXE and select “Select file(s)” if you’ve already transferred the .rcwv files from your handset; otherwise, press the “Get from device” button. After conversion, the original recordings will be saved as standards-compliant ones and will be named after the other party's name / number and the timestamp of the conversation.

2. create a link file to \Program Files\PMRecorder\PMRecorder.exe from \Windows\Startup so that it is always auto-loaded at boot time (this works on both platforms too). Otherwise, it won’t – unlike the commercial alternatives below.

* Resco Audio Recorder (http://www.resco.net/pocketpc/audiorecorder/) (WM Standard version HERE (http://www.resco.net/smartphone/audiorecorder/)). It’s much more expensive than VITO’s app (the third recommended title) but it may also turn out to be better, particularly if you want to minimize storage usage (and, therefore, stick to some, compared to MP3, highly advanced speech coding format – in this case, Speex). For example, on my HTC s710 WM Standard phone, VITO’s Audio Notes is always maximized at startup (assuming you’ve enabled it to automatically record calls – this must be made by hand!), making it necessary to manually minimize it.

Note that if you want to stick to MP3 (or AAC), you will want to purchase the Resco Codec Pack (http://www.resco.net/pocketpc/codecpack/) too - the built-in MP3 encoder in Resco Audio Recorder is really-really bad. This, however, won’t be an issue if you, as recommended, use Speex instead.

* VITO AudioNotes (http://vitotechnology.com/vito-audionotes.html) (the linked version supports both WM Professional and Standard). A very cheap, but still capable app. If you want to record into MP3 and don’t want to pay some $35 for the Resco Audio Recorder + Resco Codec Pack combo, this app should be the first you check out. Note that it has a slightly more advanced (and considerably more expensive) version, Audio Notes Touch (http://vitotechnology.com/mobile-audio-recorder.html). If you love finger scrolling, this should be the one you check out, not the stylus-only “basic” AudioNotes. Otherwise, for plain phone call recordings, AudioNotes works pretty great. Also note that, as has already been mentioned, you’ll need to explicitly enable it to record calls (Menu / Record / Calls autorecord)

Please also see my dedicated articles for more info on all these apps. In addition to my PMRecorder article (http://www.smartphonemag.com/cms/blogs/3/how_can_i_record_phone_conversations_on), you might want to read my article on VITO’s AudioNotes (http://www.smartphonemag.com/cms/blogs/3/review_decent_phone_call_note_mp3_record) (note that the chart in the article isn’t correctly rendered; see THIS (http://www.winmobiletech.com/kuvat/vitoaudio13chart.png) for the image representation), my remarks on the 4.x series of Resco’s app HERE (http://www.smartphonemag.com/cms/blogs/3/brand_new_beta_of_best_audio_recorder_ap) and, last but not least, the Windows Mobile Audio Recording Bible (http://www.smartphonemag.com/old_blogs/menneisyys/112005SoundRecorderApps.asp). Note that the latter isn’t specifically call recording-specific. It, however, explains a lot of things you may find useful, particularly if you plan to use manual recording only. Then, you’ll certainly welcome for example the one-button recording remarks (see the “Buttons: One-button recording? Does it need to show the app window?” row in the chart). No need to manually invoke other apps and search in menus if you want to start recording – just press a pre-assigned button and you’re set.

Legal notes

Please consult THIS (http://www.smartphonemag.com/cms/blogs/3/windows_mobile_device_manufacturers_aamp) for more info on which American states allow for call recording without the other part’s knowing of this.

Addendum (for hackers only!)

I’ve tested whether the HTC Oxygen (s310), one of the very few WinMo phones to support call recording, has the same registry values as the three entries in the hack. Interestingly, it doesn’t (below is the s310 registry dump of the related registry keys; hope it helps hackers to find out why the s310 is able to record calls and, in the Registry, what makes this possible).

1. "HKLM\Software\HTC\AUDIOGAIN\AUDIO_DEBUG_FLAG = 0 (and not 64)


[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\AUDIOGAIN]
"DeviceID"="Generic_Oxygen_1.9"
"AUDIO_DEBUG_FLAG"=dword:00000000
"ENABLE_AUGA_CARKIT"=hex:00
"ENABLE_AUGA_HEADSET"=hex:00
"ENABLE_AUGA_EMBEDDED"=hex:01
"EXTERNAL_RECORDING_GAIN"=hex:06
"INTERNAL_RECORDING_GAIN"=hex:17
"CODEC_GAIN_CARKIT"=hex:00
"CODEC_GAIN_HEADSET"=hex:03
"CODEC_GAIN_EMBEDDED"=hex:00
"EAC_GAIN_CARKIT"=hex:67
"EAC_GAIN_HEADSET"=hex:67
"EAC_GAIN_EMBEDDED"=hex:70
"TTY_UPLINK_VOLUME"=hex:09
"EARPHONE_UPLINK_VOLUME"=hex:19
"HEADSET_UPLINK_VOLUME"=hex:12
"SPEAKER_UPLINK_VOLUME"=hex:10
"RECEIVE_UPLINK_VOLUME"=hex:1A
"CARGTTYSIDETONEVOLUME"=hex:08,08,08,08,08,08
"CARGEARPHONESIDETONEVOLUME"=hex:08,08,08,08,08,08
"CARGHANDFREESIDETONEVOLUME"=hex:08,08,08,08,08,08
"CARGHEADSETSIDETONEVOLUME"=hex:08,08,08,08,08,08
"CARGCARKITSIDETONEVOLUME"=hex:08,08,08,08,08,08
"CARGRECEIVESIDETONEVOLUME"=hex:02,06,0C,0C,0D,0D
"CARGTTYVOLUME"=hex:06,06,06,06,06,06
"CARGHANDFREEVOLUME"=hex:63,20,23,26,29,2C
"CARGHEADSETVOLUME"=hex:63,20,23,26,29,2C
"CARGCARKITVOLUME"=hex:61,64,21,24,27,2A
"CARGRECEIVEVOLUME"=hex:60,63,20,23,26,29


2. HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL\ RingingAddressId doesn’t exist:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]
"Radio Version"="4.1.13.20_02.41.90"
"LASTUSEDICCID"="986302004041001548F5"
"RESETINFO1"=hex:1D,C2,3C,9A,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00
"RESETINFO2"=dword:00000004
"OperatorEccList"=hex(7):31,00,31,00,32,00,00,00,39,00,31,00,31,00,00,00,00,00
"GPRSAutoAttach"=dword:00000000
"IMEI"="notyourbusiness"
"ResetWhenRadioOffTimeout"=dword:00000001
"AutoNetSelAfterReboot"=dword:00000000
"EnableRIL86Rollback"=dword:00000001
"EnableSmspFromSim"=dword:00000001
"SIMPollingTimerForRemoveDetection"=dword:000000B4
"CwsAtntTreatSpecialPatternAsDial"=dword:00000000
"DelayKeyEventTimeout"=dword:000007D0
"GsmVersion4131xx"=dword:00000001
"MOAbortGPRSSleepCount"=dword:00002000
"HTCGPRSBlockMOWorkaround"=dword:00000001
"EnableWorkaroundForFTA"=dword:00000000
"EnableSStoATD"=dword:00000001
"EnableEcc"=dword:00000001
"DumpGsmThreadLogPeriod"=dword:00003600
"EnableNdisMpdpDebugLog"=dword:00000000
"ImmediateCBMSupport"=dword:00000001
"EnableATAbortSTKCall"=dword:00000001
"EnableDifferGprsEdgeIcon"=dword:00000001
"CsqResendTimeout"=dword:00003A98
"EnableEngineerModeQueryAMR"=dword:00000001
"EnableOverrideVmailAlphaIdFromSIM"=dword:00000000
"BarringIncomingCallStatus"=dword:00000000
"EnableCallBarringPatch"=dword:00000001
"EnableDTMFSupport"=dword:00000001
"DisableRoamingIndicator"=dword:00000000
"GPRSAutoDetach"=dword:00000000
"FDNPINEnable"=dword:00000000
"NIEnable"=dword:00000000
"CPIEnable"=dword:00000001
"CREGLocationUpdate"=dword:00000001
"NITZEnable"=dword:00000000
"Index"=dword:00000001
"Order"=dword:00000004
"Prefix"="RIL"
"Dll"="rilgsm.dll"


3. HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WaveDev\ VocRecPath doesn’t exist:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\WaveDev]
"Order"=dword:00000002
"Index"=dword:00000001
"Dll"="wavedev.dll"
"Prefix"="WAV"