<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.g4slv.info/dokuwiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Make It Tea - public:radio:topics:svxlink</title>
        <description></description>
        <link>https://www.g4slv.info/dokuwiki/</link>
        <lastBuildDate>Thu, 04 Jun 2026 22:16:35 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=logo.png</url>
            <title>Make It Tea</title>
            <link>https://www.g4slv.info/dokuwiki/</link>
        </image>
        <item>
            <title>MB7AZE SvxLink</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:aze</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; MB7AZE is now QRT and the NoV has expired.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
The following is for historical interest only….
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mb7aze_svxlink&quot;&gt;MB7AZE SvxLink&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://ukrepeater.net/my_repeater.php?id=4823&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://ukrepeater.net/my_repeater.php?id=4823&quot; rel=&quot;ugc nofollow noopener&quot;&gt;NoV issued April 2022&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MB7AZE SvxLink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mb7aze_svxlink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;115-218&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rapsberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Software&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVXLink&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 Soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FT-8900 or FT-60 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Frequency&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;430.050MHz&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;241-360&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;219-361&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;network&quot;&gt;Network&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Connected to G4NAB SVXReflector and visible on the UK SVXLink Reflector portal :
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://svxportal-uk.ddns.net:81/index.php&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Network&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;network&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;362-513&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_reading&quot;&gt;Further Reading&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Install : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink&quot;&gt;SVXLink : Install from source&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Config : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;MB7AZE SvxLink Config&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Commands : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxreflector_commands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxreflector_commands&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxreflector_commands&quot;&gt;SVXLink : DTMF commands&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Also connected to &lt;a href=&quot;https://www.echolink.org/logins.jsp&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.echolink.org/logins.jsp&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Echolink&lt;/a&gt; as &lt;code&gt;MB7AZE-L #879598&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Reading&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_reading&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;514-732&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;see_also&quot;&gt;See Also&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 11:42:01 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 01/01/70 01:00 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;See Also&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;see_also&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;733-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 19:44:18 +0000</pubDate>
        </item>
        <item>
            <title>MB7AZE SvxLink Config</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; MB7AZE is now QRT and the NoV has expired.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
The following is for historical interest only….
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mb7aze_svxlink_config&quot;&gt;MB7AZE SvxLink Config&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MB7AZE SvxLink Config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mb7aze_svxlink_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;115-151&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;main_config_file&quot;&gt;Main config file&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_a722169c895501e08bbb51c5c0f8c410_1&quot;&gt;svxlink.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_a722169c895501e08bbb51c5c0f8c410_1&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:svxlink:mb7azeconf&amp;amp;codeblock=0&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_conf&quot;&gt;svxlink.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                Configuration file for the SvxLink server                    #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic,ReflectorLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CARD_CHANNELS=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOCATION_INFO&lt;/span&gt;=LocationInfo
&lt;span class=&quot;re2&quot;&gt;LINKS&lt;/span&gt;=LinkToReflector
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleEchoLink,ModuleParrot
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MB7AZE
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REPORT_CTCSS=77.0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_CTCSS&lt;/span&gt;=ALWAYS
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_RX_ON_TX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_TX_ON_RX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Repeater
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MYCALL
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REPORT_CTCSS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=SQL_OPEN&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;co0&quot;&gt;#SEL5_MACRO_RANGE=03400,03499&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#NO_REPEAT=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPEN_ON_1750&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_CTCSS=136:2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_DTMF=*&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL=5000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SEL5=01234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_SQL_FLANK=OPEN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL_AFTER_RPT_CLOSE=10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_SOUND_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MAX_COUNT=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_TIMEOUT=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_MIN_TIME=2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ONLINE_CMD=998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/repeater_dtmf_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;HOSTS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;put the right server address in here&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HOST_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MB7AZE
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;put the right password in here&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;JITTER_BUFFER_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEFAULT_TG&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MONITOR_TGS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;91&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;235&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2350&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2351&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;23520&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;23590&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;23561&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TG_SELECT_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANNOUNCE_REMOTE_MIN_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MUTE_FIRST_TX_LOC&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MUTE_FIRST_TX_REM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TMP_MONITOR_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;NODE_INFO_FILE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;node_info.json
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToReflector&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;:,ReflectorLogic
&lt;span class=&quot;re2&quot;&gt;DEFAULT_ACTIVE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#AUTOACTIVATE_ON_SQL=RepeaterLogic&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPTIONS&lt;/span&gt;=DEFAULT_CONNECT,NO_DISCONNECT
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;co0&quot;&gt;#MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ENCODER_CMD=/usr/bin/oggenc -Q \&amp;quot;%f\&amp;quot; &amp;amp;&amp;amp; rm \&amp;quot;%f\&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Voter
&lt;span class=&quot;re2&quot;&gt;RECEIVERS&lt;/span&gt;=Rx1,Rx2,Rx3
&lt;span class=&quot;re2&quot;&gt;VOTING_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BUFFER_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REVOTE_INTERVAL=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HYSTERESIS=50&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_CLOSE_REVOTE_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#RX_SWITCH_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#COMMAND_PTY=/dev/shm/voter_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Multi
&lt;span class=&quot;re2&quot;&gt;TRANSMITTERS&lt;/span&gt;=Tx1,Tx2,Tx3
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.rx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.tx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=CTCSS
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TIMEOUT=600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_MODE=2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_SNR_OFFSET=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_OPEN_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_CLOSE_THRESH=9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_LOW=60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_HIGH=270&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PORT=/dev/ttyUSB0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PIN=CTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_DEVNAME=/dev/input/by-id/usb-SYNIC_SYNIC_Wireless_Audio-event-if03&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_OPEN=1,163,1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_CLOSE=1,163,0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_SQL_PIN=gpio25&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTY_PATH=/tmp/rx1_sql&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_DET=NOISE&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_BOGUS_THRESH=120&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TONE_SIGLEV_MAP=100,84,60,50,37,32,28,23,19,8&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TAIL_ELIM=300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;0.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_PTY=/tmp/rx1_dtmf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#1750_MUTING=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_DEC_TYPE=INTERNAL&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_TYPE=ZVEI1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ=433475000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULATION=FM&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#WBRX=WbRx1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TYPE=RtlUsb&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEV_MATCH=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HOST=localhost&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PORT=1234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CENTER_FQ=435075000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ_CORR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GAIN=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SAMPLE_RATE=960000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=Hidraw
&lt;span class=&quot;co0&quot;&gt;#PTT_PORT=/dev/ttyS0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_PIN=HIDRAW&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=DTR!RTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_LEVEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;3.5&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;APRS_SERVER_LIST&lt;/span&gt;=euro.aprs2.net:&lt;span class=&quot;nu0&quot;&gt;14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-MB7AZE
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;430.050&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=1m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PATH=WIDE1-1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BEACON_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=Connected to UK Svx Reflector
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;91235&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;9123561&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;910&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Main config file&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;main_config_file&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;152-6389&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;audio_levels&quot;&gt;Audio levels&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Audio levels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;audio_levels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;6390-6415&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;devcal&quot;&gt;Devcal&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Use the &lt;code&gt;devcal&lt;/code&gt; program to set RX and TX audio levels.
&lt;/p&gt;

&lt;p&gt;
This allows adjustment of &lt;code&gt;alsamixer&lt;/code&gt; settings and then for fine tuning adjustment of &lt;code&gt;PRE-AMP&lt;/code&gt;  (for &lt;code&gt;RX&lt;/code&gt;) and &lt;code&gt;MASTER GAIN&lt;/code&gt; (for &lt;code&gt;TX&lt;/code&gt;) config options to set the correct audio level INPUT on &lt;code&gt;RX&lt;/code&gt; and deviation on &lt;code&gt;TX&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
Once the correct &lt;code&gt;PRE-AMP&lt;/code&gt; or &lt;code&gt;MASTER GAIN&lt;/code&gt; values have been determined in &lt;code&gt;DEVCAL&lt;/code&gt; they are added to the relevant sections in &lt;code&gt;svxlink.conf&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
To use &lt;code&gt;DEVCAL&lt;/code&gt; first &lt;code&gt;sudo killall svxlink&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;for_receive_audio_input&quot;&gt;For Receive audio input:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.conf Rx1&lt;/pre&gt;

&lt;p&gt;
Inject a signal to the radio @ ±3kHz deviation Adjust audio input level via 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; radio volume control&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; alsamixer Mic Capture level&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; devcal +/- to adjust PRE-AMP setting&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
until the displayed deviation agrees with the input signal&amp;#039;s deviation.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Q&lt;/strong&gt;uit &lt;code&gt;devcal&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Transfer the displayed &lt;code&gt;PRE-AMP&lt;/code&gt; value to the conf file.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;for_transmit_audio_output&quot;&gt;For Transmit audio output&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Monitor TX deviation
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.conf Tx1&lt;/pre&gt;

&lt;p&gt;
Toggle TX with &lt;code&gt;T&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Adjust 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Alsamixer output&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; devcal +/- &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
to achieve ±3kHz TX deviation.
&lt;/p&gt;

&lt;p&gt;
Turn off TX with &lt;code&gt;T&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Q&lt;/strong&gt;uit &lt;code&gt;devcal&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Copy the displayed &lt;code&gt;MASTER GAIN&lt;/code&gt; value to the conf file.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; alsactl store&lt;/pre&gt;

&lt;p&gt;
to save current mixer levels.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Devcal&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;devcal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6416-7816&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;to_prevent_echolink_incoming_connections_while_a_talkgroup_is_active&quot;&gt;To prevent Echolink incoming connections while a Talkgroup is active&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Uncomment :
&lt;/p&gt;
&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_selected &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_selected #$new_tg (old #$old_tg)&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # Reject incoming Echolink connections while a talkgroup is active&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    setConfigValue &lt;span class=&quot;st0&quot;&gt;&amp;quot;ModuleEchoLink&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REJECT_INCOMING&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^.*$&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    setConfigValue &lt;span class=&quot;st0&quot;&gt;&amp;quot;ModuleEchoLink&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REJECT_INCOMING&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^$&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
in &lt;code&gt;/usr/local/share/svxlink/events.d/local/ReflectorLogic.tcl&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;To prevent Echolink incoming connections while a Talkgroup is active&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;to_prevent_echolink_incoming_connections_while_a_talkgroup_is_active&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7817-8313&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;svxinstall_eventsd_local&quot;&gt;&amp;lt;svxinstall&amp;gt;/events.d/local/&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Here are the 3 files containing tweaks to the standard behaviour.
&lt;/p&gt;

&lt;p&gt;
Editing the original files (in &lt;code&gt;events.d/&lt;/code&gt;) would work, but would get overwritten if the software is upgraded/re-installed. Putting local copies in &lt;code&gt;events.d/local&lt;/code&gt; means the changes survive upgrades etc.
&lt;/p&gt;

