
if (ring_detected
||  programming_button_pressed
||  alarm_clock_ringing
||  supply_voltage < battery_alarm_level
||  now >= last_line_test + LINE_TEST_INTERVAL
||  pending_alarm && now >= last_alarm_send_time + ALARM_RESEND_TIME
||  ...) {
    wake_up();
}