This is an update to an article I first posted on O'Reilly in 2006. The information has aged substantially since then, and with the recent news about the spread of a new flu strain, I thought it made sense to update it. The basic idea is to explain how to build a high capacity, on demand teleconferencing system, so you can host classes and meetings online if your facilities are unavailable, whether its due to a flesh-eating flu/ebola (flubola?) hybrid, or something less exciting like freezing rain.
The important message for IT managers at schools, universities and other organizations is that it is now possible to build a large 'standby' system at little cost, which can be hosted when needed on grid computing (cloud computing) services like Amazon Web Services at a fraction of the cost of conventional systems since there are almost no fixed costs. The systems I am describing are not intended to be used day to day, and are not intended to be 100% reliable, but rather to be used as a fallback for physical facilities during a closure. An experienced telecom consultant (see the footer of this article for a list) should be able to work with you to design and provision a system like this, and thanks to on demand computing, you won't have to invest up front in equipment that you might not need to use.
Building A Virtual Classroom : Basic Toolset
Building an online classroom, especially for an improvised scenario like this, is not all that high tech. You can do it using a few common services, and cobble them together to create a temporary surrogate for in class instruction (at least for more mature classes, this obviously won't work so well for young children). To build an online classroom, you'll need:
- A teleconferencing bridge, so you can talk to your class, and optionally, they can ask questions to you. (This article mostly focuses on conferencing, since that's the trickiest thing to set up).
- An instant messaging service that allows students to send questions to you via IM, if they can't ask a question by voice (e.g. line is muted to keep noise under control). This part is easy since Gizmo, Skype, GTalk and other popular services do this already.
- A document or presentation sharing service, so you can share your notes or slide deck. Google Docs and Zoho are both good options here. Emailing PDFs is also pretty bulletproof.
- (Optional) - one to one or one to many video calling service such as Sightspeed.
The important point here is not to build the virtual classroom of your dreams, but to build something acceptable that will get the job done for the few days or weeks that you need it. People should be able to talk to each other, share messages, documents and notes. If it is necessary to do this in a public health emergency, these systems can also be used for a variety of meetings, and can play a useful role in alleviating fear since people will be in constant contact with each other, their teachers, etc.
NOTE: unless you are already experienced setting up IP based conferencing platforms, you will need the help of a telecom/IT consultant to do this. I am inviting telecom consultants and conferencing providers to contact me to be listed in the footer of this article.
Gizmo & Skype
Gizmo5 and Skype are both tools I highly recommend for IM, voice and video calling. While lesser known, I prefer Gizmo for this application because it supports open standards for voice calls over the Internet, which means it can connect to other phone services and systems, such as a conference bridge that allows dozens of people or more to participate in a single multi person phone call. Both programs are free, and work on many types of computers. They both allow users to make free calls over the Internet, an important point that I'll come back to shortly. Both programs are available for many platforms, and are very easy to install and use.
Both programs also support instant messaging and video calling, so you can use them in many ways:
- Students can dial into a voice conference bridge over the Internet to listen to class, ask questions, etc (Gizmo is best for this, as it can dial into any phone system that supports SIP, a standard for making phone calls over the net).
- Students can submit questions to the conference leader via IM, if for example the conference bridge is muted so only the teacher can talk. Yes, they'll be passing notes to each other during class, nothing you can do to stop that.
- Video calling is useful for 1-1 conversations, especially if there is a visual aspect to the discussion, like explaining a trigonometry problem for example.
In general, if you will be doing this in conjunction with voice calls, I recommend Gizmo over Skype because Skype does not support common standards for Internet phone calls.
Building A High Capacity Conference Bridge
To effectively host an online class, you will need a teleconferencing bridge so everyone can gather to listen to a lecture and/or ask questions. While you can 'rent' teleconferencing service by the minute, a school system that has shut down all of its facilities may need to accomodate thousands of callers, and at 5-10 cents/minute per caller, that can become very expensive very quickly. There are 'free' conferencing services, but they are generally small companies that operate out of telephone switches located in rural locations (you have to make a long distance call to join the conference), and often have limited capacity. This is the one piece that is hard to do in an economical way.
In this article, I explain in general in general terms how you can build your own systems to host conference calls, with capacity to handle thousands or tens of thousands of people if needed, by using a combination of open source telecom software, and scalable on-demand computing services, also known as cloud computing or grid computing. I am also appending a directory of consultants who can help you set up and manage these systems (if you are a VoIP expert and are experienced with Asterisk and Freeswitch, email me at bsmcconnell on gmail and I'll be glad to add you to the list).
High Capacity Conferencing
Even a relatively small school district or university may have thousands of students who will need to dial into a conferencing system, and for extended periods of time. This becomes expensive with conventional systems due to access charges. A better solution is to set up Voice over IP based conferencing systems, and have students dial in using free Internet phone software (Gizmo is especially useful for dialing into these systems). This allows you to provision standard issue servers as conferencing systems, and to bypass using the public telephone network to dial into the system (which avoids access and toll charges both for you and for the students dialing in).
Freeswitch, an open source telephony platform, supports conferencing as part of its standard configuration (as does Asterisk, an open source phone system). Freeswitch is probably the better of the two for high capacity systems, and should be able to handle several hundred callers on a fast server with a decent amount of memory (> 2GHz CPU, > 2GB of RAM). Sizing these systems is somewhat tricky because capacity is affected by a number of fairly obscure factors, such as what type of audio compression is used, if any, system speed and memory, and so on.
If you don't have spare servers and a data center, no problem, this is an example of where on-demand computing services, Amazon Web Services in particular, will save the day. AWS allows you to buy computing the same way you buy electricity, as you need it. With AWS, you can configure dozens or hundreds of virtual servers, which you only pay for when they are activated (at a cost of $0.10 to $0.80/hour per server depending on its performance characteristics). What you or your consultant can do then is to build out an array of servers, install Freeswitch, and leave them dormant until they are needed. (I've included some notes on pricing below).
Each virtual server will have its own Internet hostname (you use a service called DNS to manage this). You can give it an easy to remember name like kennedybuilding.yourschool.xyz.edu). Students and teachers then use Gizmo to dial firstname.lastname@example.org for Room 102. If you name them so they mirror existing schools and building names, it will be easy for students to translate their existing class schedule into the virtual system.
(For telecom/IT consultants), you should configure the AWS servers as follows:
- Run Linux with a Freeswitch AMI (machine instance, there are several available already)
- Assign one elastic IP address to each server
- Make sure ports associated with the SIP protocol are not blocked by the firewall
- Instead of trying to build an elaborate, load balanced system, create a user friendly DNS entry for each server (e.g. buildingname.schoolname.parentdomain.edu)
- Configure Freeswitch so all incoming calls to a username@machinename SIP address are dropped into a conference call corresponding to the username portion of the address, use default settings for managing the calls
- Set up a how to page with links to Gizmo downloads and dialing instructions, so students and teachers can easily get the software and know what addresses to dial to join calls, send IMs, etc
If you don't understand the above paragraph, that's OK, I'll be using this article as a directory of consultants who can help you build this, either on Amazon or using similar facilities elsewhere (you can implement this in any country with developed internet infrastructure and good residential Internet availability, broadband is nice to have but not a must have for voice only calls). I'll be updating this post frequently to point to the latest resources, turnkey server images, and other resources that consultants can use to reduce busy work.
Making Virtual Classrooms Easy To Find
Since you'll probably be doing this in a hurry and may be forced to improvise, here are a few tips for making the system easy to find and use.
- Set up a FAQ page that links to whatever programs the students and teachers need to use. If you're using Gizmo for conference calls, and something else for sharing documents, make sure it's easy for people to find what they need from a single, easily shared page.
- Use DNS (the Domain Name System) to create user friendly host names for your conference bridges. I suggest setting up one server for each building on each campus. This is a way to to spread users out so they don't all try to use one system, and to create a simple address scheme, where users call sip:email@example.com to join classroom 302 in Kennedy Hall, just like the real world.
- Set up IM handles in a similar way, although you might want to use handles like classname.schoolname@imnetwork or teachername.schoolname@imnetwork, again so it's easy for people to find each other in this virtual environment.
- Don't over engineer solutions. A simple conference bridge, IM network, and some document sharing services will do the job. Remember this is not intended to recreate the real world environment, just to provide an acceptable fallback for some period of time while a building is closed.
- Don't expect perfect reliability. The goal is an acceptable solution that does not cost an unreasonable amount of money that can be hastily activated and then retired when it's not needed. Don't let perfect be the enemy of good enough.
In normal situations, where closures are not all happening concurrently (for example a local flood closes a few buildings), a conventional conferencing solution should work OK, especially if you can get flat rate pricing. The point of this article is to encourage large institutions, school systems, etc to develop an autonomous conferencing capability, so if they need to do something like this on a large scale, they won't run into problems when 5000 people try to call a service provider that only has capacity for 2000 (in short, to build their own surge capacity).
If you host this on Amazon Web Services, this will be very inexpensive, especially if you never need to activate the service, as Amazon charges purely on a usage basis, by computer-hour, and by bandwidth. Charges for server time range between $0.10 to $0.80 per hour, so figure $2.40 to $19.20 per day per server, with each one able to handle up to several hundred concurrent callers. Bandwidth costs about $0.20/Gigabyte. Voice calls use relatively little bandwidth. A Gigabyte is equivalent to almost 24 hours of continuous conversation using high quality audio (wideband). So if each student spends an average of six hours dialed into virtual classes per day, that will work out to about $0.05/student per day. Consultants will add their own monthly and hourly fees for building and managing these tools for you, so those costs will vary. In any case, the cost of this type of facility versus the cost of being completely inaccessible for days at a time is minimal. And as I pointed out, if you never activate the systems, you won't incur substantial computing or usage fees.
Freeswitch and Asterisk Consultants & Conferencing Providers
If you are experienced with Freeswitch and Asterisk, as well as grid computing environments such as Amazon Web Services, email bsmcconnell on gmail with your company's website, description of your focus/services/etc and location, and I'll be glad to add you to this list. You should be willing to work with clients on a consulting basis to build on-call systems that can be activated when needed (conventional toll-free based conferencing systems will not be economical for school systems to use on a large scale).
David Frankel (ZipDX, firstname.lastname@example.org) : David's company ZipDX, has developed a high definition (high quality audio) conferencing service for businesses. He's a good resource as he is an expert in IP based conferencing and telecom in general, and his company offers high quality, metered rate conferencing service for business clients. They do not offer the type of on-demand backup system I am describing at present but could do so, and David welcome's inquiries. (Disclosure: I was once a distributor for Jetstream, one of David's previous ventures, back in the 1990s).
Vapps (aka HiDef Conferencing) : offers high capacity, high quality conferencing over IP based networks, notably Skype. They offer straightforward flat rate pricing with unlimited minutes, so you can buy a group of a 25 or 50 person conference rooms for use in virtual classes, pay $X per month per room and be done with it. Contact Ben Lilienthal (email@example.com) for more information if you're looking for a quote (for smaller projects, you can sign up online on the standard rate card).
[... email bsmcconnell on gmail ... if you are experienced in IP based teleconferencing and are interested in helping clients set up on demand systems for use in a backup or disaster recovery scenario ]