Webrtc one way audio issue

We are using following set-up

  1. Freepbx on centos
  2. Asterisk 11.11
  3. Asterisk is behind NAT
  4. SIpml5 latest with {DtlsSrtpKeyAgreement: false} so that it will work with chrome 35 without DTLS
  5. Chrome 35
    When chrome client and asterisk both are in same network, calls work fine and voice flows in both direction. But when client is outside network then we are facing one way audio issue. Call connects and voice is received by chrome but no voice goes to asterisk. Actually ICE negotiation never completes (ICEGatheringStateComplete is fired but ICEConnectionStateConnected is never fired) and hence chrome does not send any voice packets out. Interestingly when our client is outside network but using an internet connection where private IP and public IP of client is same, audio works without problem. Not sure what I am missing here.
    rtp.config
    [general]
    rtpstart=10000
    rtpend=20000
    icesupport=yes
    stunaddr:19302=stun.l.google.com

sip.config
[1103]
deny=0.0.0.0/0.0.0.0
secret=abc123
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=friend
nat=auto_force_rport,auto_comedia
port=5060
qualify=yes
qualifyfreq=60
transport=ws,udp,tcp,tls
avpf=yes
icesupport=yes
encryption=yes
callgroup=
pickupgroup=
dial=SIP/1103
mailbox=1103@default
permit=0.0.0.0/0.0.0.0
callerid=John Bull <1103>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic

Any help will be much appreciated. Please let me know if more information or debug log is required to understand the issue.

We have been troubleshooting this issue for weeks now and have tried virtually everything with no progress. Does anyone know what could be happening here?