anchor.diff:  					OHost, ORealm, RequestType, RequestNum)
   	end.
   
  --spec subscriber_id(SubscriberIdAVP) -> SubscriberIds
  +-spec subscriber_id(SubscriberIdAVP) -> Subscribers
   	when
   		SubscriberIdAVP :: [#'3gpp_ro_Subscription-Id'{}],
  -		SubscriberIds :: map().
  -%% @doc Get SubscriberIds From Diameter SubscriberId AVP.
  +		Subscribers :: [Subscriber] | [],
  +		Subscriber :: {IdType, Id},
  +		IdType :: msisdn | imsi,
  +		Id :: binary().
  +%% @doc Get Subscribers From Diameter SubscriberId AVP.
   subscriber_id(SubscriberIdAVP) ->
  -	subscriber_id(SubscriberIdAVP, #{}).
  +	subscriber_id(SubscriberIdAVP, []).
   %% @hidden
   subscriber_id([#'3gpp_ro_Subscription-Id'{'Subscription-Id-Data' = undefined,
   		'Subscription-Id-Type' = ?'3GPP_SUBSCRIPTION-ID-TYPE_END_USER_E164'} | T], Acc) ->
  
positive.code: 					?'DIAMETER_CC_APP_RESULT-CODE_RATING_FAILED',
  					OHost, ORealm, RequestType, RequestNum)
  	catch
  		_:Reason1 ->
  			error_logger:warning_report(["Unable to process DIAMETER request",
  					{origin_host, OHost}, {origin_realm, ORealm},
  					{request, Request}, {error, Reason1}, {stack, erlang:get_stacktrace()}]),
  			diameter_error(SessionId, ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  					OHost, ORealm, RequestType, RequestNum)
  	end;
  
negative.code: 	subscriber_id(T, Acc);
  subscriber_id([#'3gpp_ro_Subscription-Id'{'Subscription-Id-Data' = SubId,
  		'Subscription-Id-Type' = ?'3GPP_SUBSCRIPTION-ID-TYPE_END_USER_E164'} | T], Acc) ->
  	subscriber_id(T, [{msisdn, SubId} | Acc]);
  subscriber_id([#'3gpp_ro_Subscription-Id'{'Subscription-Id-Data' = SubId,
  		'Subscription-Id-Type' = ?'3GPP_SUBSCRIPTION-ID-TYPE_END_USER_IMSI'} | T], Acc) ->
  	subscriber_id(T, [{imsi, SubId} | Acc]);
  subscriber_id([_ | T], Acc) ->
  	subscriber_id(T, Acc);
  subscriber_id([], Acc) ->
  