Interesting approach.
What we've done is to write an app that runs on a separate machine that
simply does some asterisk -rx calls to the running Asterisk instance via an
SSH library and then evaluate the string returned.
For example, to monitor our registered SIP service providers, we compare the
output for the sip show registry CLI command when the system is in the
correct state, to the output we get on timed checks every five minutes.
If a SIP trunk goes down, the just-obtrained string does not match the
stored, correct string anymore, and our app starts sending SMSes / raising
alarms.
Been running for about three years now and works suffieciently for our
widely separated branches all over South Africa.