def METHOD_NAME(self):
    """
    start speech detection with the current grammar,
    and listen for results from asr engine.  once a result
    has been returned, return it to caller
    """
    def dtmf_handler(input, itype, funcargs):
        console_log("INFO","\n\nDTMF itype: %s\n" % itype)
        if itype == 1: # TODO!! use names for comparison instead of number
            return self.handle_event(input, funcargs)
        elif itype== 0:
            console_log("INFO","\n\nDTMF input: %s\n" % input)
        else:
            console_log("INFO","\n\nUnknown input type: %s\n" % itype)
        return None 
    num_tries = 0
    session = self.speech_detect.session
    console_log("debug", "setting dtmf callback\n")
    session.setDTMFCallback(dtmf_handler, "")
    console_log("debug", "calling getDigits\n")
    console_log("debug", "starting run() while loop\n")        
    while (session.ready() and 
           num_tries < self.max_tries and
           len(self.detected_phrases) < self.required_phrases and
           not self.failed):
        console_log("debug", "top of run() while loop\n")        
        session.collectDigits(self.wait_time)
        num_tries += 1
    console_log("debug", "while loop finished\n")
    return self.detected_phrases