def METHOD_NAME(self, session, prepared_data={}):
    login = ('user {designator:s} pass {passcode:s} ' +
             'vers pywws {version:s}\n').format(**prepared_data)
    logger.debug('login: "{:s}"'.format(login))
    login = login.encode('ASCII')
    packet = ('{designator:s}>APRS,TCPIP*:@{idx:s}' +
              'z{latitude:s}/{longitude:s}' +
              '_{wind_dir:s}/{wind_ave:s}g{wind_gust:s}t{temp_out:s}' +
              'r{rain_hour:s}p{rain_24hr:s}b{rel_pressure:s}h{hum_out:s}' +
              '.pywws-{version:s}\n').format(**prepared_data)
    logger.debug('packet: "{:s}"'.format(packet))
    packet = packet.encode('ASCII')
    try:
        session.sendall(login)
        response = session.recv(4096).decode('ASCII')
        logger.debug('server login ack: %s', response.strip())
        session.sendall(packet)
        session.shutdown(socket.SHUT_RDWR)
    except Exception as ex:
        return False, repr(ex)
    return True, 'OK'