{"id":165,"date":"2017-06-10T15:01:52","date_gmt":"2017-06-10T15:01:52","guid":{"rendered":"https:\/\/geekblog.febo.com\/wp\/?p=165"},"modified":"2017-06-15T16:29:40","modified_gmt":"2017-06-15T16:29:40","slug":"20-p25-trunking-scanner-part-4","status":"publish","type":"post","link":"https:\/\/blog.febo.com\/?p=165","title":{"rendered":"$20 P25 Trunking Scanner (Part 4)"},"content":{"rendered":"<p>With op25 successfully decoding the control channel, now you just need to set up the trunking configuration.  To do this, you&#8217;ll probably need to set up three files:<\/p>\n<p>1.  <code>trunk.tsv<\/code> defines the sites to be monitored.<\/p>\n<p>2.  <code>site_name.tsv<\/code> provides a table of talkgroup numbers and names for that site.<\/p>\n<p>3.  Because you probably only want to listen to a subset of the talkgroups, you can optionally create a file called <code>site_name_wl.tsv<\/code> with a list, one talkgroup per line, of the talkgroups you want to hear.<\/p>\n<p>Here&#8217;s what my <code>trunk.csv<\/code> file looks like for the Montgomery County, Ohio MARCS-IP system:<\/p>\n<p><code><br \/>\n\"Sysname\"\t\"Control Channel List\"\t\"Offset\"\t\"NAC\"\t\"Modulation\"\t\"TGID Tags File\"\t\"Whitelist\"\t\"Blacklist\"\t\"Center Frequency\"<br \/>\n\"Montgomery\"\t\"853.600\"\t\"0\"\t\"0x343\"\t\"CQPSK\"\t\"montgomery.tsv\"\t\"montgomery_wl.txt\"\t\"\"<br \/>\n<\/code><\/p>\n<p>Note: (a) the first line needs to be included, and (b) each value is surrounded by quotes and separated by a tab character &#8212; NOT SPACES.<\/p>\n<p>The <code>Sysname<\/code> value is an arbitrary one that you assign.  The <code>Control Channel List<\/code> needs to include at least the primary controller (note no need for &#8220;e6&#8221; here) and can also include alternate control channels.  <code>Offset<\/code> is the same value you would enter with the command line <code>-q<\/code> parameter.<\/p>\n<p>Now, the <code>NAC<\/code> field really threw me.  When I went to the <A HREF=\"https:\/\/www.radioreference.com\/apps\/db\/?siteId=27898\"<\/A>Radio Reference Montgomery County Site Information<\/A> page, it listed a <code>System ID<\/code> of 348, and a <code>Site NAC<\/code> value of 25A.  Neither of those are correct for this field.  I can&#8217;t find a web reference that ties <code>0x343<\/code> to the Montgomery county system.  I got this number from my initial monitoring of the control channel before adding the trunking configuration.  I strongly advise you to do the same, as this is what kept me from decoding until the light finally dawned.<\/p>\n<p>The next field is <code>Modulation<\/code>.  There are two choices: C4FM, widely used by non-Motorola systems, and CQPSK, which is derived from a Motorola standard called &#8220;LSM&#8221; &#8212; Linear Simulcast Modulation.  This was another thing that threw me; the Radio Reference page indicated that the Montgomery County site uses C4FM. I only got things to work using CQPSK, though.<\/p>\n<p>Next is the <code>TGID Tags<\/code> field.  This optionally specifies a field that has human-friendly names to decode the talkgroup numbers.  Here are a few lines of my tag file, which I call <code>montgomery.tsv<\/code>:<\/p>\n<p><code><br \/>\n58232   Kettering Fire Dispatch<br \/>\n58238   Kettering Police Dispatch<br \/>\n58239   Kettering Police Ch B<br \/>\n58240   Kettering Police<br \/>\n<\/code><\/p>\n<p>Note again that the separator between talkgroup number and name must be a space.<\/p>\n<p>Next are two optional fields, where talkgroups may be whitelisted or blacklisted.  It only makes sense to use one of these two.  I created a whitelist file called <code>montgomery_wl.tsv<\/code> that limits the talkgroups to a few I&#8217;m really interested in:<\/p>\n<p><code><br \/>\n58014<br \/>\n58023<br \/>\n58024<br \/>\n58293<br \/>\n58294<br \/>\n58333<br \/>\n53334<br \/>\n<\/code><\/p>\n<p>I haven&#8217;t tested yet whether the whitelist file can include tab-separated talkgroup descriptions as well, or has to be just a list of numeric entries.<\/p>\n<p>Now, use the same scope.py command line as before, but add &#8220;-T trunk.tsv&#8221; at the end.  You should now be scanning and will hear audio traffic from the monitored talkgroups.<\/p>\n<p>One final thing &#8212; the display in my recorded demo at <A HREF=\"https:\/\/www.youtube.com\/watch?v=_1jO3yM0MIA\">Youtube<\/A> looks slightly different as I changed the placement of the system, talkgroup, and frequency information on the display.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With op25 successfully decoding the control channel, now you just need to set up the trunking configuration. To do this, you&#8217;ll probably need to set up three files: 1. trunk.tsv&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","ngg_post_thumbnail":0,"footnotes":""},"categories":[9],"tags":[13,15,14,12],"class_list":["post-165","post","type-post","status-publish","format-standard","hentry","category-sdr","tag-gnuradio","tag-p25","tag-scanning","tag-sdr"],"_links":{"self":[{"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.febo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=165"}],"version-history":[{"count":6,"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/posts\/165\/revisions"}],"predecessor-version":[{"id":179,"href":"https:\/\/blog.febo.com\/index.php?rest_route=\/wp\/v2\/posts\/165\/revisions\/179"}],"wp:attachment":[{"href":"https:\/\/blog.febo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.febo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.febo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}