'An AmpBox was received, representing a command, or an answer to a
previously issued command (either successful or erroneous).  Respond to
it according to its contents.
@param box: an AmpBox
@raise NoEmptyBoxes: when a box is received that does not contain an
\'_answer\', \'_command\' / \'_ask\', or \'_error\' key; i.e. one which does not
fit into the command / response protocol defined by AMP.'

def ampBoxReceived(self, box):

    if (ANSWER in box):
        self._answerReceived(box)
    elif (ERROR in box):
        self._errorReceived(box)
    elif (COMMAND in box):
        self._commandReceived(box)
    else:
        raise NoEmptyBoxes(box)
