5.18. Conferencing with Asterisk

One of the reasons you're using Asterisk is to get inexpensive, easy conferencing. The commercial conferencing services cost a lot, and trying to do it yourself with traditional PBX systems is usually difficult. So, how do you set up conferencing with Asterisk?

There are two types of conferences: local conferences inside your LAN, and conferences with people outside your organization.

Using conferencing (or meetme, as it's often called), inside the LAN is as easy as falling asleep. This is a sample /etc/asterisk/meetme.conf configuration that sets up three conference rooms:

	;;/etc/asterisk/meetme.conf
	[general]

	[conferences]
	; Usage is conf => [conference number][,pincode]
	; Pincodes are optional
	conf => 8000,1234
	conf => 8001,4567
	conf => 8002,7890

Create extensions for the conference rooms in the [local-users] context in /etc/asterisk/extensions.conf:

	;conference rooms 8000, 8001, 8002
	exten => 8000,1,Meetme(${EXTEN})
	exten => 8001,1,Meetme(${EXTEN})
	exten => 8002,1,Meetme(${EXTEN},,7890)

Do the usual:

	asterisk1*CLI> dialplan reload

And give your new conference rooms a test-drive. You'll be greeted by the voice of Allison Smith, who will ask you for the pincode and tell you how many people are present in the conference. The example for room 8002 enters the pincode for you.

What if you want people outside of your LAN to join the conference? As long as they have the conference number and pincode, and your incoming context includes the conference room extension, all they do is call your office the normal way, then enter the extension and passcode.

The extension that you set up to dial the conference room doesn't have to be the same as the conference room number because the room number is an option for the MeetMe application, like this:

	exten => 100,1,Meetme(8000)

Another way to set up conference rooms is to create a single extension for all conference rooms, like this:

	exten => 8000,1,Meetme()

You can use this single extension for all conference rooms because users will be prompted for both the room number and the pincode. You can limit access further with contexts. For example, you could have two separate user contexts, and each group gets its own conference room:

	[developers]
	exten => 8001,1,Meetme(${EXTEN})

	[accounting]
	exten => 8002,1,Meetme(${EXTEN})