Watchdog System for Arduino GSM

Putting the call to loop() within another function seems like a really bad idea.
Loop runs all by itself after setup() is complete.
Typically you would call out of setup() and loop() - not in to them.