I don't really understand why you need two distinct functions here.  Can't we simply have `amodem_set_smsc_address()` only?