I am not sure if you have gotten the auto-passing of the mailbox to work or not, but since I didn't see any solution posted, I tinkered around and figured it out. So I am going to share with the rest since I have gained so much help from this forum....
I created a Virtual Extension with the users account number in FreePBX. (By the way, I am using FreePBX 2.8, Asterisk 1.6.x, and a2Billing 1.7.1. You could accomplish the same thing with a custom extension in older versions of FreePBX)
Over in A2billing I created a DID Destination for the user that was a priority 2 and set it for "local/<users account number>@from-internal
Still in a2Billing, I edited the VoIP Settings and added <users account number>@from-internal to the "mailbox" field.
It will work if you don't fill this out but it takes a little longer for voicemail to ask for the password if you don't have it there. I don't know what a2b is looking for during this time so I just simply put the user account in there...
My Context looks a little different than the one above but it works for me... I use "86" because it spells out "VM" on the key pad.
Code:
[a2billing]
exten => _X.,1,GotoIf($["${EXTEN}" = "86"]? 7)
exten => _X.,2,NoOp(nothing)
exten => _X.,3,Answer
exten => _X.,4,Wait(1)
exten => _X.,5,DeadAGI(a2billing.php|1)
exten => _X.,6,Hangup
exten =>_X.,7,VoicemailMain(${CALLERID(num)})
exten =>_X.,8,Hangup
Since I am passing ${CALLERID(num)} Asterisk never asks for the mailbox number.
Also, as an FYI, a user can call their own DID number and wait for it to go to Voicemail where they can press "*" to check their messages.
I think that's all I had to do...
I hope this helps someone!
Thanks,
Perry