&lt;p&gt;
The actual path is:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/usr/local/share/svxlink/events.d/local/&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll try to document what is different once I refresh my memory.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_a722169c895501e08bbb51c5c0f8c410_2&quot;&gt;ReflectorLogic.tcl &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_a722169c895501e08bbb51c5c0f8c410_2&quot;&gt;&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# ReflectorLogic event handlers&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This is the namespace in which all functions below will exist. The name&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# must match the corresponding section &amp;quot;[ReflectorLogic]&amp;quot; in the configuration&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# file. The name may be changed but it must be changed in both places.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;eval&lt;/span&gt; ReflectorLogic &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
# The currently selected TG. Variable set from application.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; selected_tg &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
# The previously selected TG. Variable set from application.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; previous_tg &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
# Timestamp for previous TG announcement&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
# The previously announced TG&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
# The minimum time between announcements of the same TG.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Change through ANNOUNCE_REMOTE_MIN_INTERVAL config variable.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; announce_remote_min_interval &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
# This variable will be set to 1 if the QSY pending feature (&amp;quot;QSY on squelch&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# activity&amp;quot;) is active. See configuration variable QSY_PENDING_TIMEOUT.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; qsy_pending_active &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Checking to see if this is the correct logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$logic_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; tail &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; current&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an unknown command is received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command string&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; unknown_command &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  Logic::&lt;span class=&quot;me1&quot;&gt;unknown_command&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a received command fails&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; command_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  Logic::&lt;span class=&quot;me1&quot;&gt;command_failed&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when manual TG announcement is triggered&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; report_tg_status &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; selected_tg
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; previous_tg
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$selected_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_time &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_tg &lt;span class=&quot;re0&quot;&gt;$selected_tg&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;talk_group&amp;quot;&lt;/span&gt;
    spellNumber &lt;span class=&quot;re0&quot;&gt;$selected_tg&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;previous&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;talk_group&amp;quot;&lt;/span&gt;
    spellNumber &lt;span class=&quot;re0&quot;&gt;$previous_tg&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This function is called immediately when a change in talkgroup selection&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# occurs. In constrast, the other more specific talkgroup selection event&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# functions below is called with a delay in order to make announcement ordering&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# more logical.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_selected &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_selected #$new_tg (old #$old_tg)&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # Reject incoming Echolink connections while a talkgroup is active&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    setConfigValue &lt;span class=&quot;st0&quot;&gt;&amp;quot;ModuleEchoLink&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REJECT_INCOMING&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^.*$&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    setConfigValue &lt;span class=&quot;st0&quot;&gt;&amp;quot;ModuleEchoLink&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REJECT_INCOMING&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;^$&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected due to local activity&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_local_activation &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; selected_tg
&amp;nbsp;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_local_activation&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;re0&quot;&gt;$old_tg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_time &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_tg &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;talk_group&amp;quot;&lt;/span&gt;
    spellNumber &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected due to remote activity&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_remote_activation &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; announce_remote_min_interval
&amp;nbsp;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_remote_activation&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; now &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; == &lt;span class=&quot;re0&quot;&gt;$prev_announce_tg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; \
      &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt; - &lt;span class=&quot;re0&quot;&gt;$prev_announce_time&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$announce_remote_min_interval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;re0&quot;&gt;$old_tg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_time &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_tg &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;talk_group&amp;quot;&lt;/span&gt;
    spellNumber &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected due to remote activity on a prioritized&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# monitored talk group while a lower prio talk group is selected&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_remote_prio_activation &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  tg_remote_activation &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$old_tg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected by DTMF command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_command_activation &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg
&amp;nbsp;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_command_activation&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_time &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_tg &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;talk_group&amp;quot;&lt;/span&gt;
  spellNumber &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG has been selected due to DEFAULT_TG configuration&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_default_activation &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #variable prev_announce_time&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #variable prev_announce_tg&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #variable selected_tg&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_default_activation&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$new_tg != $old_tg} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  set prev_announce_time [clock seconds]&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  set prev_announce_tg $new_tg&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  playSilence 100&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  playMsg &amp;quot;Core&amp;quot; &amp;quot;talk_group&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # spellNumber $new_tg&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG QSY request have been acted upon&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_qsy &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_time
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_announce_tg
&amp;nbsp;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_qsy&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_time &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_announce_tg &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qsy&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #playMsg &amp;quot;Core&amp;quot; &amp;quot;talk_group&amp;quot;&lt;/span&gt;
  spellNumber &lt;span class=&quot;re0&quot;&gt;$new_tg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a QSY is followed due to squelch open (see QSY_PENDING_TIMEOUT)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg -- The talk group that has been activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_qsy_on_sql &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qsy&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG QSY request fails&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A TG QSY may fail for primarily two reasons, either no talk group is&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# currently active or there is no connection to the reflector server.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_qsy_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_qsy_failed&amp;quot;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qsy&amp;quot;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG QSY request is pending&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# tg -- The talk group requested in the QSY&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_qsy_pending &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qsy&amp;quot;&lt;/span&gt;
  spellNumber &lt;span class=&quot;re0&quot;&gt;$tg&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pending&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG QSY request is ignored&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# tg -- The talk group requested in the QSY&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_qsy_ignored &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; qsy_pending_active
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$qsy_pending_active&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qsy&amp;quot;&lt;/span&gt;
    spellNumber &lt;span class=&quot;re0&quot;&gt;$tg&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ignored&amp;quot;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
  playTone &lt;span class=&quot;nu0&quot;&gt;880&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
  playTone &lt;span class=&quot;nu0&quot;&gt;659&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
  playTone &lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a TG selection has timed out&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   new_tg -- Always 0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   old_tg -- The talk group that was active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tg_selection_timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;new_tg old_tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tg_selection_timeout&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$old_tg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;880&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;659&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#  } else {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
#    playSilence 50&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    playTone 440 200 150&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#    playSilence 50&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed on talker start&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg        -- The talk group&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   callsign  -- The callsign of the talker node&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; talker_start &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg callsign&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;### Talker DID start on TG #$tg: $callsign&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed on talker stop&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg        -- The talk group&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   callsign  -- The callsign of the talker node&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; talker_stop &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg callsign&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; selected_tg
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; ::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_CALLSIGN&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #puts &amp;quot;### Talker DID stop on TG #$tg: $callsign&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$tg&lt;/span&gt; == &lt;span class=&quot;re0&quot;&gt;$selected_tg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$callsign&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_CALLSIGN&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;659&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;880&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A talk group was added for temporary monitoring&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg -- The added talk group&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tmp_monitor_add &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tmp_monitor_add: $tg&amp;quot;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Default&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;activating&amp;quot;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;monitor&amp;quot;&lt;/span&gt;
  spellNumber &lt;span class=&quot;re0&quot;&gt;$tg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A talk group was removed from temporary monitoring&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg -- The removed talk group&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; tmp_monitor_remove &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;### tmp_monitor_remove: $tg&amp;quot;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Default&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;deactivating&amp;quot;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;monitor&amp;quot;&lt;/span&gt;
  spellNumber &lt;span class=&quot;re0&quot;&gt;$tg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists ::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_ANNOUNCE_REMOTE_MIN_INTERVAL&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; announce_remote_min_interval &lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_ANNOUNCE_REMOTE_MIN_INTERVAL&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists ::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_QSY_PENDING_TIMEOUT&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;Logic&lt;/span&gt;::&lt;span class=&quot;me1&quot;&gt;CFG_QSY_PENDING_TIMEOUT&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; qsy_pending_active &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
