Troubles with voicemail and cisco 7905 SIP

Hi There!
The problem:
The cisco 7905 sip phone has this nice “feature”: You can set a “voice mail number” in
configuration, so that you can reach your voice mail just by hitting the
"messages" button on the phone. It just autodials “8500” or whatever else the voice mail defined.
The customer wants this, so disabling it is not a solution.

The phone also has another fine feature: when it is busy, not available, or
has “do not disturb” mode set, it just sends out a “302 redirect” message to
8500 or any “voice mail number”.

So the caller gets the voicemailmain() prompt whenever he calls a busy/na
7905. It’s so confuses customers. - They calls to some number and suddenly hear the voicemailmain prompt and does not understand what’s happened.

What to do? The phone thinks you are using the same extension for both listening to your messages and leaving a new message, so I have to be able to understand from the exten => 8500 perspective if this exten has been dialled
explicitly OR we have reched it due to a forward, and have a way to identify the original extension the call was directed to.

Perhaps, is it possible to set (or check) a channel or set some astdb variable to store the original extension they tries to reach and then check it in voicemail extension => 8500 in dialplan to see if this call was dialing directly or was forwarded due to cisco 7905 busy/na state?