SMS command processing

You are combining a serial parse function with a eeprom store/retrieve function.
There may be more elegant ways to parse the result of your AT commands.
Google for "arduino parse sms data" to see other examples.

Regarding the eeprom, this is used normally for persistent storage which survives a shutdown.
Are you simply trying to accumulate all the incoming callers ?
Are you going to store the value of the index so that at the next system start, it does not overwrite the numbers from the last session ?

// these functions can be replaced by EEPROM.get() and EEPROM.put()
eeprom_read_string((i * 11), buf, BUFSIZE);
eeprom_write_string((i * 11), buf);

// this loops forever
while (1) { . . . }