'First attempts to anonymize the MAC if requested; MACs cannot
be anonymized if they\'re already in monitor mode.
Uses airmon-ng to put a device into Monitor Mode.
Then uses the get_iface() method to retrieve the new interface\'s name.
Sets global variable IFACE_TO_TAKE_DOWN as well.
Returns the name of the interface in monitor mode.'

def enable_monitor_mode(self, iface):

    mac_anonymize(iface)
    print (((GR + '    [+]') + W) + ('    enabling    monitor    mode    on    %s...' % ((G + iface) + W))),
    stdout.flush()
    call(['airmon-ng', 'start', iface], stdout=DN, stderr=DN)
    print 'done'
    self.RUN_CONFIG.WIRELESS_IFACE = ''
    self.RUN_CONFIG.IFACE_TO_TAKE_DOWN = self.get_iface()
    if (self.RUN_CONFIG.TX_POWER > 0):
        print (((GR + '    [+]') + W) + ('    setting    Tx    power    to    %s%s%s...' % (G, self.RUN_CONFIG.TX_POWER, W))),
        call(['iw', 'reg', 'set', 'BO'], stdout=OUTLOG, stderr=ERRLOG)
        call(['iwconfig', iface, 'txpower', self.RUN_CONFIG.TX_POWER], stdout=OUTLOG, stderr=ERRLOG)
        print 'done'
    return self.RUN_CONFIG.IFACE_TO_TAKE_DOWN
