Linux Tutorial Web Site


Keith's Software and Tutorials Home Page
Knowledge Is Power

An Easy To Build
Free Conference Bridge



A conference bridge allows multiple users to all dial the same telephone number and all be connected together as if they were in a virtual conference room. A single conference bridge can have multiple "rooms" with each room having it's own telephone number. Typically, teleconference bridge functionality built into corporate telephone systems from manufacturers such as Nortel and Avaya were extremely expensive. They realize that conference calls can save companies a lot of money in time and travel so they charge a premium for the ability to host such calls. The most common alternative to expensive PBX manufacturer options are hosted teleconference services with either monthly subscription charges or per-minute/per-user charges which can also get expensive.

Asterisk, the open source software PBX, has long offered MeetMe conference bridge functionality. The problem is getting it to interface with your corporate telephone system. One common option is to interface an Asterisk system to a PBX using a SIP trunk. The option we'll use on this page is to set up an H.323 connection between Asterisk and an Avaya IP Office PBX. However, it should work for any PBX that supports H.323 connections. We chose to use an H.323 connection because it is a more robust protocol (should you wish to expand beyond simple audio teleconferencing to teleconferencing with video and white board capabilities at some point) and, on our phone system, it didn't require any additional licenses (we would have needed to purchase SIP licenses to use a SIP trunk).

There is an all-in-one version of Asterisk called AsteriskNow that includes not only the Asterisk PBX software but the CentOS Linux operating system and a Web-based GUI management interface for Asterisk called FreePBX. You simply boot off of an AsteriskNow DVD and everything you need for a fully-functional PBX system gets installed and mostly configured for you.

Here's all you'll need to do to get a conference bridge working with an H.323-capable PBX:
  1. Download the free AsteriskNOW DVD ISO image and burn it to a DVD.
  2. Install AsteriskNOW on PC or server.
  3. Use the FreePBX GUI management tool to configure a conference room.
  4. On the Asterisk server manually create an H.323 configuration file.
  5. On your PBX create an H.323 trunk.
  6. On your PBX create a short code (route).

Download AsteriskNOW

You can download the latest AsteriskNOW DVD ISO image from here. Naturally if you're going to be using an older PC you'll want to download the 32-bit version.

www.asterisk.org/downloads/asterisknow


Install AsteriskNOW

NOTE that installing AsteriskNOW will wipe out whatever is currently on the hard-drive.

The DVD you created using the image you downloaded is called a "Asterisk distribution" because it includes everything, the Linux operating system (CentOS), the Asterisk server application, the Apache Web server application to serve up the FreePBX Web pages, etc. etc. etc. Installing the software off of this one DVD will give you a complete Asterisk PBX server.

While even an older PC will work just fine to set up a test or small conference bridge, if you plan on setting up a production conference bridge that will see moderate to heavy use be sure to take into account the maximum number of simultaneous callers you'll have on the system. The number of rooms or the number of callers in a room doesn't matter as much as the number of all callers put together. If you're going to have 15 or more people simultaneously dialed into the system you'll want to install the software on some pretty respectable server hardware with a fast CPU and a lot of memory.

FreePBX Boot Menu
Screen shot courtesy of the AsteriskNOW Installation Page

Boot off the DVD and the AsteriskNOW installation menu will appear. With Full Install under the newest version already highlighted press Enter.

Linux IP Configuration
Screen shot courtesy of the AsteriskNOW Installation Page

The next screen requiring input is the "Configure TCP/IP" screen. If you're not accustomed to navigating text-based screens you'll want to press the tab key to move the small highlight to the asterisk in front of "Enable IPv6 support" and press the space bar to de-select it. Then press the tab key again to highlight OK and press Enter.

Linux Time Zone Configuration
Screen shot courtesy of the AsteriskNOW Installation Page

Likewise on the "Time Zone Selection" screen, press the tab key to highlight the list of time zones and use the up and down arrow keys to find yours. You typically won't find "Eastern" or "Central" so you have to select a city (such as Chicago for US-Central). Once you have your time zone city selected tab to OK and press Enter.

Linux Root Password
Screen shot courtesy of the AsteriskNOW Installation Page

Next you are prompted for a password. You will be prompted for two passwords during the installation and setup. This is the first one and it is for the Linux root account. On a Linux system root is the super-user account, like Administrator is on a Windows machine. You need this password to log into the system itself so don't forget what you enter here.
The second password you'll be asked for is for the FreePBX GUI management application. You'll not only be prompted for a password but for a user name as well. There's no reason you can't use "root" for that user name and the same password just to keep things simple.
At this point your work is done for the software installation part of the setup. All of the Linux, Asterisk, and FreePBX application packages will be installed automatically. The installation may seem like it hangs at various points, especially if you're using an older PC. Just be patient.

