Re-invite forward and/or transcoding issue?

So this is weird. Our carrier is using a Sonus switch and they are trying to see why they can not negotiate base on 200OK. But before they can figure that out , they are sending re-invite after the 200OK from asterisk. Although I see asterisk re-negotiated the call on the re-invite, but it never send out the re-invite to the remote VoIP device. How come? How can I make it so that it send re-invite? If that is not possible, which is ok, I think asterisk suppose to then do transcoding correct? But it is not.

So what happen is that inbound RTP is G711 from the carrier, but the RtP from the far end VoIP device into asterisk is G729. When I do “sip show channel” on asterisk , I see both “user” are display being G711, which looks like asterisk is doing transcoding, it is converting G729 to G711 (as the carrier’s re-invite is G711), BUT when you do a wireshark on the asterisk server, you actually see G729 going out to the carrier and not G711.

So why the discrepancy? Why “sip show channel” show G711 yet the actual wireshark show G729?

And I know that it is actually sending out G729, becuase I get one-way voice. All the G729 packets are being dropped by the carrier.

Please help!

P.S. I have Nat=comedia,force_rport and directmedia=no and I am on asterisk 11

Thank you!