I hope I am not too late with this reply.
First things first: from the same reference you can see that the first 6 bytes (the file header) should be 0x23, 0x21, 0x41, 0x4D, 0x52, 0x0A. This is a constant value and should always be there. If it is not present then the file is probably corrupted and should not be used. So you should not blindly skip the first 6 bytes.
Now, AMR codec supports DTX (discontinuous transmission). DTX is nothing but a way of saving bandwidth by producing less data when vocoder detects silence. Your amr parser should be ready to expect DTX. For AMR-NB (amr narrow band or simply amr) DTX is signalled using mode 8. So your CMR Map should contain the below entry
8 AMR SID 6 (SID is silence indicator...indicates that silence period is starting)
After SID, there will be actual silence frames which will be 1 byte in length (just the header...NO DATA), so you should have entry for
15 AMR NO_DATA 1
Modes 9-11 should be discarded. And modes 12-14 are reserved for future use (generally these are also discarded). All the above information has been given keeping in mind that single channel AMR is being used.
In the prints you have pasted
6 -> 1 0 0 1 1 1 1 0
This is supposed to be the AMR Toc header
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|F| FT |Q|P|P|
+-+-+-+-+-+-+-+-+
For storage, F bit should be 0 but in your example it is 1. And last two bits (which are padding bits) must be zero but in your example these are not 0. I believe your example is not telling the full story here.