Every AT handling firmware needs a kind of response parser, looking for keywords and respective field delimiters e.g. commas. Now you're going to write it. Or try to find some working code written by others.
If you have lot of RAM say 600 bytes or more then set 300 bytes for uart buffer. Max length of SMS is 160 bytes without header. Header will be 80 to 90 bytes. So it wont exceed 300 bytes. read all bytes into buffer and then parse the buffer. This won't work fine when PIC16F devices are used because of bank switching problem. I use 18F devices for GSM projects.