In this paper we develop a novel method of controlling the demand in a multi-class, QoS-enabled network, using pricing and resource allocation for income maximisation. We first present a solution to the problem of calculating the optimal prices and QoS for a single link using a limiting regime approximation, which reduces the associated computational burden. A heuristic algorithm is then proposed that improves the limiting regime solution, achieving better results for links with small capacity. We further extend this approach to a multi-link network, where a distributed iterative algorithm is developed based on the solution of the single link model. Results from small and medium size networks show that, even when the assumptions we used do not hold, our approach yields results very close to the optimal ones (0.17% to 2.95% difference), which are computed by exhaustively searching in the decision space. Moreover, the calculation time using the proposed approach is approximately 1.5 minutes for problems which took more than 240 minutes to solve using exhaustive search.