Data type comparison

My guess is that the Check_SMS() function fills in the sms_rx[] character array. If that's the case, you need to compare strings, which won't work using sms_rx == ON. You'd have to do something like:

if (strcmp(sms_rx, "ON") == 0)  
{
	digitalWrite(13, HIGH);
} else {
    if (strcmp(sms_rx, "OFF") == 0)
   {
	digitalWrite(13, LOW);
   }
}

strcmp() returns 0 when there is a match, -1 if the match fails and the letter of the mismatch is lexicographically less, or 1 if greater. For example, an ASCII 'A' is 65 and ASCII 'B' is 66, so strcmp("A", "B") would return -1 while strcmp("B", "A") would return 1, and strcmp("A", "A") or strcmp("B", "B") would return 0.