Call queues, the best way?

I have not tried to set this up yet on freePBX but I thought I’d ask for advice before I start.

I’m sure I’ll be able to set up a queue with a reasurance message every now and then giving the caller the option to break out and leave a voicemail message if they get fed up of waiting.

I assume that if a call comes in, all the telephonists are busy or on the phone and so the call will queue, the call queues long enough to go to the reasurance message, (I asume the phones will then stop ringing and the caller will be played the message then the phones will continue to ring). If at this moment another call comes into the queue it will cause the phones to ring, if a telephonist becomes available at this moment they would answer the second call whilst the first is being played the message. So the calls will be answered in the wrong order.

I am making some asumptions hare about the way it would work, please correct me if I am wrong.

I can see that this is not such a problem if you have a high volume of fairly short calls, if one misses its turn to be answered it’s not the end of the world.

In the example that I am considering there aren’t many telephonists, and calls can last a long time, some callers will be prepared to wait for their calls to be answered but I’d like to do what I can to ensure that the one that has been waiting longest is answered first.

can anyone offer advice please.