Wherever human beings face scarcity of resources, they look either for another new resource or for new solutions to increase the utilization of the current resources. The idea of dynamic spectrum access in today’s world of wireless communication, where this world-spread resource is being under-utilized, is thoroughly sensible to let the resource be utilized more efficiently. The software-defined radio development has made the design and implementation of cognitive radios possible. A cognitive radio has the ability to sense the radio spectrum in order to find spectrum gaps and exploit them to send its own data so opportunistically that it does not disturb the communication of the licensed users (primary users) with each other. The emergence of cognitive radio brings with itself many challenges. Obtaining the best method of sensing the radio spectrum at the physical layer (PHY) and proposing the most efficient channel allocation algorithms at MAC layer to guarantee a high level of QoS for cognitive radio users (secondary users) are some of these challenges. In this thesis, after studying a variety of cognitive radio MAC protocols and the way of allocating channels in them an efficient channel allocation algorithm for secondary users having VoIP traffic will be proposed. To the best of our knowledge, the channel allocation algorithms proposed in the recent research have not take into account the channel quality concerning the way of allocating available channels to VoIP-traffic secondary users. The network model in this thesis is a distributed network of unlicensed users having VoIP traffic. In this way, after declaring, analyzing and simulating several channel allocation algorithms for slotted cognitive radio networks with constant transmission capacity and variable transmission capacity an efficient queue-based algorithm for the constant transmission capacity network and an efficient queue-based channel-quality-aware algorithm for the variable transmission capacity networks will be proposed. In the latter, the queue status of the secondary users and the quality of the channel would be considered in addition to the variable behaviour of primary users in occupying their channels. By applying these two efficient algorithms in the constant transmission capacity and variable transmission capacity networks respectively, the QoS will be provisioned to a proper certain level for the secondary users carrying VoIP traffic. At the end, the performance of these algorithms in a cognitive radio network will be proved and observed by calculating the mean packet loss rate, which is a key performance measure for the VoIP services