When the software installation completes the DVD will eject and the system will reboot. Be sure to grab the DVD out of the tray before the system reboots to prevent the system from booting off the DVD again and wiping out the installation you just completed.

After rebooting the installation routine pulls down application updates. It says it'll take a couple minutes but it actually takes considerably longer even with a fast Internet connection so if you have a slow connection it'll take awhile.

Once the updates are complete you'll be at the Linux login: prompt. At that prompt type in root and hit Enter and then type in the password that you entered during the software installation.

Linux Console
Screen shot courtesy of the AsteriskNOW Installation Page

Once you log in you'll be at what's called a "shell prompt" which is the Linux operating sytem waiting for you to enter a command. We'll be entering commands later but for now notice that just above shell prompt is the "Interface eth0 IP" address. This is the IP address the system got via DHCP during the install process. (eth0 is Linux-ese for the PC's ethernet network adapter. Linux starts numbering things at zero.) This is the IP addres you'll use to manage the system using the FreePBX GUI management interface and enter into an H.323 configuration file.


Configure a Conference Room

Go over to a Windows system that's on the same network as the Asterisk server, open a Web browser, and in the browser address line enter the Asterisk system's eth0 IP address we just mentioned above. This will pull up the FreePBX management GUI. This is where you have to enter that second password we talked about earlier. The very first time you go to this address you'll be prompted to enter a user ID, password and admin e-mail address for the FreePBX application. As mentioned earlier, feel free to use root as the user name and the same password you used earlier if you want.

Once an ID, password, and email address are entered a menu of applications is presented.

FreePBX Icons
Screen shot courtesy of the AsteriskNOW Installation Page

Click on the FreePBX Administration icon and you'll be prompted to enter the user name and password that you just created. A System Overview page will then appear. (You can bring up this same page at any time by pointing to Reports on the top menu bar and clicking on System Status.)

The FreePBX menu is along the top of the page. Point to Applications and click on the Conferences link to bring up the conference room configuration page.

Teleconference Setup

Enter the phone number for the conference room and a descriptive name. The PIN numbers are optional. If you specify an Admin PIN and have the "Leader Wait" option set to 'Yes' then the callers will not be able to communication with each other until the admin logs in. They'll be able to connect to the conference room but they'll just hear music (if you set the "Music On Hold" option to 'Yes') until someone with the Admin PIN logs in.

Set any of the other options you want. For instance, if the "User Join/Leave" option is set to 'Yes' the caller is asked to say their name when they log in and it is played back into the room when they join and leave the call.
When using PIN numbers you want to let everyone know what the User PIN is but keep the Admin PIN a secret and only give it to those who will be conducting the conference calls.
Click on the Submit Changes button near the bottom of the page and a red Apply Config button will appear next to the menu at the top of the page. Click on this button to apply the changes (which will reload the Asterisk application on the Linux system) and then click on the Logout button in the upper-right corner of the screen.

We're all done with the Web-based GUI management tool. The next step is done back on the Linux system running Asterisk.


Create An H.323 Configuration File

Luckily the ooh323 channel driver for H.323 connectivity gets loaded automatically in AsteriskNow so all we have to do is create a configuration file for the driver to use. Chances are likely the screen went into power save mode on the Linux system so just hit the backspace key to bring it back.

At the shell prompt type in the following command and press Enter to get into the directory containing the Asterisk configuration files:

cd /etc/asterisk

If you want to see how many configuration files there are type in ls and press Enter. There are no H.323 configuration files so we'll create one. At the shell prompt type in the following command and press Enter to open a new, blank text file in the nano text editor.

nano ooh323.conf

and type in the following lines. Recall that when we first logged in the system displayed the IP address of the eth0 interface that you used in the browser address bar to access the FreePBX GUI. Use that same IP address for the bindaddr value.

[general]
port=1720
bindaddr=10.24.66.68
disallow=all
allow=gsm,ulaw,alaw
dtmfmode=inband

[pbx]
type=friend
context=ext-meetme
host=172.20.1.18
port=1720

The 172.20.1.18 host entry is the IP address of the PBX. The ext-meetme context is the context created by FreePBX for conference rooms.

