if (Sim900Serial.available()) // If data is comming from from GSM shield)
{
while(Sim900Serial.available()) // reading data into char array
What's the point of an "if" followed by a "while" with the same condition?
How much data is this going to collect before writing it out and resetting the buffer?
(Why aren't you asking over at the Instructables site?)