|Table of Contents|
There are myriad VoIP phones on the market that people use with Asterisk. None of them are built specifically for Asterisk, so they don't take any particular advantage of Asterisk's applications. And, each one of them is too difficult to use.
Digium has designed phones to provide a superior user experience for everyone; from the person making the calls, to the person setting up the phone. Phones aren't hard, like everyone thinks they are, and they're not dumb terminals; instead, they're simple and smart.
A Digium phone can communicate with Asterisk, or with any other SIP-based system. In this respect, a Digium phone is somewhat like other SIP phones. In order to provide more than just the capabilities of a regular SIP phone, Digium makes available the Digium Phone Module for Asterisk (DPMA). The DPMA is a binary Asterisk module that provides a means of secure communication between Digium phones and Asterisk. This secure means provided by the DPMA is used by Asterisk to provision and manage Digium phones, and by the phones to directly access Asterisk's internals - leading to a richer set of phone applications, and happier users.
DPMA: What is it?
The DPMA is a binary Asterisk module that provides a means of secure communication between Digium phones and Asterisk. This secure means is used to provision and manage the phones and to provide direct access to Asterisk's internal applications. The DPMA is not required to use Digium phones, but offers a number of significant advantages. A single, free license is required for each Asterisk system running the DPMA. For more information on installation and configuration, please see the support pages for Digium phones.
DPMA Compatibility and Requirements
The DPMA is compatible with Asterisk 11.0, the open source Certified Asterisk releases of Asterisk 1.8, beginning with the asterisk-1.8.11-cert1 release, and with the "-digiumphones" branch of Asterisk 10, beginning with Asterisk 10.5.0. The DPMA is not compatibile with any other open source version of Asterisk.
The features outlined here are compatible with the latest releases of Asterisk 11, the Certified Asterisk 1.8, the "-digiumphones" branch of Asterisk 10, DPMA 1.5.1, and the latest Digium phone firmware release, 1.3.0
The DPMA requires both Avahi client and daemon and XML-parsing libraries to be installed on your distribution. Most distributions are already provided with these; and a typical compilation of Asterisk includes XML development libraries.
Attempting to load the res_digium_phone.so module on a system without the Avahi client libraries installed will present the following Asterisk ERROR message:
[May 23 05:01:26] WARNING loader.c: Error loading module 'res_digium_phone.so': libavahi-client.so.3: cannot open shared object file: No such file or directory [May 23 05:01:26] WARNING loader.c: Module 'res_digium_phone.so' could not be loaded.
The res_digium_phone.so module will not provide any indication that the Avahi daemon is not installed or running; rather, phones will not see the Asterisk server when it is running.
To install the Avahi client libraries and server daemon for a RedHat/CentOS-based system, run, from the Linux CLI:
sudo yum install avahi avahi-devel
To install the Avahi client libraries for an Debian/Ubuntu-based system, run, from the Linux CLI:
sudo apt-get install libavahi-client3 avahi-daemon
Attempting to load the res_digium_phone.so module into Asterisk that was not compiled with the XML development library installed will present the following Asterisk ERROR message:
[Feb 20 15:28:58] WARNING: loader.c:414 load_dynamic_module: Error loading module 'res_digium_phone.so': /usr/lib/asterisk/modules/res_digium_phone.so: undefined symbol: ast_xml_node_get_children [Feb 20 15:28:58] WARNING: loader.c:882 load_resource: Module 'res_digium_phone.so' could not be loaded. Unable to load module res_digium_phone.so Command 'module load res_digium_phone.so ' failed.
To install the XML development library for a RedHat/CentOS-based system, run, from the Linux CLI:
sudo yum install libxml2-devel
To install the XML development library for a Debian/Ubuntu-based system, run, from the Linux CLI:
sudo apt-get install libxml2-dev
Once the XML development library has been installed, Asterisk will need to be configured to use it. This involves re-running the ./configure utility, make and make install from the Asterisk source directory. For more information about the configuration and installation of Asterisk, please see other sections of this wiki.
The DPMA also requires Asterisk's standard voicemail application, app_voicemail.
Certified Asterisk and DigiumPhones Branches
The DPMA is currently compatible with mainline releases of Asterisk 11, but is not compatible with any previous mainline releases because of the release policies of open source Asterisk. Per release policy, once a branch of Asterisk, e.g. 1.4, 1.6.2, 1.8, 10, etc. is created, bugs are fixed, security vulnerabilities are closed, but new features are not added. Over time, this has proven to be an effective policy at limiting the introduction of regressions and making upgrades between branch versions an easy process.
Because the Digium Phone module for Asterisk requires new features - APIs, SIP messaging infrastructure, voicemail changes, etc. - that are currently only available in Asterisk 11, and because Digium phones will require new changes in the future as additional phone applications are provided, new branches of earlier, but still supported versions of Asterisk, was required. For Asterisk 1.8 users, all of the code necessary to support the DPMA, as well as changes to Asterisk applications, such as voicemail, parking, user presence, etc. is available in the Certified Asterisk releases, beginning with the asterisk-1.8.11-cert1 release. For more information about Certified Asterisk, please see the overview on the Digium website. Support for Asterisk 10 is provided in the "-digiumphones" branch of Asterisk 10. This branch tracks the mainline branch of Asterisk with respect to features and bugfixes, but also supports the DPMA. As with any other branch of Asterisk, both Certified Asterisk and -digiumphones branches are licensed under the GPLv2 and are made available for download via subversion, as tarballs, and as packages.