anchor.diff:  		{error, not_found} ->
   			undefined
   	end,
  -	NewIPDR = IPDR#ipdr_wlan{gmtSessionEndDateTime = iso8601(EndTime),
  -			gmtSessionStartDateTime = StartTime},
  +	NewIPDR = IPDR#ipdr_wlan{gmtSessionStartDateTime = StartTime,
  +			gmtSessionEndDateTime = iso8601(EndTime)},
   	ipdr_wlan1(T, radius, TimeStamp, stop, Req, Resp, Rated, NewIPDR);
  -ipdr_wlan1([gmtSessionEndDateTime | T], diameter, TimeStamp, stop, Req, Resp, Rated, IPDR) ->
  -	ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, IPDR);
  +ipdr_wlan1([gmtSessionEndDateTime | T], diameter, TimeStamp, stop,
  +		#'3gpp_ro_CCR'{'Event-Timestamp' = [EventTimestamp]} = Req, Resp, Rated, IPDR) ->
  +	EventTimeSeconds = calendar:datetime_to_gregorian_seconds(EventTimestamp),
  +	NewIPDR = IPDR#ipdr_wlan{gmtSessionEndDateTime = iso8601(EventTimeSeconds)},
  +	ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, NewIPDR);
   ipdr_wlan1([unitOfMeasure | T], diameter, TimeStamp, stop, Req, Resp, undefined, IPDR) ->
   	ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, undefined, IPDR);
   ipdr_wlan1([unitOfMeasure | T], diameter, TimeStamp, stop, Req, Resp,
  
positive.code: 	ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, IPDR);
  ipdr_wlan1([intermediaryName| T], diameter, TimeStamp, stop, Req, Resp, Rated, IPDR) ->
  	ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, IPDR);
  ipdr_wlan1([_| T], Protocol, TimeStamp, stop, Req, Resp, Rated, IPDR) ->
  	ipdr_wlan1(T, Protocol, TimeStamp, stop, Req, Resp, Rated, IPDR);
  ipdr_wlan1([], _Protocol, _TimeStamp, _Flag, _Req, _Resp, _Rated, IPDR) ->
  	IPDR.
  
negative.code: 	Cause = proplists:get_value(?AcctTerminateCause, Req),
  	NewIPDR = IPDR#ipdr_wlan{sessionTerminateCause = Cause},
  	ipdr_wlan1(T, radius, TimeStamp, stop, Req, Resp, Rated, NewIPDR);
  ipdr_wlan1([sessionTerminateCause | T], diameter, TimeStamp, stop,
  		#'3gpp_ro_CCR'{'Service-Information' = [ServiceInfo]} = Req, Resp, Rated, IPDR) ->
  	case ServiceInfo of
  		#'3gpp_ro_Service-Information'{'IMS-Information' = [IMSINFO]} ->
  			case IMSINFO of	
  				#'3gpp_ro_IMS-Information'{'Cause-Code' = [CauseCode]} ->
  					NewIPDR = IPDR#ipdr_wlan{sessionTerminateCause = CauseCode},
  					ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, NewIPDR);
  				_ ->
  					ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, IPDR)
  			end;
  		_ ->
  			ipdr_wlan1(T, diameter, TimeStamp, stop, Req, Resp, Rated, IPDR)
  	end;
  ipdr_wlan1([nasIpAddress | T], radius, TimeStamp, stop, Req, Resp, Rated, IPDR) ->
  	case radius_attributes:find(?NasIpAddress, Req) of
  		{ok, Address} ->
  