Cross posted in the 3cx forum I have the following setup: 3cx box with a private IP (172.16.x.x). A pix firewall with a public static IP (I have the "public ip address" set in global options) I have the public IP Natted to the private IP and I am allowing udp 5060 from my host on the internet. If I run ethereal on the 3cx box, I see the request come in, as well as in the 3cx logs. I have my droid with the 3cx app installed. When I am on wifi (internal work network) it is able to register perfectly and I can make calls, etc. When I am on 3g, using the same credentials, I get Authentication failed. I look in the server logs and I get this: 13:07:44.464 [CM102001]: Authentication failed for SipReq: REGISTER 172.16.x.xxx tid=PjCXpnl1x.6zOXtyFNDGmW7VUQbCY23BnE cseq=REGISTER firstname.lastname@example.org:5060 / 1478 from(wire); Reason: Credentials don't match, check that authorization-ID and password match the ones in extension settings The weird thing is that they DO match. I have fiddled with 3cx app for ever now and I still can't get it to work. I am rolling out a solution soon and evaluating 3cx but if I cant get users with public IPs to connect over the internet then this solution is worthless to me. Is this a bug, or am I missing something? I have been back and forth through the documentation on this and I can't get past it. HELP!