Congestion control in Vehicular Ad Hoc Networks (vanets) is challenging due to limited bandwidth, dynamic topology and lack of central co-ordination. Unlike previous works which focus on congestion control with a fixed channel load threshold that causes bandwidth wastage, this paper presents a cross-layer congestion control model which consists of two modules to alleviate congestion in the congestion detection center. In first module, the event-driven messages are prioritized when an imminent danger or abnormal situation is detected on the road. Then in second module, the channel load threshold is assigned dynamically based on beaconing load and transmit power properties which results a satisfaction level of maximum load beaconing. As a result, it alleviates congestion problems and improves bandwidth usage in VANETS. Experimental results on different data-sets including various vehicle densities, distances and road maps with and without obstacles (e.g. walls and buildings) show that the proposed method outperforms existing methods in terms of the average delivery ratio, message reception probability and average delay of time. Moreover, the results prove that the performance of all approaches degraded significantly in realistic scenarios (i.e. scenario with obstacles) compared to unrealistic scenario (i.e. scenario without obstacles) due to wireless signal attenuation and absorption.