I’am sorry for asking this? Queue in different language?

Dear Community,

Please be gentle with me – I’m crawling out of the deep, dark cave called 3CX, and I’m still a bit traumatised by all the actual options and shiny lights in the mighty FreePBX interface.

So please don’t call me names if I’m missing something obvious – I’m just a bit shell-shocked. :woozy_face:


What I’m used to (3CX world)

In 3CX I always did my call flows like this:

  1. Main IVR plays a welcome message, for example:

    “Hello, welcome to Company. For German, press 1. Please hold the line…”

  2. If the caller presses 1, they are sent to the German queue, which:

    • Has German system prompts / messages (“Bitte warten, aber bitte essen Sie den Agenten nicht…”).

    • Handles everything in German from that point on.

  3. If the caller does nothing, they are sent to the default (English) queue, which:

    • Uses English prompts and messages.
  4. Voicemail is handled by:

    • An extension/mailbox per language (e.g. an “English voicemail” extension and a “German voicemail” extension).

    • That extension never actually logs in to a phone; it’s just there to provide the right language greeting and mailbox.

So:

  • Language is tied to the queue + voicemail,

  • IVR just routes the call to the correct language “world”.


Where I am now (FreePBX world)

In FreePBX, the core stuff is already working great – calls come in, IVR works, queues ring, voicemail works.
However, I’m struggling a bit with doing this clean, multi-language setup the way I’m used to:

  • I’d like:

    • Default route → Queue with language X (e.g. English).

    • Press 1 in IVR → Queue with language Y (e.g. German).

    • Each route ends up on a voicemail box in the same language.

  • I’m fine with:

    • Using a dedicated “language voicemail” extension per language.

    • Using Set Language / language modules if that’s the “FreePBX way”.


What I’m looking for

What is the best practice in FreePBX 16/17 for:

  1. Per-language queues (with proper system prompts in that language)?

  2. Routing from a single IVR to the correct language queue (and keeping that language all the way to voicemail)?

  3. Clean handling of language-specific voicemail boxes (dummy extensions, separate mailboxes, or something smarter)?

If you have a “this is how we do multilingual call flows in FreePBX” pattern, I’d love to see it.
Bonus points for examples like:

  • “Main IVR → Set(Language) → Queue → Voicemail box per language”

  • Or: “Use separate IVRs per language, and link them like this…”

Thanks in advance for helping a recovering 3CX-user who’s still a bit dizzy from all this freedom. :woozy_face:

Kind regards,

Use the Languages module to create a language instance that sets German (Germany) and routes to the German queue. Then set IVR option 1 to go to the Language instance.

Yeah i tried that but that has only one option either the office hours IVR or the out of office IVR i cannot set both there? So that means that people would have to choose their language first or how does that work?

I assume that the inbound route goes to a time condition that branches to either the open IVR or the after hours one. Each IVR has an option to switch to German, which routes to (separate) language instances that go to respective German IVRs.

If that’s not what you want, describe the desired call flow in more detail.

Thats the same IVR menu.

Sorry, I don’t understand. Either post a diagram of the desired call flow, or describe each step.

Call gets routed via inbound rule, if time matches office hours > ivr open language 1 this ivr says “ welcome to company name, „Drücken Sie die 1 für Deutsch.“ Please hold while we transfer your call > queue english, cause no one pressed 1.

Call gets routed via inbound rule, if time doesn’t match office hours > ivr closed language 1 this ivr says “welcome to company name, „Drücken Sie die 1 für Deutsch.“ we are closed please hold to leave a voice mail message > VM english, cause no one pressed 1.

Call gets routed via inbound rule, if time matches office hours > ivr open language 1 this ivr says “welcome to company name, „Drücken Sie die 1 für Deutsch.“ (presses 1) > switches to IVR German “Willkommen bei Firmenname, press 1 for english”. „Bitte bleiben Sie in der Leitung, während wir Ihren Anruf weiterleiten.“ > queue German, cause no one pressed 1.

