Hide CallerID with Telnyx and FreePBX Custom SIP Header

I’ve been trying to hide my CallerID while making calls with FreePBX and Telnyx. I go to the trunk settings and enable the hide CallerID option. This changes my CallerID to “hidden,” but when I try to make a call, I get an “all circuits are busy” error. I emailed Telnyx and they said that not only does a phone number need to be passed with this hidden CallerID (which makes sense), FreePBX also needs to send a custom header of Privacy: id for Telnyx to understand it. I know in FreePBX’s CallerID help section (the question mark icon) it says the format is “hidden” <#######> but that also didn’t work and I got the same error, meaning I just need to figure out how to send a custom header of Privacy: id. I’m not sure how to do this and I’ve looked online a bunch. Besides this custom header, is there anything else I need to do to get hiding my CallerID working? I’ve seen some people say I need to send RPID or something like that. If someone could help me out with creating a custom header for this Telnyx requirement I’d really appreciate it, thanks.

I don’t think that Privacy is a custom header. I believe it is a standard header if you set CALLERID(priv-num) in a pre-dial handler, and enable the associated one of RPID or PAI. To the extent that you don’t do anything that causes it to be added automatically, you can use the the standard FreePBX mechanism for adding custom headers, or even just use PJSIP_HEADER, in a pre-dial subroutine

I’ll be honest, I don’t understand much of what you said besides sending the RPID or PAI as those are UI options in FreePBX. I’ve tried those before, no luck though.

Could you walk me through creating a custom header with FreePBX’s mechanism? I’ve seen people talk about an “outgoing settings” tab but I don’t have that, it’s either for a different configuration or an outdated version of FreePBX. Let’s try the standard FreePBX mechanism first. If it doesn’t work, I’ll try the other method.

Thank you!

These are not things I’ve done in anger, so I would need to spend time researching the details. However, I don’t think you can do this from the GUI; I think you have to write dialplan. By the FreePBX mechanism, I mean the mechanism that FreePBX itself uses to add headers in a way that works for both chan_sip and chan_pjsip, as for example how it adds Alert-Info headers.

One of the things that makes FreePBX more powerful than traditional PABXes, is that you can mix in direct Asterisk code, to do things that aren’t covered by the GUI.

Oh, I see what you mean by the mechanism now. If you need some time to research, I’ll see if I can find out how to write the dial plan on my own in the meantime

Thanks

I’m 100% sure this is a response from ChatGPT. It’s inaccurate and it also gave me the same response almost verbatim…I’ve tried it a bunch of times. There is no outbound settings tab.

Thanks for trying I guess

I can recognize a Large Language Model response a mile off and I can’t remember ever seeing a valid one in the Asterisk or FreePBX forums.

For FreePBX 16, details of how to add custom headers are given in

Note that the preview mangles the code; you need to follow the link to the original posting.

As FreePBX 17 has to work with Asterisk 21, which finally removed support for macros, I assume there will be differences for FreePBX 17, although I assume the hook is still supported, with a different interface.

However, personally, I’m against using the general custom header mechanisms to do things which are supported by Asterisk itself. Without actually running a test, which I’m not in a position to do, I’m not sure if the Set(CALLERID(…)) previously mentioned has to go in the same dialplan hook, or one run earlier.

Back to custom headers, you might want to note the remarks about the instability of the interface, and the obsolete documentation, in:

Again follow the link. This time because the preview doesn’t account for the fragment part of hte URI.

1 Like

Thanks for the very thorough response! I looked at both the posts you mentioned, and it seems like the documentation is incomplete, as you said. I did also look at Asterisk’s documentation yesterday but couldn’t make much sense of it. I’ll try something like the original response in the first post and see what happens, since macros are deprecated.