Special hangup (h) extension

When a channel uses the Dial() command to make a bridged SIP call the ‘h’ extension can be used to capture a disconnect between Asterisk and the called party - only when the channel goes into the ‘h’ extension it cannot execute a second Dial() even if it jumps to a different context. When it attempts to do the second Dial() the channel is dropped.

Is there a way to do multiple Dial() commands for a single channel by catching the disconnects and re-dialing?