Users and Extensions

You will find soft-links between /var/spool/asterisk/voicemail/default (by default) and
/var/spool/asterisk/voicemal/device/ changing a users voicemail context from default to otherwise will appropriately reflect those softlinks. This is just how Asterisk is written (supporting user or device mode) , I don’t think the channel driver used is pertinent as always iax2 or sip or dahdi followed the rubric . FreePBX is perhaps rethinking its support of user/device mode maybe . . .?

I tried using Device and User Mode once and found that it was amazing. However, there were several bugs, where FreePBX directly addressed devices when it should have addressed the users (or perhaps the other way around). I reported that bug and was told that Device & User Mode was not supported. I’ve occasionally seen forum posts reporting issues with DUM as well, with the same response from the devs.

It is true that, behind the scenes, FreePBX always runs in Device & User Mode. However, when in “Extension” mode, the devices and the users get the same identifier (the extension number) and so the fact that FreePBX addresses a call to a device rather than the user or the other way around won’t matter since they are the same.

My assumption is that with the ability of psjip to support multiple devices registering to the same extension, there is no longer any need for an explicit Device & User Mode and so it has an even lower chance of any support going forward.

KInd of a little muddled, please post exactly what didn’t work for you.

I’ve written this info above but maybe it got a little convoluted:

  • FreePBX 15.0.16.38 - all modules are up to date.
  • Our FreePBX in in the cloud, so no phones (hardware nor soft phones) are local.
  • We are running chan_pjsip only.
  • I have changed extension to be shared among 4 different phones - Cisco 8841, Cisco SPA504, Digium A30 and Digium D65. This works with the exception of the message waiting indication on the phones. Checking (listening) to the voicemail on one phone does not extinguish the message waiting light on the other phones. On the D65 the message waiting light never lights - ever. But the missed calls indication on the D65 screen displays a missed call, and the correct number, but no LED light indicator.

All phones are provisioned manually via the individual phones web interface. Several times “Subscriptions” were mentioned, however there is no subscriptions options on the D65 - I have not looked at the other phones for subscription settings.

I was hoping to reduce the quantity of extensions on the FreePBX by using multiple phones for the same extension but the message waiting issues might be a deal breaker.

I did not think about this and this might be the best solution if I cannot get the message waiting indicators to synchronize among the phones configured with the same extension.

Don’t. That reply has nothing to do with what you are working on.

15 posts were split to a new topic: Discussion regarding sip/pjsip

Is ‘poll mailboxes’ enabled in voicemail settings ?

Yes, Poll Mailboxes is set to Yes.

Hey @BlazeStudios & @AdHominem - You guys seem to be discussing some important technical stuff that is way over my head. I need someone who can explain in dummy terms that I can understand on how what you are debating can help me resolve my issue of getting several phones using the same extension to synchronize the message waiting indicators on the phones.

Currently the synchronization is not working. Maybe this has to do with the phones being not only different models but also different brands. Strangely the D65 is the squirreliest of all the phones as far as message waiting indication goes.

I’m tending to lean towards @AdHominem suggestion to use different extensions on all the phones and point them to one voicemail.
Originally I did have all the phones with individual extensions (and associated voicemail boxes) and used ring groups, but I was hoping I could reduce the number of extensions per user so the one extension on many phones seemed to be a great solution. It’s just not cool if three of four phones show a new voicemail when it was already listened to on the fourth phone. I’m calling this synchronization, but maybe I am using the wrong terminology.

EDIT: Several have mentioned “Device” and “User” modes. Where can I see how my system is set?

OK so your issue is that you have, let’s say, 5 contacts registered to a PJSIP extension. That extension gets a new voicemail and only X phones are showing the new voicemail? Same when the voicemail is cleared, only X phones show that it is cleared?

So this is called MWI (Message Waiting Indicator) and there are two ways it can be done.

  1. The device subscribes to the mailbox. So just like a registration, it must update the system (in this case Asterisk/FreePBX) with a new subscription every so often or it will expire and no longer receive notifications of MWI state changes.

