[Tilt, TyTN II, MDA Vario III Themes and Apps] joel2009:
Additional Information Regarding MSVC

List of File and Registry Entries for Voice Command

Attached is a .ZIP with 4 files. 2 .REG files (one for 1.6.17913 and one for 1.6.19209) and 2 .CSV files (one for 1.6.17913 and one for 1.6.19209) listing files.

The information for 1.6.17913 is gathered from an official .CAB file and should be everything you would expect if you installed a retail copy of MSVC.

Since there exists no official version of 1.6.19209 I pulled the information from a recent decompiled AT&T 6.1 ROM. Since this is a built-in version of Voice Command, all files would be installed in the \Windows directory (apart from shortcuts in StartUp).

The .CAB for 1.6.19209 that I offer above is actually a conglomeration of these two. It uses all the updated 1.6.19209 files while maintaining a proper directory structure (In this case using Program Files\MS Voice Command instead of dumping everything in \Windows). It also maintains those files that were not present in the ROM's 1.6.19209 files, namely those dealing with WMP skins. I attempted to make it as close as to what an "official" version might look like from Microsoft.

Built-in versions and manual installs

MSVC, like all applications installs files and registry entries onto your device. The problem with using a Stock or Cooked ROM with MSVC pre-installed is that it may not have been installed correctly (with all the correct files or registry entries). Additionally, because pre-installed applications are often embedded in the ROM and you cannot always move or update files with working versions (because ROM files are read-only). Because of this, it may be easiest to use a ROM that doesn’t have MSVC pre-installed. However by modifying files, locations, and registry entries you may be able to get MSVC working.

Because of these limitationsit is necessary to understand a few things about how MSVC files work.

As I have already covered, MSVC files are generally installed in one of two locations:

\Windows

\Program Files\Voice Command

Generally, if you are in the built-in boat, your files will be installed in \Windows

How does MSVC know where to look for your files?

Well, the first thing to know is where and how is MSVC usually initiated:

The answer is one of three ways:

From your \Windows\StartUp folder when WM first boots

When manually launched from the shortcut or a button

When called from the BT audio gateway to receive a voice command

For #1 and #2 you will generally want to ensure that the version of MSVC being launched is the one you want. There will generally be a shortcut to your copy of MSVC (specifically the voicecmd.exe file) that launches the application in the \Windows\StartUp folder. Therefore, if you want to install a different version of this exe (and if you can’t overwrite it and need to install it to a different location) make a NEW shortcut in \Windows\StartUp to launch your new copy.

Once voicecmd.exe is launched it will want to look for the rest of its files. It knows where to look by accessing the registry at this location:

HKLM\Software\Microsoft\Voice Command

The two keys to pay close attention to are:

AppInstallPath and ResourcePath

The value of AppInstallPath should be the full path to the copy of voicecmd.exe that you want to use, for example:

"\Program Files\Voice Command\VoiceCmd.exe"

Or

“\Windows\VoiceCmd.exe”

The value of ResourcePath should be the full path to the directory that the supporting files are stored in, for example:

“\Program Files\Voice Command”

Or

“\Windows”

Changing these two keys, along with the shortcuts should effectively allow you to bypass a built-in version of VC in lieu of file versions that you want to use. If the keys don’t exist in the root of HKLM\Software\Microsoft\Voice Command you can create them as string values.

You will also want to update your BT Audio Gateway so that the proper gateway is launched from your BT headset. Find it at the following location:

HKLM\Software\Microsoft\Bluetooth\AudioGateway

Set BTAGExtModule to the full path to the copy of the audio gateway dll being used, for example:

“\Windows\vcbthag.dll”

Or

“\Program Files\Voice Command\vcbthag.dll”

EXAMPLE:

If I have a built-in version of MSVC with all files in \Windows, and I wanted to update to a different build I would do the following:

Install all files into a new location, e.g. “\Program Files\NewVC”

Update AppInstallPath to “\Program Files\NewVC\VoiceCmd.exe”

Update ResourcePath to “\Program Files\NewVC”

Update BTAGExtModule to “\Program Files\NewVC\vcbthag.dll”

Delete shortcuts that point to “\Windows\VoiceCmd.exe” and create new ones that point to “\Program Files\NewVC\VoiceCmd.exe”

NOTE: The VoiceCommand_PPC.cpl file may pose an issue becuase as a control applet, it always needs to remain in the \Windows directory. If you can't overwrite this file you may still be ok since you should be able to use a copy of VoiceCommand_PPC.cpl that is different from the other file versions.

NOW AVAILABLE - Manual install for 1.6.19209 to help assist in this process. It is available here. Additional instructions enclosed.

How Incoming Announcements Work (Under the Hood)

Incoming Announcements are the function of the voicecmd.exe and the following registry key:

HKEY_CURRENT_USER\ControlPanel\Sounds\TTSAnnounce
"Script" = "as5p"
"Category" = "VoiceCommand1"
"Sound" = "Application Data\Volatile\TTSCallerID.wav"

When a call comes in and MSVC is enabled it checks itself to see if it should be performing incoming announcements. If it is configured to play announcements it uses the above settings. The “Script” section is similar to the scripts used for normal ring profiles, it basically is telling it to play the file listed in “Sound”

The file in “Sound” is dynamically generated for each call and then played over your ringtone as your announcement.

On versions where Incoming Announcements don’t work (like UK version 1.60.4622.0) the settings are the same, but the voicecmd.exe file does not properly generate the TTSCallerID.wav and thus no announcements are made.

The Private/Unknown caller issue is also related, as voicecmd.exe doesn’t seem to properly generate the file. It actually appears to leave the .wav file open since it doesn’t know how to properly output “private” or “unknown” this locking of the file appears to be why no ringtone plays at all.

This also appears to be why occasionally you will get an announcement of the last caller's ID when you get a Private call. It hasn't properly cleared out the old TTSCallerID.wav and is replaying the last one in queue.