FreePBX pjsip trunks with siproxd not working

I’m having some problems getting my pjsip trunks (from Sipcall.ch) to work with the siproxd server on my pfSense firewall. The siproxd server worked before with my Fritzbox, but for some reason I cannot get it to work with FreePBX. Here is what I’ve tried so far:

If I just forward the port 5060 and the ports 10000 to 20000 from the firewall to the FreePBX server and configure the trunks without the proxy everything works correctly.

I found several threads that suggested to set the proxy address like this:
sip:172.17.2.2;lr
With this configuration the trunks appear ONLINE for about 2 minutes, then they go back to OFFLINE. In those 2 minutes incoming calls are working, but I was never able to make an outbound call.

I also captured the packets on the firewall and sent them to my sip provider. They found out that the INVITE packet from the incoming call is arriving on the WAN address, but it is not forwarded to the FreePBX server. On the LAN side an OPTIONS packet is sent from FreePBX to the siproxd server, but instead of sending this packet to the sip provider it is just sent back to the FreePBX server.

Does anyone have a working setup with FreePBX pjsip trunks that use siproxd as sip proxy? What could cause this problem?

Please describe all the elements in your network and what you are trying to accomplish with siproxd.

The ‘normal’ use of siproxd is to permit multiple extensions behind the same NAT to communicate well with a remote PBX. The documentation at
https://docs.netgate.com/pfsense/en/latest/packages/siproxd.html
states " If the PBX is local, this package should not be installed or used ."

So, if the PBX is on your LAN, you shouldn’t be using siproxd, and if the PBX is remote, there shouldn’t be any communication with trunks going through it.

I simply have a firewall with a WAN and LAN interface. FreePBX sits in the LAN and connects the sip trunk to the internet sip provider.

The main reason why I installed the siproxd service is that I previously had problems with incoming calls on my Fritzbox. After some times (mostly weeks later) incoming calls would just stop working. My best guess is that this happens when the the external IP address on the firewall changes. (I only have one dynamic IP Address and sometimes the provider just forces a change) And I also guess that the Fritzbox does not notice the change of the IP Address and does not update the sip registration, so the sip provider just keeps sending calls to the old IP Address.

After I’ve setup the siproxd service this never happened again. It seems that the sip proxy on the firewall notices the IP change and updates the registration automatically, but this is also just a guess. I never analyzed this deeper because it simply worked.

The other reason why I would like to use the siproxd is because it is a simple fallback option in the case the FreePBX server crashes or does have a hardware failure. In this case I can simply register my sip provider number on any software phone in my network without having to change anything in the firewall configuration and receive calls again.

I could go without the simple fallback option, but I would like to make sure that incoming calls work even if the IP changes. My FreepBX now just runs for a few weeks, so I cannot tell if this problem still exists. How does FreePBX handle such a change in the external IP address or is there an easier way to inform FreePBX that the external IP changed?

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