Time Conditions

Yes, this is only practical if you can do it with 1 or 2 dynroutes. if monitoring multiple extensions, then it gets more complex than my last answer. You would want to use an Asterisk expression like the following:

$["${EXTENSION_STATE(7002@from-internal)}"="UNAVAILABLE" & "${EXTENSION_STATE(7005@from-internal)}"="UNAVAILABLE"]

I just tested. The above expressions will evaluate to ‘1’ if ALL of the conditions are met, i.e. both extensions 7002 and 7005 are UNAVAILABLE (no devices registered) otherwise it will evaluate to ‘0’. You could add checks against other extensions by stringing them together with the & char. Then one could use this expression in a dynroute using the method outlined in this post: Using Dynamic Routes as an extended blocklist

For completeness I also tested this expression:

$["${EXTENSION_STATE(7002@from-internal)}"="UNAVAILABLE" || "${EXTENSION_STATE(7005@from-internal)}"="UNAVAILABLE"]

which evaluates to ‘1’ if EITHER condition is met which otherwise evaluates to ‘0’.

If monitoring more than a small number of extensions, it would probably be best to create a single custom hint that tracks all the extensions in question and then use that custom hint in the dynroute.