This means the endpoint needs to be setup of this in FreePBX. Under the Advanced tab there is a setting: MWI Subscription Type and set it to Solicited which means it will want subscriptions to send MWI updates.

  1. The devices cannot or doesn’t have subscribe abilities enabled. The system will send MWI notification to the contacts without any subscriptions.

So for this the MWI Subscription Type is Unsolicited.

The rest will be up to the phone. Some may or may not except unsolicited MWI if setup to subscribe or it might not be able to subscribe.

My suggestion is to never use Auto because there is no Auto function in Asterisk for this. If you are subscribing this is handled by the AOR/Contact config and if this is unsolicited then it is handled in the endpoint config. It can be one or the other but not both.

Auto claims that the PBX will determine how the endpoint will handle MWI but since that is phone based I’m not sure how it can build out the configs to support MWI in either method. Even if it is reading from the EPM then that means the phone must be in the EPM so it wouldn’t cover every phone used.

Try changing that setting and see what happens. Try unsolicited first to see if that helps.

1 Like

Thanks @BlazeStudios - I changed the MWI type to “Unsolicited” and made a test call from outside. All phones lit their message waiting - an improvement since prior only three of the four did - even the D65 lit this time which it never did before.
I listened to the voicemail on the Cisco 8841 and at first I thought there was no success because all the phones including the 8841 did not turn their message waiting LED off. But after a few minutes all the phones message waiting lights went off except the A30. I think on the A30 the voicemail waiting is also an indication of missed calls, not sure.

So this seems to be a success. My last question would be is if there is a time setting on the phones that might affect the delay related to the time after the voicemail was listened to to when the message waiting lights turn off? Do the phones poll the FreePBX server for this? If so, what is that setting called?

1 Like

Try it out and let us know how it works.

In the FreePBX GUI, if you pull down the “Applications” menu, if you see an option called “Extension,” then you’re in Extension mode, and NOT in Device & User Mode.

You can switch to Device & User Mode by pulling down the “Settings” menu, clicking “Advanced Settings,” and then changing the setting entitled “User & Devices Mode” from “extensions” to “deviceanduser” As soon as you do that, the “Extensions” option under “Applications” will disappear and be replaced with two separate options. One will be “Devices” and the other will be “Users.”

A little bit of background may be helpful here. When you create an “Extension” using the Extensions screen, FreePBX really creates two separate things with the same extension number.

First, it sets Asterisk up to communicate with a phone (a device) and gives it a name that matches the extension number. Certain of the Extension settings are relevant to that device, such as the password, SIP channel driver, etc.

Second, FreePBX sets up a phone number (the user) with that same extension number. Certain of the Extension settings are relevant to the user, such as whether he has VM, DND, Call Forwarding etc.

Third, FreePBX invisibly matches that user to that device. That means that when you pick up that device and call out, FreePBX will show the CID settings for that user. When you dial that user’s phone number, the calls will route to that device. When that user gets a VM, that device will get notified.

In Extension mode, these three things all occur invisibly.

When you switch to Device & User Mode, FreePBX splits up the “Extension” module into “Devices” and “Users” (as noted above). And you get a new setting: You can choose which user to match with which devices, and can even match a user to multiple devices.

So, you could configure devices called “Phone 1” and “Phone 2” and “Phone 3” and then create a user called “Extension 1000” (actually just 1000), and then map User 1000 to all three phones. Now, whenever anyone calls 1000, all three phones will ring. Whenever anyone calls from any of those phones, it will show as 1000. If User 1000 gets a VM, all the phones will display it. It will accomplish precisely what you are trying to accomplish.

In D&U mode, I believe that there’s also a feature code so that a user can go to a device, and login to it, thereby creating an association between that device and that user. And he can later logout, disassociating that user and that device.

The above is all independent of logging into and out of queues, which is a whole separate animal.

