Why does the call quality vary depending on the type of firewall or network address translator (NAT) connection I have?
Because the voice media takes different routes (either peer-to-peer or via relay servers) depending upon the type of NAT you are behind, and this can cause varied levels of voice quality.