Here in Ireland 1800 (freephone) has always been free from mobiles.
However, if you have a 1800 number, you'll be charged at mobile rates to receive calls from mobiles. So, you've always had the option of not accepting calls from mobiles or specific area codes.
So, sometimes when you call a 1800 number you'll get "the number you are calling does not accept calls from your specific area codes. Calls cannot be accepted from your area code!" or a message asking you to call a different number.
What I find totally unacceptable here (and I don't know if this is the same in the UK or elsewhere) is that when you call non-geographic numbers they're often excluded from your call plan entirely and charged per minute. Even though your call plan might give you unlimited calls to landlines and mobiles.
So, if you call 0818 xxx xxx (national rate, whatever that means?!) or 1850 xxx xxx or 1890 xxx xxx (local rate, whatever that means these days?) or worst of all 076 xxx xxxx which is reserved for non-geographic VoIP numbers (you get these usually free of charge from your VoIP provider)... you get charged per minute and can end up with a rather saucy bill.
I get a bit sick and tired of companies and government agencies having these 1850 and 0818 numbers as if they're doing you a favour when they end up costing an absolute fortune to call as you're charged 'out of bundle'.
I don't know how telcos get away with this kind of thing. It can't cost any more money to call a non-geographic, non-premium rate number than a landline or mobile call and I do not believe they couldn't just reprogram their billing systems.
It makes no sense when they say something like "call us on 1850 XXX YYY (local rate)" when "Local Rate" is probably significantly more than I would be charged for calling someone 11,200 miles away New Zealand on a normal number which *is* included in my bundle. However, ringing some helpline for my bank at 'local rates' isn't.
We're being gouged as usual.