Is there a way to check Inbound DID's against Queue Wrap-up times and exten lastcall?

I need help figuring out if this is even possible first.

And second how should I go about creating a solution to handle this? Since it’s not part of the outbound dialplan or the queue, how can I run a function to check inbound calls that come in direct from the DID and not the queue. And force it to check against the wrap-up time the same way a queue does before routing calls to an agent extension?

The agents don’t want to receive another call for 30 seconds regardless of whether or not it’s coming from the queue or their DID. So I need to try and figure out a way to get the DID to check the if the wrap-up time has passed before I ring their extension, or just forward to their voicemail.

Please help!