private function _StreamUnaryCallFactory($channel)
    {
        if (is_a($channel, 'Grpc\Internal\InterceptorChannel')) {
            return function ($method,
                             $deserialize,
                             array $metadata = [],
                             array $options = []) use ($channel) {
                return $channel->getInterceptor()->interceptStreamUnary(
                    $method,
                    $deserialize,
                    $metadata,
                    $options,
                    $this->_StreamUnaryCallFactory($channel->getNext())
                );
            };
        }
        return $this->_GrpcStreamUnary($channel);
    }