I recently have had prospective clients ask about HD voice/G.722, so I figured I’d experiment and see if it’s supported in Elastix.  Turns out Elastix 2.3+ certainly supports G.722, and it’s quite simple to enable without using the command line or manual configuration of .conf files.  There’s a noticeable quality difference with G.722 versus G.711 with the same bandwidth overhead as G.711.  Note that few SIP providers support HD voice to the PSTN.  I use Vitelity pretty much exclusively for my trunks and they max out at G.711.  Callcentric and other providers support SIP to SIP trunking with G.722.

To enable G.722 in your Elastix system perform the following steps:

  1. You’ll need to enable the unembedded FreePBX interface first.  Logon to Elastix and pull down the right arrow as shown below, selecting “Security”elastix_security
  2. Select “Advanced Settings” in the “Security” menu.  Turn the slider on to enable the FreePBX admin and assign a password to it.elastix_advanced
  3. Now that you’ve enabled the FreePBX web admin, go into it by selecting the “PBX” menu at top, and clicking on “Unembedded FreePBX” on the bottom left.unemb_freepbx
  4. Logon using the username “admin” and the password you assigned in step 2.
  5. Once logged into the FreePBX web admin, click on the “Tools” tab and “Asterisk SIP Settings” as shown below.elastix_freep
  6. At the “Asterisk SIP Settings” screen, unselect ALL codecs and click “Submit Changes”.freep_sip
  7. VERY IMPORTANT!  You will now be adding codecs ONE AT A TIME in order of preference.  First select “g722” and select “Submit Changes”.  Then select each codec individually (again ONE AT A TIME) in order of preference.  i.e. “ulaw”, then “Submit Changes”, “alaw” then “Submit Changes”, “gsm” then “Submit Changes”, etc.
  8. Once this is complete you can click the “Apply Settings” on the orange bar at top.  You should see the codecs in the order you selected them, like this with “g722” as the left-most, highest priority entry:freep_select_cod
  9. Ensure that your phones have the G.722 codec enabled and are the first preference (must support HD voice, or G.722).  I use a Cisco SPA504g and it supports it, as do many newer SIP phones.  ATA devices DO NOT support G.722!
  10. Test your installation to make sure your phone is using the codec, by logging into your Elastix box via SSH.  Make a call to voicemail, a conference bridge or whatever on your system and keep it active for the next step.
  11. While on an active call call, run the command “asterisk -r” and then do a “sip show channels”.  If your phone is using G.722 you’ll see this in the output like below (notice extension 1200 is using codec/format g722):Screen Shot 2013-01-22 at 1.38.36 PM

That’s it, you’ve successfully enabled G.722 – let me know your thoughts in the comments section!  Enjoy!

Note: once you’ve enabled g722 in FreePBX you can turn it off in Elastix, Security.

Tagged with:  

I recently setup a hosted Elastix PBX (Asterisk) in conjunction with three Cisco SPA 5xx phones and couldn’t find a simple instruction set to get shared line appearances / bridged line appearances working.  I have created this tutorial to show you how to make this happen in less than 5 minutes. The following will allow you not only to see the bridged appearance, but use the button as a transfer destination and to pickup ringing calls on the appearance as well!

Step 1: Configure your Elastic PBX

  • Login to your Elastix PBX and select the PBX tab.
  • Now select Extensions.
  • Pick the extension you wish to “share” or “bridge” and assign a call group and pickup group.  In the example below you can see that I have set the pickup group and call group to “1”.  Hit the “Submit” button at the bottom of the page, and “Apply Your Configuration Changes” to Asterisk/Elastix.
  • Now pick the Extension you wish to connect to the shared or bridged extension and make sure that it is a member of the same call and pickup groups as displayed above. Basically both the source extension and the bridged extension should look like the above.

Step 2: Configure your Linksys or Cisco SPA phones:

  • NOTE: It is IMPERATIVE that you are using “Ext 1” as your primary SIP extension or this will NOT WORK!  If “Ext 1” is disabled you will never get this working!  You’ve been warned.
  • Login to the web interface of your Cisco or Linksys phone. Click on Admin Logon, then click Advanced.
    In this example we will be configuring a Cisco SPA 504G.  Please make sure that you are on the LATEST firmware.  My phones are running the latest 7.4.9c.
  • The first step is to configure the phone as an “Asterisk” phone by changing the configuration parameters in the “Attendant Console” or “Attendant Keys” section.  You will also need to assign the “Attendant Console Call Pickup Code to “*8”to match the Elastix feature code configuration as displayed below.


  • Click on the “Ext 1” tab and scroll down to “Dial Plan”.  Add a “*8xxxx” code (“*8xxx” for 3 digit extensions, or “*8xxxx” for 4 digit extensions) in your dial plan for “Ext 1” so that your bridged phone can pickup ringing BLFs.  See the example below:


  • Now, the last step.  Actually adding the bridged appearance to the destination phone.  Click on the “Phone” tab and pick the desired Line Key you wish to have your bridged appearance on.  In the example below you’ll see that I’m bridging extension 1100.  Set extension “Extension” to “Disabled” and set “Shared Call Appearance” to “Private”.
  • For the “Extended Function String” use the following syntax, replacing 1100 with the source extension you wish to bridge:fnc=sd+blf+cp;sub=1100@$PROXY;usr=1100@$PROXY;nme=1100Here’s what it looks like in the SPA interface:


  • Congratulations, you’re done!  Now commit the settings to the phone by clicking “Submit All Changes” button at the bottom of the page.

If you need to troubleshoot whether this is working, you can go into the asterisk console (“asterisk -r”) and type “core show hints”.  Every extension that is connected to the source extension is considered a “Watcher”.  In the example below there are 2 extensions bridged to extension 1100.

You are now a Cisco/Linksys SPA bridged/shared line appearance expert!

Update: Thanks to David’s comment below, we can bridge other extensions like so:

I discovered you can actually get the BLF working on alternate extensions by adding “vid=x” (where x is the phone’s Ext #) to your extended function field.

So, if you have Ext 2 configured, and want your BLF to work for Ext 2’s proxy, use:


Web Hosting