Reader small image

You're reading from  Mastering FreeSWITCH

Product typeBook
Published inJul 2016
Reading LevelExpert
PublisherPackt
ISBN-139781784398880
Edition1st Edition
Languages
Concepts
Right arrow
Authors (8):
Darren Schreiber
Darren Schreiber
author image
Darren Schreiber

Darren Schreiber is the CEO and Co-founder of 2600 Hz. He began working heavily in open source voice with the FreeSWITCH project, where he engaged with Brian, Mike, and Anthony. His projects have since evolved into two enterprise VoIP platforms that allow a multitude of development of voice, SMS, and video applications to be delivered to customers.He has 15 years of voice and IT experience including developing multiple enterprise SaaS infrastructures for hosting and remotely managing IT, voice, and e-commerce services. He is a guest lecturer at major universities on VoIP technology and leads paid international VoIP trainings. As a serious telephony enthusiast since a young age, he has worked extensively with VoIP technologies. He graduated from Rensselaer Polytechnic Institute with a degree in Computer Science and Business Management.He is also a co-author of FreeSWITCH Cookbook, Packt Publishing.
Read more about Darren Schreiber

View More author details
Right arrow

Chapter 8. Audio and Video Conferencing

Let's start with two concepts here: audio conferencing is huge and videoconferencing is HUGE. Actually, conferencing (audio and/or video) is one of the drivers of our industry, and sure, it's a big part of what businesses look for in a telecommunications system.

FreeSWITCH has always been the best platform for conferencing, starting many years ago as a hugely scalable audio conferencing bridge to becoming, with version 1.6, a multimedia powerhouse serving PSTN, SIP, and WebRTC users.

In this chapter, we will cover:

  • Conference concepts

  • Audio conferencing

  • Profiles, DTMF commands interaction, PINs, and so on

  • Managing audio conferences

  • Video conferencing

  • Video conference layouts

  • Screen sharing

  • Managing video conferences

  • Conference performances

  • Conference concepts

Conferencing is about taking stuff from different sources, doing something with that stuff, and distributing the result to different recipients. That process must allow for real-time change of all factors...

Conference basics


Let's start simply. Add this snippet to dialplan:

After a comment, we create an extension that answers incoming calls to 3100-3199 (inclusive), then connect the caller to the conference named [destination_number]-[domain_name]. If the conference does not exist yet, it will be started using settings from profile "default". (For example, if you call extension 3110 on a server where the domain is 172.31.3.216, the conference name will be "3110-172.31.3.216". If the FreeSWITCH domain was set to biloxi.com, the conference name would be "3110-biloxi.com".)

The second extension is identical to the first one, but will answer calls to 31001-31011-31021... up to 31991 (for example, they're all ending with "1"), and the caller will be connected to a conference named in the same way as the first example (taking into account only the first four numbers in "expression"), and will be given a "moderator" role.

So, calling 3188 will connect you as a participant to the conference room named...

Video conference


"There's only two ways of doing things. The right way and FreeSWITCH's way. And they're both the same." (adapted quote, John Turturro, Mac, 1992)

In a breakthrough at ClueCon 2015 in Chicago Illinois, FreeSWITCH's creator Anthony Minessale II announced support for video transcoding, mixing, manipulation, and Multipoint Control Unit (MCU) functionality.

FreeSWITCH now has the most advanced and mature video conferencing features:

  • Multiple video codecs support and transcoding

  • Multiple video layouts

  • Screen splits

  • Picture in picture

  • Screen sharing

  • Video superimposing (captions, logos, and so on)

  • Video mixing

  • Video effects and real-time manipulation

Video conference configuration

Video conferences in FreeSWITCH are just normal conferences with "something more".

They're defined and invoked exactly the same way as an audio-only conference as far as conference.conf.xml and dialplan. Actually, an audio-only conference is a video conference where no participants happen to request or send a video...

Conference performances


You can have video mixing or you can have little CPU load. You can't have them both.

And when I'm talking about CPU load I really mean it. For MCU style conferences, get a machine with the most cores and CPUs you can afford. That's the rule of the game. Ask Industrial Light and Magic about video effects and CPU cycles.

That said, let's see how to be Magicians On the Cheap (TM).

You can achieve very good results without sacrificing much, if you don't need fancy effects:

  • pcmu or pcma (for example, g711) audio, one channel (mono), 8khz (support is mandatory in WebRTC and ubiquitous in SIP)

  • video-mode passthrough

  • (be sure no layout is mentioned in conference profile, if one is mentioned, the conference is automatically started in mux video-mode)

With those settings, you'll have an incredibly low CPU load: you're actually just switching between different video inputs, choosing one, and retransmitting it as-is to all participants. As for audio, you get input streams that are not...

Summary


In this chapter, we first had an overview of how audio and video conferencing works, then we saw how FreeSWITCH can be configured as a conferencing server.

We defined our conferences' profiles as setting groups that can be assigned to conferences when they start. In the same configuration file that contains the conferences' profiles we define caller-controls sections. Caller-controls are groups of DTMF-command mappings that are assigned to a conference inside profiles, and define how participants and moderators can interact using the dialpad.

We saw how to create a dialplan extension pointing to a conference, setting its channel variables. Also, we learned how to add participants having the conference to originate outbound calls to prospective attendees.

Management of conferences, who has the floor, who is kicked out, muting and unmuting participants, and the like, is best done with API calls. We saw how to use API via command line and via graphical interfaces, the best one being Verto...

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Mastering FreeSWITCH
Published in: Jul 2016Publisher: PacktISBN-13: 9781784398880
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Authors (8)

author image
Darren Schreiber

Darren Schreiber is the CEO and Co-founder of 2600 Hz. He began working heavily in open source voice with the FreeSWITCH project, where he engaged with Brian, Mike, and Anthony. His projects have since evolved into two enterprise VoIP platforms that allow a multitude of development of voice, SMS, and video applications to be delivered to customers.He has 15 years of voice and IT experience including developing multiple enterprise SaaS infrastructures for hosting and remotely managing IT, voice, and e-commerce services. He is a guest lecturer at major universities on VoIP technology and leads paid international VoIP trainings. As a serious telephony enthusiast since a young age, he has worked extensively with VoIP technologies. He graduated from Rensselaer Polytechnic Institute with a degree in Computer Science and Business Management.He is also a co-author of FreeSWITCH Cookbook, Packt Publishing.
Read more about Darren Schreiber