Auto trunk reload?

Until a couple of weeks ago, I was using my FreePBX on a Comcast line. That worked nice, but got terrible in the end, as the voice quality was really bad, and I kept on losing connection to the SIP provider for unknown reasons. I changed to Centurylink, and the connection quality is much better. But CL seems to change my IP address once a week or so. Every time that happens, I lose my trunk registration, and since the whole system works mostly unattended, It can take hours or even days until someone notices that.
Is there are way in FreePBX to
a) Monitor the trunk status (there must be as it is shown on the dashboard)
b) Initiate a “trunk reload” or similar when a disconnection is found
c) send an email to someone to notify them

This would be a very useful thing to have, possibly not only for the trunk.