Press Ctrl-X to exit and press the y (yes) key to confirm saving the file and press Enter to confirm the file name and you'll return the shell prompt.

We're all done configuring things on the Asterisk side so reboot the system by typing in the following command at the shell prompt:

shutdown -r now

If you ever want to power down your PC intead of reboot it simply replace the -r with -P (that's an upper-case P). You never want to just turn off a Linux system.


Configuring the PBX

Naturally every PBX will be different on how you accomplish these, but the two tasks you need to complete are creating an H.323 trunk and creating a route for the DN (telephone number) you use for your conference room number (2663, which spells conf, in our example above). I'm using an Avaya IP Office system for examples on this page. While Avaya IP Office does come with conference bridge functionality it is very limited and is basically just like a Conference key on a telephone but allows more participants.
Note that you should only have to create a single H.323 trunk. If you plan on creating multiple conference rooms they each will have their own DN (phone number) and each DN will have it's own route but each route will all use the same H.323 trunk (in the case of IP Office the same "Outgoing Group ID").
On the left side of the Avaya IP Office system manager right-click on Line, point to New, and then click on H323 Line. On the VoIP Line tab the Line Number will be automatically assigned as will the Outgoing Group ID. You can change the Outgoing Group ID to a 3x, 4x or some other value simply to make it more distinctive. The Telephone Number is more of a descriptive field for the sake of identifcation and entering a number other than the one you used in the conference room properties will not cause a problem. If you create more than one conference room, i.e. have more than one telephone number using the H.323 link, you could list them all.

H.323 Line

The two entries for channel numbers will depend on the bandwidth of your IP connection between the PBX and the Asterisk system. If it's all on the same LAN and utilization isn't high you could probably set it at the max (250) value. Keep in mind these are not per-conference-room limits but a limit on all callers for all conference rooms that you will create.

On the VoIP Setting tab for the Gateway IP Address you'll enter the same PBX address that you entered for the "host" value in the H.323 configuration file on the Asterisk system.

H.323 IP Address

You'll also want to change the Supplementary Services drop-down to None. This will enable all of the check-boxes on the right side of the window, some of which were previously greyed out. Now un-check all of these check-boxes. Recall that in the H.323 configuration file on the Asterisk system we set the dtmfmode to inband which is why we have to uncheck the Out of Band DTMF check-box.

We don't do anything with short codes here so you can now save this line configuration. On an Avaya IP Office system a simple line setup like this requires a system reboot but don't do that just yet. Next we'll add a short code to route the calls for 2663 telephone number to the H.323 line we just configured.

Conference Bridge Route

On the left side of the IP Office system manager right-click on Short Codes and click on New. Here the Code is the phone number you used when you configured the conference room. In the Telephone Number field just put a period. This means that the system will use the value (phone number) that the user dialed, which will be the conference room number. Lastly, select the Line Group number that you entered in the properties of the H.323 Line that you just created. Now save the short code and save the system configuration and you'll be informed that the system has to be rebooted.

If you want to create additional conference rooms all you need to do is create the conference room on the Asterisk system using the FreePBX Web GUI and then add another short code on the PBX making sure the phone number for the new conference room is the same as the Code number in the new short code. (You'll use the same Line Group number in all additional short codes.) By the way, the phone numbers you use for each conference room are referred to as "extensions" in the Asterisk configuration files.


Testing and Troubleshooting

Once the PBX comes back up you should be able to place a call to your conference bridge telephone number and hear a prompt to enter a PIN number (if you entered one in the configuration). If you don't, you'll want to see if your calls are making it to the Asterisk system. Log into the Linux system with the root account and at the shell prompt type in:

asterisk -rvvvvvv

Asterisk is already running as a process. The -r indicates that you want to connect to this process. The multiple v characters (enter 5 to 8 of them) indicates that you want a high level of verboseness, i.e. that you want Asterisk to give you as much feedback as possible. When you hit Enter you'll be in Asterisk's shell with a *CLI> prompt. This is Asterisk waiting for you to enter a command but it will also display feedback messages when an action is taken. (Type in quit when you want to exit the Asterisk CLI.)

With the Asterisk CLI up, call the conference room number and see if lines start scrolling on the CLI display. It's important if lines do appear because it indicates that the call is making it throughto your Asterisk system. That would indicate your PBX and Linux H.323 configurations are correct. This eliminates half the potential issues right there.

These lines will tell you what Asterisk is doing about the call and may give you an error indicating what the problem is, particularly if it's a syntax issue because you mis-typed one of the lines we entered earlier. Your best friend in this situation is Google. Enter any error exactly and within quotes so Google searches for it as a continuous string. Some errors may not be anything service affecting but others may tell you what you need to correct.

If no text scrolls in the CLI interface double-check your ooh323.conf file for typos and if that's correct then there's likely an issue with your PBX configuration.

Cut Off Announcements

A problem I ran into was that the beginning of the voice prompts would get cut off. For instance, instead of hearing "Please enter the conference PIN number" I would hear "rence PIN number." I discovered that this can be remedied by adding a couple lines to the conference room configuration file on the Asterisk system.

HOWEVER, editing the configuration files on a system running FreePBX is not a good idea because every time you make a change using the GUI and apply the changes these files get re-created so any changes you make are lost. That's why you'll see Asterisk conf files with "_custom" in the name. These files don't get recreated and it's where you'd normally want to put your custom changes. Unfortunately changing these custom files won't work for us in this situation so if you need to add these statements to fix an announcement issue, only do so after you've created all of your conference rooms because you'll need to add the corrective statements for each room (each extension).

On the Asterisk system enter the following command to get into the directory with the Asterisk configuration files:

cd /etc/asterisk

Then open the configuration file in the nano text editor with the command:

nano extensions_additional.conf

Page-down the file and look for the Meetme context which starts with the following line:

[ext-meetme]

Below that you should see statement with your conference room(s) phone number(s) in them. Put the cursor at the beginning of the line that looks like this:

exten => 2663,n,Read(PIN,enter_your_conference_pin_number,,,,)

and hit Enter twice to create two blank lines above it. Then enter the following two commands on those blank lines using the approprite conference room phone number:

exten => 2663,n,Answer
exten => 2663,n,Wait(1)

Repeat this for any of your other conference room numbers in the [ext-meetme] context. When you're done press Ctrl-X to exit and press the y (yes) key to confirm saving the file and press Enter to confirm the file name and you'll return the shell prompt.

Now reboot the system by typing in the following command at the shell prompt:

shutdown -r now

Now when you call the conference room number you should hear the whole prompt. It has something to do with the VoIP line taking too long to get set up and the statements we added forces it up faster.

Just remember that if you ever make any changes to your FreePBX configuration that file may get overwritten and you'll have to add those statements again.


If you're a telecom worker check out my other page on building a speak-back box using Asterisk.


Keith's Home Page





Powered by Apache On Debian Linux


Contents, diagrams, and images    Copyright © 2004-2015    Keith Parkansky    All rights reserved.
Certain graphics, symbols, and terms used on this site and in its documents are registered trademarks
of their respective owners and are contained herein for identification purposes only.
No endorsement of this site, its contents, or its documents by these owners is expressed or implied.

LIABILITY
IN NO EVENT WILL KEITH PARKANSKY BE LIABLE TO ANY PARTY (i) FOR ANY DIRECT, INDIRECT, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR INFORMATION, AND THE LIKE), OR ANY OTHER DAMAGES ARISING IN ANY WAY OUT OF THE AVAILABILITY, USE, RELIANCE ON, OR INABILITY TO USE THE INFORMATION, METHODS, HTML OR COMPUTER CODE, OR "KNOWLEDGE" PROVIDED ON OR THROUGH THIS WEBSITE OR ANY OF ITS' ASSOCIATED DOCUMENTS, DIAGRAMS, IMAGES, REPRODUCTIONS, COMPUTER EXECUTED CODE, OR ELECTRONICALLY STORED OR TRANSMITTED FILES OR GENERATED COMMUNICATIONS OR DATA EVEN IF KEITH PARKANSKY SHALL HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, OR OTHERWISE; OR (ii) FOR ANY CLAIM ATTRIBUTABLE TO ERRORS, OMISSIONS, OR OTHER INACCURACIES IN, OR DESTRUCTIVE PROPERTIES OF ANY INFORMATION, METHODS, HTML OR COMPUTER CODE, OR "KNOWLEDGE" PROVIDED ON OR THROUGH THIS WEBSITE OR ANY OF ITS' ASSOCIATED DOCUMENTS, DIAGRAMS, IMAGES, REPRODUCTIONS, COMPUTER EXECUTED CODE, OR ELECTRONICALLY STORED, TRANSMITTED, OR GENERATED FILES, COMMUNICATIONS, OR DATA. USE OF THIS SITE CONSTITUTES ACCEPTANCE OF ALL STATED TERMS AND CONDITIONS.