'Retrieves any updates from the Telegram API.
Registered listeners and applicable message handlers will be notified when a new message arrives.
:raises ApiException when a call has failed.'

def __retrieve_updates(self, timeout=20):

    if self.skip_pending:
        logger.debug('Skipped    {0}    pending    messages'.format(self.__skip_updates()))
        self.skip_pending = False
    updates = self.get_updates(offset=(self.last_update_id + 1), timeout=timeout)
    self.process_new_updates(updates)
