Headbite, did you ever figure out this issue? I just upgraded to Exchange 2010 and have all the 3300 integration working except for MWI. I'm not a phone guy, so my terminology might be wrong, but here's a very quick summary of what was done:
To be able to call the exchange server we had to build a trunk i.e. trunk service assignment, assign a cos, assign the trunk service number to the sip peer profile. Since we couldn't forward directly to the sip trunk, we created a speed dial (in my case 6100) that pointed to the Exchange sip trunk. Also, don't forget to setup your dialplan. Now when 6100 is called, they are dropped directly into Outlook Voice Access.
Outbound from exchange was a little trickier. The autoattendant seems to work find with the above configuration i.e. having the AA connect you to an extension, because the call is originating from the pilot number (6100). However things like 'play on phone' didn't work until I added our extensions to the sip peer profile assignment form and email addresses/extensions to the 'URI/Number translation' table. It took many wireshark traces to figure that out, but all seems good now.
As far as MWI, apparently Exchange is supposed to send a sip Notify message to the controller when a voicemail is waiting...however, I don't see that message in the wireshark captures. If anyone has an idea why, please let me know
Hope that helps you or someone out there!