Cingular ROM users: PTT function hacked!

Search This thread


Retired Senior Moderator
Mar 3, 2006
This little app replaces the Cingular PTT service and adds customizable launch capabilities back to that useless PTT button on your Cingular ROM equipped Hermes. This patch initially maps the PTT button to the built in Voice Dialer, but you can re-map the push as well as the hold functions to the application of your choice.

Version History

v1.07 09/20/07
Now compatible with the latest AT&T WM6 ROM!
v1.06 06/05/07
Now compatible with the latest AT&T AKU3.5 ROM!
Smartdialer issue fixed
Phone Settings lockup issue fixed
v1.05 02/26/07
Smartdialer functionality restored on AKU3.x ROMs.
v1.04 02/21/07
PTTFix now disables the built in PTTServiceWrapper on Cingular AKU3.x ROMs. Backward compatability with AKU2.x ROMs has been maintained. Warning: this version also disables smart dialing on aku3.x ROMs. Will be fixed in v1.05
v1.03 02/16/07
Bugfix: PTTFix now de-registers PTTServiceWndClass before attempting registration. This corrects a timing issue on the new AKU3.3 ROM where the Cingular built-in PTT subsystem was registering this at boot time.
v1.02 11/14/06
Most of the built-in features have been implemented. PTTFix now handles everything except <Left Softkey>, <Right Softkey> and <Context Menu>
v1.01 11/10/06
<Start Menu> feature implemented. Choosing this option for any button 5 setting in the button editor will now launch the start menu.
v1.0 11/03/06
ButtonPressLaunchValue and ButtonHoldLaunchValue registry settings have been de-implemented because....
Full integration with the existing button editor in personal settings->buttons (button 5 settings are back!) has been implemented. No need to use a registry editor to change settings any more :)
Enhancement 10/24/06
For all you brand new 8525 owners: the whole shebang is now a simple CAB based installation! :D :D
I also streamlined PTTStart.exe to run much faster. Before, you would see a blank window displayed momentarily while your device was starting. Now you cannot even tell when it runs.
Enhancement 10/23/06
I've attached a new zip file called PTTStart for early implementors who can't get the service to start automatically. Copy this file to your windows\startup directory and it will automatically start the PTTFix service whenever you soft reset!
bugfix 10/17/06
The ButtonHoldLaunchValue value would revert to "windows\\sddialer.exe" after a reset if the length of the ButtonPressLaunchValue string was shorter than the length of the ButtonHoldLaunchValue string..... Who'd have guessed it :rolleyes:
Added an additional Registry setting:
Pressing and holding the PTT button now launches the applicaton stored in HKLM\Services\PTT\ButtonHoldLaunchValue
If this value doesn't exist, it is created with an initial value of "windows\sddialer.exe" when the service is launched.
Pressing the PTT button now launches the application stored in HKLM\Services\PTT\ButtonPressLaunchValue
If this value doesn't exist, it is created with an initial value of "windows\sddialer.exe" when the service is launched.

Thanks to all the early implementors here who helped me to work through the security issues and de-implement the "undocumented features"!

Installation Instructions

1. copy the attached to your Hermes device.
2. Using File manager, tap on the cab file to install PTTFix.
note: when asked, you must install this to your Device. The service dll will not load if installed to your storage card!
3. Reset your Hermes device
4. Use personal settings->Buttons to customize Button 5 settings if necessary.

Upgrade Instructions

1. Remove "Sleuth255's PTTFix" using Settings->System->Remove Programs (It may ask you to reset your device)
2. Install PTTFix by following the Installation Instructions above.

Microsoft Voice Command

In Button Manager, simply customize the preferred Button 5 setting (I like to set press&hold to this) by choosing "Voice Command" from the dropdown. Voice Command sets itself onto the Messaging button by default. If you don't change this first, the button manager will remind you that only one button can be set for a given function....



  • PTTFix.CAB
    44.9 KB · Views: 14,931
Last edited:


Senior Member
Sep 25, 2006
Wow, very nice work!

I ll setup your fix right now; this is just marvelous


Retired Senior Moderator
Mar 3, 2006
ok, so I've completed the message map decode.

