The Digium Phone Module for Asterisk and the g729a, silk, siren7 and siren14 codec binary modules hosted at downloads.digium.com can now be automatically downloaded and installed during the Asterisk install process. If selected in make menuselect under the ‘External’ sections of ‘Resource Modules’ and ‘Codec Translators’ respectively, ‘make install’ will check the downloads.digium.com web site for the correct version of the tarball and download and install it if needed. The ‘–with-externals-cache’ option to ./configure can be used to specify a location to cache the latest tarballs so they don’t have to be re-downloaded for every install.

This new capability can be extended to custom binary modules. Simply create or update the category’s module info xml file with a new ‘member’ element describing the external module. Here’s an example from codecs/codecs.xml:

<member name="codec_g729a" displayname="Download the g729a codec from Digium. A license must be purchased for this codec. See https://downloads.digium.com/pub/telephony/codec_g729/README."> <!-- Tell the installer this is an external module --> <support_level>external</support_level> <!-- xmlstarlet is required for the downloader to parse the module's manifest file --> <depend>xmlstarlet</depend> <defaultenabled>no</defaultenabled> <!-- 'remote_url' is the location of the module's base directory --> <member_data><downloader remote_url="https://downloads.digium.com/telephony/codec_g729"/></member_data> </member>

The module’s remote directory structure must follow that of the modules on downloads.digium.com and must contain a similar manifest file. With that, the module should be downloaded and installed as the standard ones are.