How to make work full both side audio when there are 2 router in between asterisk and internet?

the problem seems to be the first router

I have these setup

Internet-----2wireISP-------DD-WRT router-------asterisk box

2wire is the 1 router that supply the internet
If I do a port forwarding to DD-WRT with
sip 5004-5080 UDP and RTP - 10000-20000 UDP
and in asterisk put externip=xxx.xxx.xxx.xxx. in sip-custom then one way audio problem on sip-trunks but the remote extension works fine both ways audio.

If I put the DMZ in ip where DD-WRT is set on 2wire router
then SIP trunks work fine both ways audio but remote extension can not register and find asterisk
so the problem seems to be the first router 2wire
but i dont know why since sip and rtp ports are forwarding fine. do I need to open other range port in order to disable DMZ and fix one audio problem ???

thanks so much for any help to drive this in the right direction

I expect that between 2wireISP and DD-WRT is private IP addresses? The same with DD-WRT and Asterisk box?

You may have to config a virtual server on 2wireISP that points to DD-WRT with another Virtual server that points to the Asterisk box.

2wire supply dd-wrt with private ip address that is 192.168.1.67

dd-wrt set that ip address(192.168.1.67) as gateway or Wan IP

then dd-wrt gives 192.168.2.109 private ip to freepbx box

how I can create a virtual server on 2wire router ???