Guys this is a common networking issue. What you are trying to do is initiate traffic inside your firewall, reach the firewall and translate the address back to your internal host and send the traffic back inside. To me the easiest way to fix this is to use DNS... I don't know much about VOIP and I don't know if you can use a domain name instead of an IP address. If you can, problem solved. Use DynDNS to give your public address a domain name and then use an internal dns to map the same domain name to the internal address. If this is not possible, then you are looking at hairpin NAT which I do not know if LinuxMCE is capable of doing.
Because an origin endpoint and its router in a subnetwork may not recognize that a message is intended for a destination endpoint in the same subnetwork because it only knows its public IP address, the Internet Network Address Translation (NAT) server must be able to recognize the situation and hairpin the message back to the subnetwork so that it can reach its destination.
I am not an expert by all means, and there might be an easier way to do this so if someone knows of a better way please present it as I would love to know how.