diff --git a/grc/demapping/gsm_tch_f_chans_demapper.xml b/grc/demapping/gsm_tch_f_chans_demapper.xml
index 23d77ee..c87776a 100644
--- a/grc/demapping/gsm_tch_f_chans_demapper.xml
+++ b/grc/demapping/gsm_tch_f_chans_demapper.xml
@@ -3,16 +3,41 @@
   <name>TCH/F Demapper</name>
   <key>gsm_tch_f_chans_demapper</key>
   <import>import grgsm</import>
-  <make>grgsm.tch_f_chans_demapper($timeslot_nr)</make>
+  <make>grgsm.tch_f_chans_demapper($timeslot_nr, $tch_type, $tch_h_channel)</make>
 
   <param>
-    <name>timeslot_nr</name>
+    <name>Timeslot</name>
     <key>timeslot_nr</key>
     <value>2</value>
     <type>int</type>
     <hide>part</hide>
   </param>
 
+  <param>
+    <name>TCH Type</name>
+    <key>tch_type</key>
+    <value>0</value>
+    <type>int</type>
+    <hide>part</hide>
+    <option>
+      <name>Full rate</name>
+      <key>0</key>
+    </option>
+    <option>
+      <name>Half rate</name>
+      <key>1</key>
+    </option>
+  </param>
+
+  <param>
+    <name>TCH/H Channel</name>
+    <key>tch_h_channel</key>
+    <value>0</value>
+    <type>int</type>
+    <hide>#if $tch_type() == 0 then 'all' else 'none'#</hide>
+  </param>
+  <check>$tch_h_channel() &gt; -1 and $tch_h_channel() &lt; 2</check>
+
   <sink>
     <name>bursts</name>
     <type>message</type>
diff --git a/include/grgsm/demapping/tch_f_chans_demapper.h b/include/grgsm/demapping/tch_f_chans_demapper.h
index c04c749..32bed30 100644
--- a/include/grgsm/demapping/tch_f_chans_demapper.h
+++ b/include/grgsm/demapping/tch_f_chans_demapper.h
@@ -48,7 +48,7 @@
        * class. gsm::tch_f_chans_demapper::make is the public interface for
        * creating new instances.
        */
-      static sptr make(unsigned int timeslot_nr);
+      static sptr make(unsigned int timeslot_nr, int tch_type, int tch_h_channel);
     };
 
   } // namespace gsm
diff --git a/lib/demapping/tch_f_chans_demapper_impl.cc b/lib/demapping/tch_f_chans_demapper_impl.cc
index 9865a47..0841fd2 100644
--- a/lib/demapping/tch_f_chans_demapper_impl.cc
+++ b/lib/demapping/tch_f_chans_demapper_impl.cc
@@ -109,11 +109,11 @@
         }
     }
 
-    void tch_f_chans_demapper_impl::sacch_tch_demapper(uint32_t fn_mod13, uint32_t fn_mod26, uint32_t frame_nr,
-                                                       pmt::pmt_t *d_bursts_sacch,
-                                                       uint32_t *d_frame_numbers_sacch, pmt::pmt_t d_bursts[3][8],
-                                                       uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out)
-    {
+void tch_f_chans_demapper_impl::sacch_tch_demapper(uint32_t fn_mod13, u_int32_t fn_mod26, uint32_t frame_nr,
+                                                   pmt::pmt_t *d_bursts_sacch,
+                                                   uint32_t *d_frame_numbers_sacch, pmt::pmt_t d_bursts[3][8],
+                                                   uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out)
+{
         bool frames_are_consecutive = true;
         if (fn_mod13 == 12)
         {
diff --git a/lib/demapping/tch_f_chans_demapper_impl.h b/lib/demapping/tch_f_chans_demapper_impl.h
index bef018d..7a546e7 100644
--- a/lib/demapping/tch_f_chans_demapper_impl.h
+++ b/lib/demapping/tch_f_chans_demapper_impl.h
@@ -32,6 +32,8 @@
     {
      private:
       unsigned int d_timeslot;
+      int d_tch_type;
+      int d_tch_h_channel;
       // Downlink
       uint32_t d_frame_numbers_dl[3][8];       // for checking consecutive frame numbers of tch
       uint32_t d_frame_numbers_sacch_dl[4];    // for checking consecutive frame numbers of sacch
@@ -49,7 +51,7 @@
                               uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out);
 
      public:
-      tch_f_chans_demapper_impl(unsigned int timeslot_nr);
+      tch_f_chans_demapper_impl(unsigned int timeslot_nr, int tch_type, int tch_h_channel);
       ~tch_f_chans_demapper_impl();
 
       void filter_tch_chans(pmt::pmt_t msg);
