I'm not clear exactly what you're asking. It seems what you're saying is that when someone enters a channel that someone's supposed to give them +v permissions, and if nobody does that within 60 seconds, then the bot should go ahead and give it to them. If that's the case, you could have a timer set during on-join like:

on *:JOIN:#channelname:{ .timer 1 60 mode $chan +v $nick }

If someone's already given +v by the time the timer executes, most networks will just ignore the attempt. If your network spams you with an error message, you could instead have the identifier pass the channel name and nick on the command line since the command run by the timer doesn't know what $chan and $nick are:

on *:JOIN:#channelname:{ .timer 1 60 permission check $chan $nick }

alias permissioncheck {
if (!$nick($1,$2,v)) mode $1 +v $2
}

note that this is defeated if someone changes nick soon after entering, so you might need to intercept the ON NICK event, where $nick is the old nick and $newnick is the one being changed to.

If everyone should be given permission, I'm not sure why they need to ask for it, and not just have someone put the give-voice command inside the ON JOIN event.

If you need to knock who in a channel doesn't have +v permissions:

var %total $nick(#channel,0,a,v)

while (%total) {
echo -a $nick(#channel,%total,a,v) doesn't have +v
dec %i
}