Hi,
I have indeed been able to resolve this issue.
After doing some sniffing with wireshark both on the inside as on the outside interface of both the pfsense firewall and the end stations, I've seen that Pfsense was doing PAT (Port address translation) on the outgoing RTP traffic (which is actually normal for a NAT firewall to do). So Pfsense was changing souce and destination ports on outgoing RTP traffic being sent from the internal PBX to the end point (receiving call device).
After some searching I found an option in Pfsense that enables you to use static outbound ports for specific devices.
If you go to the NAT configuration of your pfsense (Firewall >> NAT). There you can go to the "Outbound" tab and enable "Manual Outbound NAT rule generation".
If you did that, you can add a specific rule for your "internal PBX IP" as source with source port "udp/" to "** (any)**" destination with destination port "udp/1024:65535" and your "WAN Address" as NAT address. The trick is to enable "Static Port" on this rule, forcing your pfsense to use the same source port your PBX is using to forward to the end point. (See attachment)
I believe this problem occurs because the end point (receiving the call) receives packages containing a different source port than those stated in the package payload (content of the packages). If the end point returns RTP packages, it will use the source ports that it can find in the package payload and ignores the source ports from the package itself. When the end point returns RTP packages to pfsense, they will be sent to another destination port than the active socket is using, causing the firewall to block/drop the packages.
I hope this info is correct and can help you troubleshoot your problem.
Kind regards,
Francis Claessens.
2014-04-04_08h16_44.png
2014-04-04_08h16_44.png_thumb