A system for providing call admission control for a Long Term Evolution, LTE, network shared between a plurality of user classes, the system comprising: a policy profile module for maintaining call type privilege parameters for each of said plurality of user classes; an admission control module for enforcing said call admission policy profile during call setup of an incoming call; wherein said call type privilege parameters for each of said plurality of user classes comprise a bandwidth cap for the respective user class, and a preemption module configured to: a) determine that a bandwidth required to set up said incoming call exceeds a bandwidth cap; b) generate a candidate list of calls that are preemptable by said incoming call; c) determine an amount of bandwidth that would be recovered by preempting a first call in the candidate list of calls; d) remove the first call from the candidate list of calls and add it to a selected list of calls; and e) determine whether the amount of bandwidth that would be recovered by preempting the calls on the selected list is greater than the bandwidth required to set up said incoming call, if so, the preemption module is further configured to preempt the calls on the selected list, if not so, the preemption module is further configured to repeat c) to e) until the candidate list of calls is empty. a policy profile module for maintaining call type privilege parameters for each of said plurality of user classes; an admission control module for enforcing said call admission policy profile during call setup of an incoming call; wherein said call type privilege parameters for each of said plurality of user classes comprise a bandwidth cap for the respective user class, and a preemption module configured to: a) determine that a bandwidth required to set up said incoming call exceeds a bandwidth cap; b) generate a candidate list of calls that are preemptable by said incoming call; c) determine an amount of bandwidth that would be recovered by preempting a first call in the candidate list of calls; d) remove the first call from the candidate list of calls and add it to a selected list of calls; and e) determine whether the amount of bandwidth that would be recovered by preempting the calls on the selected list is greater than the bandwidth required to set up said incoming call, if so, the preemption module is further configured to preempt the calls on the selected list, if not so, the preemption module is further configured to repeat c) to e) until the candidate list of calls is empty. a) determine that a bandwidth required to set up said incoming call exceeds a bandwidth cap; b) generate a candidate list of calls that are preemptable by said incoming call; c) determine an amount of bandwidth that would be recovered by preempting a first call in the candidate list of calls; d) remove the first call from the candidate list of calls and add it to a selected list of calls; and e) determine whether the amount of bandwidth that would be recovered by preempting the calls on the selected list is greater than the bandwidth required to set up said incoming call, if so, the preemption module is further configured to preempt the calls on the selected list, if not so, the preemption module is further configured to repeat c) to e) until the candidate list of calls is empty.