Asterisk coder conflicts

We have an external FXO/FXS, and use Asterisk as a call router. We want to use G723 for the actual phone calls, because we have limited bandwidth on our return direction. This has been working fine so far.

However, now we want to set up Asterisk to handle PBX menues and accept extentions. Asterisk, of course, uses GSM for its messages, and cannot terminate G723 calls. So I want to tell Asterisk, FXO, and FXS to use GSM for messages and G723 for the data connection. The FXO/FXS would support this, but Asterisk isn’t working as I wish. Though I can provide it with a list of coding schemes:

; set up codecs

It never uses anything but the first entry. So if I use the above scheme, messages are played successfully, but the calls go through using GSM. If I put G723.1 first, Asterisk aborts with an error message (cannot convert gsm to g723.1).

Is there some way I can solve this problem, such as explicitly telling * to use GSM for its messages, and G723 for the handed-off data connection??