I got this explanation for your problem from other forum.
I often see asterisk crash on the blackfin (about once every 2 weeks), but instead of rebooting the system every evening in SwitchFin we have added procwatch this will restart the system automatically if it detects a crash, but also scrubs the memory when it gets to low (which i think is the main reason for asterisk crashing).
If the IP-01 is connected internally without touching Internet, I believe that the asterisk process becomes more stable. I do not where gives the asterisk failures, either from IP-01 itself or from other parties from Internet. Now I modified the IsAsteriskAlive.sh script such that when asterisk processes are gone, the system will not reboot or start the asterisk immediately and wait for 5 minutes. Afterwards the system will start the asterisk again. The purpose of the 5-min waiting is used for the system to have time to clear up other taskes or the external parties stop accessing the system in order to make the CPU loading reduce to a minimal level, e.g. less 0.2.
I hope this new measure will improve the asterisk stability. I shall let you know the test results after several days evaluation.