Call gets routed via inbound rule, if time doesn’t match office hours > ivr closed language 1 this ivr says “welcome to company name, „Drücken Sie die 1 für Deutsch.“ (presses 1) > switches to IVR German “Willkommen bei Firmenname, press 1 for English” „Bitte bleiben Sie in der Leitung, um eine Sprachnachricht zu hinterlassen.“ > VM German, cause no one pressed 1.

i just want the queues in their own languages like voicemail, without, so NOT:

Call gets routed via inbound rule > client gets language select > ivr language 1

ezgif-29006e3327bfc22a

Quick follow-up for anyone who finds this later:

I solved it by rebuilding the call flow around Time Conditions + IVRs + the Language module, instead of trying to give the queue itself a language (which FreePBX doesn’t really do the 3CX way).

What I ended up doing

1. Inbound Route → Time Condition

  • Inbound Route for the main DID
    ➜ Destination: Time Condition “TC-COMPANY-OPEN”

  • Time Group: normal opening hours (Mon–Fri, 09:00–17:00)

  • Time Condition:

    • Match (open) ➜ IVR “IVR-OPEN-MAIN”

    • No match (closed) ➜ IVR “IVR-CLOSED-MAIN”

So the Time Condition only decides: open IVR vs closed IVR.


2. Two IVRs: one for open, one for closed

  • IVR-OPEN-MAIN

    • Announcement: “Welcome … press 1 for English, drücken Sie 2 für Deutsch…”

    • Options:

      • 1Language: English → Destination: Queue-EN

      • 2Language: German → Destination: Queue-DE

  • IVR-CLOSED-MAIN

    • Announcement: “We’re currently closed … press 1 for English voicemail, drücken Sie 2 für Deutsch…”

    • Options:

      • 1Language: English → Destination: Voicemail-EN

      • 2Language: German → Destination: Voicemail-DE

The important part: I don’t jump directly from IVR to Queue/Voicemail anymore, but first through a Language step.


3. Language module does the “per-queue language” trick

In Applications → Languages I created:

  • Language: English → Code: en

  • Language: German → Code: de

Each Language entry has its own “destination after language is set”:

  • Language: English → Queue-EN or Voicemail-EN

  • Language: German → Queue-DE or Voicemail-DE

That sets CHANNEL(language) to en or de before the call hits the queue/voicemail, so:

  • System prompts (queues, voicemail, etc.) are in the correct language.

  • My own recordings are chosen per queue/voicemail as usual.

So instead of a “queue language” (3CX style), I now have a “call language” that’s set once and follows the call all the way.


4. Voicemail per language

I created two “dummy” extensions just for voicemail:

  • Ext 3xxVM-EN with English greeting

  • Ext 3yyVM-DE with German greeting

In the closed IVR, the Language step sends callers to the appropriate mailbox, so both the system prompts and my greeting match the chosen language.


End result

  • One Time Condition handles open/closed for everything.

  • IVR-OPEN = language choice → queues in EN/DE.

  • IVR-CLOSED = language choice → voicemail in EN/DE.

  • No more fighting with queue-language like in 3CX – I just set the language on the call and let Asterisk do its thing.

My ex-3CX brain is still offended this wasn’t a single checkbox, but hey… it works perfectly now :grinning_face_with_smiling_eyes:

1 Like

Well done for making the switch away from 3CX. That is a move you will not regret.

Welcome to freedom!

And well done for the solution, which is as good as I could have suggested.

S

Hi there,

Thank you. To be honest, the only good thing 3CX ever did for me is accidentally turning me into someone who now knows enough PBX voodoo to never going to pay per extension. :grinning_face_with_smiling_eyes:

They lured everyone in with “nice and free” like a kid handing out candy… and then slowly started slapping paywalls on everything – I’m pretty sure the next step was charging their own family for an internal call. It feels like bad practice and borderline false advertising if you ask me.

I’m lucky: I’m an experienced, let’s say, level 20 engineer with full PBX skill tree unlocked. I can escape. But think about all the small businesses who are scared to switch, completely dependent on their platform, and suddenly find out that every basic feature is now locked behind yet another license tier.

For me, versions 15 to 18 were cool – after that, it basically turned into the SIP gateway to hell. :fire::telephone_receiver: