code: def call(self, method, request, uri, headers):
          
          logger.debug('StackInABox({0}): Received call to {1} - {2}'
                       .format(self.__id, method, uri))
          service_uri = StackInABox.get_services_url(uri, self.base_url)
  
          for k, v in six.iteritems(self.services):
              matcher, service = v
              logger.debug('StackInABox({0}): Checking if Service {1} handles...'
                           .format(self.__id, service.name))
              logger.debug('StackInABox({0}): ...using regex pattern {1} '
                           'against {2}'
                           .format(self.__id, matcher.pattern, service_uri))
              if matcher.match(service_uri):
                  logger.debug('StackInABox({0}): Trying Service {1} handler...'
                               .format(self.__id, service.name))
  
                  try:
                      service_caller_uri = service_uri[(len(service.name) + 1):]
                      return service.request(method,
                                             request,
                                             service_caller_uri,
                                             headers)
                  except Exception as ex:
                      logger.exception('StackInABox({0}): Service {1} - '
                                       'Internal Failure'
                                       .format(self.__id, service.name))
                      return (596,
                              headers,
                              'Service Handler had an error: {0}'.format(ex))
          return (597, headers, 'Unknown service - {0}'.format(service_uri))
docs: Make a call into the thread's StackInABox instance.
  
          :param method: HTTP Method (e.g GET, POST)
          :param request: a Request object containing the request data
          :param uri: the URI of the request submitted with the method
          :param headers: the return headers in a Case-Insensitive dict
  
          :returns: A tuple containing - (i) the Status Code, (ii) the response
                    headers, and (iii) the response body data
  
          This function should not emit any Exceptions