Try with M(x) options of Dial block (it executes the macro (x) upon connect of the call, i.e. when the called party answers) or with U(x) (executes routine x on the called channel via gosub – similar to M but a do a gosub rather than a macro).
In both cases you have exit variable (MACRO_RESULT in case of M(x)) to define what you want to do with the call – bridge it or do somethine elase (dial again in your case if the voicemail answers the call).
The other option is to do dial multiple channels partially deplayed.
Something like this:
exten => s,1,Dial(SIP/200&SIP/201&LOCAL/100)
and
exten => 100,1,Wait(xx)
exten => 100,2,Dial(SIP/300)
Extensions sip 200 and sip 201 will ring immediatelly while extension sip 300 will ring after xx seconds.
Here is URL where you can find more information about this:
http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial
— Mike