I've seen SMS arrive with strange non-numeric source numbers before; it seems nicer to fall back to a string comparison rather than always failing the comparison.

Also, empty input needs to be considered equal to empty input to handle private number cases correctly.