ClearlyAnywhere Voicemail *97 Rewriting

We currently utilize the ClearlyAnywhere Mobile Application for several users, who also have a deskphone.

To allow selective call forwarding, easier management, and to avoid conflicts these users have a deskphone extension along with a ClearlyAnywhere specific extension, which has been working perfectly for our use case.

An example scenario: Ben has main/deskphone extension 100. The extension utilized by ClearlyAnywhere Mobile is 1002. The voicemail box for extension 1002 is “100@device” and the CID number alias for extension 1002 is “100”, allowing extension 1002 to masquerade and accept voicemail as extension 100.

I would like the voicemail button in ClearlyAnywhere to dial the user’s main extension voicemail, but appears to simply dial *97, which would redirect to the mobile extension mailbox which does not exist. I can rewrite within the ClearlyAnywhere app so *97 rewrites to *98100, but this would need to be done on each users mobile device.

What would be the best method to redirect *97 to *98DESKEXTEN for these specific users with both a desk and mobile extension? Unless I am missing something simple, I would think a custom dialplan/extension would be able to filter based on extension and redirect where appropriate.

I have located bits and pieces of instruction, but nothing that ties the entire picture together.

You can swap the feature codes in FreePBX so that *97 rings what is currently *98. This will prompt users to enter their extension number. You’ll also need to adjust any hardware phones accordingly.

The app supports DND and DND scheduling and is designed for use by the same extension as the user, keeping quick dials cleaner.

As for automating the inclusion of the primary extension in the dial plan, it seems a bit over-engineered. It may be simpler to use the same extensions and modify inbound routes as needed. You can use time conditions or call flow toggles to redirect or block calls. However, without knowing the full details of your setup, someone else may have insights on how to achieve this with dial plan modifications like you are looking for. Anything is possible I guess.

1 Like

I agree, I’m probably searching for an over engineered solution to an over engineered problem.

My use case is for a construction company, ring group for estimating department. This ring group only includes the primary extensions (100). Can receive call and answer when at desk and able to take notes. When on a project in the field utilizing mobile extensions (1002), can receive direct calls to forwarded primary extension from internal/external, but will not be followed by estimating ring group. Probably an over complicated version of setting DND but works passively on a non fixed schedule.

Would be nice if the concept of swapping features codes could be filtered/implemented on a per extension basis.

If you have multiple people handling estimate calls at their desks, or if you’re configuring this for a single user, a better approach may be using a hardware phone that supports two separate SIP registrations/accounts while in the office.

Here’s how it works:

• Each user has two extensions registered to their phone.

• One extension (1001) is used for estimate-related calls and only catches calls from the ring group or queue you are distributing your estimated needed calls from. You don’t have to specifically give this extension out to people, it’s is used primarily for call routing for this single purpose.

• The second extension (2001) is their primary extension, registered to Clearly Anywhere, and used for everyday calls, including routing their personal DID.

This setup ensures smooth call handling and voicemail management in FreePBX.

  1. Extension Setup

Each user has two extensions:

• Desk Extension (1001)

• Registered to the desk phone.

• No voicemail (to avoid conflicts).

• Rings only while the user is in the office.

• Mobile/Primary Extension (2001) Registered to the deskphone as well.

• Registered to the Clearly Anywhere app.

• Has voicemail enabled.

• Used for DID calls and as the main extension when the user is away.

Both extensions are registered to separate SIP profiles on the same phone.

  1. Call Routing Options

A. Calls to a Direct Inward Dial (DID)

• Route DID calls directly to 2001, this will ring on desk and clearly anywhere.

• If they don’t answer, calls go to 2001’s voicemail.

B. Calls via a Ring Group or Queue

If handling estimate calls, you can:

• If using a Queue for multiple agents, add only the “1001” number to the Queue for each agent so it rings their desk phone when they are available.

• If unanswered, set the failover to voicemail for 2001 or a general queue voicemail or broadcast voicemail for multiple users.

  1. Key Benefits of This Configuration

:heavy_check_mark: Estimate-related calls only ring when the user is in the office.

:heavy_check_mark: Clearly Anywhere only rings when 2001 is called (optional Follow Me on 1001 can forward calls to 2001 if needed).

:heavy_check_mark: Voicemail is centralized to avoid conflicts.

:heavy_check_mark: DID calls go directly to the user’s primary extension (2001).

This setup keeps call handling simple, efficient, and avoids voicemail issues. And Clearly Anywhere calls and voice mail should work as expected without any needed feature code changes.

1 Like

Thank you for the responses. Always in amazement what a flexible and powerful system Asterisk/FreePBX offers.

I wanted to share my solution, if could be of assistance to others down the road.

As the CID and voicemail box of the secondary extension are set to that of the primary extension, it almost seems like should work in this regard by default, but I’m somewhat of a novice.

I remapped the *97 feature code to a new misc application and custom destination to the following custom context in extensions_custom.conf

[my-voicemail-custom]
exten => s,1,Answer()
exten => s,n,wait(1)
exten => s,n,VoiceMailMain(${CALLERID(NUMBER)}@default,s)
exten => s,n,Hangup()

Appears to work for all extensions, but redirects to utilize the extension mailbox associated with the CID of the extension.