Need help on SoftwareSerial (+SIND:0)

    if (cell.available() > 0) {
      c = cell.read();
      // If not available .......
      if (c == -1) {

If there is data to read, read the first character. How can you not have read something?

Is there not a print_r() to print at_buffer, like in PHP?

No, and why should there be? C++ allows for function overloading. The print() method can print a lot of different things, like ints, floats, bytes, chars, and, you guessed it, arrays of chars.