elastix is great, but I would do everything I could to prevent a pbx from being exposed to the internet, I think the thought with adding openfire to elastix was to add internal IM.
Having said that, you’ll need to configure an external dns srv record, enable server 2 server, and then configure your firewall. You’ll also need to look at elastix, and check the software firewall (ip tables) that it uses…
I would also recommend that you set up a connection manager on the DMZ to proxy xmpp connections to your internal lan. This will help limit your exposure. Just a though!