I have FreePBX 17 installed and I have also installed OpenPage. I have approximately 40 Yealink phones all configured with multicast IP addresses and ports to be able to listen to a broadcast.
My question is this:
My FreePBX server has two Ethernet ports eth0 with IP range of 10.x which is my main LAN where I can connect to the FreePBX UI and manage it etc. on this LAN I also have my internet firewall forwarding the relevant ports over for SIP trunk which works good.
I then have eth1 which runs in ip range 192.x and this connects to a standalone full PoE switch that has all the Yealink phones. There is no link between this network and the main LAN.
FreePBX firewall section is configured that eth0 is the Internet and eth1 Trusted
Since the Yealink phones are in eth1 and the multicasts essentially need to be sent to that switch network, how will OpenPage/FreePBX broadcast the multicast page? Will it sent it to both eth0 and eth1?
If I were to add a multicast listening device listening on some of the same multicast IP and ports that the isolated yealinks are listening on but add this one to my main LAN not the Yealink lan, will OpenPage/FreePBX essentially broadcast to both eth0 and eth1 making the multicast possible on both networks?
I hope I’m making sense and someone can clarify.
Are they both part of the same subnet domain? Multicast can do what you’re looking for but you need to make sure your network and routers, etc support this and are setup properly to pass multicast between two subnets.
So i just tested this and it didn’t work as I wanted. My two networks are not connected. Both are physically seperate from each other. The freepbx system has 2 ethernet ports.
Ethernet Port1 connects to a switch that is one physical network
Ethernet Port2 connects to another physical switch
The two switches are not connected in any way except the only thing is that the freepbx server sees both networks so the freepbx server can communicate with both networks. But it seems when I do a multicast page, the broadcast only seems to get broadcasted to the switch on Ethernet port 1. The other switch on Ethernet port 2 does not receive the multicast broadcast.
Is there not a way to make it so that it broadcasts to both ports essentially sending the multicast to two seperate switches?
Ok thanks. But what is making the server choose port1 for multicasting on instead of port2? What if I wanted it to be specific to Ethernet port2 but right now it seems to be multicasting to port1
Thanks for the replies. After a lot of testing and experimenting, I wanted to share what actually worked for me, in case others run into this.
My FreePBX 17 system has two physical NICs. Each connected to a separate, isolated switch/network. Paging via multicast (e.g., 239.255.x.x) only reached devices on the first NIC (which I discovered is by design and how Linux actually handles it), even though both networks were visible to the server.
What didn’t work:
smcroute / mrouted / pimd: Too complex or unreliable. They sometimes forwarded ICMP multicast pings but didn’t reliably forward actual paging UDP streams.
IGMP routing: Not an option because some devices (like Snom PA1) don’t reliably support IGMP properly or fail with snooping enabled. I have many Snom PA1 devices and having been back and forth with their customer support, these devices only seem to reliably work with dumb switches and no routing or Layer 3 features. Snom even provided a few experimental firmwares for me to try and didn’t get anywhere. I could only get them working with simple switch without routing.
Bridging / full routing: Not suitable here as I wanted to keep both networks isolated.
What worked:
Using iptables TEE to clone the multicast to the second NIC:
iptables -t mangle -A PREROUTING -i eth0 -d 239.255.100.10 -j TEE --gateway 192.168.1.255
That replicated the paging multicast cleanly to both interfaces. Using the PREROUTING chain ensures the multicast packets are cloned right as they arrive, before routing decisions are made, which is ideal for this kind of interface-level duplication. No need to bridge, no daemons, no IGMP. Traffic shows up on both NICs instantly (confirmed with tcpdump). It’s low-overhead and works even after reboot (made persistent).
Hopefully this helps someone avoid the headaches I ran into.
@johnr, speaking purely from my current build on CentOS, it has generally given me fits when I do multicast routes with a subnet mask larger than a single address (/32). I don’t feel like it should be a problem but it has been lol. If you are successful with this please share.
TangoPBX is a trademark of TangoPBX LLC, FreePBX is a trademark of Sangoma US Inc, Asterisk is a trademark of Digium Inc.