Number Masking Requirement

Hi Team,

We are planning to implement FreePBX integrated with our Hospital Management System (HMS), and we have a requirement related to caller ID masking for both softphones and hard phones.

:small_blue_diamond: Requirement Details:

  1. Inbound Calls

    • Caller number should be partially masked

    • Example: XXXXXXXX9886

    • If the number exists in contacts → Only Name should display (no number)

  2. Outbound Calls

    • The dialed number should NOT be visible to users (agents)

    • Same masking format required (e.g., XXXXXXXX9886) OR completely hidden

  3. Applies to:

    • Softphones (e.g., WebRTC / soft client)

    • Hard phones (Yealink / Fanvil / etc.)


:red_question_mark: Questions:

  1. Is partial masking (like XXXXXXXX9886) possible in FreePBX UI or via custom dialplan?

  2. Can we:

    • Modify incoming Caller ID display format

    • Hide/modify outgoing dialed number visibility

  3. Any recommended approach using:

    • Set CallerID module

    • Custom dialplan (extensions_custom.conf)

    • AGI / API integration with HMS

  4. Does this depend on SIP provider limitations?

Please explain why the agent doesn’t need to know the complete number to make the call.

If you are using some sort of click to dial arrangement, the call will be incoming to the agent, otherwise, it might be possible to do a connected line update, but the actual dialled number will show initially.

I don’t know if there are suitable dialplan hooks to do these manipulations.