You are just comparing the addresses of the strings, not their content. You can use strcmp which returns zero if the strings are equal:
if(strcmp(sms_rx,ON) == 0) {
// the strings are equal - ON
} else if (strcmp(sms_rx,OFF) {
// the strings are equal - OFF
} else {
// Neither string is matched
}
Make sure that sms_rx is null-terminated and also beware of sms_rx having carriage-return and/or linefeed on the end.
Pete