anchor.diff:  			'Origin-Host' = OHost, 'Origin-Realm' = ORealm,
   			'Auth-Application-Id' = ?RO_APPLICATION_ID, 'CC-Request-Type' = RequestType,
   			'CC-Request-Number' = RequestNum};
  -generate_diameter_answer(SId, undefined, ResultCode, OHost,
  -		ORealm, RequestType, RequestNum) ->
  +generate_diameter_answer(SId, _ServiceIdentifier, _RatingGroup, undefined,
  +		ResultCode, OHost, ORealm, RequestType, RequestNum) ->
   	#'3gpp_ro_CCA'{'Session-Id' = SId, 'Result-Code' = ResultCode,
   			'Origin-Host' = OHost, 'Origin-Realm' = ORealm,
   			'Auth-Application-Id' = ?RO_APPLICATION_ID, 'CC-Request-Type' = RequestType,
   			'CC-Request-Number' = RequestNum};
  -generate_diameter_answer(SId, GrantedUnits, ResultCode, OHost,
  -		ORealm, RequestType, RequestNum) ->
  +generate_diameter_answer(SId, ServiceIdentifier, RatingGroup, GrantedUnits,
  +		ResultCode, OHost, ORealm, RequestType, RequestNum) ->
   	MultiServices_CC = #'3gpp_ro_Multiple-Services-Credit-Control'{
  +			'Service-Identifier' = ServiceIdentifier,
  +			'Rating-Group' = RatingGroup,
   			'Granted-Service-Unit' = [GrantedUnits]},
   	#'3gpp_ro_CCA'{'Session-Id' = SId, 'Result-Code' = ResultCode,
   			'Origin-Host' = OHost, 'Origin-Realm' = ORealm,
  
positive.code: 		'Event-Timestamp' = Timestamp} = Request, SId, RequestNum, Subscriber,
  		OHost, _DHost, ORealm, _DRealm, Address, Port) ->
  	try
  		ReserveAmount = case MSCC of
  			#'3gpp_ro_Multiple-Services-Credit-Control'{'Requested-Service-Unit'
  					= [#'3gpp_ro_Requested-Service-Unit'{'CC-Time'
  					= [CCTime]}]} when CCTime =/= [] ->
  				[{seconds, CCTime}];
  			#'3gpp_ro_Multiple-Services-Credit-Control'{'Requested-Service-Unit'
  					= [#'3gpp_ro_Requested-Service-Unit'{'CC-Total-Octets'
  					= [CCTotalOctets]}]} ->
  				[{octets, CCTotalOctets}];
  			#'3gpp_ro_Multiple-Services-Credit-Control'{'Requested-Service-Unit'
  					= [#'3gpp_ro_Requested-Service-Unit'{'CC-Output-Octets'
  					= [CCOutputOctets], 'CC-Input-Octets' = [CCInputOctets]}]}
  					when is_integer(CCInputOctets), is_integer(CCOutputOctets) ->
  				[{octets, CCOutputOctets + CCOutputOctets}];
  			#'3gpp_ro_Multiple-Services-Credit-Control'{'Requested-Service-Unit'
  					= [#'3gpp_ro_Requested-Service-Unit'{'CC-Service-Specific-Units'
  					= [CCSpecUnits]}]} when is_integer(CCSpecUnits) ->
  				[{messages, CCSpecUnits}];
  			#'3gpp_ro_Multiple-Services-Credit-Control'{'Requested-Service-Unit'
  					= [#'3gpp_ro_Requested-Service-Unit'{}]} ->
  				throw(unsupported_request_units);
  			#'3gpp_ro_Multiple-Services-Credit-Control'{} ->
  				[]
  		end,
  		Destination = call_destination(ServiceInformation),
  		ServiceType = service_type(SvcContextId),
  
negative.code: 					ORealm, RequestType, RequestNum)
  	end.
  
  -spec generate_diameter_answer(SessionId, ServiceIdentifier, RatingGroup, GrantedUnits,
  		ResultCode, OriginHost, OriginRealm, RequestType, RequestNum) -> Result
  			when
  				SessionId :: string(),
  				ServiceIdentifier :: [non_neg_integer()],
  				RatingGroup :: [non_neg_integer()],
  				GrantedUnits :: undefined | #'3gpp_ro_Granted-Service-Unit'{},
  				ResultCode :: integer(),
  				OriginHost :: string(),
  