D&U Mode is really an amazing animal. But, since the devs say that they don’t support it, it has some bugs that have never been fixed. In certain instances, when something is supposed to be routed to the device, it gets routed to the user (or possibly the other way around). I reported one such bug many years ago, but it was never fixed (devs said “not supported”). The bug is a non-issue as long as the device and user have the same identifier, which is what happens in Extension mode. IMO- that’s a reason not to use it. :slight_smile:

None of that has anything to do with a device watching a subscription.

No they don’t. You can try to change the polling of the mailboxes but that’s generally for when something outside the voicemail app makes changes. That would be in the Voicemail Admin settings. It’s default to 10 seconds.

All of it is relevant to helping him solve the problem that he is having. D&U mode will allow him to accomplish what he wants to do, but he needs to know the limitations and potential issues that it may cause.

I continue to believe that using separate extension numbers in extension mode with the mailbox field is the easiest and most reliable way to solve the problem that he is having.

I started to configure a different users extensions for the multiple-extension single-voicemail box to test, unfortunately the Cisco 8841 and SPA504 do not have a setting for the voicemail number per line. Since these phones are all connected to multiple lines (separate incoming/outgoing numbers) this seems to be a deal breaker.

If the Cisco phones had settings per line for the number called for the voicemail I would continue this test but that does not seem to be the case.

Two things to consider.

First, you can use separate incoming and outgoing phone numbers with a single extension/registration.

Second, I’m not entirely sure what you mean by “voicemail number,” but a “voicemail number” setting isn’t required to obtain VM notifications. It’s generally used for the VM button. If you’re going to use multiple extensions with multiple VMs on a single device, you’re either going to need to manually type in the number on each device when you want to check the VM, or set up a BLF/Speed Dial to reach them.

Either way, the phones that do like a Poly you need to tell the phone that the Voicemail button either directly dials into a specific account (default: account1) or to let you select the line you want to check. That hard key sends one command, it’s up to the phone to determine what it can do. So many people face this and either setup additional soft keys, BLFs for that or the users just hit the line they want to check and dial *97.

My phone has three extensions on it. Which inbound numbers are routed to which extension has nothing to do with the phone. That is at the PBX level as is the outbound. The outbound callerId is based on the extension (so how it auths each line) or set by the pattern match in the outbound routes (and could be restricted to that user’s callerid) or set in the trunk when the call goes out.

Honestly, a phone with 1 line can have multiple incoming numbers to it and send multiple outbound callerid based on digit patterns and rules in the PBX.

Gentlemen -

After a bunch of re-configuring and testing I have gone with single extensions configured on multiple phones - including soft phones. This configuration works very well for us and maintains the phone devices “Handling” meaning we do not need to program buttons for voicemail depending on what line is used. We just press the line button and then the phones voicemail (envelope) button and away we go to the correct voicemail.

I noticed that anytime a voicemail is left it takes about one minute for the phones to light their respective message waiting LEDs.

After listening to the voicemail from any phone it also takes 1-2 minutes for the respective message waiting LEDs to extinguish. A little laggy yet impressive since we’ve never had our message waiting indicators work this well before with our multiple extensions per user setup.

I want to thank all of you for hanging in here and helping me out. I think all of this testing and your input has provoked many more questions about other aspects of FreePBX and our setup but I don’t want to derail this thread and will make new topics as I start to investigate them.

Thanks again!

P.S. - I was able to eliminate 12 extensions!

Some Observations:

Since I no longer needed a bunch of extensions I deleted them and I noticed a couple things:

  1. Deleting a Extension leaves a orphaned User (Admin | User Manager).
  2. Deleting an Extension (or User, not sure which) also leaves orphaned VPN Server Entries (Admin | System Admin | VPN Server).

I deleted the orphaned Users and VPN entries manually.

I don’t see why the users that were automatically when creating the extensions were not deleted when the extensions were deleted, but there may be use cases that I am unaware of that makes this reasonable.

I don’t know why there are VPN Server entries at all. I do not recall ever making any VPN entries so I presume these are created also as a part of adding a extension.

Hopefully I did not break anything by manually deleting either the Users or VPN entries.