# This unit test data file is a collection of TRAU-AMR-16k frames, to be # presented to osmo_amrt_decode_trau_frame() in sequence by way of trau2rtp_amr # test program. # The following frames have been emitted by Nokia TCSM2 TRAU under these # conditions: # # - PCM circuit type F; # - TRAU channel activated in AMR mode with DTXd enabled; # - CMR set to 0 (MR475) in the UL frame stream fed to the TRAU; # - G.711 PCMA input was constant 0x54 (idle). # # Since the input was a form of silence (but not EHF) and DTXd was enabled, # the TRAU emitted 7 speech frames (encoding the silence) followed by AMR DTX # pattern of one Sid_Update every 8 frames. # # Please note that unlike FR/EFR, AMR TRAU frame format and semantics are # exactly the same in UL and DL directions. Therefore, frames emitted # by a historical hardware TRAU are just as good for unit test purposes # as those emitted by an E1 BTS - but much easier to produce in Themyscira lab. RESET 000098048f1fffffffffffe3c4ebb0809900f801be0e909e81afffffffffffffffffffffffffffff 0000980c8f1ffffffffffff6a4ebba26fb3f8083ff1e90878bffffffffffffffffffffffffffffff 000098048f1fffffffffffd8e471bff9d803ff7dbd3e809ee5afffffffffffffffffffffffffffff 0000980c8f1fffffffffffcdf02cf8a09895f80dbc06809e81afffffffffffffffffffffffffffff 000098048f1fffffffffffcdd307b8a09837f80dbc06809e81afffffffffffffffffffffffffffff 0000980c8f1ffffffffffffff02cf8a09831f80dbc06809e81afffffffffffffffffffffffffffff 000098048f1fffffffffffcdd307b8a09837f80dbc06809e81afffffffffffffffffffffffffffff 0000980c8c1ffffffffe9c7ffffffffffffcffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff09c7ffffffffffffeffffffffffffffffffffffffffffffffffffffffffff 0000980c8c1ffffffff09c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffffa9c7fff26e3c1da05ffffffffffffffffffffffffffffffffffffffffffff 0000980c8c1ffffffff09c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff # The following frames have been emitted by the same Nokia TCSM2 TRAU # under these slightly different conditions: # # - G.711 PCMA input was constant 0xD5 (silence); # - CMR in the UL frame stream fed to the TRAU (itt-ater-16 test program) # was manually stepped through all 8 modes. # # G.711 A-law (but not mu-law) has this quirk whereby the silence code (0xD5) # decodes into 0x0008 in 16-bit linear PCM, rather than solid 0 - and all GSM # speech encoders, including AMR, interpret a frame of all 0x0008 samples as # an encoder homing frame (EHF). TCSM2 AMR speech encoder also behaves in this # manner, hence the DL output from the TRAU channel was nothing but endless # DHFs. This stream of DHFs exhibits mode switches on RIF=0 output frames # whenever CMR input to the TRAU was changed. # # The following extract exhibits just two frames of each mode, a pair of # RIF=0 and RIF=1 output. RESET 000098048f1ffffffffffffe93a78cc09946fb85bd8c883ecdafffffffffffffffffffffffffffff 0000980c8f1ffffffffffffe93a78cc09941fb85bd8c883ecdafffffffffffffffffffffffffffff 000098048f3fffffffffffffc4e9e33087b8f80cadf6ff75f47bffffffffffffffffffffffffffff 0000980c8f3fffffffffffffc4e9e33087bdf80cadf6ff75f47bffffffffffffffffffffffffffff 000098048f5ffffffffffff0f18bf7a087bcf8079fd88f9fbff083ddbfffffffffffffffffffffff 0000980c8f5ffffffffffff0f18bf7a087bff8079fd88f9fbff083ddbfffffffffffffffffffffff 000098048f7fffffffffff0e98befa00dc07f898fc21c171bc03fb18f013ffffffffffffffffffff 0000980c8f7fffffffffff0e98befa00dc02f898fc21c171bc03fb18f013ffffffffffffffffffff 000098048f9ffffffffff871c5f7d003bc04ec418fc5ec1bd37886d880de807fffffffffffffffff 0000980c8f9ffffffffff871c5f7d003bc06ec418fc5ec1bd37886d880de807fffffffffffffffff 000098048fbffffffff689c697dec00dfa00f3c0c3d2ed8e9a6f881f94d0bc83bfffffffffffffff 0000980c8fbffffffff689c697dec00dfa05f3c0c3d2ed8e9a6f881f94d0bc83bfffffffffffffff 000098048fdffffffc38e2f4a80080008002ed72b19dfd469881ad6b9ec09f60df21ab868fffffef 0000980c8fdffffffc38e2f4a80080008001ed72b19dfd469881ad6b9ec09f60df21ab868fffffef 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f # Note this quirk of Nokia TCSM2, visible in all of the DL outputs showcased # above: when it emits speech frames, it sets CMR in its DL output to the same # mode as its speech output mode (DL CMI, controlled by UL CMR) - but when it # emits AMR DTX pattern (Sid_First, then occasional Sid_Update among No_Data # frames), it emits CMR=7 in that DTXd output. This behaviour is peculiar, # and may be considered a bug: codec modes in UL and DL directions are # independent of each other, hence there is no good reason for a TRAU to tell # the BTS to limit its UL mode based on what the BTS told the TRAU regarding # DL mode. TS 48.060 even tells TRAU implementors that they should always emit # CMR=7 in DL output when they are not forwarding frames from TFO - but Nokia # implemented it wrong on TCSM2. According to some docs, this bug is fixed in # Nokia TCSM3i - but Themyscira HQ does not have that hw. # # When this quirk of TCSM2 is combined with CMR/CMI alternation in sequences # of speech frames and the stream of TRAU frames is converted to RTP, the # change in CMR will lag the change in FT by one frame. # Test decoder behaviour when a RIF=1 frame occurs first out of reset, # followed by RIF=0. Mode 7 DHFs were taken from TCSM2 output above, # but reordered for this test. RESET 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f # The following test sequence, pieced together from TCSM2 DL outputs with some # creative reordering, exercises the following cases: # # - Beginning with RIF=1, but on a No_Data frame; # - Two RIF=0 speech frames in a row; # - Two RIF=1 speech frames in a row. RESET 0000980c8c1ffffffff1fc7ffffffffffffeffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff1fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f # No_Data frames in a weird, unnatural order that can never be emitted by a # correctly functioning BTS or TRAU - but because these frames are a form of # No_Speech, our library should decode them correctly no matter what. RESET 0000980c8c1ffffffff09c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000980c8c1ffffffff0dc7ffffffffffffcffffffffffffffffffffffffffffffffffffffffffff 0000980c8c1ffffffff19c7ffffffffffff9ffffffffffffffffffffffffffffffffffffffffffff 0000980c8c1ffffffff1fc7ffffffffffffeffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff09c7ffffffffffffeffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff0dc7ffffffffffffdffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff19c7ffffffffffff8ffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff1fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff # Sid_Update frames for modes 0, 2, 4 and 7, extracted from a TCSM2 session # in DTXd mode, but grouped together in an unnatural way for this test. RESET 000098048c1ffffffffa9c7fff26e3c1da05ffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffffadc7fff26e3c1da06ffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffffb9c7fff26e3c1da03ffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffffbfc7fff26e3c1da04ffffffffffffffffffffffffffffffffffffffffffff # Test handling of CRC errors. Each test frame was constructed by taking one # from TCSM2 DL output and corrupting some bits. RESET 000098048c1ffffffff19c7ffffffffffff8ffffffffffffffffffffffffffffffffffffffffffff 000098048c1ffffffff19c7ffffffffffffbffffffffffffffffffffffffffffffffffffffffffff 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438dac8480bc7ed01f 000098048fe1854ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f 0000980c8fe1854ddcb5aab5c00080008007dac3fd9a86f2c7128041ac2abc438fac8480bc7ed05f 000098048fe1855ddcb5aab5c0008000800bdac3fd9a86f2c7128041ac2abc438dac8480bc7ed05f