Archive for category codecs
Asterisk 1.8.7.0 Now Available
The Asterisk Development Team announces the release of Asterisk 1.8.7.0. This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk/
The release of Asterisk 1.8.7.0 resolves several issues reported by the community and would have not been possible without your participation.
Thank you!
Please note that a significant numbers of changes and fixes have gone into features.c in this release (call parking, built-in transfers, call pickup, etc.).
NOTE:
Recently, we were notified that the mechanism included in our Asterisk source code releases to download and build support for the iLBC codec had stopped working correctly; a little investigation revealed that this occurred because of some changes on the ilbcfreeware.org website. These changes occurred as a result of Google’s acquisition of GIPS, who produced (and provided licenses for) the
iLBC codec.
If you are a user of Asterisk and iLBC together, and you’ve already executed a license agreement with GIPS, we believe you can continue using iLBC with Asterisk. If you are a user of Asterisk and iLBC together, but you had not executed a license agreement with GIPS, we encourage you to research the situation and consult with your own legal representatives to determine what actions you may want to take (or avoid taking).
More information is available on the Asterisk blog:
http://blogs.asterisk.org/2011/09/19/ilbc-support-in-asterisk-after-goog…
The following is a sample of the issues resolved in this release:
- Added the ‘storesipcause’ option to sip.conf to allow the user to disable the setting of HASH(SIP_CAUSE,) on the channel. Having chan_sip set HASH(SIP_CAUSE,) on the channel carries a significant performance penalty because of the usage of the MASTER_CHANNEL() dialplan function.We’ve decided to disable this feature by default in future 1.8 versions. This would be an unexpected behavior change for anyone depending on that SIP_CAUSE update in their dialplan. Please refer to the asterisk-dev mailing list more information:http://lists.digium.com/pipermail/asterisk-dev/2011-August/050626.html
- Significant fixes and improvements to parking lots.
(Closes issues ASTERISK-17183, ASTERISK-17870, ASTERISK-17430, ASTERISK-17452, ASTERISK-17452, ASTERISK-15792. Reported by: David Cabrejos, Remi Quezada, Philippe Lindheimer, David Woolley, Mat Murdock. Patched by: rmudgett) - Numerous issues have been reported for deadlocks that are caused by a blocking read in res_timing_timerfd on a file descriptor that will never be written to. A change to Asterisk adds some checks to make sure that the timerfd is both valid and armed before calling read(). Should fix: ASTERISK-18142, ASTERISK-18197, ASTERISK-18166 and possibly others.
(In essence, this change should make res_timing_timerfd usable.) - Resolve segfault when publishing device states via XMPP and not connected.
(Closes issue ASTERISK-18078. Reported, patched by: Michael L. Young. Tested by Jonathan Rose) - Refresh peer address if DNS unavailable at peer creation.
(Closes issue ASTERISK-18000) - Fix the missing DAHDI channels when using the newer chan_dahdi.conf sections for channel configuration.
(Closes issue ASTERISK-18496. Reported by Sean Darcy. Patched by Richard Mudgett) - Remove unnecessary libpri dependency checks in the configure script.
(Closes issue ASTERISK-18535. Reported by Michael Keuter. Patched by Richard Mudgett) - Update get_ilbc_source.sh script to work again.
(Closes issue ASTERISK-18412)
For a full list of changes in this release, please see the ChangeLog:
Thank you for your continued support of Asterisk!
Asterisk 1.8.7.0-rc2 Now Available
The Asterisk Development Team announces the second release candidate of Asterisk 1.8.7.0. This release candidate is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk/
The release of Asterisk 1.8.7.0-rc2 resolves several issues reported by the community and would have not been possible without your participation.
Thank you!
Please note that a significant numbers of changes and fixes have gone into features.c in this release (call parking, built-in transfers, call pickup, etc.) and a testing focus on those particular areas would be appreciated.
NOTE:
Recently, we were notified that the mechanism included in our Asterisk source code releases to download and build support for the iLBC codec had stopped working correctly; a little investigation revealed that this occurred because of some changes on the ilbcfreeware.org website. These changes occurred as a result of Google’s acquisition of GIPS, who produced (and provided licenses for) the
iLBC codec.
If you are a user of Asterisk and iLBC together, and you’ve already executed a license agreement with GIPS, we believe you can continue using iLBC with Asterisk. If you are a user of Asterisk and iLBC together, but you had not executed a license agreement with GIPS, we encourage you to research the situation and consult with your own legal representatives to determine what actions you may want to take (or avoid taking).
More information is available on the Asterisk blog:
http://blogs.asterisk.org/2011/09/19/ilbc-support-in-asterisk-after-goog…
The following is a sample of the issues resolved in this release candidate:
- Fix the missing DAHDI channels when using the newer chan_dahdi.conf sections for channel configuration.
(Closes issue ASTERISK-18496. Reported by Sean Darcy. Patched by Richard Mudgett) - Remove unnecessary libpri dependency checks in the configure script.
(Closes issue ASTERISK-18535. Reported by Michael Keuter. Patched by Richard Mudgett) - Update get_ilbc_source.sh script to work again.
(Closes issue ASTERISK-18412)
More information at:
http://blogs.asterisk.org/2011/09/19/ilbc-support-in-asterisk-after-goog…
For a full list of changes in this release candidate, please see the ChangeLog:
Thank you for your continued support of Asterisk!
iLBC support in Asterisk after Google’s acquisition of GIPS
Recently, we were notified that the mechanism included in our Asterisk source code releases to download and build support for the iLBC codec had stopped working correctly; a little investigation revealed that this occurred because of some changes on the ilbcfreeware.org website. These changes occurred as result of Google’s acquisition of GIPS, who produced (and provided licenses for) the iLBC codec.
We’ve determined that the change necessary to fix Asterisk’s iLBC build process is rather trivial, and so we’re planning to make that change in Asterisk 1.8.7.0-rc2, and subsequently in 1.8.7.0. We are not planning on making new releases of Asterisk 1.4 and Asterisk 1.6.2, since they are in security-maintenance mode and this is not a security issue. Users who wish to make the same change on their own to their copies of those versions are of course welcome to do so.
As part of the process of determining what had broken here, we also became aware that the ilbcfreeware.org website no longer offers the iLBC license agreement it used to offer; this agreement was required by the iLBC licensors (GIPS) in order for users to safely distribute and use iLBC (and this is why the Asterisk project does not include the iLBC source code directly with Asterisk). The removal of this license agreement also occurred as a result of the Google acquisition, but as of this moment no alternative has been made available for those who wish to use the iLBC source code published in RFC 3951 (which Asterisk uses).
Google does have an alternative implementation of iLBC available as part of the WebRTC project, with a license that is compatible with Asterisk (and does not require written agreements from end users), but the codec_ilbc module in Asterisk cannot be built against the WebRTC implementation of iLBC. Until such time as we have an improved version of codec_ilbc, Asterisk users will have to continue using the RFC 3951 iLBC source code.
Unfortunately, that leaves Asterisk users in a bit of a bind; if they had already signed and sent in the GIPS iLBC license agreement, we believe they can continue to safely use the existing iLBC implementation. New users, though, do not have the option of agreeing to a license agreement that would allow them to use the RFC 3951 iLBC source code, as there is no mechanism to do that currently available.
We’ve contacted Google and they are aware of the dilemma, and have said that they will address it, but we don’t have a timeframe for when an alternative license mechanism will be available.
In summary, if you are a user of Asterisk and iLBC together, and you’ve already executed a license agreement with GIPS, we believe you can continue using iLBC with Asterisk. If you are a user of Asterisk and iLBC together, but you had not executed a license agreement with GIPS, we encourage you to research the situation and consult with your own legal representatives to determine what actions you may want to take (or avoid taking).
AsteriskNOW 1.7.1 now available with add-on installer module for FreePBX
AsteriskNOW 1.7.1 has been released with a new module for FreePBX that allows installation of Digium add-on software from within the web-based interface. Now there’s no command-line work to be done to get Digium’s G729 codec, Fax for Asterisk, HPEC, or Skype for Asterisk. We’ve also made some changes to make AsteriskNOW even friendlier for newcomers to the Asterisk community.
Together with the DAHDI configuration module that began shipping with 1.7.0, these modules make Asterisk administration even easier. Download AsteriskNOW today, and burn it to a CD or start it in a virtual machine. In minutes you can turn your computer into your next phone system!
Asterisk 1.8.0-Beta3 Now Available
The Asterisk Development Team has announced the release of Asterisk 1.8.0-beta3.
This release is available for immediate download at http://downloads.asterisk.org/pub/telephony/asterisk/
All interested users of Asterisk are encouraged to participate in the 1.8 testing process. Please report any issues found to the issue tracker, http://issues.asterisk.org/. It is also very useful to see successful test reports. Please post those to the asterisk-dev mailing list.
Asterisk 1.8 is the next major release series of Asterisk. It will be a Long Term Support (LTS) release, similar to Asterisk 1.4. For more information about support time lines for Asterisk releases, see the Asterisk versions page.
http://www.asterisk.org/asterisk-versions
This release contains fixes since the last beta release as reported by the community. A sampling of the changes in this release include:
- Fix a regression where HTTP would always be enabled regardless of setting.
(Closes issue #17708. Reported, patched by pabelanger) - ACL errors displayed on screen when using dynamic_exclude_static in sip.conf
(Closes issue #17717. Reported by Dennis DeDonatis. Patched by mmichelson) - Support “channels” in addition to “channel” in chan_dahdi.conf.
(https://reviewboard.asterisk.org/r/804) - Fix parsing error in sip_sipredirect(). The code was written in a way that did a bad job of parsing the port out of a URI. Specifically, it would do badly when dealing with an IPv6 address.
(Closes issue #17661. Reported by oej. Patched by mmichelson) - Fix inband DTMF detection on outgoing ISDN calls.
(Patched by russellb and rmudgett) - Fixes issue with translator frame not getting freed. This issue prevented g729 licenses from being freed up.
(Closes issue #17630. Reported by manvirr. Patched by dvossel) - Fixed IPv6-related SIP parsing bugs and updated documention.
(Reported by oej. Patched by sperreault) - Add new, self-contained feature FIELDNUM(). Returns a 1-based index into a list of a specified item. Matches up with FIELDQTY() and CUT().
(Closes #17713. Reported, patched by gareth. Tested by tilghman)
Asterisk 1.8 contains many new features over previous releases of Asterisk.
A short list of included features includes:
- Secure RTP
- IPv6 Support in the SIP Channel
- Connected Party Identification Support
- Calendaring Integration
- A new call logging system, Channel Event Logging (CEL)
- Distributed Device State using Jabber/XMPP PubSub
- Call Completion Supplementary Services support
- Advice of Charge support
- Much, much more!
A full list of new features can be found in the CHANGES file.
http://svn.digium.com/view/asterisk/branches/1.8/CHANGES?view=checkout
For a full list of changes in the current release, please see the ChangeLog:
http://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-1.8.0-beta3
Thank you for your continued support of Asterisk!
Fax For Asterisk 1.1.6 Release Announcement
Digium is pleased to announce the release of version 1.1.6 of its Fax For Asterisk product, a commercial grade FAX add-on module for open source Asterisk.
This release contains a number of significant improvements, including:
- Support for 64-bit Linux installations.
- Reduction in resource consumption, and increase in performance, of T.38 session handling.
- Simplification of session handling during transition from G.711 to T.38 mode.
- Adoption of the latest Asterisk T.38 negotiation API, ensuring interoperability with a wide range of T.38 endpoints.
Version 1.1.6 of Fax For Asterisk is available for immediate download at http://www.digium.com/en/docs/FAX/faa-download.php. Note that because this release uses the very latest T.38 negotiation mechanism in Asterisk, it is not compatible with all released versions of Asterisk. The Fax For Asterisk download selector lists the Asterisk versions supported by this release.
For more information about Fax For Asterisk, please visit the product page.
Thank you for your support!
Read the rest of this entry »
State of FAX (primarily T.38) in Asterisk trunk (planning for 1.8 release)
Over the past year, some of us at Digium have spent many (MANY) hours working on FAX support in Asterisk (even though we’d all prefer to see FAX go away as the obsolete technology that it should be <G>). Some of this work was part of our release of our commercial FAX for Asterisk product, some of it was driven by our desires to have solid FAX support in our commercial PBX products, but most of it was driven by the need to get open source Asterisk (and its community of users) able to use FAX reliably with as many non-Asterisk endpoints as possible.
In Asterisk 1.4 and prior releases, there was limited support for FAX of any kind; Asterisk 1.4 can pass through T.38 sessions on SIP channels, but that’s all. With an open source addon (based on Steve Underwood’s excellent spandsp library), it can have dialplan applications to send and receive FAX over audio (G.711 TDM) links.
During the development of Asterisk 1.6.0, Steve’s FAX dialplan applications were merged into asterisk-addons, and then directly into the Asterisk source tree, where they became the ‘app_fax’ module. In addition, the T.38 negotiation process was redesigned to allow Asterisk applications to actually be T.38 endpoints; this resulted in the ability to send and receive FAX over audio *and* T.38 links.
Once this got into the community’s hands, we started seeing large numbers of bug reports because users could not successfully FAX over T.38 with various ATAs and service providers. I won’t go into the gory details of why this was the case, except to repeat a recent quote from Steve himself on IRC: “The T.38 spec was written after a night of heavy drinking as a joke.”. While that’s not technically true, it is true that compliance with the T.38 recommendation, primarily in the SIP/SDP negotiations area, is very poor across the industry. Producing a T.38 endpoint that interoperates widely is a complex and difficult process, that can only be achieved through hours and hours (and hours) of testing.
As these problem reports got more severe, we took a significant step: we rewrote the T.38 negotiation mechanisms in Asterisk *again*. These changes first appeared in the 1.6.0.14 and 1.6.1.5 releases. The in-tree app_fax application was updated to support these changes along with them, so open source FAX users got the benefits of these changes immediately… and the result has been wonderful. We get very few T.38 negotiation-related bug reports now, and in nearly every case we can point to a misconfiguration or severely broken far endpoint that is the cause of the problem. For many, many people, FAX over T.38 in Asterisk 1.6.0 and 1.6.1 ‘just works’ now.
While all of this was going on, Digium was also working on our commercial Fax for Asterisk product, which provides comparable functionality to app_fax, but uses a commercial FAX stack. When we began the development of this product, we knew that we wanted as many portions of it as possible to end up open source, so rather than build it as a monolithic module, we built two modules: res_fax and res_fax_digium. res_fax is similar to app_fax, in that it provides dialplan applications, dialplan functions, and other associated components to send and receive FAX. However, it does not actually include any FAX stack; for that, it provides a plugin interface that allows one (or more) additional modules to be loaded to actually provide the FAX technology implementation. It *does* handle all T.38 negotiations, however, using the 3rd generation T.38 implementation in Asterisk.
Of course, res_fax_digium is Digium’s commercial plugin module for res_fax, and we have been delivering the combination of those two modules to our Fax For Asterisk customers for quite a few months now. (Unfortunately it has taken longer to get these modules updated to match Asterisk’s T.38 API than we would have liked, but that’s not important for open source users). Recently, with a final set of changes to the UDPTL stack in Asterisk, we’ve reached the point where we think we’ve implemented all the parts of the T.38 recommendation that we can implement, in as compatible and interoperable a way as we can, with a few configuration options that provide the ability to override broken behavior by far endpoints when necessary. In fact, the combination of the very most recent Asterisk open source releases and either app_fax or res_fax+res_fax_digium now successfully interoperates with quite a few T.38 ATAs we have in our lab and a couple of service providers, and we’re testing more of both as I write this. In nearly every case, this works *without* requiring any configuration changes in Asterisk or the FAX applications, which is good news for end users indeed. We’ve even extended (and fixed) the ‘faxdetect’ functionality in chan_sip so that it works as users expect it to, in a similar way to the faxdetect feature in chan_dahdi.
Now that this point has been reached, it’s time for us to act on our plan to open source res_fax; to that end, I’ve created a new branch in Subversion (/svn/asterisk/team/group/res_fax) based on Asterisk trunk, and merged the most recent version of res_fax into it, updating it to compile against trunk’s recent API changes. By the time Asterisk 1.8 is released, res_fax will *replace* app_fax, as it provides the identical dialplan applications (same names, options and operations), but has additional features and compatibility functionality. To achieve this, though, we’re going to need a res_fax_spandsp plugin module, so that the combination of res_fax + res_fax_spandsp provides the same functionality as app_fax did, and it will be a seamless transition for Asterisk 1.6.x FAX users to move to Asterisk 1.8 when they are ready. We’ve tasked one of our developers to start working on this over the next few weeks, and I’m sure you’ll see some initial steps toward that end shortly. For those of you who have contributed improvements to app_fax and use it heavily (or even those who just use it and can provide testing), I’d encourage you to post a comment in the thread on the asterisk-dev mailing list if you are interested and willing to assist in this effort.
Now, on to even more interesting stuff: as I’ve worked on this over the past 6-8 months, I’ve also spent time finally trying to understand how best to fit TDM-T.38 FAX relay into Asterisk. I know that there are number of community developers who have been working on this, and there are multiple patches in the issue tracker that provide this functionality in various forms. There was also an attempt by Daniel Ferenci to start a discussion on the asterisk-dev list about the best long-term approach for relay support, but he didn’t really get any responses.
Once res_fax and res_fax_spandsp are ready for users to use, it’ll be time for them to be extended to support FAX relay as well. I would like to propose that this be implemented by res_fax providing a new API, a ‘FAX relay session’, that a channel driver (one which services TDM channels) can use to offer T.38 support to the rest of Asterisk, as if it supported T.38 natively. We can start a separate discussion on the list to talk about particulars, but I believe this is the cleanest approach with the least impact on existing code in Asterisk, and I’d like to get opinions from other interested parties and discussion going.
In summary, it appears that Asterisk 1.6.x has achieved pretty solid FAX support (especially over T.38), and that with Asterisk 1.8 we’ll be able to improve it further and begin moving towards FAX relay support as well. For all of you who still insist on using this obsolete technology <G>, I hope this has provided what you need to be able to keep using Asterisk
in every place that it makes sense in your networks!
Fax For Asterisk

T.38 fax for Asterisk
Digium‘s Fax For Asterisk is a commercial facsimile (Fax) termination and origination solution designed to enhance the capabilities of Open Source and commercial Asterisk as well as Switchvox. Fax For Asterisk bundles a suite of user-friendly Asterisk applications and a licensed version of the industry’s leading fax modem software from Commetrex. Fax For Asterisk provides low speed (14400bps) PSTN faxing via DAHDI-compatible telephony boards as well as VoIP faxing to T.38-compatible SIP endpoints and service providers. Licensed on a per-channel basis, Digium‘s Fax For Asterisk provides a complete, cost-effective, commercial fax solution for Asterisk users.
Fax For Asterisk provides two components: res_fax and res_fax_digium. Res_fax is an Asterisk resource module that adds fax termination and origination functionality in Asterisk. It provides Asterisk dialplan functions and dialplan applications to enable the user to build highly-customizable fax solutions. Res_fax_digium provides core fax processing functionality in the form of several supported fax modems — V.21, V.27ter, V.29, and V.17 — to achieve speeds up to 14400bps.
Digium Releases TCE400B PCI-Express Transcoder Card

Digium TCE400B
Digium releases the TCE400B PCI Express card for use with voice applications based on the open source Asterisk telephony platform. The new card provides hardware-based voice compression and decompression (codec) capabilities to shift transcoding from software to hardware. Using the TCE400B in place of a software-only solution places fewer demands on servers and frees up Asterisk to more efficiently process calls and to provide functionality for phone systems such as call recording, conference calling and interactive voice response.
The TCE400B is a half-length, low-profile PCI-Express x1 card for transforming complex VoIP codecs into simple codecs. This product is, essentially, a PCI-Express version of Digium’s existing TC400B product.
G.729 and G.723.1 codecs x86 and x86_64 Linux and FreeBSD binaries for Asterisk open source PBX
DISCLAIMER: You might have to pay royalty fees to the G.729/723.1 patent holders for using their algorithm.
Sources
To compile the codecs you need Intel IPP libraries installed. Currently only Asterisk 1.4, 1.6 and TRUNK are supported. Support for Asterisk 1.2 and Callweaver is planned, for now use the binaries. Use “g723 debug” and “g729 debug” commands to print statistics about received frame sizes, can aid in debugging audio problems. You need to bump Asterisk verbosity level to 3 to see the numbers.
- asterisk-g72x-1.0-beta8.tar.bz2
- asterisk-g72x-1.0-beta7.tar.bz2
- asterisk-g72x-1.0-beta6.tar.bz2 – use beta6 for Asterisk 1.6.0.x only, use beta8 for everything else, including 1.6.1
Binaries
- choose codec binary appropriate for your Asterisk version and CPU type, use x86_64 for 64-bit mode, scroll to the end of the list for FreeBSD binaries
- delete old codec_g729/723*.so files (if any) from /usr/lib/asterisk/modules directory
- copy new codec_g729/723*.so files into /usr/lib/asterisk/modules directory
- restart Asterisk
- check the codec is loaded with ‘core show translation recalc 10′ on Asterisk console (‘show translation’ in Asterisk 1.2)
- G.723.1 send rate is configured in Asterisk codecs.conf file (Linux Asterisk 1.2, 1.4, 1.6, TRUNK and Callweaver, FreeBSD 7.x Asterisk 1.4 binaries only):
[g723] ; 6.3Kbps stream, default sendrate=63 ; 5.3Kbps ;sendrate=53
This option is for outgoing voice stream only. It does not affect incoming stream that should be decoded automatically whatever the bitrate is.
- in sip.conf or/and iax.conf configure the codec(s) either globally or under respective peer, for example:
disallow=all allow=g729
- for detailed information about Asterisk configuration visit voip-info.org
- in case of problems read Notes and Troubleshooting

