Phone them.
If you are out of contract you have them by the short and curlys.
You have to be strong though. Keep asking for more, don't take no for an answer and don't be afraid to say perhaps you'll check out other networks first if you can't get what you want.
You have to be reasonable of course but it is possible to screw them down.
When I upgraded from 5 to 6 they insisted they couldn't let me have my 10% Orange discount I had brought over previously (when I got the 5 going from Orange to EE4G).
Kept saying it would have to be reduced to 5% but I wasn't having any of it.
I asked to be put through to retentions and was told I was already speaking to them..... yeah, right!!!
I calmly said perhaps I would ring off and check out what others could offer me at which point the CS person said "hang on, I'll have a word with someone". She came back and said that I could have the 10% after all.
I had been with orange/EE for 18 years continuously at that point so I had a bit of clout but give it a go. What have you to lose?
Even if you get to the point of hanging up you can always call back later and you'll get someone else so you won't even have to eat humble pie!!