Use Zoiper instead. It speaks "IAX" and then you don't have to fight this battle.
Technically SIP cannot perform this miracle (it is impossible for the SIP Protocol to survive a double NAT scenario ...). That being said, thanks to packages like Vonage and many others, it is possible to configure your router to "fix" the situation with a sip algorithm. However: That can be problematic and specific to the router in question. Generally easier to put your Vicidial on an external IP (as long as you lock it down this is actually an improvement in your Vicidial communications). If you do this by adding a 2nd NIC to your Vicidial server, this will not change your local interaction with Vicidial at all.
And to nip the question in the bud: No, changing to IAX for a couple soft phones does NOT mean you have to change anything else to IAX. Not related to your trunks/carriers or internal phones. You can add as many IAX/SIP phones and IAX/SIP trunks and mix them any way you like, Asterisk will figure it all out when they speak to each other.
But your IAX phones will need to connect to IAX accounts under Admin->Phones (in the dropdown, it will need to say "IAX" instead of "SIP").
So: Either change these external phones to IAX or get another IP for your Vicidial server and be sure to lock it down with iptables (whitelist access only). Take your pick
Oh:
when you post, please post your entire configuration including (but not limited to) your installation method and vicidial version with build.
this IS a requirement for posting along with reading the stickies (at the top of each forum) and the manager's manual (available on EFLO.net, both free and paid versions)
You should also post: Asterisk version, telephony hardware (model number is helpful here), cluster information if you have one, and whether any other software is installed in the box. If your installation method is "from scratch" you must post your operating system and should also post the .iso version from which you installed your original operating system. If your installation is "Hosted" list the site name of the host.
If this is a "Cloud" or "Virtual" server, please note the technology involved along with the version of that techology (ie: VMware Server Version 2.0.2). If it is not, merely stating the Motherboard model # and CPU would be helpful.
Similar to This:
Vicibox X.X from .iso | Vicidial X.X.X-XXX Build XXXXXX-XXXX | Asterisk X.X.X | Single Server | No Digium/Sangoma Hardware | No Extra Software After Installation | Intel DG35EC | Core2Quad Q6600