Problem solved
I had this same problem about a year ago. I searched the Internet for help. Almost everything I read suggested this had something to do with the headphone jack being dirty, wet or something lodged in it. I found it hard to believe that jamming the headphones in and out several times would fix this. I had the same feelings that blowing, freezing or vacuuming the headphone jack would fix my iPhone. I wanted to post this because, my phone did the same thing this evening. I got so frustrated because I couldn't remember what I did to correct it the last time. So, after about an hour of pulling my hair and going through every setting on my phone 20 times or so, I finally figured it out. I hope this helps anyone else going through the same issue. Go to your settings/ general/ accessibility/incoming calls. Change your incoming calls to default or speaker. Go back to your home screen press the volume and you most likely will see volume (headphones). Go back to your settings/ general/ accessibility/ incoming calls. Change your incoming calls to headset and this will fix your phone.
Thank you so much, this worked for me too (after fruitless hours of blowing, sucking, probing my headphone jack).
My default had been set to headphone after updating to ION 7.3. When I would listen to music, i could unplug the headphone jack and the music would keep playing. When the phone rang, if there were no headphones in it wouldn't ring. Just as described above.
Per the solution quoted above, I changed the setting to speaker, then called the phone, that worked. I left it like that for about 30 minutes, and then I changed it back to default, and everything works correctly. Don't be discouraged if you change to speaker, then change back to default and headphone is still engaged. It took my phone about 30 minutes to clear up. But now it works, no problem. Thank you!