Obviously you have re-started the iPhone a few times since the problem started (especially with the iOS upgrades), so this is a tad odd.
The only thing that I could suggest is to take a full backup then try the following:
Step 1 - /settings/general/reset all settings, reboot phone and test
Step 2 - If that didn't help, do a full restore from the backup in iTunes & test
Step 3 - If neither step 1 or 2 worked, do a /settings/general/erase/erase all content and settings and test, this will revert your phone back to factory defaults, help clarify if the issue is the hardware/iOS or your configuration.
If step three didn't start providing the details, head to the Genius Bar to have them fix it for you
If step three did start providing the details, restore your phone and head to the Genius Bar and have them take a look. Or you could decide to use the phone without restoring your previous backup, re-install everything and put all your data back on the phone (I like to do this every now and again, especially where I'm using beta OS or software).