All I can think of is do a factory reset, although I doubt that this will change anything, another idea is to turn airplane mode on then restart your phone with it on, then when it's fully booted turn off airplane mode, maybe something in the start up process is messing it up. but honestly I don't know what else to say
well I have one more idea, this is a suggestion made by a sprint tech years back when I had a sprint phone which had the same problem, he suggested turning off the phone, then taking out the battery for 5 minutes, then putting it back in and starting the phone. It didn't work for me but maybe it will do the trick.