Progressive Queue Calling

I was wondering if it would be possible to set up a situation with progressive calls.

Example:

I have three static agents listed. When a customer calls in the first agent is rang, let’s say, every 10 seconds until s/he answers. After three attempts, the customer is sent to voicemail. But, the system will continue to call the agent for the next 15 minutes, alerting them that a customer needs their attention. If the agent doesn’t respond within 15 minutes, the second agent is called for 15 minutes. If the second agent doesn’t pick up, the third agent would then be called for 15 minutes.

Thanks for your time,
Lucas