First thing to check is to make sure the other side has a jitter buffer enabled, it will have a lot of impact (zoiper has an automatic jitter buffer, no need to make changes on the zoiper side).
How many simultaneous calls do you want to do ? If you want to do a lot, calculate the bandwidth needed with something like this: http://www.asteriskguru.com/tools/bandwidth_calculator.php
I would suggest to:
- use a codec that uses not too much bandwidth (e.g. g729, gsm, ilbc, speex).
- use a codec that handles packetloss (iLBC)
If your server supports OPUS, sign up for the zoiper 5 beta test from http://www.zoiper.com/labs/
as it has good error correction in case of packetloss.
The next thing you can do is do some QOS tagging (in the hopes that the rest of the network will support it).
Have a look here:https://technet.microsoft.com/en-us/library/cc771283.aspx
( I would suggest to do the marking based on the destination IP = the server ip).