Attach mesh to camera, not camera to mesh

Shortly: I want to attach head’s bone and whole animation to camera’s position or character’s position, not vice versa.

I am making first-person camera with full body - legs, body, arms, head. And I face different issues with that.
I created a character with first-person camera attached to the head bone.
When character moves, animation bends a little bit forward and head passes through a wall, and hence camera clips through the wall too. I don’t want such ugly behaviour.
I tried many different workarounds like socket offset etc, but nothing works properly because my model is not just first person arms, but whole mesh of player.
What I want to do is: Manipulate character and it’s camera movement independently from animation and align animation by camera starting from head position.
For example: Move camera, Camera collide (not clip), Animation’s Mesh getting aligned with camera’s current position starting from head’s bone.

I know it sounds confusing but I can say in another way: Camera = Head, but camera decide where the head is, not vice versa!