Lenny, here's a sample:
[macro-voicemail]
exten => s,1,MailboxExists(${ARG1})
exten => s,2,Congestion()
exten => s,102,VoiceMail(su${ARG1})
exten => s,103,Hangup()
exten => a,1,VoiceMailMain()
exten => s,2,Hangup()
Call it like this:
exten => 1234,1,Dial(SIP/${EXTEN},30)
exten => 1234,2,Macro(voicemail,${EXTEN})
--Luki