Issues with GPRS code

The problem is almost certainly your use of String in the loop() and Response() functions. You collect the string in a C-style char array but then convert it to String to look for "Call Ready" or "ERROR". You should do the whole thing with C-style null-terminated strings and then you won't run into garbage collection problems with the use of the String class.

Pete