anchor.diff:      {ok, Addrs} = inet:getaddrs(Host, inet), % FIXME: ipv6
       [Destination#sip_destination{address = Addr} || Addr <- Addrs].
   
  -%% @doc Determine proper SRV record based on given `#sip_destination{}' record.
  -%% @end
  -service_proto(udp, false) -> "_sip._udp.";
  -service_proto(tcp, false) -> "_sip._tcp.";
  -service_proto(tcp, true) -> "_sips._tcp.".
  +%% @doc Determine SRV domain prefix based on pair of service and transport
  +%% @end
  +srv_prefix(sip, udp) -> "_sip._udp.";
  +srv_prefix(sip, tcp) -> "_sip._tcp.";
  +srv_prefix(sip, sctp) -> "_sip._sctp.";
  +srv_prefix(sips, tcp) -> "_sips._tcp.";
  +srv_prefix(sips, sctp) -> "_sips._sctp.".
  
positive.code:             resolve_dest_a(Host, Dest); % Port is specified, make AAAA or A query
         true ->
             % otherwise, make SRV query
             Domain = service_proto(Transport, TLS) ++ Host,
             Dest = #sip_destination{transport = Transport, params = Params},
             resolve_dest_srv(Host, Domain, Dest)
      end.
  
  %% @doc Determine Port and IP address by SRV queries
  %% @end
  resolve_dest_srv(Target, Domain, Dest) ->
      case lookup_srv(Domain) of
          [] ->
              % FIXME: hard-coded default port
  
negative.code:             resolve_dest_a(Target, Dest);
          Explicit ->
              % Transport is provided explicitly, make SRV query
              resolve_dest_srv(Scheme, Transport, Target);
          true ->
              % make NAPTR query
              select_bynaptr(Target, TLS)
  