anchor.diff:  	char_attr_session_id(Attributes, NewAcc).
   
   %% @hidden
  +char_attr_session_id(#'3gpp_ro_CCR'{'Session-Id' = SessionID} = CCR, Acc)
  +		when SessionID /= undefined ->
  +	NewAcc = [{struct, [{"name", "acctSessionId"},
  +			{"value", binary_to_list(SessionID)}]} | Acc],
  +	char_attr_cause(CCR, NewAcc);
  +char_attr_session_id(#'3gpp_ro_CCR'{} = CCR, Acc) ->
  +	char_attr_cause(CCR, Acc);
   char_attr_session_id(Attributes, Acc) ->
   	NewAcc = case radius_attributes:find(?AcctSessionId, Attributes) of
   		{ok, Value} ->
  
positive.code: %% support deprecated_time_unit()
  -define(MILLISECOND, milli_seconds).
  %-define(MILLISECOND, millisecond).
  
  %%----------------------------------------------------------------------
  %%  The ocs_rest_res_usage API
  
negative.code: 	lists:reverse(char_attr_username(Attributes, [])).
  
  %% @hidden
  char_attr_username(#'3gpp_ro_CCR'{'Subscription-Id'
  		= [#'3gpp_ro_Subscription-Id'{'Subscription-Id-Data' = ID}]} = CCR,
  		Acc) when is_binary(ID) ->
  	NewAcc = [{struct, [{"name", "username"},
  			{"value", binary_to_list(ID)}]} | Acc],
  	char_attr_nas_ip(CCR, NewAcc);
  char_attr_username(#'3gpp_ro_CCR'{'User-Name' = [Username]} = CCR, Acc)
  		when is_binary(Username) ->
  	NewAcc = [{struct, [{"name", "username"},
  			{"value", binary_to_list(Username)}]} | Acc],
  	char_attr_nas_ip(CCR, NewAcc);
  char_attr_username(#'3gpp_ro_CCR'{} = CCR, Acc) ->
  	char_attr_nas_ip(CCR, Acc);
  char_attr_username(Attributes, Acc) ->
  	NewAcc = case radius_attributes:find(?UserName, Attributes) of
  		{ok, Value} ->
  