Digium Phones: DPMA 3.4.1 and Digium Phone Firmware

By Malcolm Davenport

Aloha! Last time, we talked about some of the fun features in DPMA 3.3.0 and phones firmware

* Wallpaper support, so your D6x phone can look like this:

Phone with Wallpaper

* and OpenVPN support for D6x models, to make the lives of Systems Administrators a little bit less complicated.

Now, I’m back to talk about DPMA 3.4.1 and Digium Phone Firmware Since it’s been a while, we’ve actually had a couple of releases, so we’ll just go over some of the things that you get if you upgrade to

Rogue Devices, No More

First, have you ever had a rogue device show up on the network? I spoke with a reseller earlier this year. He manages the phone system for a large deployment. One day, a tech from another company, the printer management company, came in and put a printer on the network. The tech gave the printer a static IP, one that he’d either picked at random or was incorrectly given to use. Sadly, that IP address was in the same range as the DHCP server’s IP range for telephones. Hilarity ensued.

For phones, we solved the problem by having it test the waters. Once a phone gets an address from a DHCP server, the phone will now ARP to see if anyone else, like a rogue printer, might be using the address. If something else is using it, then the phone sends a DECLINE back to the DHCP server and gets handed a brand new address. All is well.

Interop Testing

Next, we’ve been working with a provider on some Interop testing. Together, we discovered that we were handling incoming calls on multi-line phones based on the TO, and not based on the Request URI. I’d insert the Picard face palm meme, but you’re already seeing it in your head right now, so there’s no need. The great thing about Interop testing, is that you uncover all sorts of oddities about your own implementation.


One of the most exciting things in is support for Private Line Automatic Ringdown, also known as PLAR. PLAR is a great acronym (not an initialism, thank you) because even knowing what the letters stand for does little to let you know what it is. PLAR is Commissioner Gordon’s hotline Batphone. Configure your D6x phone with a number, and as soon as the phone goes off-hook, that number will be automatically dialed. Commissioner Gordon’s a fictional character, but lobby, warehouse, and other courtesy phones are very real.

One More Fun, Useful Feature

Another fun feature in the D6x phones is support for editing the text-string up in the status bar of the phone. Why’s that useful, Malcolm? It’s useful because phones sometimes need identifying labels that are longer than what can be fit on the line label. Take this, for example:

Phone with Status Bar Label

That’s much, much better, right?

Bugs Be Gone

As usual, we also fixed some bugs:

All models of phones now deal better with SUBSCRIBE storms during PBX restart operations.
All models of phones now deal better with large numbers of contacts.
Phones attached to DPMA now no longer have the non-functional “Add Contact” button in the Call Log for unknown numbers. That feature didn’t work very well anyway as it depended on an extremely specifically configured Asterisk+DPMA server and didn’t allow for editing.
The D65 now interoperates better with certain Bluetooth headsets that want to go off-hook immediately upon connecting.
All models of phones now respond better to re-subscription following a NOTIFY termination/probation.

Want to Learn More?

For the full details, head on over to the Digium Phone Firmware page on the wiki.

Thanks for reading, and thanks for using Digium’s phone products.

Related Posts

There Are 3 Comments

  • Nice work, Malcolm. Your writing always bring a smile to our faces

  • Malcolm since you are the only one I trust with all things Digium I need to ask for some guidance. Since FreePBX Distro 10.13.66.x only comes with DPMA 3.2, what is the best way once you have 3.2 installed and functioning to upgrade to 3.4.1? I read in Wiki about needing to make sure you get bundled tarball and unpackaging or something?? Or you risk crashing Asterisk? That would be bad. Any knowledge you are willing to throw my way would be much appreciated. Our Digium Account Manager just stopped by our office, Tim Snyder and I asked him if he could just hook me up with some free Malcolm tokens when i needed your brainpower. He said no. Insert sad face. Thank you in advance. Rebecca Mattson

  • Aloha!
    The best way would be for FreePBX Distro to make available a newer RPM, so that a regular FreePBX Distro update (either via the UI or via the CLI shell scripts) would take care of that. In the absence of that…

    Start w/ the instructions here:

    Download the tarball that’s appropriate for your version of Asterisk and your bitness. To determine this, log into your FreePBX Linux CLI as root and type:
    # asterisk -rx “core show version”
    You’ll get back something like:
    Asterisk 13.14.0 built by mock build @ jenkins2.schmoozecom.net on an x86_64 running Linux on 2017-0217 21:28:56 UTC.
    That lets me know that it’s Asterisk 13 on an x86_64 platform.
    Next, start here:
    and you’ll see versions of Asterisk. For me, I was on Asterisk 13, so go there:
    and I had an x86_64 system so go there:

    and you’ll see a large list of tar balls. The current version is 3.4.1. These days, FreePBX uses the bundled version of PJSIP (http://blogs.asterisk.org/2016/03/16/asterisk-13-8-0-now-easier-pjsip-install-method/) so you’ll want the “-bundled” tar balls. In my case, I want http://downloads.digium.com/pub/telephony/res_digium_phone/asterisk-13.0/x86-64/res_digium_phone-bundled-13.0_3.4.1-x86_64.tar.gz

    I can download that from the Linux CLI directly. First, put yourself in a friendly spot:
    # cd /root
    Then make a spot to put things you download and go there
    # mkdir downloads
    # cd /root/downloads
    Then use wget (if it’s not installed do “yum install wget”) to download it:
    # wget http://downloads.digium.com/pub/telephony/res_digium_phone/asterisk-13.0/x86-64/res_digium_phone-bundled-13.0_3.4.1-x86_64.tar.gz
    Then unpack it
    # tar xjvf res_digium_phone-bundled-13.0_3.4.1-x86_64.tar.gz
    Then go to the new directory
    # cd res_digium_phone-bundled-13.0_3.4.1-x86_64

    Then, we need to stop Asterisk because we’re going to be installing new modules. This will drop all calls. We don’t want to do this the Asterisk way, we need to do it the FreePBX way so we don’t break any FreePBX things
    # fwconsole stop
    Then we need to put the new modules in place of the old modules. Let’s make backup copies of the old ones first.
    # mv /usr/lib64/asterisk/modules/res_digium_phone.so /usr/lib64/asterisk/modules/res_digium_phone.so.back
    # mv /usr/lib64/asterisk/modules/res_pjsip_endpoint_identifier_dpma.so /usr/lib64/asterisk/modules/res_pjsip_endpoint_identifier_dpma.so.back

    Then we’ll copy the new modules into the right place (remember we’re already in the correct local directory because we’re inside the directory unpacked from the tar ball)

    # cp *.so /usr/lib64/asterisk/modules

    Then we restart Asterisk and FreePBX

    # fwconsole start

    Then make sure it’s installed correctly:

    # asterisk -rx “digium_phones show version”
    Digium Phone Module for Asterisk Version 13.0_3.4.1

    and Bob’s your Uncle.

Add to the Discussion

Your email address will not be published. Required fields are marked *

About the Author

Malcolm Davenport

Digium lifer, celebrator of 17 Digium birthdays, and Digium employee #4."I like telephony and I cannot lie. You other vendors can't deny; When a call comes in with MOS so you can't hear and some echo in your ear you get angry!" - Sir Mix-a-Malcolm

See All of Malcolm's Articles