anchor.diff:  %%----------------------------------------------------------------------
   %%  The user_default private API
   %%----------------------------------------------------------------------
  +
  +-spec diameter_service_info(Services, Info) -> Result
  +	when
  +		Services :: [term()],
  +		Info :: [Item],
  +		Item :: peer | applications | capabilities
  +				| transport | connections | statistics,
  +		Result :: [ServiceResult],
  +		ServiceResult :: {Service, [term()]},
  +		Service :: term().
  +%% @hidden
  +diameter_service_info(Services, []) ->
  +	Info = [peer, applications, capabilities,
  +			transport, connections, statistics],
  +	diameter_service_info(Services, Info, []);
  +diameter_service_info(Services, Info) ->
  +	diameter_service_info(Services, Info, []).
  +%% @hidden
  +diameter_service_info([Service | T], Info, Acc) ->
  +	diameter_service_info(T, Info,
  +			[{Service, diameter:service_info(Service, Info)} | Acc]);
  +diameter_service_info([], _Info, Acc) ->
  +	lists:reverse(Acc).
   
   -spec avp(Value) -> AVP
   	when
  
positive.code: avp(firmware_revision) ->
  	'Firmware-Revision'.
  
  %% @hidden
  get_params([]) ->
  	[peer, applications, capabilities, transport,
  			connections, statistics];
  get_params(Info)
  		when Info /= undefined ->
  	Info.
  
negative.code: help() ->
  	shell_default:help(),
  	io:format("** ocs commands ** \n"),
  	io:format("di()            -- diameter services info\n"),
  	io:format("di(Types)       -- diameter services info of types\n"),
  	io:format("di(acct, Types) -- diameter accounting services info\n"),
  	io:format("di(auth, Types) -- diameter authentication and authorization services info\n"),
  	true.
  
  -spec di() -> Result
  	when
  		Result :: [ServiceResult],
  		ServiceResult :: {Service, [term()]},
  		Service :: term().
  %% @doc Get information on running diameter services.
  di() ->
  	diameter_service_info(diameter:services(), []).
  
  -spec di(Info) -> Result
  	when
  		Info :: [Item],
  		Item :: peer | applications | capabilities
  				| transport | connections | statistics,
  		Result :: [ServiceResult],
  		ServiceResult :: {Service, [term()]},
  		Service :: term().
  %% @doc Get information on running diameter services.
  di(Info) ->
  	diameter_service_info(diameter:services(), Info).
  
  -spec di(ServiceType, Info) -> Result
  	when
  		ServiceType :: auth | acct,
  		Info :: [Item],
  		Item :: peer | applications | capabilities
  				| transport | connections | statistics,
  		Result :: term() | {error, Reason},
  		Reason :: unknown_service.
  %% @doc Get information on running diameter services.
  di(auth, Info) ->
  	F = fun({ocs_diameter_auth_service, _, _}) ->
  				true;
  			(_) ->
  				false
  	end,
  	AuthServices = lists:filter(F, diameter:services()),
  	diameter_service_info(AuthServices, Info);
  di(acct, Info) ->
  	F = fun({ocs_diameter_acct_service, _, _}) ->
  				true;
  			(_) ->
  				false
  	end,
  	AcctServices = lists:filter(F, diameter:services()),
  	diameter_service_info(AcctServices, Info).
  
  -spec get_avp_info(AVP) -> Result
  	when
  