Transfer calls to voicemail

Hi,

I’m having a problem transferring external calls to the voicemail.

For example, X calls in, A picks up, X wants to talk to B, but B isn’t available, so A transfers X to B’s voicemail.
The transfer did work. Supposingly, X would hear the default voicemail message “The number you’re calling isn’t available… bla bla bla… please hangup after leaving the message, or press # key.” But, X doesn’t hear the whole default message, instead, after a blank moment, X only hears “# key”, and the rest leaving a message part does work.

I suspect it might be a jitter buffer thing, or codec thing?

Here is how I implemented it.
In extensions.conf,
[services]
; Transfer directly to extension’s voicemail
exten=>_**XXX,1,VoiceMail(${EXTEN:2},u)
same=>n,Hangup()

In sip.conf,
[general]
disallow=all
allow=ulaw
allow=alaw
allow=gsm

What am I missing here? Could you please help me solving this issue?

Thanks,
Weiyun