One way audio

I’m successful in connecting my FreePBX to my SIP provider (private IP on the FreePBX server and NAT to Internet). Any ATAs connected directly to the FreePBX subnet work fine.

I have two remote extensions in my garage - these are bridged via wireless and are on a different private subnet. There’s no NAT though (the subnets in the garage are being advertised to my primary router via OSPF).

When I dial up “Lenny” or one of the working extensions, Lenny on the FreePBX server can speak to me, but Lenny can’t hear what I’m saying (audio only goes from the FreePBX side to the garage extension but not the other way around). DIsabling all firewalls as a test does not work either.

In Asterisk SIP Settings, check that your local networks include the garage subnet.

If that’s not it, describe the wireless setup in detail.

The garage has a SPA122 ATA - the SPA122 is registered to the internal IP of the FreePBX VM, but when it tries to send RTP, it’s trying to reach the network’s public IP instead of trying to send RTP to the FreePBX VM directly. This I just saw in my firewall logs for the primary router.

I don’t understand your last post.

For example, assume that your house/office subnet is 192.168.1.0/24 and the garage subnet is 192.168.2.0/24.

Please explain any differences from these assumptions:

  1. Your primary router has a LAN address in 192.168.1.0/24 and a public WAN address.
  2. The physical server (host) running the FreePBX has an address in 192.168.1.0/24.
  3. The VM (guest) running FreePBX also has an address in 192.168.1.0/24, but different from the host, i.e. the hypervisor is doing bridged networking.
  4. There is an access point (AP), also on 192.168.1.0/24 that forms one end of the wireless bridge. (It could be part of the primary router or a separate device.)
  5. If an ordinary Wi-Fi device such as a smartphone or tablet connects to the above AP, it will get an address in 192.168.1.0/24 by DHCP from the primary router or a separate DHCP server.
  6. In or on the garage there is a Wi-Fi client bridge with a built-in or separate non-NAT router with an Ethernet interface on 192.168.2.0/24.
  7. The Blue (Internet) jack on the SPA122 is connected to the interface above and the ATA has an address in 192.168.2.0/24.
  8. Any NAT-related settings in the ATA are left at default (off).
  9. In FreePBX Asterisk SIP settings -> NAT Settings, there are two Local Networks fields, one for 192.168.1.0/24 and one for 192.168.2.0/24.
  10. You have restarted (not just reloaded) Asterisk after changing any NAT settings.
  11. In FrePBX Reports -> Asterisk Info -> Peers, the IP address for the SPA122 indeed shows the address noted in step 7, i.e. in 192.168.2.0/24.

Also, please post whether the SPA122 is using pjsip or chan_sip, and the make and model of relevant networking devices.

I think it was unhappy with two localnet settings so I used one CIDR notation that covered both subnets.

If you do that then the subnet’s broadcasts won’t work :slight_smile:

localnet= impacts network interface configurations? Routing must be working properly otherwise I wouldn’t have had two way audio on my last test call, which needs to cross a router boundary.

It does not, only pjsip and chan_sip are affected and these stacks do not use broadcasts.

I don’t understand. It is working properly now (both incoming and outgoing), or do only some calls have two way audio?

If the problem is solved, please post enough detail to help other readers of this thread.

If you are still having trouble, answer the questions asked earlier.

To follow the original IPs mentioned above and not actual: when I had this (FreePBX generated conf file):
localnet=192.168.1.0/24
localnet=192.168.2.0/24

it didn’t work - but when I changed it to:
localnet=192.168.0.0/16

it did - two way audio for phones in both subnets

1 Like

I have a very similar issue, but I can’t seem to resolve it by changing the CIDR notation. We have several locations and subnets, and some of the subnets work, while others do not. When I move a phone into one of the VLANs, it registers fine with FreePBX, but audio will only flow one way (from the external phone to the VoIP phone). I have captured packets on the firewall, and it appears that the audio from the VoIP phone is being sent to the external public IP instead of the internal private IP.

I am doing all of the config under the ‘Asterisk SIP Settings’ section in FreePBX, and the localnet settings look like this.

localnet=192.168.1.0/24
localnet=192.168.104.0/21
localnet=192.168.120.0/21
localnet=192.168.136.0/21
localnet=192.168.176.0/21
localnet=10.1.200.0/24
localnet=10.105.200.0/24
localnet=10.120.200.0/24
localnet=10.140.200.0/24
localnet=10.180.200.0/24
localnet=172.16.200.0/24

What is really odd is that all of the 192.168.x.x networks work fine; this problem is only with the 10.x.x.x networks. Any ideas what I’m missing?

Almost as if only the first localnet= is used.

Perhaps try

localnet=10.0.0.0/8
localnet= 192.168.0.0/16
localnet=172.16.0.0/12

This would cover all legal IANA private networks without compromise, any/all subnets should be subsumed

Make sure you have routing rules as necessary to cover all of these three likely VLAN networks back to your server’s network

First, try reducing the Local Networks in Asterisk SIP Settings to three entries, as suggested by @dicko . Changing this setting requires you to restart (not just reload) Asterisk.

If no luck, examine /etc/asterisk/sip_general_additional.conf and /etc/asterisk/pjsip.transports.conf and confirm that all three entries are present. If not, i.e. it’s a FreePBX bug, try manually adding the missing entries to the corresponding override files.

If the .conf files are correct (but are not being properly interpreted), switching the affected extensions from pjsip to chan_sip (or vice versa) may help.

If you still have trouble, post a SIP trace of a failing call.

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