Hi Sheraz.
Unfortunately it is working in different logic by Cisco:
1) Agent PG is associated with Dialer.
2) You have a skill group for Outbound on the Agent PG.
3) Each Dialer has associated ports.
So if you want to strictly limit Ports per campaign usage - then you have to create multiple dialers. Keep in mind that in all modes, except IVR campaign and Direct preview, you need 2 ports per call - one to reserve agent and second for outbound.
If you need to prioritize some campaign over others - use OutboundPercent for the skill groups and Penetration settings for Query Rules.