   defp init_esme({module, args}, pool, session, esme_opts) do
     case module.init(args) do
       {:ok, state} ->
+        timer_resolution = Keyword.get(esme_opts, :timer_resolution, @default_timer_resolution)
+        SMPPEX.Timer.start_link(self, timer_resolution)
+
         enquire_link_limit = Keyword.get(esme_opts, :enquire_link_limit,  @default_enquire_link_limit)
         enquire_link_resp_limit = Keyword.get(esme_opts, :enquire_link_resp_limit,  @default_enquire_link_resp_limit)
         inactivity_limit = Keyword.get(esme_opts, :inactivity_limit, @default_inactivity_limit)
-        response_limit = Keyword.get(esme_opts, :response_limit, @default_response_limit)
 
         timers = SMPPTimers.new(
           :erlang.system_time(:milli_seconds),

  defp ranch_transport(:tcp), do: :ranch_tcp
  defp ranch_transport(:ssl), do: :ranch_ssl



end

  @default_inactivity_limit :infinity
  @default_response_limit 60000

  @default_timer_resolution 100

  @type state :: any
  @type args :: any
  @type reason :: any
