Any IMU can give you a decent heading, as long as it is calibrated for hard iron distortion and it or your cold includes tilt compensation;
https://www.youtube.com/watch?v=QGIiu2uOWeA
You could also look at uBlox's CellLocate for indoor positioning
