Asterisk does not sending out RTP packets in case of redirect call

I have Asterisk 13.10.0-rc1 inside my network with private address, also I have bidirectional (1:1) nat mapping from 212.65.93.74 to this address. My ouside provider is 62.221.34.22.

Calls from outside to my Asterisk is working fine! I have RTP flow. The same thing for calls to outside from one of my internal phones connected to my Asterisk within private addresses. Everything works fine. But if I get the call from outside and redirect it by Dial app back to provider on another callee, I saw no any RTP traffic via Asterisk. Could you tell me why?

Scheme: A calls B, B calls C
(A - external phone from my SIP provider, B - the extension in my Asterisk, C - another external phone I call via my SIP provider).

See output debug at http://goo.gl/xmvsWY

From sip.conf:

externip=212.65.93.74
localnet=192.168.0.0/255.255.0.0

[vega]
type=peer
trunkname=vega
host=62.221.34.22
context=from-trunk
insecure=invite
disallow=all
allow = alaw
nat = no
directmedia = no
dtmfmode = rfc2833
qualify=yes

externip=212.65.93.74 it is deprecated try externaddr = 212.65.93.7, nat=yes it is also deprecated try nat=force_rport,comedia

Current settings in sip.conf:

nat=force_rport,comedia
externaddr=212.65.93.74
localnet=192.168.0.0/255.255.0.0
directmedia=no
directrtpsetup=no

I did asterisk -rx ‘sip reload’. Nothing changes (Early I forgot to mention directmedia settings). All the same. No RTP traffic after that changes.

# asterisk -rx 'sip show settings' | grep Extern
  Externhost:             <none>
  Externaddr:             212.65.93.74:0
  Externrefresh:          10

Is it a bug?

My guess would be excessive use of comedia at both ends I would suggest removing comedia from your settings and forcing in band ring back.

I’m assuming the ITSP is running with comedia and is waiting for you to send media. You are not sending because:

  1. you have none to send
  2. your co-media setting is stopping you from being the first to send.

Just if someone else have the same problem, the solution was to Answer the call before forwarding.

same => n,Answer()
same => n,Gosub(cos-all,12345676,1)
.
.