# end of namespace&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This file has not been truncated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_a722169c895501e08bbb51c5c0f8c410_3&quot;&gt;Logic.tcl &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_a722169c895501e08bbb51c5c0f8c410_3&quot;&gt;&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Generic Logic event handlers&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This is the namespace in which all functions and variables below will exist.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;eval&lt;/span&gt; Logic &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A variable used to store a timestamp for the last identification.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_ident &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A constant that indicates the minimum time in seconds to wait between two&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# identifications. Manual and long identifications is not affected.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; min_time_between_ident &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Short and long identification intervals. They are setup from config&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# variables below.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_ident_interval &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_ident_interval &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_voice_id_enable  &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_cw_id_enable     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_announce_enable  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_announce_file    &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_voice_id_enable   &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_cw_id_enable      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_announce_enable   &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_announce_file     &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The ident_only_after_tx variable indicates if identification is only to&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# occur after the node has transmitted. The variable is setup below from the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# configuration variable with the same name.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The need_ident variable indicates if identification is needed.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; ident_only_after_tx &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; need_ident &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# List of functions that should be called periodically. Use the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# addMinuteTickSubscriber and addSecondTickSubscriber functions to&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# add subscribers.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; minute_tick_subscribers &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; second_tick_subscribers &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Contains the ID of the last receiver that indicated squelch activity&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; sql_rx_id &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the SvxLink software is started&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; startup &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #playMsg &amp;quot;Core&amp;quot; &amp;quot;online&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #send_short_ident&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a specified module could not be found&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   module_id - The numeric ID of the module&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; no_such_module &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;module_id&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;no_such_module&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playNumber &lt;span class=&quot;re0&quot;&gt;$module_id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a manual identification is initiated with the * DTMF code&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; manual_identification &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; mycall&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; report_ctcss&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; active_module&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; loaded_modules&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; CFG_TYPE&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; epoch &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; hour &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$epoch&lt;/span&gt; -&lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%k&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;regexp&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;\d&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$epoch&lt;/span&gt; -&lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; -&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; minute&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_ident &lt;span class=&quot;re0&quot;&gt;$epoch&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;the_time_is&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playTime &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$report_ctcss&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pl_is&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playFrequency &lt;span class=&quot;re0&quot;&gt;$report_ctcss&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;active_module&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; func &lt;span class=&quot;st0&quot;&gt;&amp;quot;::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;append&lt;/span&gt; func &lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;::status_report&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;[info procs $func]&amp;quot;&lt;/span&gt; ne &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; module &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;split&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$loaded_modules&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; func &lt;span class=&quot;st0&quot;&gt;&amp;quot;::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;kw2&quot;&gt;append&lt;/span&gt; func &lt;span class=&quot;re0&quot;&gt;$module&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;::status_report&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;[info procs $func]&amp;quot;&lt;/span&gt; ne &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #playMsg &amp;quot;Default&amp;quot; &amp;quot;press_0_for_help&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #playSilence 250;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a short identification should be sent&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   hour    - The hour on which this identification occur&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   minute  - The minute on which this identification occur&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; send_short_ident &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;hour -&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;minute -&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; mycall&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; CFG_TYPE&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_announce_file
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_announce_enable
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_voice_id_enable
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_cw_id_enable
&lt;span class=&quot;co1&quot;&gt;
  # Play voice id if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_voice_id_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing short voice ID&amp;quot;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Play announcement file if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_announce_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing short announce&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; exist &lt;span class=&quot;st0&quot;&gt;&amp;quot;$short_announce_file&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playFile &lt;span class=&quot;st0&quot;&gt;&amp;quot;$short_announce_file&amp;quot;&lt;/span&gt;
      playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Play CW id if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_cw_id_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing short CW ID&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; call &lt;span class=&quot;st0&quot;&gt;&amp;quot;$mycall/R&amp;quot;&lt;/span&gt;
      CW::&lt;span class=&quot;me1&quot;&gt;play&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      CW::&lt;span class=&quot;me1&quot;&gt;play&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a long identification (e.g. hourly) should be sent&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   hour    - The hour on which this identification occur&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   minute  - The minute on which this identification occur&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; send_long_ident &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;hour minute&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; mycall&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; loaded_modules&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; active_module&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; CFG_TYPE&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_announce_file
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_announce_enable
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_voice_id_enable
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_cw_id_enable
&lt;span class=&quot;co1&quot;&gt;
  # Play the voice ID if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$long_voice_id_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing Long voice ID&amp;quot;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;the_time_is&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playTime &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
    # Call the &amp;quot;status_report&amp;quot; function in all modules if no module is active&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; module &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;split&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$loaded_modules&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; func &lt;span class=&quot;st0&quot;&gt;&amp;quot;::&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;append&lt;/span&gt; func &lt;span class=&quot;re0&quot;&gt;$module&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;::status_report&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;[info procs $func]&amp;quot;&lt;/span&gt; ne &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
          &lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Play announcement file if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$long_announce_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing long announce&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; exist &lt;span class=&quot;st0&quot;&gt;&amp;quot;$long_announce_file&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playFile &lt;span class=&quot;st0&quot;&gt;&amp;quot;$long_announce_file&amp;quot;&lt;/span&gt;
      playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Play CW id if enabled&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$long_cw_id_enable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Playing long CW ID&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; call &lt;span class=&quot;st0&quot;&gt;&amp;quot;$mycall/R&amp;quot;&lt;/span&gt;
      CW::&lt;span class=&quot;me1&quot;&gt;play&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      CW::&lt;span class=&quot;me1&quot;&gt;play&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the squelch have just closed and the RGR_SOUND_DELAY timer has&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# expired.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; send_rgr_sound &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; sql_rx_id
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sql_rx_id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
    # 150 CPM, 1000 Hz, -4 dBFS&lt;/span&gt;
    CW::&lt;span class=&quot;me1&quot;&gt;play&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sql_rx_id&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; sql_rx_id &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an empty macro command (i.e. D#) has been entered.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_empty &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an entered macro command could not be found&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_not_found &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a macro syntax error occurs (configuration error).&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_syntax_error &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the specified module in a macro command is not found&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# (configuration error).&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_module_not_found &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the activation of the module specified in the macro command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# failed.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_module_activation_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a macro command is executed that requires a module to&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# be activated but another module is already active.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; macro_another_active_module &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; active_module&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;active_module&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an unknown DTMF command is entered&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command string&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; unknown_command &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;unknown_command&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an entered DTMF command failed&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command string&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; command_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a link to another logic core is activated.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   name  - The name of the link&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; activating_link &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;name&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;string&lt;/span&gt; length &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;activating_link_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a link to another logic core is deactivated.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   name  - The name of the link&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; deactivating_link &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;name&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;string&lt;/span&gt; length &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;deactivating_link_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when trying to deactivate a link to another logic core but the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# link is not currently active.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   name  - The name of the link&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; link_not_active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;name&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;string&lt;/span&gt; length &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;link_not_active_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when trying to activate a link to another logic core but the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# link is already active.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   name  - The name of the link&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; link_already_active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;name&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;string&lt;/span&gt; length &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;link_already_active_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed each time the transmitter is turned on or off&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   is_on - Set to 1 if the transmitter is on or 0 if it&#039;s off&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; transmit &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;is_on&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Turning the transmitter $is_on&amp;quot;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; need_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$is_on&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; - &lt;span class=&quot;re0&quot;&gt;$prev_ident&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; need_ident &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed each time the squelch is opened or closed&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   rx_id   - The ID of the RX that the squelch opened/closed on&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   is_open - Set to 1 if the squelch is open or 0 if it&#039;s closed&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; squelch_open &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;rx_id is_open&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; sql_rx_id&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;The squelch is $is_open on RX $rx_id&amp;quot;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; sql_rx_id &lt;span class=&quot;re0&quot;&gt;$rx_id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a DTMF digit has been received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   digit     - The detected DTMF digit&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   duration  - The duration, in milliseconds, of the digit&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Return 1 to hide the digit from further processing in SvxLink or&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# return 0 to make SvxLink continue processing as normal.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dtmf_digit_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;digit duration&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;DTMF digit \&amp;quot;$digit\&amp;quot; detected with duration $duration ms&amp;quot;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a DTMF command has been received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Return 1 to hide the command from further processing is SvxLink or&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# return 0 to make SvxLink continue processing as normal.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This function can be used to implement your own custom commands or to disable&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# DTMF commands that you do not want users to execute.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dtmf_cmd_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #global active_module&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Ignore all commands starting with 3 in the EchoLink module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #          Allow commands that have four or more digits.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module == &amp;quot;EchoLink&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  if {[string length $cmd] &amp;lt; 4 &amp;amp;&amp;amp; [string index $cmd 0] == &amp;quot;3&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #    puts &amp;quot;Ignoring random connect command for module EchoLink: $cmd&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #    return 1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  }&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Handle the &amp;quot;force core command&amp;quot; mode where a command is forced to be&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # executed by the core command processor instead of by an active module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # The &amp;quot;force core command&amp;quot; mode is entered by prefixing a command by a star.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module != &amp;quot;&amp;quot; &amp;amp;&amp;amp; [string index $cmd 0] != &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  return 0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {[string index $cmd 0] == &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  set cmd [string range $cmd 1 end]&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$cmd == &amp;quot;99&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  puts &amp;quot;Executing external command&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  playMsg &amp;quot;Core&amp;quot; &amp;quot;online&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  exec ls &amp;amp;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  return 1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed once every whole minute. Don&#039;t put any code here directly&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Create a new function and add it to the timer tick subscriber list&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# by using the function addMinuteTickSubscriber.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; every_minute &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; minute_tick_subscribers&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts [clock format [clock seconds] -format &amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;];&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; subscriber &lt;span class=&quot;re0&quot;&gt;$minute_tick_subscribers&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$subscriber&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed once every whole minute. Don&#039;t put any code here directly&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Create a new function and add it to the timer tick subscriber list&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# by using the function addSecondTickSubscriber.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; every_second &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; second_tick_subscribers&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts [clock format [clock seconds] -format &amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;];&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; subscriber &lt;span class=&quot;re0&quot;&gt;$second_tick_subscribers&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$subscriber&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Deprecated: Use the addMinuteTickSubscriber function instead&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; addTimerTickSubscriber &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;func&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;*** WARNING: Calling deprecated TCL event handler addTimerTickSubcriber.&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;             Use addMinuteTickSubscriber instead&amp;quot;&lt;/span&gt;
  addMinuteTickSubscriber &lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Use this function to add a function to the list of functions that&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# should be executed once every whole minute. This is not an event&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# function but rather a management function.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; addMinuteTickSubscriber &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;func&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; minute_tick_subscribers&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;lappend&lt;/span&gt; minute_tick_subscribers &lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Use this function to add a function to the list of functions that&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# should be executed once every second. This is not an event&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# function but rather a management function.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; addSecondTickSubscriber &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;func&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; second_tick_subscribers&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;lappend&lt;/span&gt; second_tick_subscribers &lt;span class=&quot;re0&quot;&gt;$func&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Should be executed once every whole minute to check if it is time to&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# identify. Not exactly an event function. This function handle the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# identification logic and call the send_short_ident or send_long_ident&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# functions when it is time to identify.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; checkPeriodicIdentify &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; prev_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; short_ident_interval&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; long_ident_interval&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; min_time_between_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; ident_only_after_tx&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; need_ident&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; logic_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_ident_interval&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; now &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; seconds&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; hour &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt; -&lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%k&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;regexp&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt;\d&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;clock&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt; -&lt;span class=&quot;kw2&quot;&gt;format&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; -&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; minute&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_ident_now \
      	    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;expr&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt; + &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$short_ident_interval&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_ident_now &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$long_ident_interval&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_ident_now \
      	    &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;expr&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt; + &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$long_ident_interval&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$long_ident_now&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$logic_name: Sending long identification...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    send_long_ident &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_ident &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; need_ident &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt; - &lt;span class=&quot;re0&quot;&gt;$prev_ident&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$min_time_between_ident&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ident_only_after_tx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$need_ident&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_ident_now&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$logic_name: Sending short identification...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      send_short_ident &lt;span class=&quot;re0&quot;&gt;$hour&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$minute&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; prev_ident &lt;span class=&quot;re0&quot;&gt;$now&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; need_ident &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the QSO recorder is being activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; activating_qso_recorder &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;activating&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the QSO recorder is being deactivated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; deactivating_qso_recorder &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;deactivating&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when trying to deactivate the QSO recorder even though it&#039;s&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# not active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; qso_recorder_not_active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;not_active&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when trying to activate the QSO recorder even though it&#039;s&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# already active&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; qso_recorder_already_active &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;already_active&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the timeout kicks in to activate the QSO recorder&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; qso_recorder_timeout_activate &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;activating&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the timeout kicks in to deactivate the QSO recorder&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; qso_recorder_timeout_deactivate &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;deactivating&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;qso_recorder&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the user is requesting a language change&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; set_language &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;lang_code&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; logic_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$logic_name: Setting language $lang_code (NOT IMPLEMENTED)&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the user requests a list of available languages&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; list_languages &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; logic_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$logic_name: Available languages: (NOT IMPLEMENTED)&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the node is being brought online or offline&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; logic_online &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;online&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; mycall
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; CFG_TYPE
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$online&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$mycall&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_TYPE&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;repeater&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a configuration variable is updated at runtime in the logic&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; config_updated &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tag value&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Configuration variable updated: $tag=$value&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a DTMF command is received from another linked logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   logic -- The name of the logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd   -- The received command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; remote_cmd_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;logic cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Remote command received from logic $logic: $cmd&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #playDtmf &amp;quot;$cmd&amp;quot; &amp;quot;500&amp;quot; &amp;quot;50&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a talkgroup is received from another linked logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   logic -- The name of the logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   tg    -- The received talkgroup&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; remote_received_tg_updated &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;logic tg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Remote TG received from logic $logic: $tg&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$tg &amp;gt; 0} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  playDtmf &amp;quot;1$tg&amp;quot; &amp;quot;500&amp;quot; &amp;quot;50&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
##############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Main program&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;##############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_SHORT_IDENT_INTERVAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_IDENT_INTERVAL&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_ident_interval &lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_IDENT_INTERVAL&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_LONG_IDENT_INTERVAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_LONG_IDENT_INTERVAL&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_ident_interval &lt;span class=&quot;re0&quot;&gt;$CFG_LONG_IDENT_INTERVAL&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$short_ident_interval&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_ident_interval &lt;span class=&quot;re0&quot;&gt;$long_ident_interval&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_IDENT_ONLY_AFTER_TX&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_IDENT_ONLY_AFTER_TX&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; ident_only_after_tx &lt;span class=&quot;re0&quot;&gt;$CFG_IDENT_ONLY_AFTER_TX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_SHORT_ANNOUNCE_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_announce_enable &lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_ANNOUNCE_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_SHORT_ANNOUNCE_FILE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_announce_file &lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_ANNOUNCE_FILE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_SHORT_VOICE_ID_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_voice_id_enable &lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_VOICE_ID_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_SHORT_CW_ID_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; short_cw_id_enable &lt;span class=&quot;re0&quot;&gt;$CFG_SHORT_CW_ID_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_LONG_ANNOUNCE_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_announce_enable &lt;span class=&quot;re0&quot;&gt;$CFG_LONG_ANNOUNCE_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_LONG_ANNOUNCE_FILE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_announce_file &lt;span class=&quot;re0&quot;&gt;$CFG_LONG_ANNOUNCE_FILE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_LONG_VOICE_ID_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_voice_id_enable &lt;span class=&quot;re0&quot;&gt;$CFG_LONG_VOICE_ID_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_LONG_CW_ID_ENABLE&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; long_cw_id_enable &lt;span class=&quot;re0&quot;&gt;$CFG_LONG_CW_ID_ENABLE&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
# end of namespace&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This file has not been truncated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_a722169c895501e08bbb51c5c0f8c410_4&quot;&gt;EchoLink.tcl &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_a722169c895501e08bbb51c5c0f8c410_4&quot;&gt;&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# EchoLink module event handlers&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This is the namespace in which all functions and variables below will exist.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The name must match the configuration variable &amp;quot;NAME&amp;quot; in the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# [ModuleEchoLink] section in the configuration file. The name may be changed&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# but it must be changed in both places.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;eval&lt;/span&gt; EchoLink &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Check if this module is loaded in the current logic core&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;info&lt;/span&gt; exists CFG_ID&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Extract the module name from the current namespace&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; module_name &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; tail &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;namespace&lt;/span&gt; current&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# An &amp;quot;overloaded&amp;quot; playMsg that eliminates the need to write the module name&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# as the first argument.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; playMsg &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;msg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  ::&lt;span class=&quot;me1&quot;&gt;playMsg&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$msg&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# A convenience function for printing out information prefixed by the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# module name&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; printInfo &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;msg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$module_name: $msg&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This variable is updated by the EchoLink module when a station connects or&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# disconnects. It contains the number of currently connected stations.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; num_connected_stations &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when this module is being activated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; activating_module &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  Module::&lt;span class=&quot;me1&quot;&gt;activating_module&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when this module is being deactivated.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; deactivating_module &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  Module::&lt;span class=&quot;me1&quot;&gt;deactivating_module&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the inactivity timeout for this module has expired.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  Module::&lt;span class=&quot;me1&quot;&gt;timeout&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when playing of the help message for this module has been requested.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; play_help &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  Module::&lt;span class=&quot;me1&quot;&gt;play_help&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Spell an EchoLink callsign&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; spellEchoLinkCallsign &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; langdir
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;regexp&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;\w+&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;-L&lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt; ignored callsign&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$callsign&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;link&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;regexp&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;^&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;\w+&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;-R&lt;span class=&quot;sy0&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt; ignored callsign&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$callsign&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;repeater&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;regexp&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;^\&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.+&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;\&lt;span class=&quot;sy0&quot;&gt;*$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt; ignored name&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;conference&amp;quot;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; lc_name &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;string&lt;/span&gt; tolower &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; exists &lt;span class=&quot;st0&quot;&gt;&amp;quot;$langdir/EchoLink/conf-$lc_name.wav&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      playFile &lt;span class=&quot;st0&quot;&gt;&amp;quot;$langdir/EchoLink/conf-$lc_name.wav&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$name&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    spellWord &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a request to list all connected stations is received.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# That is, someone press DTMF &amp;quot;1#&amp;quot; when the EchoLink module is active.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; list_connected_stations &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;connected_stations&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playNumber &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;llength&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$connected_stations&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;connected_stations&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$connected_stations&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when someone tries to setup an outgoing EchoLink connection but&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# the directory server is offline due to communications failure.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; directory_server_offline &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;directory_server_offline&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the limit for maximum number of QSOs has been reached and&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# an outgoing connection request is received.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; no_more_connections_allowed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  # FIXME: Change the message to something that makes more sense...&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;link_busy&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a status report is requested. This usually happens at&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# manual identification when the user press DTMF &amp;quot;*&amp;quot;.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; status_report &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; num_connected_stations&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; active_module&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$active_module&lt;/span&gt; == &lt;span class=&quot;re0&quot;&gt;$module_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playNumber &lt;span class=&quot;re0&quot;&gt;$num_connected_stations&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;connected_stations&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an EchoLink id cannot be found in an outgoing connect request.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; station_id_not_found &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;station_id&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playNumber &lt;span class=&quot;re0&quot;&gt;$station_id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;not_found&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the lookup of an EchoLink callsign fail in an outgoing connect&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# request.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; lookup_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;station_id&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a local user tries to connect to the local node.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; self_connect &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a local user tries to connect to a node that is already&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# connected.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; already_connected_to &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;already_connected_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an internal error occurs.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; internal_error &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an outgoing connection has been requested.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; connecting_to &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;connecting_to&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an EchoLink connection has been terminated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; disconnected &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnected&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an incoming EchoLink connection has been accepted.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; remote_connected &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;connected&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an outgoing connection has been established.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   call - The callsign of the remote station&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; connected &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Outgoing Echolink connection to $call established&amp;quot;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;connected&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the list of connected remote EchoLink clients changes&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   client_list - List of connected clients&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; client_list_changed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;client_list&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #foreach {call} $client_list {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  puts $call&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the EchoLink connection has been idle for too long. The&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# connection will be terminated.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; link_inactivity_timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a too short connect by callsign command is received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_too_short_cmd &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the connect by callsign function cannot find a match&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_no_match &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;code&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playNumber &lt;span class=&quot;re0&quot;&gt;$code&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;no_match&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the connect by callsign list has been retrieved&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_list &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call_list&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;choose_station&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; idx &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call_list&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;incr&lt;/span&gt; idx&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playNumber &lt;span class=&quot;re0&quot;&gt;$idx&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the connect by callsign function is manually aborted&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_aborted &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;aborted&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an out of range index is entered in the connect by callsign&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# list&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_index_out_of_range &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;idx&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playNumber &lt;span class=&quot;re0&quot;&gt;$idx&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;idx_out_of_range&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when there are more than nine matches in the connect by&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# callsign function&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_too_many_matches &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;too_many_matches&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when no station have been chosen in 60 seconds in the connect&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# by callsign function&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; cbc_timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;aborted&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the disconnect by callsign list has been retrieved&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dbc_list &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call_list&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnect_by_callsign&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;choose_station&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; idx &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$call_list&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;incr&lt;/span&gt; idx&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playNumber &lt;span class=&quot;re0&quot;&gt;$idx&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the disconnect by callsign function is manually aborted&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dbc_aborted &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnect_by_callsign&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;aborted&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an out of range index is entered in the disconnect by callsign&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# list&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dbc_index_out_of_range &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;idx&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playNumber &lt;span class=&quot;re0&quot;&gt;$idx&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;idx_out_of_range&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when no station have been chosen in 60 seconds in the disconnect&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# by callsign function&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dbc_timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnect_by_callsign&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a local user enter the DTMF code for playing back the&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# local node ID.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; play_node_id &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;my_node_id&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;node_id_is&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$my_node_id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playNumber &lt;span class=&quot;re0&quot;&gt;$my_node_id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;unknown&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an entered command failed or have bad syntax.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; command_failed &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;operation_failed&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an unrecognized command has been received.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; unknown_command &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellWord &lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;unknown_command&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the listen only feature is activated or deactivated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   status    - The current status of the feature (0=deactivated, 1=activated)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   activate  - The requested new status of the feature&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#               (0=deactivate, 1=activate)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; listen_only &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;status activate&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; module_name&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; == &lt;span class=&quot;re0&quot;&gt;$activate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;listen_only&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;expr&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;already_active&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;not_active&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$module_name: [expr {$activate ? &amp;quot;&lt;/span&gt;Activating&lt;span class=&quot;st0&quot;&gt;&amp;quot; : &amp;quot;&lt;/span&gt;Deactivating&lt;span class=&quot;st0&quot;&gt;&amp;quot;}]&lt;span class=&quot;es0&quot;&gt;\&lt;/span&gt;
          listen only mode.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;expr&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$activate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;activating&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;deactivating&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;listen_only&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an outgoing connection is rejected. This can happen if&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# REJECT_OUTGOING and/or ACCEPT_OUTGOING has been setup.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; reject_outgoing_connection &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  spellEchoLinkCallsign &lt;span class=&quot;re0&quot;&gt;$call&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;reject_connection&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a transmission from an EchoLink station is starting&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# or stopping&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   rx   - 1 if receiving or 0 if not&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   call - The callsign of the remote station&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; is_receiving &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;rx call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$rx&lt;/span&gt; == &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a chat message is received from a remote station&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   msg -- The message text&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# WARNING: This is a slightly dangerous function since unexepected input&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# may open up a security flaw. Make sure that the message string is handled&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# as unknown data that can contain anything. Check it thoroughly before&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# using it. Do not run SvxLink as user root.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; chat_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;msg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts $msg&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an info message is received from a remote station&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   call -- The callsign of the sending station&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   msg  -- The message text&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# WARNING: This is a slightly dangerous function since unexepected input&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# may open up a security flaw. Make sure that the message string is handled&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# as unknown data that can contain anything. Check it thoroughly before&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# using it. Do not run SvxLink as user root.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; info_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call msg&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;$call: $msg&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a configuration variable is updated at runtime&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; config_updated &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;tag value&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #puts &amp;quot;Configuration variable updated: $tag=$value&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#-----------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The events below are for remote EchoLink announcements. Sounds are not&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# played over the local transmitter but are sent to the remote station.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#-----------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an incoming connection is accepted&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; remote_greeting &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;call&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
#  playSilence 1000;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
#  playMsg &amp;quot;greeting&amp;quot;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when an incoming connection is rejected&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; reject_remote_connection &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;perm&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$perm&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;reject_connection&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;reject_connection&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;please_try_again_later&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the inactivity timer times out&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; remote_timeout &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;timeout&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  playSilence &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when the squelch state changes&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; squelch_open &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;is_open&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  # The listen_only_active and CFG_REMOTE_RGR_SOUND global variables are set by&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # the C++ code&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; listen_only_active
  &lt;span class=&quot;kw1&quot;&gt;variable&lt;/span&gt; CFG_REMOTE_RGR_SOUND
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$CFG_REMOTE_RGR_SOUND&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$is_open&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$listen_only_active&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    playSilence &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
    playTone &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
&amp;nbsp;
# end of namespace&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This file has not been truncated&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Tue May  3 20:58:10 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 04/06/26 07:39 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mb7aze&amp;amp;do=showtag&amp;amp;tag=mb7aze&quot; class=&quot;wikilink1&quot; title=&quot;tag:mb7aze&quot; rel=&quot;tag&quot;&gt;mb7aze&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;lt;svxinstall&amp;gt;\/events.d\/local\/&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxinstall_eventsd_local&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;8314-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>SVXLink</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink&quot;&gt;SVXLink&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:aze&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:aze&quot; data-wiki-id=&quot;public:radio:topics:svxlink:aze&quot;&gt;MB7AZE SvxLink&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;MB7AZE SvxLink Config&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_echolink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx_echolink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx_echolink&quot;&gt;Svxlink &amp;amp; Echolink&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxreflector_commands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxreflector_commands&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxreflector_commands&quot;&gt;SVXLink : DTMF commands&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink&quot;&gt;SVXLink : Install from source&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx&quot;&gt;svxlink hotspot&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink_update&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink_update&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink_update&quot;&gt;Svxlink Update (Dual Gateway)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_mobile&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx_mobile&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx_mobile&quot;&gt;Svx Mobile&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 10/06/25 08:58 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SVXLink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-141&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;142-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 18:54:53 +0000</pubDate>
        </item>
        <item>
            <title>svxlink hotspot</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink_hotspot&quot;&gt;svxlink hotspot&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;svxlink hotspot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_hotspot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11-40&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Raspberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Software&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVXLink&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;IC-2E&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;63-147&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;41-148&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Remote/portable &lt;em&gt;personal&lt;/em&gt; node. 
&lt;/p&gt;

&lt;p&gt;
Similar setup to &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:aze&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:aze&quot; data-wiki-id=&quot;public:radio:topics:svxlink:aze&quot;&gt;MB7AZE&lt;/a&gt; but without the connection to &lt;code&gt;Echolink&lt;/code&gt; and monitoring fewer TalkGroups. I use TG 8 as a 
testing ground to keep my traffic off the rest of the system.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 03/06/22 17:57&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Making it into a mobile hotspot/echolink node/SVXreflector/parrot….
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_mobile&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx_mobile&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx_mobile&quot;&gt;Svx Mobile&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Background&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;background&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;149-538&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;networking&quot;&gt;Networking&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Usual method of deployment is to use a small &lt;em&gt;MiFi 4G router&lt;/em&gt; as an access point to let the Raspberry Pi reach the internet. 
When this MiFi router is in use the node is on an inaccessible network and I can&amp;#039;t reach it to make changes or shut it down.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Networking&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;networking&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;539-816&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;the_answer_is_ssh_tunnels&quot;&gt;The answer is SSH Tunnels&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I use a “Remote SSH Tunnel” to get access to it from my home LAN.
&lt;/p&gt;

&lt;p&gt;
The idea is that the remote node makes an outgoing SSH connection, to a machine on my LAN. I have an open port in the router forwarded to an internal machine for SSH access when I&amp;#039;m away from home. This is straightforward, and the remote Pi can &lt;em&gt;easily&lt;/em&gt; create a SSH session on to my PC in the shack.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;ssh -p xxxxx my.external.host.name&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Along with this &lt;em&gt;incoming&lt;/em&gt; SSH connection from the remote node is also a request to set up a &lt;em&gt;“Remote Tunnel”&lt;/em&gt; which makes the internal Shack PC  set up a &lt;em&gt;listening SSH port&lt;/em&gt;. After this is done, any connection to this new listening port will be sent &lt;em&gt;backwards&lt;/em&gt; to the &lt;em class=&quot;u&quot;&gt;remote node&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;tunnelling within&lt;/em&gt;&lt;/strong&gt; the existing SSH connection. 
&lt;/p&gt;

&lt;p&gt;
This &lt;em&gt;tunnel&lt;/em&gt; will now accept incoming connections from  machines &lt;em&gt;inside&lt;/em&gt; my LAN and &lt;em class=&quot;u&quot;&gt;forward them to the remote node&lt;/em&gt;. I can now effectively SSH to the remote SVXLink node as if it were on my LAN in the shack.
&lt;/p&gt;

&lt;p&gt;
The magic is all done in SSH, but to make it more robust I use a package called &lt;code&gt;autossh&lt;/code&gt; which is a wrapper around &lt;code&gt;SSH&lt;/code&gt; that monitors for loss of the tunnel connection and initiates a new connection automatically if it should fail for any reason.
&lt;/p&gt;

&lt;p&gt;
Here is the script that fires it all off:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;tunnel.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
autossh &lt;span class=&quot;re5&quot;&gt;-M&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-N&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-T&lt;/span&gt; gm4slv_tunnel&lt;/pre&gt;

&lt;p&gt;
Simple enough, but effective.
&lt;/p&gt;

&lt;p&gt;
The &lt;code&gt;gm4slv_tunnel&lt;/code&gt; is connection defined in &lt;code&gt;.ssh/config&lt;/code&gt; as:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Host gm4slv_tunnel
	HostName gm4slv.plus.com
	User gm4slv
	Port xxxxx
	RemoteForward &lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt; localhost:&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;
	RemoteForward &lt;span class=&quot;nu0&quot;&gt;8080&lt;/span&gt; 192.168.0.1:&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
This sets up a remote tunnel, listening on port 4446 of my shack PC that will be forwarded back up the SSH connection to the SVXLink Raspberry Pi.
It also sets up a listening port 8080 which gives me &lt;code&gt;http&lt;/code&gt; access to the 4G MiFi router at the remote site in case I want to shut it down or reboot it or whatever. I just browse to &lt;code&gt;&lt;a href=&quot;http://my_shack_pc:8080&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://my_shack_pc:8080&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://my_shack_pc:8080&lt;/a&gt;&lt;/code&gt; and I&amp;#039;m actually logged into the MiFi router. Magic!
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;etc/ssh/sshd_conf&lt;/code&gt; needs to have &lt;code&gt;Gateway Ports yes&lt;/code&gt; to allow the Shack PC to accept connections to its new &lt;em&gt;remote listening&lt;/em&gt; ports (4446 for SSH and 8080 for HTTP) from other LAN machines, &lt;em class=&quot;u&quot;&gt;otherwise these ports would only be accessible to the Shack PC itself&lt;/em&gt; (on “localhost:4446” or “localhost:8080”)
&lt;/p&gt;

&lt;p&gt;
To allow an unattended/automatic login &lt;em&gt;from&lt;/em&gt; the remote Raspberry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC it&amp;#039;s necessary to set up public_key authentication and to have a &lt;em&gt;passphrase-less&lt;/em&gt; key on the Raspberry Pi. 
&lt;/p&gt;

&lt;p&gt;
Generate a public/private key pair on the Raspberry Pi with &lt;code&gt;ssh-keygen&lt;/code&gt; and don&amp;#039;t enter a &lt;em&gt;passphrase&lt;/em&gt; before saving it in &lt;code&gt;.ssh/id_rsa&lt;/code&gt; and &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt;. Then transfer a copy of &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt; &lt;em&gt;from&lt;/em&gt; the Raspberry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC and put it in the &lt;code&gt;authorized_keys2&lt;/code&gt; file:
&lt;/p&gt;

&lt;p&gt;
(on Raspberry Pi):
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ scp .ssh/id_rsa.pub user@shack_pc:&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
enter password etc. to do the initial &lt;code&gt;scp&lt;/code&gt; transfer
&lt;/p&gt;

&lt;p&gt;
(on Shack PC)
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ cat id_rsa.pub » .ssh/authorized_keys2&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
then any further SSH or SCP sessions &lt;em&gt;from&lt;/em&gt; the Rasperry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC &lt;em&gt;should&lt;/em&gt; occur without any need for 
passwords.
&lt;/p&gt;

&lt;p&gt;
The Pi is now set up for automatic SSH Remote Tunnel - as long as the script is run at boot time:
&lt;/p&gt;

&lt;p&gt;
Crontab is used to fire off the tunnel &lt;em&gt;and&lt;/em&gt; start SVXLink @reboot
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tunnel.sh &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svx_ref.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
To check the Tunnel is up you look at &lt;code&gt;netstat -ntl&lt;/code&gt; on the Shack PC:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~ $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;netstat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ntlp&lt;/span&gt;
Active Internet connections &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;only servers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Program name
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;              0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;854&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;631&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;167630&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cupsd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt;              0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;761&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;inetd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;17500&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;445&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1134&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smbd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt;            0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;17600&lt;/span&gt;         0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;514&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;647&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rsyslogd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;17603&lt;/span&gt;         0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;2947&lt;/span&gt;          0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;init
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;139&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1134&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smbd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;27659&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;854&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;111&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;init
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;8080&lt;/span&gt;            0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv&lt;/pre&gt;

&lt;p&gt;
SSH is listening on ports &lt;code&gt;4446, 20000 and 8080&lt;/code&gt; which proves it&amp;#039;s up and running. 
&lt;/p&gt;

&lt;p&gt;
Port 20000 (and 20001) is used by &lt;code&gt;autossh&lt;/code&gt; to handle its “is the tunnel still up” packets. 
&lt;/p&gt;

&lt;p&gt;
From the Shack PC I can &lt;code&gt;ssh localhost -p 4446&lt;/code&gt; and reach the remove Pi, hostname &lt;code&gt;svx&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~ $ &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; localhost &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt;
Linux svx 5.15.32-v7+ &lt;span class=&quot;co0&quot;&gt;#1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l&lt;/span&gt;
&amp;nbsp;
The programs included with the Debian GNU&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Linux system are &lt;span class=&quot;kw2&quot;&gt;free&lt;/span&gt; software;
the exact distribution terms &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; each program are described &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the
individual files &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;doc&lt;span class=&quot;sy0&quot;&gt;/*/&lt;/span&gt;copyright.
&amp;nbsp;
Debian GNU&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed May  &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;28&lt;/span&gt;:06 &lt;span class=&quot;nu0&quot;&gt;2022&lt;/span&gt; from 127.0.0.1
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;who&lt;/span&gt;
gm4slv   pts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;        &lt;span class=&quot;nu0&quot;&gt;2022&lt;/span&gt;-05-04 &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;35&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;127.0.0.1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;whoami&lt;/span&gt;
gm4slv
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt;
backup         greeting.wav   id_rsa.pub    id_svx.pub  node_info.json      svxlink          svxlink.log        svxlink-sounds-en_US-heather      svx_ref.sh
backup.tar     hosts          id_sdr.pub    log1.log    ReflectorLogic.tcl  svxlink.conf     svxlink_noel.conf  svxlink-sounds-en_US-heather.tar  tunnel.sh
git_backup.sh  id_laptop.pub  id_shack.pub  Logic.tcl   svx_el.sh           svxlink_el.conf  svxlink_ref.conf   svx_noel.sh
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $&lt;/pre&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 11:25:01 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 04/06/26 07:39 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ssh&amp;amp;do=showtag&amp;amp;tag=ssh&quot; class=&quot;wikilink1&quot; title=&quot;tag:ssh&quot; rel=&quot;tag&quot;&gt;ssh&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The answer is SSH Tunnels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_answer_is_ssh_tunnels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;817-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>SVXLink : Install from source</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlinkinstall_from_source&quot;&gt;SVXLink : Install from source&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;cm_simplex_gateway_mb7aze&quot;&gt;70cm Simplex Gateway MB7AZE&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
SVXLink installed on Raspberry Pi - compiled from author&amp;#039;s Git repository.
&lt;/p&gt;

&lt;p&gt;
VOIP networking is achieved using the SVXReflector protocol connecting to a reflector
server run by Chris G4NAB. This connects SVXLink systems together and provides “Talkgroups”
in a similar manner to DMR. There is a web portal to observe the network in real time here:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://svxportal-uk.ddns.net:81/index.php&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Asvxlink%3Asvxlink&amp;amp;media=public:radio:screenshot_2022-05-03_22.07.17.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-05-03_22.07.17.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=0e2620&amp;amp;media=public:radio:screenshot_2022-05-03_22.07.17.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SVXLink : Install from source&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlinkinstall_from_source&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11-545&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;install_a_current_version_of_svxlink&quot;&gt;install a current version of SVXLink&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;install a current version of SVXLink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install_a_current_version_of_svxlink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;546-595&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;get_current_git_version&quot;&gt;Get current Git version&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;git clone &lt;a href=&quot;https://github.com/sm0svx/svxlink.git&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink.git&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink.git&lt;/a&gt;&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Get current Git version&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;get_current_git_version&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;596-683&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;install_dependencies&quot;&gt;Install Dependencies&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A lot of dependencies are required, and not all of them are obvious from the INSTALL doc in 
the source, needing a few iterations of running &lt;code&gt;cmake -DUSE_QT=no .. &lt;/code&gt; and then installing whatever 
package is highlighted as &lt;em&gt;missing&lt;/em&gt;. This might need repeating several times to grab everything required, and to successfully complete the &lt;code&gt;cmake&lt;/code&gt; phase.
&lt;/p&gt;

&lt;p&gt;
Eventually everything is installed allowing the SVXlink package to be configured
and built. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install Dependencies&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install_dependencies&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;684-1166&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;configure&quot;&gt;Configure&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
When configuring with &lt;code&gt;cmake&lt;/code&gt; I used a command line switch &lt;code&gt; -DUSE_QT=no&lt;/code&gt; to avoid QT dependencies and building QTel client :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; build
cmake -DUSE_QT=no ..
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
ldconfig&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;update_to_latest_version_from_git&quot;&gt;Update to latest version from GIT&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;git pull&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; ldconfig&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configure&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configure&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1167-1563&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;running_svlink&quot;&gt;Running Svlink&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Start SVXLINK from script in home directory
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;svx_ref.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Probably need up to date sound files, with the additional items needed for reflector use:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Running Svlink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;running_svlink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1564-2040&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;configuration_file&quot;&gt;Configuration file&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;svxlink.conf&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configuration file&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configuration_file&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2041-2103&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;crontab&quot;&gt;Crontab&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;to_start_at_reboot&quot;&gt;to start at reboot&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;@reboot sleep 30 &amp;amp;&amp;amp; sudo -u gm4slv /home/gm4slv/svx_ref.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Tue May  3 20:56:09 2022&lt;/em&gt;#
&lt;/p&gt;

&lt;p&gt;
Page Updated : 04/06/26 20:55 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mb7aze&amp;amp;do=showtag&amp;amp;tag=mb7aze&quot; class=&quot;wikilink1&quot; title=&quot;tag:mb7aze&quot; rel=&quot;tag&quot;&gt;mb7aze&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Crontab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;crontab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2104-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 19:55:20 +0000</pubDate>
        </item>
        <item>
            <title>Svxlink Update (Dual Gateway)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink_update</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink_update_dual_gateway&quot;&gt;Svxlink Update (Dual Gateway)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/06/22 19:56&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
To allow testing and comparison between 2m and 70cm I&amp;#039;ve got &lt;strong&gt;two&lt;/strong&gt; SVXLink gateways running.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MB7AZE : 70cm : 430.050MHz @ 3W using FT-60&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GM4SLV : 2m : 144.625MHz @ ??W using FT-8900 &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Both feed the same dual band colinear via a duplexer.
&lt;/p&gt;

&lt;p&gt;
Both are connected to G4NAB&amp;#039;s SVXReflector &lt;a href=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://svxportal-uk.ddns.net:81/index.php&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
(&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 03/06/22 09:05&lt;/em&gt;)
&lt;/p&gt;

&lt;p&gt;
I now realize that the DTMF problems were due to setting &lt;code&gt;de-emphasis&lt;/code&gt; &lt;code&gt;ON&lt;/code&gt; while &lt;em&gt;actually&lt;/em&gt; using the audio feed from the FT-8900 for &lt;code&gt;1200 packet&lt;/code&gt;, which already &lt;strong&gt;has&lt;/strong&gt; de-emphasis applied. So I was doing &lt;code&gt;double-de-emphasis&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
No wonder the tones were being mangled.
&lt;/p&gt;

&lt;p&gt;
The &lt;del&gt;deleted&lt;/del&gt; section below shows what steps I took to restore the tone detection in this situation, but this isn&amp;#039;t &lt;em&gt;actually&lt;/em&gt; necessary if the &lt;em class=&quot;u&quot;&gt;correct&lt;/em&gt; audio feed is used. The quick-fix is to turn SVXLink&amp;#039;s &lt;code&gt;de-emphasis&lt;/code&gt; &lt;code&gt;OFF&lt;/code&gt; and restore the DTMF &lt;code&gt;twist&lt;/code&gt; to its normal value. The better fix will be to re-wire the interface to use the flat 9600 baud audio and restore SVXLink&amp;#039;s &lt;code&gt;de-emphasis&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Set up audio levels &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;MB7AZE SvxLink Config&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;del&gt;
Some tweaks were necessary to get GM4SLV to work - DTMF detection was flaky on certain digits when RX &lt;code&gt;de-emphasis&lt;/code&gt; was enabled - which is necessary when using the &lt;code&gt;9600 packet&lt;/code&gt; flat-audio feed from the FT-8900. The issue seems to be the roll-off of the de-emphasis affecting the DTMF digits that use the widest spaced tone-pairs. There&amp;#039;s are configuration items that can fix the problem:

&lt;code&gt;DTMF_MAX_FWD_TWIST&lt;/code&gt; and &lt;code&gt;DTMF_MAX_REV_TWIST&lt;/code&gt; in the [Local Receiver] section.

I had to set &lt;code&gt;DTMF_MAX_FWD_TWIST&lt;/code&gt; to &lt;code&gt;15&lt;/code&gt; to fix the problem.
&lt;/del&gt;
&lt;/p&gt;

&lt;p&gt;
The &lt;code&gt;GM4SLV&lt;/code&gt; gateway now uses the FT-8900 via an unmodified CM108 sound dongle. 
&lt;/p&gt;

&lt;p&gt;
The PTT is from GPIO25 and SQL is from CTCSS.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ve swapped the Echolink service &lt;em&gt;from&lt;/em&gt; MB7AZE-L &lt;em&gt;to&lt;/em&gt; GM4SLV-L.
&lt;/p&gt;

&lt;p&gt;
For the next period of testing MB7AZE will be lower profile, and the FT-60 handheld &lt;em class=&quot;u&quot;&gt;&lt;em&gt;can not&lt;/em&gt;&lt;/em&gt; handle long periods of transmitting (e.g. when set on HUBNET or similar). 
&lt;/p&gt;

&lt;p&gt;
The start-up script that also sets up GPIO (for PTT):
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;out&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio25&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direction
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;crontab&lt;/code&gt; to start it at &lt;code&gt;reboot&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;@reboot sleep 30 &amp;amp;&amp;amp; sudo -u gm4slv /home/gm4slv/svx_ref.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_57a2124ad427a99d5ea8e2cecb33941c_1&quot;&gt;Here is the current &amp;#039;&amp;#039;svxlink.conf&amp;#039;&amp;#039; for GM4SLV : &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_57a2124ad427a99d5ea8e2cecb33941c_1&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic,ReflectorLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOCATION_INFO&lt;/span&gt;=LocationInfo
&lt;span class=&quot;re2&quot;&gt;LINKS&lt;/span&gt;=LinkToReflector
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink	
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=GM4SLV
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_GB
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_CTCSS&lt;/span&gt;=ALWAYS
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;HOSTS&lt;/span&gt;=svxportal-uk.ddns.net
&lt;span class=&quot;re2&quot;&gt;HOST_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;change this&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;change this too&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;JITTER_BUFFER_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_GB
&lt;span class=&quot;re2&quot;&gt;DEFAULT_TG&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MONITOR_TGS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;91&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;235&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2350&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2351&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;23561&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TG_SELECT_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANNOUNCE_REMOTE_MIN_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MUTE_FIRST_TX_LOC&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MUTE_FIRST_TX_REM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TMP_MONITOR_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;NODE_INFO_FILE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;node_info.json
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToReflector&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;:,ReflectorLogic
&lt;span class=&quot;re2&quot;&gt;DEFAULT_ACTIVE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPTIONS&lt;/span&gt;=DEFAULT_CONNECT,NO_DISCONNECT
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=CTCSS
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0.0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=GPIO
&lt;span class=&quot;re2&quot;&gt;PTT_PIN&lt;/span&gt;=gpio25
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;re2&quot;&gt;PTT_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_LEVEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;APRS_SERVER_LIST&lt;/span&gt;=euro.aprs2.net:&lt;span class=&quot;nu0&quot;&gt;14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-GM4SLV
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;144.625&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=5m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BEACON_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=Connected to UK Svx Reflector
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;91235&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;9123561&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;=:&lt;span class=&quot;nu0&quot;&gt;910&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;overview_of_config&quot;&gt;overview of config&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;MB7AZE SvxLink Config&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svxlink Update (Dual Gateway)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_update_dual_gateway&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-5286&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/06/22 19:56&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 01/01/70 01:00 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;5287-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 19:58:40 +0000</pubDate>
        </item>
        <item>
            <title>SVXLink : DTMF commands</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxreflector_commands</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlinkdtmf_commands&quot;&gt;SVXLink : DTMF commands&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/sm0svx/svxlink/wiki/SvxLinkServerUserDocs&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink/wiki/SvxLinkServerUserDocs&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink/wiki/SvxLinkServerUserDocs&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;System Status &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Help Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Parrot Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Echolink Module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;116-216&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; De-activate module&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;218-245&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SVXLink : DTMF commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlinkdtmf_commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11-247&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;echolink_module&quot;&gt;Echolink Module&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;&amp;lt;node number&amp;gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Connect to &lt;code&gt;&amp;lt;node number&amp;gt;&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play the help message&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; List all connected stations&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play local EchoLink node id&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;31#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random link or repeater&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;32#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random conference&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;4#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Reconnect to the last disconnected station&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;50#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Deactivate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;51#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Activate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;6*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Use the connect by callsign feature&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;If connected = Disconnect, otherwise = Deactivate Echolink module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;277-778&amp;quot;} --&gt;
&lt;p&gt;
&lt;a href=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Echolink Module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;echolink_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;248-840&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;macros&quot;&gt;Macros&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D1#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;9999 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Echotest &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D2#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;973498 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; M0HOY-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Hubnet &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D3#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;662666 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M0JKT-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FreeStar &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D4#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVX &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;TG 235 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; UK Call &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D5#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVX &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;TG 23561 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; NE Chat &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D9#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVX &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;TG 0 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Disconnect &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;861-1106&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Macros&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;macros&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;841-1109&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;svxreflector_commands&quot;&gt;SVXReflector Commands&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;9*#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Talk group status&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;90#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Not implemented yet. Reserved for help.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;91#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Select previous talk group&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;91&amp;lt;TG&amp;gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Select talk group &amp;lt;TG&amp;gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;92#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;QSY all &lt;em&gt;active&lt;/em&gt; nodes to a talk group assigned by the reflector server&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;92&amp;lt;TG&amp;gt;#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;QSY all &lt;em&gt;active&lt;/em&gt; nodes to &amp;lt;TG&amp;gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;93#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Follow last QSY&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;94&amp;lt;TG&amp;gt;#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Temporarily monitor &amp;lt;TG&amp;gt; (60 minutes)&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1145-1511&amp;quot;} --&gt;
&lt;p&gt;
&lt;a href=&quot;https://groups.io/g/svxlink/topic/new_svxreflector_with_talk/40999696&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://groups.io/g/svxlink/topic/new_svxreflector_with_talk/40999696&quot; rel=&quot;ugc nofollow noopener&quot;&gt;svxlink@groups.io&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated: 04/06/26 07:39 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SVXReflector Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxreflector_commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1110-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Svxlink &amp; Echolink</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_echolink</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink_echolink&quot;&gt;Svxlink &amp;amp; Echolink&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Revisiting the Analogue FM Voice Gateway&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svxlink &amp;amp; Echolink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_echolink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-97&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;svxlink_gateway_initial_setup&quot;&gt;Svxlink Gateway Initial Setup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svxlink Gateway Initial Setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_gateway_initial_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;98-141&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;trying_not_to_re-invent_the_wheel&quot;&gt;Trying not to re-invent the wheel&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; find saved Pi Image File for a previous Svxlink system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy to a new SD Card and boot a spare Raspberry Pi with it&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; find and connect a modified CM108 sound-dongle - has PTT and SQL via the dongle&amp;#039;s own GPIO&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; connect to 2m FM radio and test initial config&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make any necessary config changes - e.g. MB7AZE → GM4SLV&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up audio levels using &lt;em&gt;devcal&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; change to &lt;em&gt;9600 packet interface&lt;/em&gt; on 2m radio to remove radio pre/de emphasis and apply pre/de emphasis in Svxlink&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up audio levels again using &lt;em&gt;devcal&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check connectivity to Echolink&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to Port Forward on ADSL router : &lt;strong&gt;UDP 5198 &amp;amp; 5199&lt;/strong&gt; → svxlink Pi&amp;#039;s IP address&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; consider using a private proxy on my VPS instead? &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:jre_echolink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:jre_echolink&quot; data-wiki-id=&quot;public:radio:topics:allstar:jre_echolink&quot;&gt;Java JRE and Echolink Proxy&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Trying not to re-invent the wheel&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;trying_not_to_re-invent_the_wheel&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;142-959&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;pi_image_file_handling&quot;&gt;Pi Image File handling&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:rpi_image&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:rpi_image&quot; data-wiki-id=&quot;public:computers:archive:rpi_image&quot;&gt;R Pi Image files&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Pi Image File handling&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pi_image_file_handling&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;960-1034&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;devcal&quot;&gt;Devcal&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf#devcal&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;devcal&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to &lt;code&gt;sudo killall svxlink&lt;/code&gt; to ensure no daemon svxlink processes are running in the background&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to adjust path to valid &lt;em&gt;svxlink.conf&lt;/em&gt; file which will be different to this old example&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Set for 3kHz deviation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to edit the config file(s) to change the RX Pre-amp and TX Master Gain settings to match those find using Deval&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf Rx1&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf Tx1&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add the PRE_AMP and MASTER_GAIN settings to &lt;strong&gt;both&lt;/strong&gt; &lt;code&gt;svxlink_el.conf&lt;/code&gt; and &lt;code&gt;svxlink_noel.conf&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Devcal&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;devcal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1035-1723&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;config_files&quot;&gt;Config Files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One for &lt;strong&gt;Echolink Enabled&lt;/strong&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One for &lt;strong&gt;Echolink Disabled&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Switch Echolink on/off via DTMF commands&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Edit &lt;strong&gt;Logic.tcl&lt;/strong&gt; to give this functionality&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_1&quot;&gt;/etc/svxlink/svxlink_el.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_1&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                Configuration file for the SvxLink server                    #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CARD_CHANNELS=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOCATION_INFO=LocationInfo&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LINKS=LinkToR4&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleEchoLink,ModuleParrot
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=GM4SLV
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REPORT_CTCSS=77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=ALWAYS&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_RX_ON_TX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_TX_ON_RX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Repeater
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MYCALL
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REPORT_CTCSS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=SQL_OPEN&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;co0&quot;&gt;#SEL5_MACRO_RANGE=03400,03499&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#NO_REPEAT=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPEN_ON_1750&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_CTCSS=136:2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_DTMF=*&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL=5000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SEL5=01234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_SQL_FLANK=OPEN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL_AFTER_RPT_CLOSE=10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_SOUND_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MAX_COUNT=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_TIMEOUT=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_MIN_TIME=2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ONLINE_CMD=998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/repeater_dtmf_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=reflector.example.com
&lt;span class=&quot;co0&quot;&gt;#PORT=5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;MYCALL&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#JITTER_BUFFER_DELAY=0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToR4&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=RepeaterLogic:&lt;span class=&quot;nu0&quot;&gt;94&lt;/span&gt;:SK3AB,SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;92&lt;/span&gt;:SK3CD
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#AUTOACTIVATE_ON_SQL=RepeaterLogic&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;co0&quot;&gt;#MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ENCODER_CMD=/usr/bin/oggenc -Q \&amp;quot;%f\&amp;quot; &amp;amp;&amp;amp; rm \&amp;quot;%f\&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Voter
&lt;span class=&quot;re2&quot;&gt;RECEIVERS&lt;/span&gt;=Rx1,Rx2,Rx3
&lt;span class=&quot;re2&quot;&gt;VOTING_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BUFFER_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REVOTE_INTERVAL=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HYSTERESIS=50&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_CLOSE_REVOTE_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#RX_SWITCH_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#COMMAND_PTY=/dev/shm/voter_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Multi
&lt;span class=&quot;re2&quot;&gt;TRANSMITTERS&lt;/span&gt;=Tx1,Tx2,Tx3
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.rx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.tx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=HIDRAW
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TIMEOUT=600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_MODE=2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_SNR_OFFSET=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_OPEN_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_CLOSE_THRESH=9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_LOW=60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_HIGH=270&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PORT=/dev/ttyUSB0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PIN=CTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_DEVNAME=/dev/input/by-id/usb-SYNIC_SYNIC_Wireless_Audio-event-if03&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_OPEN=1,163,1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_CLOSE=1,163,0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_SQL_PIN=gpio25&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTY_PATH=/tmp/rx1_sql&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_DET=TONE&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_BOGUS_THRESH=120&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TONE_SIGLEV_MAP=100,84,60,50,37,32,28,23,19,8&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TAIL_ELIM=300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_PTY=/tmp/rx1_dtmf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#1750_MUTING=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_DEC_TYPE=INTERNAL&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_TYPE=ZVEI1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ=433475000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULATION=FM&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#WBRX=WbRx1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TYPE=RtlUsb&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEV_MATCH=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HOST=localhost&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PORT=1234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CENTER_FQ=435075000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ_CORR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GAIN=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SAMPLE_RATE=960000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=Hidraw
&lt;span class=&quot;co0&quot;&gt;#PTT_PORT=/dev/ttyS0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_PIN=HIDRAW&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=DTR!RTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_FQ=136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_LEVEL=9&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.25&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#APRS_SERVER_LIST=euro.aprs2.net:14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-GM4SLV
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;144.912&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=2m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PATH=WIDE1-1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BEACON_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATISTICS_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=SvxLink
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_2&quot;&gt;/etc/svxlink/svxlink_noel.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_2&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                Configuration file for the SvxLink server                    #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CARD_CHANNELS=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOCATION_INFO=LocationInfo&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LINKS=LinkToR4&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=GM4SLV
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_GB
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REPORT_CTCSS=77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=ALWAYS&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_RX_ON_TX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_TX_ON_RX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Repeater
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MYCALL
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REPORT_CTCSS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=SQL_OPEN&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;co0&quot;&gt;#SEL5_MACRO_RANGE=03400,03499&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#NO_REPEAT=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPEN_ON_1750&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_CTCSS=136:2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_DTMF=*&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL=5000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SEL5=01234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_SQL_FLANK=OPEN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL_AFTER_RPT_CLOSE=10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_SOUND_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MAX_COUNT=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_TIMEOUT=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_MIN_TIME=2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ONLINE_CMD=998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/repeater_dtmf_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=reflector.example.com
&lt;span class=&quot;co0&quot;&gt;#PORT=5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;MYCALL&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#JITTER_BUFFER_DELAY=0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToR4&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=RepeaterLogic:&lt;span class=&quot;nu0&quot;&gt;94&lt;/span&gt;:SK3AB,SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;92&lt;/span&gt;:SK3CD
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#AUTOACTIVATE_ON_SQL=RepeaterLogic&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;co0&quot;&gt;#MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ENCODER_CMD=/usr/bin/oggenc -Q \&amp;quot;%f\&amp;quot; &amp;amp;&amp;amp; rm \&amp;quot;%f\&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Voter
&lt;span class=&quot;re2&quot;&gt;RECEIVERS&lt;/span&gt;=Rx1,Rx2,Rx3
&lt;span class=&quot;re2&quot;&gt;VOTING_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BUFFER_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REVOTE_INTERVAL=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HYSTERESIS=50&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_CLOSE_REVOTE_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#RX_SWITCH_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#COMMAND_PTY=/dev/shm/voter_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Multi
&lt;span class=&quot;re2&quot;&gt;TRANSMITTERS&lt;/span&gt;=Tx1,Tx2,Tx3
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.rx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.tx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=HIDRAW
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TIMEOUT=600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_MODE=2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_SNR_OFFSET=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_OPEN_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_CLOSE_THRESH=9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_LOW=60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_HIGH=270&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PORT=/dev/ttyUSB0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PIN=CTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_DEVNAME=/dev/input/by-id/usb-SYNIC_SYNIC_Wireless_Audio-event-if03&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_OPEN=1,163,1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_CLOSE=1,163,0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_SQL_PIN=gpio25&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTY_PATH=/tmp/rx1_sql&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_DET=TONE&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_BOGUS_THRESH=120&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TONE_SIGLEV_MAP=100,84,60,50,37,32,28,23,19,8&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TAIL_ELIM=300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_PTY=/tmp/rx1_dtmf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#1750_MUTING=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_DEC_TYPE=INTERNAL&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_TYPE=ZVEI1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ=433475000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULATION=FM&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#WBRX=WbRx1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TYPE=RtlUsb&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEV_MATCH=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HOST=localhost&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PORT=1234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CENTER_FQ=435075000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ_CORR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GAIN=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SAMPLE_RATE=960000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=Hidraw
&lt;span class=&quot;co0&quot;&gt;#PTT_PORT=/dev/ttyS0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_PIN=HIDRAW&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=DTR!RTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_FQ=136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_LEVEL=9&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.25&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;APRS_SERVER_LIST&lt;/span&gt;=euro.aprs2.net:&lt;span class=&quot;nu0&quot;&gt;14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-GM4SLV
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;144.9125&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=1m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PATH=WIDE1-1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#BEACON_INTERVAL=60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=SvxLink by SM0SVX &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;www.svxlink.org&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_3&quot;&gt;/etc/svxlink/svxlink.d/ModuleEchoLink.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_3&quot;&gt;&lt;pre class=&quot;code&quot;&gt;[ModuleEchoLink]
NAME=EchoLink
ID=2
TIMEOUT=60
#ALLOW_IP=192.168.1.0/24
#DROP_INCOMING=^()$
#REJECT_INCOMING=^()$
#ACCEPT_INCOMING=^(.*)$
#REJECT_OUTGOING=^()$
#ACCEPT_OUTGOING=^(.*)$
#REJECT_CONF=0
#CHECK_NR_CONNECTS=2,300,120
SERVERS=servers.echolink.org
CALLSIGN=GM4SLV-L
PASSWORD=XXXXXXXXX
SYSOPNAME=John
LOCATION=[Svx] Shetland
PROXY_SERVER=my.vps.host.name
PROXY_PORT=8100
PROXY_PASSWORD=my_proxy_password
#BIND_ADDR=10.20.30.40
MAX_QSOS=5
MAX_CONNECTIONS=6
LINK_IDLE_TIMEOUT=900
#AUTOCON_ECHOLINK_ID=9999
#AUTOCON_TIME=1200
#USE_GSM_ONLY=1
#DEFAULT_LANG=en_US
#COMMAND_PTY=/dev/shm/echolink_ctrl
DESCRIPTION=&amp;quot;You have connected to a SvxLink node,\n&amp;quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_4&quot;&gt;/usr/local/share/svxlink/events.d/local &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_4&quot;&gt;
&lt;p&gt;
Edit the section &lt;code&gt;proc dtmf_cmd_received {cmd}&lt;/code&gt; to add the stanzas that run external bash scripts to stop and restart svxlink with different config files
&lt;/p&gt;
&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a DTMF command has been received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Return 1 to hide the command from further processing is SvxLink or&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# return 0 to make SvxLink continue processing as normal.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This function can be used to implement your own custom commands or to disable&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# DTMF commands that you do not want users to execute.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dtmf_cmd_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #global active_module&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Ignore all commands starting with 3 in the EchoLink module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #          Allow commands that have four or more digits.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module == &amp;quot;EchoLink&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  if {[string length $cmd] &amp;lt; 4 &amp;amp;&amp;amp; [string index $cmd 0] == &amp;quot;3&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #    puts &amp;quot;Ignoring random connect command for module EchoLink: $cmd&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #    return 1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  }&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Handle the &amp;quot;force core command&amp;quot; mode where a command is forced to be&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # executed by the core command processor instead of by an active module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # The &amp;quot;force core command&amp;quot; mode is entered by prefixing a command by a star.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module != &amp;quot;&amp;quot; &amp;amp;&amp;amp; [string index $cmd 0] != &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  return 0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {[string index $cmd 0] == &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  set cmd [string range $cmd 1 end]&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;99&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_noel.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;98&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_5&quot;&gt;start with echolink : svx_el.sh &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_5&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_el.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_6&quot;&gt;start without echolink : svx_noel.sh &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_6&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d3f1830ad566b1d6c3499b2cc25f4fa7_7&quot;&gt;crontab entry to start with echolink enabled at boot time &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d3f1830ad566b1d6c3499b2cc25f4fa7_7&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svx_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Config Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;config_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1724-16686&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;catch_up_with_git_version&quot;&gt;Catch up with git version&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The version of svxlink running on this Pi was self-compiled from the GIT repository&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink#update_to_latest_version_from_git&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink&quot;&gt;Update to latest version from GIT&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I decided to pull &amp;amp; compile the latest version so I simply followed the instructions I&amp;#039;d put on the above wiki page and all went smoothly (if slowly)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Catch up with git version&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;catch_up_with_git_version&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;16687-17020&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;dtmf_commands&quot;&gt;DTMF Commands&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Old info &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxreflector_commands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxreflector_commands&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxreflector_commands&quot;&gt;SVXLink : DTMF commands&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ignore &lt;strong&gt;Reflector&lt;/strong&gt; commands - I am not (yet) connected to the SVX Reflector &lt;a href=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://svxportal-uk.ddns.net:81/index.php&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;System Status &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Help Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Parrot Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Echolink Module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;17218-17318&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; De-activate module&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;17320-17347&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;echolink_module&quot;&gt;Echolink Module&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;&amp;lt;node number&amp;gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Connect to &lt;code&gt;&amp;lt;node number&amp;gt;&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play the help message&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; List all connected stations&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play local EchoLink node id&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;31#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random link or repeater&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;32#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random conference&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;4#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Reconnect to the last disconnected station&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;50#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Deactivate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;51#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Activate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;6*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Use the connect by callsign feature&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;If connected = Disconnect, otherwise = Deactivate Echolink module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;17375-17876&amp;quot;} --&gt;
&lt;p&gt;
&lt;a href=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;macros&quot;&gt;Macros&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit12&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D1#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;9999 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Echotest &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D2#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;973498 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; M0HOY-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Hubnet &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D3#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;662666 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M0JKT-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FreeStar &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;17955-18089&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DTMF Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dtmf_commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;17021-18091&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;sound_files&quot;&gt;Sound files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; use &lt;code&gt;en_US&lt;/code&gt; when &lt;strong&gt;echolink is enabled&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this is also needed for &lt;strong&gt;reflector&lt;/strong&gt; when it&amp;#039;s re-enabled, as the &lt;code&gt;US&lt;/code&gt; files also have the additional reflector sound samples&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; use &lt;code&gt;en_GB&lt;/code&gt; when &lt;strong&gt;echolink is disable&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; easy to tell from status &lt;code&gt;*#&lt;/code&gt; which is active!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sound files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sound_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;18092-18399&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;proxy&quot;&gt;Proxy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; after consideration….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I decided to use my VPS-hosted echolink proxy&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remove port forwards on home router for UDP/5198 &amp;amp; UDP/5199&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; open port TPC/8100 for &lt;strong&gt;only my home IP address&lt;/strong&gt; on VPS&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; this means only one IP address can reach the Proxy on port TCP/8100&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; open ports UDP/5198 &amp;amp; UDP/5199 for anywhere on VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit echolink proxy config on VPS to allow only GM4SLV-L to connect&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; this means only one callsign can connect to the proxy&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; start proxy in a tmux session, using bash script on VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit ModuleEchoLink.conf on svxlink pi to use the proxy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart &lt;code&gt;svx_el.sh&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;PROXY_SERVER&lt;/span&gt;=my.vps.host.name
&lt;span class=&quot;re2&quot;&gt;PROXY_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PROXY_PASSWORD&lt;/span&gt;=xxxxxxxxx&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 06/04/24 07:09&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
LAST MODIFIED : 04/06/26 22:01 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;18400-19212&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;19213-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 21:01:52 +0000</pubDate>
        </item>
        <item>
            <title>Svx Mobile</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_mobile</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svx_mobile&quot;&gt;Svx Mobile&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Plan…&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
To make a mobile hotspot that will provide access to SVXReflector and Echolink as well as a handy single-frequency parrot repeater.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svx Mobile&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svx_mobile&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-188&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Remains the same as the previous portable hotspot
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Raspberry Pi&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CM108 soundcard&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IC-2E&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MiFi router &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
It will be installed in my vehicle, which also has a TM-D710 for APRS and voice comms. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;0&quot; data-date=&quot;1780607017&quot; data-pageid=&quot;public:radio:topics:svxlink:svx_mobile&quot; data-strikethrough=&quot;1&quot; /&gt; &lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Add 5V regulator to power R.Pi from 12VDC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;1&quot; data-date=&quot;1780607017&quot; data-pageid=&quot;public:radio:topics:svxlink:svx_mobile&quot; data-strikethrough=&quot;1&quot; /&gt; &lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Put everything in a grab-box for portability&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;189-538&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;svxlink_config&quot;&gt;SVXLink Config&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Echolink Module enabled (switchable via DTMF commands)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Echolink using a &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:jre_echolink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:jre_echolink&quot; data-wiki-id=&quot;public:radio:topics:allstar:jre_echolink&quot;&gt;Java JRE and Echolink Proxy&lt;/a&gt; running on my VPS machine to enable incoming connections.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SVXLink Config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;539-736&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;logictcl_additions_for_switching_el_on_off&quot;&gt;Logic.tcl additions for switching EL on/off&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Added to &lt;code&gt;&amp;lt;…&amp;gt;/events.d/local/Logic.tcl&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt; # Example: Custom command executed when DTMF 97 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;97&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_ref_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Custom command executed when DTMF 98 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;98&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_ref_noel.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;99&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_noref_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DTMF command &lt;code&gt;97#&lt;/code&gt; will cause svxlink to restart with &lt;strong&gt;Reflector&lt;/strong&gt; connected, &lt;strong&gt;Echolink&lt;/strong&gt; connected.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DTMF command &lt;code&gt;98#&lt;/code&gt; will cause svxlink to restart with &lt;strong&gt;Reflector&lt;/strong&gt; connected, &lt;strong&gt;Echolink&lt;/strong&gt; disabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DTMF command &lt;code&gt;99#&lt;/code&gt; will cause svxlink to restart with &lt;strong&gt;Reflector&lt;/strong&gt; disabled, &lt;strong&gt;Echolink&lt;/strong&gt; connected.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Logic.tcl additions for switching EL on\/off&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;logictcl_additions_for_switching_el_on_off&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;737-1802&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;start_with_reflector_on_and_echolink_on&quot;&gt;Start with Reflector ON and Echolink ON&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;97#&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_ref_el.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;out&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio25&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direction
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start with Reflector ON and Echolink ON&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_with_reflector_on_and_echolink_on&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1803-2190&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;start_with_reflector_on_echolink_disabled&quot;&gt;Start with Reflector ON, Echolink Disabled&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;98#&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_ref_noel.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;out&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio25&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direction
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;start_with_reflector_disabled_echolink_on&quot;&gt;Start with Reflector disabled, Echolink ON&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;99#&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noref_el.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;25&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;out&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;class&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gpio25&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direction
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
It&amp;#039;s probable that I&amp;#039;ll configure the initial start &lt;code&gt;@reboot&lt;/code&gt; to be &lt;em&gt;with&lt;/em&gt; Reflector &lt;strong&gt;and&lt;/strong&gt; Echolink  
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;crontab&lt;/code&gt;  →  &lt;code&gt;@reboot sleep 30 &amp;amp;&amp;amp; sudo -u gm4slv /home/gm4slv/svx_ref_el.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Using a PROXY server for connecting to Echolink, and be able to accept incoming Echolink connections, is necessary because it&amp;#039;s not possible to control external firewall/port forwarding when using the MiFi 4G router for internet access. 
&lt;/p&gt;

&lt;p&gt;
Connecting &lt;code&gt;direct&lt;/code&gt; to Echolink, without the &lt;code&gt;proxy&lt;/code&gt; still allows outgoing Echolink connections to be made
&lt;/p&gt;

&lt;p&gt;
Rather than relying on other &lt;code&gt;PUBLIC&lt;/code&gt; Echolink proxies I though it would be wise to install and run a proxy server myself, on the VPS machine. It turned out to be easier than I thought and the basic steps are &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:jre_echolink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:jre_echolink&quot; data-wiki-id=&quot;public:radio:topics:allstar:jre_echolink&quot;&gt; here&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start with Reflector ON, Echolink Disabled&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_with_reflector_on_echolink_disabled&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2191-3797&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;parrot&quot;&gt;Parrot&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I imagine being able to use the Parrot feature as a temporary single-frequency repeater perhaps for emergency use? 
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll experiment….
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Parrot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;parrot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3798-3957&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 03/06/22 17:59&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 22:03 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3958-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 21:03:37 +0000</pubDate>
        </item>
    </channel>
</rss>
