   end
 
   defp parse_req_opts(list) when is_list(list) do
-    parse_req_opts(list, %{timeout: @default_timeout})
+    parse_req_opts(list, %{})
   end
 
   defp parse_req_opts([{:timeout, timeout} | t], acc) do


  ## Options

    * `:timeout` - request timeout
    * `:deadline` - when the request is timeout, will override timeout
    * `:metadata` - a map, your custom metadata
    * `:return_headers` - default is false. When it's true, a three elem tuple will be returned

  """
  @spec call(atom, tuple, GRPC.Client.Stream.t(), struct | nil, keyword) :: rpc_return
  def call(_service_mod, rpc, %{channel: channel} = stream, request, opts) do
    {_, {req_mod, req_stream}, {res_mod, response_stream}} = rpc

    stream = %{stream | request_mod: req_mod, response_mod: res_mod}

    opts =
      if req_stream || response_stream do
        parse_req_opts([{:timeout, :infinity} | opts])
      else
        parse_req_opts([{:timeout, @default_timeout} | opts])
      end

    compressor = Map.get(opts, :compressor, channel.compressor)
    accepted_compressors = Map.get(opts, :accepted_compressors, [])
