Can I get my old number on my new phone? (Details)?

Basically I got a iPhone on contract(O2) so I'm paying for the phone and the sim monthly. But I wanted a premium number instead of those ridiculous automated ones you get usually. So I payed 40 quid for a premium number which I chose myself. Now here's the thing, I'm getting a different iPhone and different contract now, and I want to take my old O2 sim number (the premium one which I bought for extra money) over to my new Iphone and new contract which is on a different network (giffgaff) I can do this right? They can't say I can't because the number is locked to the O2 contract right? Because I bought it extra? So I deserve the right to move it where I want? Maybe if it was just automated fair enough but it's not? Understand?

No you can't

Not 100% sure about this because of your wording. There are some numbers that you can't transfer from one mobile contract to another - usually those that don't appear to be mobile numbers. The other reason would be if the old contract is still in effect - in order to transfer that, then you would need to pay off the contract in full.

I recently got a new phone and in order to carry my number from an Orange sim over to my new network i had to phone up EE from my phone using the Orange sim and request a PAC code i then took this PAC code in to the phone shop and got my number moved over to my new sim it took several days for the number to move over