A lot of the existing communication platforms support most of the mentioned functions, however, very few support all of them. Choosing among such platforms, it is necessary to base on two factors: the price and the availability of other cloud services that are not directly related to the communication platform, but nevertheless, necessary to build a scalable, reliable and high-load resistant application.