Why does my phone send SMS to other iPhone users?

I recently got the iPhone 5s. Generally, when I'm texting someone else who has an iPhone, the messages go through as iMessages. However, one of my friends who has an iPhone who I talk to a lot always shows up as texts. She says on her phone it is showing up as iMessage. Recently I started communicating via email to a friend in Germany. He suggested we use iMessage because it is simpler. However, when he sent me a message it came through as a text and my message back was also a text. My iMessage is switched on and my "SMS if no imessage available" is off. His as well. He says he has been communicating with other friends in America through iMessage with no problem. I'm getting frustrated. How do I fix this?

Maybe it's just Germany