For developers, the PTT button event comes in with a message value of 0x312. When this message occurs, lParam is 0x1000 for the release event and something else for the press event. Essentially, my code in the message handler to trap a PTT press event is this:

LRESULT __stdcall KeyboardProc(HWND hWnd,UINT nCode,WPARAM wParam,LPARAM lParam)

	switch (nCode) 
        case WM_COMMAND:
        case WM_CREATE:
        case WM_PAINT:
        case WM_DESTROY:
        case WM_ACTIVATE:
        case WM_SETTINGCHANGE:
	case 0x312:
	     if (lParam != 0x1000)
            return DefWindowProc(hWnd, nCode, wParam, lParam);
    return DefWindowProc(hWnd, nCode, wParam, lParam);

Later on, when any bugs are ironed out (doubtful 'cause it compiled cleanly heheheh) and I have a few minutes, I'll pull the process-to-execute out of the registry and give everyone a little foreground app that lets you map whatever you want.
Last edited:


Oct 3, 2006
Sleuth255, Thankyou so much, it works perfectly! :)

You've just fixed my biggest headache with the 1.34 ROM upgrade :D


Senior Member
Oct 1, 2003
Thanks a lot!

Is it possible to make another dll, but with MS VoiceDialer please? ;)


Senior Member
Feb 1, 2005

Nicely done! Now see what you can do about the videocall button.... ;)

You may just be able to convince me to try one of these Cingular ROM's...


Retired Senior Moderator
Mar 3, 2006
Heh... No thanks needed. I love this stuff. I'll set up the voicecmd specific dll tomorrow.

Speaking of tomorrow...hopefully I'll still have a job left to go to after spending the last two days on this .... :rolleyes:


Senior Member
Jan 16, 2004

We are thanking you not just because you love this stuff but because you are willing to devote your knowledge and effort at helping us, the community, etc... I am very thankful you have resolved this issue, but I am also hoping you can help us with the Video Call button.

Any how, I personally appreciate all of the efforts thus far.

Thanks again.


Retired Senior Moderator
Mar 3, 2006
The videocall button will be problematic... Unlike the PTT button where at least a whimpy dialog was displayed by an identified program when it was pressed, there's nothing that actually works with it on a Cingular ROM. I'll need to flash back to a ROM that has a working video call function to work on it. Quite truthfully, I won't begin this until I load up the next HTC ROM update, whenever that comes out (soon, I hope).

However, what I can do ITMT is load up the relevant video call cab in the HTC extended rom to see what's there and maybe try a bit of disassembly work....
Last edited:


Senior Member
Nov 23, 2005
Does not work for me.

Hi Sleuth,

I've made everything as described, but when i try to start the service from TaskMgr (last step) the device completely hangs. Only reset helps.



Senior Member
Apr 5, 2006
Nice try Sleuth265. !!!
Video CAlling is not supported because it needs QoS service to be introduced
and the Ericsson and Lucent UMTS infrastructure do not support it yet. All data services are best effort.



Retired Senior Moderator
Mar 3, 2006

Thanks for the info on that! I was wondering why Cingular decided not to support Video Calling..... Your post won't stop these guys though because they don't want me to actually make video calls work on Cingular's network. Their problem is that pressing the video call button no longer brings up the video call feature. You get the video call feature itself back if you load the TyTN ExtRom after aborting the Cingular customization run. People in Europe on video capable networks are already using this function on their Cingular ROM equipped Hermes devices I believe. If I fix this they will once again be able to bring up the video call app by simply pressing the video call button.

Of course, others simply want yet another mappable button and the thought of something that's useless on their TyTN bugs them (I'm in this camp btw....)


Ok, what device do you have? What Cingular ROM are you using? My first thought is that you've got a device where your operator has locked down excecution to only signed apps. Since my dll is unsigned, it won't run. Hard to believe that it would hang your Hermes tho... Could you export your PTT registry key and PM it to me please? I'll have a look.

edit: oops all I needed to do was to check your sig for the above two answers. Sorry.

I believe the SPV M3100 from Orange is one of the signed app locked devices. I'm checking into this. I'd still like to see your PTT key export tho...

@everybody else:

As promised, I've added a dll to the first post that launches Microsoft Voice Command when you press the PTT button. Enjoy :)
Last edited: