Cisco SPA303 no audio after SIP reinvite


I’m testing cisco IP phone SPA303 against Asterisk
I’m facing a strange problem that sometimes I can hear only initial part of the first prompt when making an outbound call from SPA303 to a landline through a SIP provider, but sometimes I can hear the entire prompt (about 20 seconds long).

According to wireshark, in those cases where I heard the whole prmopt, asterisk always stayed between the end-points for RTP traffic. And in other cases where I heard only the partial prompt, asterisk didn’t always stay between the end-points for RTP traffic and the problem happened when those both end-points tried to talk to each other directly.

Any idea what might be causing this problem? Thanks.

How does Asterisk decide to stay between end-points for RTP traffic?

canreinvite=no for either side (now renamed directmedia).
recording the call
DTMF operated features enabled for either side
one side isn’t SIP
Non-optimisable local channel in the circuit

There may also be NAT related criteria, but I’m not sure.

Still unable to fix it. The workaround is to force RTP traffic to always go through asterisk.