Keep getting "login incorrect" when accessing voicemail

Hi,

I’m running asterisk1.8.2.2 on a linux box. I keep getting “login incorrect” error when accessing my voice mailbox.
How can I fix it? Thanks.

in sip.conf, I defined the following device:

[17]
type=friend
host=dynamic
secret=xxxxxxxxxxxxxxx
context=inbound
dtmfmode=auto
dtmf=auto
deny=0.0.0.0/0
permit=12.18.26.9/255.255.255.255 
canreinvite=yes
directmedia=yes
mailbox=17@my-voicemail
username=17

in extensions.conf, I defined the following:

[inbound]
exten => _ZZZXXXXXXX, 1, Answer()
exten => _ZZZXXXXXXX, n, Background(demo-congrats)
exten => _ZZZXXXXXXX, n, WaitExten(3)
exten => _ZX, 1, Dial(SIP/${EXTEN},30)
exten => _ZX, n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => _ZX, n(unavail), Voicemail(${EXTEN}@my-voicemail, u)
exten => _ZX, n,Hangup()
exten => _ZX, n(busy), VoiceMail(${EXTEN}@my-voicemail, b)
exten => _ZX, n,Hangup()
exten => 700, 1, VoiceMailMain()

in voicemail.conf

[my-voicemail]
17 => 1234,xxx,xxx@yyy.com

Defining the mailbox in “default” context instead seems to fix the problem.