Codec priority problem

My provider offers g711 with t.38 and g729 in the INVITE meesage to our system but does not give priority to either codec and expects us to reply with our SIP 200 OK message that we want G729 as the priority CODEC.

We are using the FreePBX distro and our sip.conf (sip_general_aditional.conf) is configured to give g729 priority i.e.
faxdetect=yes
disallow=all
allow=g729
allow=alaw
and the ATA extensions allows only g729 yet all calls end up as alaw on the provider side and g729 on the ATA side.

  1. How can we force g729 codec on both connections without removing alaw from sip.conf and without breaking fax detection?

  2. Is it possible to force Asterisk to renegotiate to g729 after it is determined that the incoming call is not a fax?

  3. If we remove alaw from sip.conf but allow it in the extension can we still have alaw extensions or would all alaw calls be dropped?