Posts Tagged fax
More Fax, More Features
Aloha,
In Digium’s continuing quest to deliver you, our users of Free Fax For Asterisk, and our customers of Fax For Asterisk, with the best possible solution, we are pleased to announce the availability of version 1.2 of…(drum roll without suspense) Fax For Asterisk.
How has this version improved? Why, with new features, of course, hence the title of this blog post.
New features include:
- DAHDI Buffer Policy Implementation -Currently requiring the trunk version of Asterisk, in addition to the 1.2 release of Fax For Asterisk, new dialplan functions to allow the setting of buffer policies to prevent fax failures on higher latency systems, e.g.:exten => 1234,Set(CHANNEL(buffers)=”12,half”)where “12″ represents a number of buffers (each buffer is 20ms), configurable between 4 and 32, and where “half” represents the policy implementation, configurable as “immediate,” “full,” or “half.”
To use, simply set your buffer policy in your dialplan before any send/receive fax operation across a DAHDI channel.
- SIP Fax Detection Options -At present, also requiring the trunk version of Asterisk in addition to the 1.2 release of Fax For Asterisk, new options are available related to T.38 session initiation. Older releases of Fax For Asterisk only detect T.38 fax upon the receipt of CNG. In practice, we’ve discovered that a number of T.38 providers send T.38 invites immediately, and never send CNG to initiate a T.38 session. Thus, the faxdetect option in sip.conf can now be set to:no – To disable all fax detectioncng – To trigger fax detection based on the receipt of a CNG tone
t38 – To trigger fax detection based on the receipt of a SIP T.38 invite, without CNG tone
yes – To trigger fax detection based on the receipt of either a CNG tone or a SIP T.38 invite.
These changes should improve our compatibility with the wild, wild west of T.38 implementations.
- New CLI Commands -New Asterisk command line interface commands are available to display the settings configured in res_fax and res_fax_digium, simply run:fax show settingsto see your current settings.
- Asterisk CLI Type Column -A “Type” column is now displayed when “fax show sessions” is run on the Asterisk CLI, informing the user whether the fax is of type “G.711″ or of type “T.38.”
- ECM Configuration per Provider / Peer & Configuration Moved -Error correction mode may now be configured on a per provider / peer basis. This proves useful in the case that a provider does not implemented T.38 ECM properly. Digium has observed that ECM must be disabled for T.38 faxing to work properly with Gafachi.Configuration of error correction mode has moved from res_fax_digium.com into the res_fax.conf configuration file. Note that the default setting is still to enable ECM.
- SendFax initiate T.38 re-invite -Digium observed that a number of providers or far-end systems did not send a T.38 re-invite and instead waited for the local system (Asterisk) to send it instead. The SendFax application now supports the “z” option to enable this feature. If the “z” option is set during a SendFax, then res_fax will initiate the T.38 re-invite if it is not received in 10 (ten) seconds from the far end. Digium observed that the “z” option must be used for T.38 faxing to work properly with Gafachi.
- Send / ReceiveFax G.711 Fallback mode -A new fallback option “f” has been added to the SendFax and ReceiveFax applications. In the event that T.38 negotiation fails, enabling this option will cause Asterisk to revert to audio fax mode. Digium has observed this is required for some providers, like BroadVox, who provide T.38 for inbound faxing, but accept only audio faxing for outbound.Please note that audio faxing over the Internet is very unreliable, and Digium cannot provide support for fax failures due to poor Internet connections.
- New Debugging utilities -In order to make debugging easier, we’ve added two new command line capture options, one for audio faxes and one for T.38 faxes.For audio capture, do “fax set g711cap on” in the Asterisk CLI and a stereo wav file will be created for each fax session. The resulting files will be saved in /var/log/asterisk/g711cap. To stop capture, do “fax set g711cap off.”For T.38 capture, do “fax set t38cap on” in the Asterisk CLI and a Wireshark compatible pcap file will be created for each fax session. The resulting files will be saved in /var/log/asterisk/t38cap. To stop capture, do “fax set t38cap off.”
Ready to upgrade? Run right over to the Fax For Asterisk Download Selector and grab the new release.
As always, we thank you for your support.
Cheers.
FreePBX 2.7 Is Final
I’m excited to announce FreePBX 2.7 Final available for immediate download. We have over 2000 systems running 2.7 at the time of this posting and continue to see more features and increased stability as FreePBX evolves. The bugs encountered during this release were minimal and most of those addressed in the bug tracker were already existing bugs from earlier releases fixed during this Milestone (and most of those not back ported to 2.6.
The biggest changes in 2.7 were around the Fax handling and the new FAX module which provides a much more intuitive GUI for dealing with FAXes with both shared voice/FAX DIDs that require detection or dedicated FAX DIDs. It also introduced support for FAX For Asterisk (FFA) in addition to the legacy support for spanddsp based FAX reception. You can get more details about the changes in the 2.7.0 Beta1 Release announcement.
Outside of FAX, you can see a more comprehensive list of features and bugs addressed as well as an overall summary in the 2.7 Milestone along with direct links and stats to all 142 closed Feature Request and Bug tickets addressed during this run!
A few highlights include some great enhancements to Queues and Backup, as well as additional abilities in Outbound Routes, Follow Me, Ring Groups, Trunks and Conferences to name just a few. If you are particularly interested in Queuesyou may want to have a look at the recent Heavy Queue Usage in FreePBX Technical Corner article we just put out which talks about various advanced capabilities in the Queue module that may be of interest.
With 2.7 now final it means that FreePBX 2.5 is now off support so if you are still running 2.5 or older versions, you may want to seriously think about an upgrade plan. The project’s support policy is to support the current and previous major releases.
We have started to compile up a list of what we want to target for our next v2 release and you can see the plans as they evolve in the 2.8 Milestone. More to come on that as we better define it. We will also be working hard to get our v3 General Preview Release Candidate out with support for both Asterisk and FreeSWITCH. It has been available as a Developer release since last August and is now getting to the point where we will be able to get more user feedback to really shape its development going forward!
For now go have fun with all the great new stuff we are getting out to all of you and we will be back shortly with more news to come!
Philippe – On behalf of the FreePBX Team!
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!
A Preview of Elastix 2.0

Elastix - The reliable PBX appliance software
It has been a while since the release of Elastix 1.0. There have been a lot of ideas since then that were scheduled for the next release. Meanwhile, we released the Call Center and Developer modules as GPL and a lot of other useful add-ons. These releases have brought satisfaction to all of us in Elastix. Our community has grown and our downloads are almost half a million in total.
Finally, the wait for Elastix 2.0 is over, and time for new ideas has come. We have started development of this new version and we will try to include as many ideas and suggestions from the community as possible.
For those of you that just can’t wait, here is a preview of some of the main features that have been scheduled for Elastix 2.0:
- Asterisk 1.6
- Elastix Operator Panel release
- Meeting / Presentation sharing
- Advanced reports
- Improvements to the Call Center Module
- Better integration between all components
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.
Asterisk says Hello to Fax
If you ask Google about faxing for Asterisk, with the search keywords asterisk and fax, and you ask Google to omit similar entries, you’ll end up with 52 pages of results.
If you ask Google how many times fax has been mentioned on an Asterisk mailing list, by setting the site parameter to lists.digium.com, then Google tells you there are 1120 utterances.
Yesterday, if you asked Digium for help in faxing documents through Asterisk, we’d have apologized and said that we didn’t offer a fax solution for Asterisk.
That was yesterday.
Today, Digium is pleased to announce Fax For Asterisk.
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.
Wait, I’ve forgotten something…okay, not really. There’s also Free Fax For Asterisk. Free Fax For Asterisk provides a single-channel only, per Asterisk, version of Fax For Asterisk, for free. Want to use Free Fax For Asterisk now? Visit the Digium webstore and get a license, free of charge.