anchor.diff:  %% Returns : list() of tuple()
   %%--------------------------------------------------------------------
   behaviour_info(callbacks) ->
  -    [{start, 1},
  +    [{start_link, 0},
        {send, 5},
        {is_reliable_transport, 1},
        {get_socket, 1}
  
positive.code:     SipSocketM:send(Socket, Proto, Host, Port, Message).
  
  %%--------------------------------------------------------------------
  %% Function: get_socket(Module, Dst)
  %%           Module = atom()
  %%           Dst    = sipdst record()
  %% Descrip.: Get a socket, cached or new, useable to send messages to
  %%           Dst from sipsocket module Module.
  %% Returns : Res
  %%           Res = term(), result of apply() but typically a
  %%                         sipsocket record()
  %%--------------------------------------------------------------------
  get_socket(Module, Dst) when is_atom(Module), is_record(Dst, sipdst) ->
      Module:get_socket(Dst).
  
  %%--------------------------------------------------------------------
  %% Function: is_reliable_transport(Socket)
  %% Descrip.: Call the sipsocket module in specified in Socket and let
  %%           it tell the caller if it is a reliable transport or not.
  %% Returns : Res
  %%           Res = term(), result of apply() but typically
  %%                         true | false
  %%--------------------------------------------------------------------
  is_reliable_transport(Socket) when is_record(Socket, sipsocket) ->
      apply(Socket#sipsocket.module, is_reliable_transport, [Socket]).
  
  proto2module(tcp)  -> sipsocket_tcp;
  proto2module(tcp6) -> sipsocket_tcp;
  proto2module(tls)  -> sipsocket_tcp;
  proto2module(tls6) -> spisocket_tcp;
  proto2module(udp)  -> sipsocket_udp;
  proto2module(udp6) -> sipsocket_udp.
  
  proto2viastr(Socket) when is_record(Socket, sipsocket) ->
      proto2viastr(Socket#sipsocket.proto);
  
negative.code:     logger:log(debug, "Transport layer supervisor started"),
      UDP = {sipsocket_udp, {sipsocket_udp, start_link, []},
  	   permanent, 2000, worker, [sipsocket_udp]},
      TCP = {tcp_dispatcher, {sipsocket_tcp, start_link, []},
  	   permanent, 2000, worker, [tcp_dispatcher]},
      TCPlisteners = tcp_dispatcher:get_listenerspecs(),
      MyList = [UDP, TCP] ++ TCPlisteners,
  