Retrieve voicemail remotely using main line

I am trying to retrieve voicemail messages remotely by calling into the main phone line, waiting to hear the voicemail prompt, hitting * (which brings me to VoiceMailMain) and then typing the voicemail box/pin.

This is what I currently have. It gets me all the way to VoiceMailMain where I put in the voicemail box and the PIN and then returns a “passcode incorrect” message. The PIN is definitely correct and works when calling from internal extensions.

exten => 5555555555,1,Dial(SIP/Phone1,30,tr)
exten => 5555555555,2,VoiceMail(5555555555,s,u)
exten => a,1,VoiceMailMain
exten => a,n,Hangup()

Is there a better, more correct way of achieving this?

What transcoding and protocol changes happen between the PSTN and Asterisk. If any VoIP is involved, which DTMF mode is used, and do both sides agree?

This is a sip trunk coming into the Asterisk box. The trunk allows ulaw,alaw and dtmfmode is set to rfc2833. Like I said, it’s strange that it works from local extensions but not over the trunk.

When watching the asterisk CLI during the call, I don’t even see any errors or activity when pressing the digits.


Ah, just found something interesting. When prompted, if I enter the mailbox number and passcode at normal speed, it’s only getting some of the digits (hence why it’s puking on the login). However, when I enter the mailbox number and passcode very slowly, it picks up on all the digits and logs in successfully.

Is there a setting to tweak this?

I asked for the complete path, not the last hop.

This is probably happening at the ISDN to SIP boundary, somewhere on the far side of the SIP trunk. Enable the DTMF log to confirm whether or not the DTMF is corrupt in the incoming RTP stream.