Default TLS Transport

Hey everyone,

I’m running VitalPBX 4.5 on a DigitalOcean droplet and deploying Snom desk phones. Everything connects over TLS on port 5061 using a Device Profile with SDES encryption.

I ran into an issue where inbound calls weren’t reaching the phones — the INVITE was being sent on a new TLS connection instead of reusing the one the phone established during registration. The fix was setting symmetric_transport=yes on the default TLS transport.

My concern is there’s no way to set this in the GUI. The PJSIP Settings page doesn’t expose symmetric_transport for the built-in transports, and the PJSIP Transports section only covers custom transports. I ended up creating a separate config file to override it, but every time I do an Apply Changes I need to run a core restart for it to take effect again.

Is there a way to configure symmetric_transport on the default TLS transport through the GUI that I’m missing? If not, would it be possible to add this option to the PJSIP Settings page? It’s pretty much required for any TLS deployment with phones behind NAT.

Thanks!

1 Like

This is already available in the latest versions of VitalPBX 4.5 (Deb 12)

Hey Miguel,

Thanks for the fix. I can confirm “symmetric_transport=yes” is now visible in the PJSIP Transport GUI. Much appreciated.

However, I’m still experiencing a persistent issue: every time I do an “Apply Changes”, incoming calls stop working until I run "asterisk -rx “core restart now”. This happens even for minor changes like adding a new Inbound Route.

My current setup:

Custom PJSIP Transport with “symmetric_transport=yes” and TLS selected in Device Profile

  • The generated pjsip__20-transport.conf shows three TLS transports all binding on 0.0.0.0:5061 simultaneously; the native TLS, the MS Teams TLS, and my custom TLS. I suspect this port conflict is causing the issue.

Question: Is there a supported way to have a single TLS transport with “symmetric_transport=yes” without the conflict? Should we be using the native TLS transport instead of a custom one, and if so, how do we apply “symmetric_transport=yes” to it without a custom transport?

Thanks again for your work on this.

Daniel

Disable the Parameter “Allow Transport Reload” that could be the source of your issue.

Thanks for the hint, I’ll try it overtime, it’s seems pretty accurate.

Thanks