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..