I would like to have pre-emption calls in Asterisk. With this I mean that if user A has priority/access-level 1 and wants to talk to user B, how could it preempt the call that user B is already having with user C which has only priority/access-level 2?
Does anyone know if this is supported by Asterisk or how this could be implemented?
Any idea would be very welcome.
No, it not supported by asterisk.
But yes, it can be implemented using dialplan+some script magic. Complexity is high and require expert or guru skill.
Short plan is following:
- check if B is in call (need use DEVICE_STATE or GROUP functions)
- check if B in call with lower priority caller( ASTDB or REALTIME or fastagi script)
- wisper both(or only B) party that now have priority call. For that need read about asterisk auto-dialout and wisper.
- wait till B press confirmation key(features.conf)
- transfer both B&C to new extension, bridge A&B, play hold for C.
- deal with restore C connection if needed.