I have a weird issue with all of my users using CX300 phones on Lync 2010:
If I can't fix the problem, we'll probably end up changing phones entirely. I don't want to do that. I don't want to turn off the dialtone either, this is a 60 person system and some of the users are aging; they would not understand that dead air means you can dial.
Found someone else with the same issue, described here:
http://social.technet.microsoft.com/Forums/en-US/ocsclients/thread/f873f3a1-0a1f-4e42-99a0-f95fecfb3...
I'll ticket this with MS too as I know they are directly responsible for the software/firmware the phone is running. I just thought maybe someone might have a quick answer here, or might have the same problem.
I know this is an old post, but I thought I'd reply anyway - I came across this recently on a deployment, and I found a workable solution.
On the Lync server you can configure the Client Policy to reduce the length of time the dialtone is played for..
Set-CsClientPolicy <Policy or Global> -PlayAbbreviatedDialTone <$True | $False>
TechNet says - "When set to True, a 3-second dial tone will be played any time a Lync-compatible handset is taken off the hook. (A Lync-compatible handset looks like a standard telephone, but plugs into a USB port on your computer and is used to make Lync calls rather than "regular" phone calls.) When set to False, a 30-second dial tone is played any time a Lync-compatible handset is taken off the hook."
Setting that to $True means that the dialtone is played for a much shorter time, this is then short enough to pick up the receiver, and then press play on the voicemail as the dialtone fades out, so it doesn't overlap.
It doesn't fix the issue, but makes it much more 'user friendly'... Hope this helps. :)