This happened to me a bunch of times too, not from the internet going down, but from my VOIP provider losing registration when they were doing server maintenance. If I was on site I could do a “core reload” through the CLI and it would come back up. But I’m not always on site and needed a simple fix that the staff could follow. This is what I did:
I want to be able to do a “core reload” by dialling extension 301.
I created a Custom Destination with target from-internal-custom,301,1
I created a Misc Application with Custom Destination, and selected the new Custom Destination.
Then in extensions_custom.conf I added:
exten => 301,1,NoOP
same => n,System(asterisk -x “core reload”)
same => n,Hangup()
(In fact, on my production system I had to use ‘core reload’ rather than “core reload”. I have no idea why or what difference that makes, I just know double quotes didn’t work.)
And this morning it had a real life run (I still don’t know why it went down this time) and the staff fixed the problem by dialling 301. They were nearly as happy as I was.