I have an office that uses a ghost extension 7878 for group voicemails. Users in the group have a BLF for *987878 to see if new messages are present and to pull them. The problem is Asterisk allows more than one user to access the same mailbox at the same time this way, which can result in multiple people pulling the same voicemail and multiple calls to the client about the same thing. The old Altigen server limited voicemail access to one user at a time and I would like to know if this is possible with FreePBX?
Not that I’m aware of. Have you submitted a feature request?
Not yet. I’m currently looking to see if there’s any way to send the call out and then back in to *987878
I think it’s a good feature - there are plenty of real-world applications where “mine” access to a shared voice mailbox is a simple solution to a complicated set of problems. Lots of “sales” agencies could use it and it would keep CSRs from calling back the same person based on a single VM.
If you want to dummy something up, you could use the VM access contexts from the system, modify them, and save them in the whatever-FreePBX-override.conf file. It could be as simple as a flag in an Asterisk database entry that gets set to ‘1’ or ‘0’. Setting it to the extension that has access could also give you a way to satisfy possible race conditions in case two people logged into the VM box at the same instant. You could also get tricky and do it with Presence, I suppose. There should be a fairly simple flag field that could be invoked to make the box “single reader”.
If you decide to write something, be sure to get your paperwork for submitting the code squared away first - it makes the donation much easier.
Comedianmail, the asterisk voicemail system, writes a .lock file in the context/extension/app directory while it is has any file open for writing, there is no such lock for read-only, briefly it will be there while you delete and it reshuffles the file names. Any concurrently open .tmp files are queued if necessary before being committed
I guess it would be relatively simple to rewrite app_voicemail.c to do the same for read access also.