I have a phone WITHOUT any CSS attached to it, however, it has voice mail profile defined, in the voice mail profile, there is valid CSS to reach the voice mail port.
My question is, when I pressed the voice message key on the phone, should I be able to check my voice mail in that case?
Not necessarily. The device CSS on the phone still comes into play. Even if you have no CSS assigned. Recall that you created a voicemail pilot number and that number was assigned to a voicemail profile. That profile, in turn, is assigned to a line on a particular phone. This relationship is what allows you to call voicemail when you hit the messages button. Specifically, when you hit the messages button the phone is going off hook on the line specified (based on various configs) and dialing the voicemail pilot number you created.
Going back to this pilot number. The pilot number only tells the phone the number to send calls to, it isn't a routable pattern itself. You need a pattern on your system that is routable and is identical to the voicemail pilot itself. If you are using Unity or Unity Connection (CUC) and are leveraging SCCP then this is typically a pilot number that points to a hunt group/line group. If you are using Unity/CUC or MS Exchange-UM using SIP, then this is likely a route pattern. However, it can be a translation pattern or other pattern. But we'll skip that side trail for the moment.
The point is that the hunt pilot or route pattern or translation pattern that matches your voicemail pilot number is in a partition of some type. Even if it is in the (none) partition. Which means that for you to get your phone to dial the voicemail pilot number successfully, that phone CSS must be able to reach that target pattern partition.
Circle back around...
The reason for the CSS on the vm pilot is for redirection purposes. When a call is CFNA/CFB/CFA's to voicemail (check the box under "Voicemail" in the line forward section of the config) then the CSS on the vm pilot comes into play.
Please remember to rate helpful posts.
When you press the VM button you're basically dialing the hunt pilot DN that is associated to the VM profile.
My assumption would be that if you can't dial the hunt pilot you won't get VM.
If you follow the best practices you should never be able to dial any VM port, but only the VM pilot DN.
If this helps, please rate