Para realizar lo que deseas, deberías hacer uso de un par de AGIs y de funciones avanzadas de plan de marcado.
Por ejemplo: cuando detecte que la extensión está ocupada, lo envíe a un mensaje de espera, y que esté monitoreando la extensión soliictada, y al momento de estar libre que conecte a ambas partes.
Se lo podría hacer sin problema, pero luego de algunas horas de trabajo.
Una alternativa es que te pongas a desarrollar por parte ese código, o que pidas a alguna empresa que te lo desarrolle, por ejemplo, puedes enviar un correo a
sales@palosanto.com para que te hagan una cotización.