We are using following set-up
- Freepbx on centos
- Asterisk 11.11
- Asterisk is behind NAT
- SIpml5 latest with {DtlsSrtpKeyAgreement: false} so that it will work with chrome 35 without DTLS
- 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.