How to implement trunk requirements for anonymous caller ID?


I’m using Telnyx as my trunk provider and am trying to set up an outbound route for anonymous calls (with hidden caller ID) when prefixing the dialed number with *67. Telnyx’s requirements for anonymous calls are as follows:

  • Privacy: id SIP header must be added.
  • From: header must contain "Anonymous" <sip:[email protected]>
  • PAID, PFID or RPID headers must be present and contain valid Caller ID information.

Being a relative amateur, I have no idea how to implement the first two requirements above; any suggestions? I assume it involves editing the predial hooks, but that’s as far as my current knowledge takes me… This is using PJSIP, by the way.


The way it’s supposed to work is to set up an Outbound Route with Route CID of (for example)
"hidden" <12123456789>
and Override Extension set to Yes.

If it fails, turn on pjsip logger, make a failing call and report whether the headers in the INVITE are correct, how the carrier responds and what the callee sees.

However, I don’t recommend sending anonymous calls; many people won’t answer or have automated systems that block them. Depending on your requirements, either get a DID for the purpose and route incoming calls to an error message or busy signal, or get a trunk from a provider that sends one of their own numbers on outbound calls when you don’t have a DID with them.

If you merely want to hide the personal number of an agent, just send your main company number for those calls.

Thanks Stewart. After a lot of Google searching, I came across another thread explaining how to do it. I was overthinking it: Manual editing of the predial hooks is not needed; it can be configured using the FreePBX Web interface. Then I noticed that the author of the reply in the other thread is… you! :grinning: So thanks a lot for that.

For the benefit of anyone who comes across this thread, here is the other thread:

And the key response from Stewart, which worked for me:

Without any custom dialplan, if I set both ‘Send RPID/PAI’ to be ‘Send PAI header’ and turn on ‘SendPrivateCallerIDinformation’, then when I set the display name for the Outbound CID for my extension to “hidden”, then FreePBX:

  1. Puts ‘anonymous’ in the From header user field (you could override this if your provider requires an account number, etc. there).
  2. Adds a Privacy: id header
  3. Sends PAI with the display name “hidden” but the number sent normally.

By the way, your point regarding calls without a valid caller ID is well taken. Blocking seems to happen more on long-distance calls at the carrier level; local calls seem to go though fine, at least in my area with my very limited testing. I actually don’t have a real need for this feature; I’m a home hobbyist and I did it for the challenge of replicating POTS *67 service.

Thanks for your help!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.