One-way audio on internal transfers !?

Hello, we are starting to use FreePBX 13 for our office. We have an external trunk that works well in dialout and dialin scenarios for the person placing or taking the call. So I suppose we do not have the usual NAT problem situation.
We also can do internal-to internal calls with two-way audio so I also assume our local network settings must be correct. However, after doing an unattended transfer on an incoming call we cannot hear the voice of the internal person finally taking the call. We use Grandstream 2130 and 216 telephones; the issue is there regardless whether I use the transfer button of the phone, the ##xx sequence or the *2 sequence (which in principle all work, i.e. I see no error messages in the log files).

We use chan_sip for internal connections and pjsip for the external trunk.
The iptables firewall on the freepbx system is disabled and allows all packets.

In the generated asterisk config for the extension (sip_additional.conf) I see

deny=0.0.0.0/0.0.0.0
secret=(…)
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
session-timers=accept
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp,tcp,tls
avpf=no
force_avp=no
icesupport=no
encryption=no
namedcallgroup=
namedpickupgroup=
dial=SIP/27
mailbox=27@device
permit=0.0.0.0/0.0.0.0
callerid=(***)
callcounter=yes
faxdetect=no
cc_monitor_policy=generic

which looks OK to me.

Also we have
pjsip.endpoint.conf:t38_udptl_nat=no
and
sip_general_additional.conf:nat=no
The phones and the freepbx are in the 192.168.12.0/24 network and these are the settings for the network:

pjsip.transports.conf:local_net=192.168.12.0/24
sip_general_additional.conf:localnet=192.168.12.0/24

We tried changing the internal driver to chan_pjsip also but then we have “no-way audio”, i.e. no side hears anything.

What are we doing wrong?

Aargh, it is worse: I just found out that inbound calls generally have one-way audio. The internal person hears everything, but the external caller does not hear the internal voice. I have re-checked all the NAT settings and am at a loss where to look for. Any help?

try switching the trunk to sip instead of pjsip.

I try switching everything to Chan-SIP and them in the distant future, you can switch it all to PJ-SIP. Mixing these two is kind of challenging.

PJ-SIP is still relatively new, so there could be issues with it. Note that PJ-SIP is an Asterisk thing, not a FreePBX thing, so we only get to use it.

One of the problems you are likely seeing is the connection disconnects when switching your calls from 5060 on the external port to 5061 on the internal port. I’m not sure the system is going to grok that completely.

Ok, I now use chan_sip for everything. But it still does not work for incoming calls. I checked that I have all the incoming NAT rules in place. I am not sure what you mean with switching from 5060 to 5061, should I change ports somewhere?

You’ll actually have more luck with NAT Traversal issues with PJSIP, rather than chansip.

Or, just go back to the tried and true standard of ‘Use TLS and all your NAT problems go away’.