<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pttlink.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=N8THN</id>
	<title>&quot;PTTLink Wiki&quot; - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pttlink.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=N8THN"/>
	<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/wiki/Special:Contributions/N8THN"/>
	<updated>2026-06-02T14:40:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User_talk:KB7ACL&amp;diff=1483</id>
		<title>User talk:KB7ACL</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User_talk:KB7ACL&amp;diff=1483"/>
		<updated>2019-12-04T15:39:55Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User:KB7ACL&amp;diff=1482</id>
		<title>User:KB7ACL</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User:KB7ACL&amp;diff=1482"/>
		<updated>2019-12-04T15:39:55Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I originally became a licensed operator through a High School class in 1990.  I recently got back into the hobby and re-took my technician exam.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User_talk:Kb8zgl&amp;diff=1474</id>
		<title>User talk:Kb8zgl</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User_talk:Kb8zgl&amp;diff=1474"/>
		<updated>2019-11-29T20:49:03Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User:Kb8zgl&amp;diff=1473</id>
		<title>User:Kb8zgl</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User:Kb8zgl&amp;diff=1473"/>
		<updated>2019-11-29T20:49:03Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Amateur Radio Operator who helps with ASL&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User_talk:W8ENT&amp;diff=1472</id>
		<title>User talk:W8ENT</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User_talk:W8ENT&amp;diff=1472"/>
		<updated>2019-11-29T20:47:45Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=User:W8ENT&amp;diff=1471</id>
		<title>User:W8ENT</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=User:W8ENT&amp;diff=1471"/>
		<updated>2019-11-29T20:47:45Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Amateur Radio Operator, Extra Class.  Cascade, MI.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Server_Provisioning&amp;diff=1468</id>
		<title>Server Provisioning</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Server_Provisioning&amp;diff=1468"/>
		<updated>2019-10-22T21:35:40Z</updated>

		<summary type="html">&lt;p&gt;N8THN: /* Ubuntu 18 Config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is intended to be a reference for setting up a VM or Server for AllStatLink.  &lt;br /&gt;
&lt;br /&gt;
= Server Overview = &lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
AllStarLink has standardized on Ubuntu 16.04 LTS for it's servers. &lt;br /&gt;
&lt;br /&gt;
The minimum configuration of any server will be 2 cores of 2 GHz or faster, 4 GiB of ram and 40 GiB of Disk.  &lt;br /&gt;
&lt;br /&gt;
All new servers shall support IPv6, or have it available from the hosting provider.&lt;br /&gt;
&lt;br /&gt;
Reverse IP's shall be delegated via a CNAME to $NAME.PTR.allstarlink.org, where $NAME is the name of the server.&lt;br /&gt;
&lt;br /&gt;
All servers shall be partitioned to use / as the only partition unless a specific configuration is required. &lt;br /&gt;
&lt;br /&gt;
== Install guide == &lt;br /&gt;
&lt;br /&gt;
When provisioning a new server&lt;br /&gt;
&lt;br /&gt;
* check the VM is setup (cpu/mem/disk) as it should be, if not contact the provider&lt;br /&gt;
&lt;br /&gt;
   cat /proc/cpuinfo |grep processor&lt;br /&gt;
   processor       : 0&lt;br /&gt;
   processor       : 1&lt;br /&gt;
   processor       : 2&lt;br /&gt;
   processor       : 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* on the server install python (apt-get install python).  This is needed for the ansibile provisioning&lt;br /&gt;
* setup the server in the infrastructure configs and push the users and keys to it.  &lt;br /&gt;
&lt;br /&gt;
=== Mandatory Software ===&lt;br /&gt;
&lt;br /&gt;
All servers require this software&lt;br /&gt;
&lt;br /&gt;
 apt-get install ntp ntpdate python vim screen ipsec-tools strongswan fail2ban snmp haveged libacl1-dev python3-dev libssl-dev gcc g++ fio pbzip2 ncdu&lt;br /&gt;
&lt;br /&gt;
=== Mandatory Configs ===&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu 18 Config ====&lt;br /&gt;
&lt;br /&gt;
Ubuntu 18 uses the net netplan config.  It's gay as fuck.&lt;br /&gt;
&lt;br /&gt;
First you need to disable the resolved service:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl disable systemd-resolved.service&lt;br /&gt;
 sudo systemctl stop systemd-resolved&lt;br /&gt;
 rm /etc/resolv.conf &lt;br /&gt;
 sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
 sudo apt-get purge cloud-init&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;nameserver 1.1.1.1&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
 apt-get install ifupdown&lt;br /&gt;
&lt;br /&gt;
Configure  /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 systemctl unmask networking&lt;br /&gt;
 systemctl enable networking&lt;br /&gt;
 systemctl restart networking&lt;br /&gt;
&lt;br /&gt;
 systemctl stop systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online&lt;br /&gt;
 systemctl disable systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online&lt;br /&gt;
 systemctl mask systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online&lt;br /&gt;
 apt-get --assume-yes purge nplan netplan.io&lt;br /&gt;
&lt;br /&gt;
==== Network Config ====&lt;br /&gt;
* The network should be configured to use /etc/network/interfaces, and add DNS and the firewall to it and search in the allstarlink.org domain&lt;br /&gt;
&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0&lt;br /&gt;
 iface eth0 inet6 static&lt;br /&gt;
    address 9805:0900:0340:1000::2600/64&lt;br /&gt;
    autoconf 0&lt;br /&gt;
    accept_ra 2	&lt;br /&gt;
 iface eth0 inet static&lt;br /&gt;
     address 44.103.0.49&lt;br /&gt;
     netmask 255.255.255.0&lt;br /&gt;
     network 44.103.0.0&lt;br /&gt;
     broadcast 44.103.0.255&lt;br /&gt;
     gateway 44.103.0.1 &lt;br /&gt;
     dns-nameservers 44.103.0.4 1.1.1.1&lt;br /&gt;
     dns-search allstarlink.org&lt;br /&gt;
     up /etc/network/firewall.sh&lt;br /&gt;
&lt;br /&gt;
* There is typically only one network interface, and it will be named dynamically.  We must setup this using udev to be persistent&lt;br /&gt;
&lt;br /&gt;
    root@server# ifconfig |grep HWaddr&lt;br /&gt;
    eth0      Link encap:Ethernet  HWaddr 52:54:00:73:86:06  &lt;br /&gt;
&lt;br /&gt;
Now take this HWaddr and put it in the config file&lt;br /&gt;
    echo 'SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTR{address}==&amp;quot;52:54:00:73:86:06&amp;quot;, ATTR{dev_id}==&amp;quot;0x0&amp;quot;, ATTR{type}==&amp;quot;1&amp;quot;, NAME=&amp;quot;eth0&amp;quot;' &amp;gt;/etc/udev/rules.d/70-persistent-net.rules&lt;br /&gt;
&lt;br /&gt;
* configure screen to use the scroll back buffer&lt;br /&gt;
   vim /etc/screenrc&lt;br /&gt;
   uncomment &amp;quot;termcapinfo xterm|xterms|xs|rxvt ti@:te@&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* configure bash completion for interactive shells&lt;br /&gt;
    vim /etc/bash.bashrc&lt;br /&gt;
    uncomment the stuff below &lt;br /&gt;
    # enable bash completion in interactive shells &lt;br /&gt;
&lt;br /&gt;
* set the host name&lt;br /&gt;
    echo &amp;quot;domain.allstarlink.org&amp;quot; &amp;gt;/etc/hostname&lt;br /&gt;
&lt;br /&gt;
* set the default editor&lt;br /&gt;
    update-alternatives --config editor &lt;br /&gt;
    Then select #3 vim.basic&lt;br /&gt;
&lt;br /&gt;
* setup a firewall as /etc/network/firewall.sh and chmod +x it.  You'll need to edit this based on the machine.  Note the stuff in tampa uses a firewall on the HV too.&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    &lt;br /&gt;
    INET_IF=eth0&lt;br /&gt;
    &lt;br /&gt;
    #Flush and zero all tables&lt;br /&gt;
    modprobe ip_tables&lt;br /&gt;
    modprobe ipt_limit&lt;br /&gt;
    modprobe iptable_mangle&lt;br /&gt;
    modprobe ipt_state&lt;br /&gt;
    modprobe ipt_LOG&lt;br /&gt;
    modprobe iptable_filter&lt;br /&gt;
    &lt;br /&gt;
    iptables -F INPUT&lt;br /&gt;
    iptables -F FORWARD&lt;br /&gt;
    iptables -t nat -F POSTROUTING&lt;br /&gt;
    iptables -t nat -F PREROUTING&lt;br /&gt;
    &lt;br /&gt;
    #init the log-and-drop chain&lt;br /&gt;
    iptables -F log-and-drop&lt;br /&gt;
    iptables -X log-and-drop&lt;br /&gt;
    iptables -N log-and-drop&lt;br /&gt;
    #init log-and-reject&lt;br /&gt;
    iptables -F log-and-reject&lt;br /&gt;
    iptables -X log-and-reject&lt;br /&gt;
    iptables -N log-and-reject&lt;br /&gt;
    &lt;br /&gt;
    echo &amp;quot;all tables flushed and dropped&amp;quot;&lt;br /&gt;
    # Specific chain used for logging packets before blocking them&lt;br /&gt;
    iptables -A log-and-drop -j LOG --log-prefix &amp;quot;[IPTables] Drop &amp;quot;&lt;br /&gt;
    iptables -A log-and-drop -j DROP&lt;br /&gt;
    &lt;br /&gt;
    # Specific chain used for logging packets before blocking them&lt;br /&gt;
    iptables -A log-and-reject -j LOG --log-prefix &amp;quot;[IPTables] Reject &amp;quot;&lt;br /&gt;
    iptables -A log-and-reject -j REJECT&lt;br /&gt;
    echo &amp;quot;logging chains setup&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    # The packets having the TCP flags activated are dropped&lt;br /&gt;
    # and so for the ones with no flag at all (often used with Nmap scans)&lt;br /&gt;
    iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j log-and-drop&lt;br /&gt;
    iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j log-and-drop&lt;br /&gt;
    &lt;br /&gt;
    #Global blocks&lt;br /&gt;
    #iptables -t filter -A INPUT -j DROP -s 119.118.232.185/24&lt;br /&gt;
    &lt;br /&gt;
    # allow IPSEC from other boxes&lt;br /&gt;
    IPSECsrc='199.47.174.150,44.98.254.151,44.103.0.48,44.103.0.49,44.98.254.145,44.72.21.13,44.72.21.12'&lt;br /&gt;
    #Technically the next two are not needed as we have the policy&lt;br /&gt;
    iptables -A INPUT -i $INET_IF -p 50 -j ACCEPT --src &amp;quot;$IPSECsrc&amp;quot;&lt;br /&gt;
    iptables -A INPUT -i $INET_IF -p 51 -j ACCEPT --src &amp;quot;$IPSECsrc&amp;quot;&lt;br /&gt;
    iptables -A INPUT -i $INET_IF -p udp --dport 500 -j ACCEPT --src &amp;quot;$IPSECsrc&amp;quot;&lt;br /&gt;
    # this is needed to allow all ipsec packets when it's host to host&lt;br /&gt;
    iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT --src &amp;quot;$IPSECsrc&amp;quot; &lt;br /&gt;
    &lt;br /&gt;
    # allow all ssh in&lt;br /&gt;
    iptables -t filter -A INPUT -j ACCEPT --protocol tcp --dport 22&lt;br /&gt;
    &lt;br /&gt;
    #allow http and https&lt;br /&gt;
    #iptables -t filter -A INPUT -j ACCEPT --protocol tcp --dport 80&lt;br /&gt;
    #iptables -t filter -A INPUT -j ACCEPT --protocol tcp --dport 443&lt;br /&gt;
    # allow asterisk 4569&lt;br /&gt;
    #iptables -t filter -A INPUT -j ACCEPT --protocol udp --dport 4569&lt;br /&gt;
    # allow DNS&lt;br /&gt;
    #iptables -t filter -A INPUT -j ACCEPT --protocol tcp --dport 53&lt;br /&gt;
    #iptables -t filter -A INPUT -j ACCEPT --protocol udp --dport 53&lt;br /&gt;
    &lt;br /&gt;
    echo &amp;quot;end of services&amp;quot;&lt;br /&gt;
    # allow ping at 2 per sec&lt;br /&gt;
     iptables -t filter -A INPUT -j ACCEPT --in-interface $INET_IF --protocol icmp --icmp-type echo-request --match limit --limit 4/s --limit-burst 3&lt;br /&gt;
     iptables -t filter -A INPUT -j log-and-drop  --in-interface $INET_IF --protocol icmp --icmp-type echo-request&lt;br /&gt;
    # allow responces to local initated connections&lt;br /&gt;
    #iptables -A INPUT -i  $INET_IF --match state --state NEW,INVALID -j log-and-drop&lt;br /&gt;
    #iptables -A FORWARD -i $INET_IF  --match state --state NEW,INVALID -j log-and-drop&lt;br /&gt;
    iptables -t filter -A INPUT -j ACCEPT --match state --state RELATED,ESTABLISHED&lt;br /&gt;
    # Set rp_filter to 2&lt;br /&gt;
    for i in `find /proc/sys/net/ipv*/conf -name rp_filter`&lt;br /&gt;
    do&lt;br /&gt;
            echo &amp;quot;2&amp;quot; &amp;gt;$i&lt;br /&gt;
    done&lt;br /&gt;
    # setup a default deny rule for outside traffic&lt;br /&gt;
    iptables -t filter -A INPUT --in-interface $INET_IF -j log-and-drop&lt;br /&gt;
&lt;br /&gt;
* setup fail2ban for ssh and have it null route offenders. edit ignoreip as needed&lt;br /&gt;
    vi /etc/fail2ban/jail.conf&lt;br /&gt;
    ignoreip = 127.0.0.1/8 199.47.172.0/22 44.98.254.0/24 44.72.21.0/24 44.103.0.0/24&lt;br /&gt;
    bantime  = 3600&lt;br /&gt;
    # A host is banned if it has generated &amp;quot;maxretry&amp;quot; during the last &amp;quot;findtime&amp;quot;&lt;br /&gt;
    # seconds.&lt;br /&gt;
    findtime  = 3600&lt;br /&gt;
    # &amp;quot;maxretry&amp;quot; is the number of failures before a host get banned.&lt;br /&gt;
    maxretry = 2&lt;br /&gt;
    banaction = route&lt;br /&gt;
&lt;br /&gt;
* Set the TimeZone to UTC&lt;br /&gt;
    sudo timedatectl set-timezone UTC&lt;br /&gt;
* Set the server up in forward and reverse DNS&lt;br /&gt;
** for reverse have the provider do a CNAME in their reverse file pointing to $DOMAIN.PTR.allstarlink.org.  In the allstarlink.org DNS zone add an entry &lt;br /&gt;
    example:&lt;br /&gt;
    stats             IN      PTR     stats.allstarlink.org.&lt;br /&gt;
This will do a lookup on 130.254.98.44.in-addr.arpa. and return a CNAME pointing to stats.PTR.allstarlink.org, which has a PTR record pointing to stats.allstarlink.org.&lt;br /&gt;
&lt;br /&gt;
=== Configure IPSEC ===&lt;br /&gt;
AllStarLink servers use strong crypto using host to host IPSEC between them for protection of services.  This is configured only between servers that need it, as we don't have dynamic tunneling enabled, and each server needs a config for each tunnel.  This can quickly add up to lots of configrations.&lt;br /&gt;
&lt;br /&gt;
This example will show two servers, 1 and 2 with IP 44.1.1.1 and 44.2.2.2 respectively. &lt;br /&gt;
&lt;br /&gt;
==== Server 1 ====&lt;br /&gt;
We need to provision the ipsec tools to know about the connections and configure a pre shared key (PSK). &lt;br /&gt;
Note the left server is always the local server.&lt;br /&gt;
&lt;br /&gt;
    /etc/ipsec.conf&lt;br /&gt;
    conn one-to-two&lt;br /&gt;
            authby=secret&lt;br /&gt;
            #auto=start enabled the tunnel to come up even if there is not traffic for it.  &lt;br /&gt;
            auto=start&lt;br /&gt;
            keyexchange=ike&lt;br /&gt;
            left=4.1.1.1&lt;br /&gt;
            right=4.2.2.2&lt;br /&gt;
            leftikeport=500&lt;br /&gt;
            rightikeport=500   &lt;br /&gt;
            type=transport&lt;br /&gt;
            esp=aes128gcm16!&lt;br /&gt;
            dpddelay=5&lt;br /&gt;
            dpdtimeout=20&lt;br /&gt;
            dpdaction=restart&lt;br /&gt;
&lt;br /&gt;
    vim /etc/ipsec.secrets&lt;br /&gt;
    44.1.1.1 44.2.2.2 : PSK &amp;quot;This is the AllStarLink PSK&amp;quot;&lt;br /&gt;
Then do an 'ipsec restart' on the server.&lt;br /&gt;
&lt;br /&gt;
==== Server 2 ====&lt;br /&gt;
&lt;br /&gt;
/etc/ipsec.conf&lt;br /&gt;
    conn two-to-one&lt;br /&gt;
            authby=secret&lt;br /&gt;
            #auto=start enabled the tunnel to come up even if there is not traffic for it.  &lt;br /&gt;
            auto=start&lt;br /&gt;
            keyexchange=ike&lt;br /&gt;
            left=4.2.2.2&lt;br /&gt;
            right=4.1.1.1&lt;br /&gt;
            leftikeport=500&lt;br /&gt;
            rightikeport=500   &lt;br /&gt;
            type=transport&lt;br /&gt;
            esp=aes128gcm16!&lt;br /&gt;
            dpddelay=5&lt;br /&gt;
            dpdtimeout=20&lt;br /&gt;
            dpdaction=restart&lt;br /&gt;
&lt;br /&gt;
    vim /etc/ipsec.secrets&lt;br /&gt;
    44.2.2.2 44.1.1.1 : PSK &amp;quot;This is the AllStarLink PSK&amp;quot;&lt;br /&gt;
Then do an 'ipsec restart' on the server.&lt;br /&gt;
&lt;br /&gt;
==== Verify IPsec ====&lt;br /&gt;
&lt;br /&gt;
The 'ipsec' command is used to verify the tunnel is up between the servers&lt;br /&gt;
&lt;br /&gt;
    root@server# ipsec status&lt;br /&gt;
    two-to-one[839]: ESTABLISHED 98 minutes ago, 44.1.1.1[44.1.1.1]...44.2.2.2[44.2.2.2]&lt;br /&gt;
    two-to-one{13209}:  INSTALLED, TRANSPORT, reqid 695, ESP SPIs: c824e4db_i c1e4bf5c_o&lt;br /&gt;
    two-to-one{13209}:   44.1.1.1/32 === 44.2.2.2/32&lt;br /&gt;
If they are not up, check /var/log/syslog and restart ipsec on both servers.  Some times a server can get in a bad status if there is a mis-config.  Also it's worth noting that IPSEC is processed by iptables once it's decrypted, the &amp;lt;code&amp;gt;iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT --src &amp;quot;$IPSECsrc&amp;quot; &amp;lt;/code&amp;gt; line in the firewall allows all IPsec packets once decrypted to bypass the firewall.  This is able to prevent traffic between unencrypted services on the servers (e.g. mysql will not connect if the ipsec is down).&lt;br /&gt;
&lt;br /&gt;
=== Configure Postfix ===&lt;br /&gt;
&lt;br /&gt;
Postfix is installed to forward mail for root to a smtp host.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install postfix mailutils&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will run an installer with a curses interface and you must select '''Satallite System'''.  Check the '''System mail''' name is the hostname of the server, and the '''SMTP relay host''' is ''morty.keekles.org''. '''Root and postmaster mail''' should be ''rootmail@allstarlink.org''.&lt;br /&gt;
&lt;br /&gt;
Should you need to reconfigure this use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; dpkg-reconfigure postfix &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
other aliases are setup in /etc/aliases.  You must run ''newaliases'' after this is updated for them to take effect.&lt;br /&gt;
&lt;br /&gt;
= Verification =&lt;br /&gt;
&lt;br /&gt;
It's important to verify the server provisiong before being put into production. &lt;br /&gt;
&lt;br /&gt;
== Items to check ==&lt;br /&gt;
* reboot the server/vm, do all services start properly?&lt;br /&gt;
* Is the IP address configured on the server on eth0?&lt;br /&gt;
* Is the hostname set?&lt;br /&gt;
* Is it configured in DNS both forward and reverse?&lt;br /&gt;
* Is the firewall active (try netcat on a non-permitted port)&lt;br /&gt;
* IPSEC is active &amp;lt;code&amp;gt;ipsec status&amp;lt;/code&amp;gt;?&lt;br /&gt;
* Does Screen work in an xterm with scroll back?&lt;br /&gt;
* Is the time set via ntp &amp;lt;code&amp;gt;ntptime&amp;lt;/code&amp;gt; and is the timezone set to UTC?&lt;br /&gt;
* Is fail2ban working?  Make a couple test connections and see if the IP is null routed &amp;lt;code&amp;gt;ip route show&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may need to check your other services on this server now.&lt;br /&gt;
&lt;br /&gt;
= Network Monitoring = &lt;br /&gt;
It's time to hand off the server to the NMS team.  Please ensure SNMP is configured and an IPSEC tunnel is built to nms.allstarlink.org&lt;br /&gt;
Logging will be sucked up by graylog.&lt;br /&gt;
&lt;br /&gt;
Please ensure it's being watched in librenms by asking on the admin list or in the slack.&lt;br /&gt;
&lt;br /&gt;
[[Category: Infrastructure]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Allmon2&amp;diff=1467</id>
		<title>Allmon2</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Allmon2&amp;diff=1467"/>
		<updated>2019-10-20T03:05:51Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Overview added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://github.com/tsawyer/allmon2&lt;br /&gt;
&lt;br /&gt;
APT-GET Package pending for ASL1.10&lt;br /&gt;
&lt;br /&gt;
 Allmon is a web site for managing one or more app_rpt (aka Allstar) nodes.&lt;br /&gt;
 Each managed local node shows a list of connected nodes. The list is&lt;br /&gt;
 sorted in reverse order of the most recently received node. So the last&lt;br /&gt;
 node to talk is always at the top of the list. Any node that is currently&lt;br /&gt;
 being received will be highlighted by a green background as well as moving&lt;br /&gt;
 to the top of the list. The node list is updated once a second giving near-&lt;br /&gt;
 real-time status.&lt;br /&gt;
 &lt;br /&gt;
 Nodes may be grouped together when configuring Allmon. Groups enable two&lt;br /&gt;
 or mode nodes to be displayed on the same page. This can be handy if you&lt;br /&gt;
 use devices with smaller screens or you want to see a couple of your nodes&lt;br /&gt;
 at the same time. Don't try to display more than a few per group as performance&lt;br /&gt;
 will suffer.&lt;br /&gt;
 &lt;br /&gt;
 Logged in users can perform connect and disconnects. Users are maintained&lt;br /&gt;
 with the Apache htpasswd utility. There is only one login level, admin.&lt;br /&gt;
 &lt;br /&gt;
 Allmon will also monitor VOTER clients. Each VOTER instance displays a list&lt;br /&gt;
 attached Radio Thin Client Modules (RTCM). The RSSI for each RTCM is displayed&lt;br /&gt;
 in bar graph style along with a color to indicate the currently voted RTCM.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Due_Credit&amp;diff=1394</id>
		<title>Due Credit</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Due_Credit&amp;diff=1394"/>
		<updated>2019-03-30T13:32:44Z</updated>

		<summary type="html">&lt;p&gt;N8THN: drupal transfer to wiki documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This site is mostly a cut and paste from the original ohnosec.org Drupal site. That site and the majority of its articles were developed by Steve Rogers WA6ZFT. Of course Jim Dixon WB6NIL and others have contributed to the original site over time.&lt;br /&gt;
&lt;br /&gt;
While the authorship of all the articles on this new Drupal site is mine (at this time) it should be noted that almost none of it actually is. The authorship got lost during the cut and paste operations. I apologize for this unfortunate side effect.&lt;br /&gt;
[[File:ASL docs drupal to wiki.pdf|left|thumb|List of formal Drupal pages and corresponding wiki pages]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=File:ASL_docs_drupal_to_wiki.pdf&amp;diff=1393</id>
		<title>File:ASL docs drupal to wiki.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=File:ASL_docs_drupal_to_wiki.pdf&amp;diff=1393"/>
		<updated>2019-03-30T13:30:49Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Spreadsheet printout documenting transfer of former Drupal site to WiKi.allstarlink.org&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Main_Page&amp;diff=1348</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Main_Page&amp;diff=1348"/>
		<updated>2019-01-29T01:52:07Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the AllStarLink WiKi. AllStarLink is a world wide network of [https://en.wikipedia.org/wiki/Amateur_radio Amateur Radio] repeaters, remote base stations and hot spots accessible to each other via the Internet and/or private IP networks. AllStarLink runs on a dedicated Linux computer (including the Raspberry Pi) that you host at your home, radio site or computer center. It is based on the open source Asterisk PBX. The app_rpt module it makes a powerful radio/repeater controller. AllStarLink is open source GPL software free for anyone to use.&lt;br /&gt;
&lt;br /&gt;
Recently we've moved some things off of this front page. If you don't see what you are looking for look at the [[:Category:How to|How To's]] or use search located on the top of every page. We have completed moving the content from the docs site [http://docs.allstarlink.org docs.allstarlink.org]. &lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==Organization==&lt;br /&gt;
*[[The Organization - AllStarLink Inc. ]] - Who is AllStarLink?&lt;br /&gt;
*[[The Beginning - AllStarLink Inc]] - How AllStarLink came to be. &lt;br /&gt;
&lt;br /&gt;
==AllStarLink Menu==&lt;br /&gt;
*[[Features]] - List of the many AllStarLink Features &lt;br /&gt;
*[[Beginners Guide]] - Step by step instructions to create your account and AllStarLink node. &lt;br /&gt;
*[[ASL FAQ]] - Questions and answers about the AllStarLink software distribution.&lt;br /&gt;
*[[:Category:How to|How To's]] - A collection of AllStarLink how to's.&lt;br /&gt;
*[[:Category:Node Configuration|Node Configuration]] - Detailed configuration settings.&lt;br /&gt;
*[[:Category:Development|Development]] - Information regarding development of the AllStarLink software (i.e., contributing, etc).&lt;br /&gt;
*[[Radio Connections]] - Instructions to Connect Radios, Repeaters and Other Devices to AllStar.&lt;br /&gt;
*[[Troubleshooting]] - Troubleshooting common problems, things to try, and hints to solve the problem.&lt;br /&gt;
&lt;br /&gt;
==Downloads==&lt;br /&gt;
* [https://github.com/AllStarLink/Asterisk/releases/tag/ASL-1.01 ASL AMD] Latest AllStarLink installer for x86/AMD (main site)&lt;br /&gt;
* [http://dvswitch.org/files/ASL_Images/Intel-AMD/Stretch/ ASL AMD] Latest AllStarLink installer for x86/AMD (alternative site)&lt;br /&gt;
* [http://dvswitch.org/files/ASL_Images/Raspberry_Pi/Stretch/ Pi] Latest AllStarLink image for the Raspberry Pi&lt;br /&gt;
* [http://dvswitch.org/files/ASL_Images/ ASL Repo] AllStarLink Image Repository&lt;br /&gt;
* [[ASL FAQ]] - Install ASL on your existing Debian box or VM&lt;br /&gt;
&lt;br /&gt;
Note:  The ASL 1.01 installer is a Network installer and still uses the dvswitch.org site to download the .deb install files.&lt;br /&gt;
&lt;br /&gt;
==Related Links==&lt;br /&gt;
* [https://allstarlink.org/ AllStarLink Portal] - If you are looking to set up your own AllStarLink node.&lt;br /&gt;
* [https://web-tpa.allstarlink.org/ AllStarLink Portal - Beta] - Our beta portal site. Check out the searchable and sortable [https://web-tpa.allstarlink.org/nodelist/ Node List].&lt;br /&gt;
* [http://stats.allstarlink.org/ AllStarLink Stats] - shows all the existing public nodes.&lt;br /&gt;
* [http://lists.allstarlink.org/cgi-bin/mailman/listinfo/app_rpt-users AllStarLink users mailing list]- This is the app_rpt mailing list for discussion, help and helping others.&lt;br /&gt;
* [https://github.com/AllStarLink/ Source Code] - All of the source code for the AllStarLink Asterisk and app_rpt is available on GitHub.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
* [[History]] from the Duuude, Jim Dixon WB6NIL SK 12/16/2016.&lt;br /&gt;
* [[Thru-hole_Voter_Board|Thru-hole Voter Board]] from Jim Dixon&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Radio_Connections&amp;diff=1347</id>
		<title>Radio Connections</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Radio_Connections&amp;diff=1347"/>
		<updated>2019-01-28T16:54:16Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions for connecting radios, repeaters and AllStarLink interfaces including the RTCM, GPS, URI/URI X and like devices.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=GPS=&lt;br /&gt;
* [[Media:RTCM 2 Trimble.pdf|Trimble RTCM Interface Cable]]&lt;br /&gt;
* [[Media:RTCM 321 Cable.graffle.pdf|Trimble to Two RTCMs and Lady Heather Cable]]&lt;br /&gt;
* [[Media:RTCM to BG7TBL Cable.pdf|BG7TBL GPS / RTCM Cable]]&lt;br /&gt;
&lt;br /&gt;
=Motorola=&lt;br /&gt;
&lt;br /&gt;
==CDM==&lt;br /&gt;
CDMs make great nodes. This eBay reseller has very nice cables. Use to connect to URI or RTCM. &lt;br /&gt;
&lt;br /&gt;
[[Media:CDM Cable.pdf|CDM Cable from Kurt Meltzer]] ex-WB9KNX, now KC4NX - Cable 83 has only one output to use for either COS or CTCSS. Use another cable if you need both COS and CTCSS.&lt;br /&gt;
&lt;br /&gt;
==Maxtrac==&lt;br /&gt;
The venerable Maxtrac is a radio that was very well built, apparently has very stable reference LO, and can take a beating. When aligned properly, and sufficient *vectored* cooling is made, this radio will last for a very long, time even under several hours with of transmitting per day.&lt;br /&gt;
&lt;br /&gt;
The radio will need to be aligned, and programmed to the frequenc(y/ies) you want to use. You will also need to program the Accessory Option for PL/DPL &amp;amp; CSQ Output.&lt;br /&gt;
* Most URIs can accept active high or active low for valid RX signal detection, ie, open squelch. It is HIGHLY recommend in any situation COS is set to USB or active high. This will prevent issues. Too many to mention.&lt;br /&gt;
* It is a good idea to program pin 8 on the Maxtrac/GM300 for PL/DPL &amp;amp; CSQ output, active high. This will cause the radio to emit a 5Vdc signal when the squelch is open, and go low when squelch is closed.&lt;br /&gt;
&lt;br /&gt;
===TX/RX audio, COS, and PTT connections===&lt;br /&gt;
With the radio facing you in normal operating positing, volume knob on top left, and mic connection right below it, turn the radio over from the right side. The accessory connector is located on the rear, right top of the radio at this point. Starting from left to right, the pins on the top are / and the pins on the bottom are /. If you want to hear audio from the radios speaker, just a header jumper on the far right pins 15 and 16.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is a work in progress. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
The GM300 section has the link for further reading; the Maxtrac and GM300, are relatively close in design.&lt;br /&gt;
&lt;br /&gt;
==MTR-2000==&lt;br /&gt;
&lt;br /&gt;
==Quantar==&lt;br /&gt;
&lt;br /&gt;
The Quantar can be tricky to interface as it's extremely programmable and you will need a wireline card for I/O connections.  By default the I/O will not work unless the &amp;quot;wildcard&amp;quot; table is programed.  This wildcard table is Boolean logic of interrupt states in the radio, is extremely flexible and frustrating to debug.  It's a base station in it's own class.&lt;br /&gt;
&lt;br /&gt;
[[File:Front of quantar and controller.jpg|thumb|400px|right|Front of Quantar and controller]]&lt;br /&gt;
&lt;br /&gt;
* [[Media:QUANTAR-RTCM INTERFACE CABLE.pdf|Quantar/RTCM Interface Cable]]&lt;br /&gt;
&lt;br /&gt;
Note you will want to use [[RTCM_Client#DSP.2FBEW_Firmware_Version|BEW mode]] on the RTCM if using the RTCM do squelch.&lt;br /&gt;
&lt;br /&gt;
* [[Media:RTCM 2 Quantar.pdf|Another Quantar/RTCM Interface Cable]]&lt;br /&gt;
* [[Media:RTCM to Astro-TAC Cable.pdf|Astro-TAC/RTCM Interface Cable]]&lt;br /&gt;
* [http://wiki.w9cr.net/index.php/Allstar_and_P25_on_Quantar Interfacing to a Quantar with P25NX]  - Bryan Fields W9CR has page on interfacing the Qunatar using simple USB into Allstar and P25NX linking at the same time.  This is driven by programing on the Quantar Wildcard tables.&lt;br /&gt;
*[[Media:Quantar URI Interface.jpg|Quantar/URI Cable]]&lt;br /&gt;
*[[Media:QuantarMRTI2URI.jpg|Quantar MRTI/URI Cable]]&lt;br /&gt;
&lt;br /&gt;
==Syntor X==&lt;br /&gt;
The Motorola Syntor X with an Xcat installed makes a great frequency agile remote base. For more information see this [http://wd6awp.net/xcat/ Syntor Xcat] page. &lt;br /&gt;
&lt;br /&gt;
==VRM-850==&lt;br /&gt;
&lt;br /&gt;
==GM300==&lt;br /&gt;
These older radios are fairly common and easily to come by due to the narrow banding. Probably the hardest part is finding a computer and the RSS to program them. The Gm300 family has many different configurations, from low band VHF, to 800 Mhz. But the easiest variant of the GM300 is ones with the 16 pin connector.&lt;br /&gt;
[http://www.repeater-builder.com/motorola/maxtrac/maxtrac-index.html All about GM300 Radios] &lt;br /&gt;
&lt;br /&gt;
Connections are fairly simple but can be hard to determine which is the correct one to use. This [http://www.repeater-builder.com/motorola/maxtrac/maxtrac-option-plug.html link] is a good place to start.&lt;br /&gt;
&lt;br /&gt;
=Kenwood=&lt;br /&gt;
==TKR720/820==&lt;br /&gt;
Connections to: PTT, COS, RX audio out and MIC audio in&lt;br /&gt;
&lt;br /&gt;
TX/RX board, MIC audio input, pins 4 &amp;amp; 5: floating ground, must not tie to any other ground! Some installations may require a 10dB, resistor L-network consisting of a 4.7k and 470 ohm resistors. The 470 ohm resistor connection across pins four and five, the 4.7k resistor is soldered to pin 5 to which your TX audio from the URI will connect to.&lt;br /&gt;
&lt;br /&gt;
The MIC audio gain, deviation, and balance adjustments are *very* sensitive! &lt;br /&gt;
&lt;br /&gt;
- RA-35 without TX adj. trimmer pots: Using a service monitor with deviation metering, start low and work your way up to 3KHz deviation with 1KHz tone, generated by simpleusb-tune-menu. If enabled, *904 turns this tone on and off by command, ie, no tone time-out as in simpleusb-tune-menu.&lt;br /&gt;
&lt;br /&gt;
== TKR750/850 ==&lt;br /&gt;
[http://www.masterscommunications.com/products/radio-adapter/txt/tkr.txt Using the Masters Communications RA-35 or RA-40 radio adapters with the TKR750/850]&lt;br /&gt;
&lt;br /&gt;
=Repeater Controller=&lt;br /&gt;
&lt;br /&gt;
[[Media:RTCMwithController.pdf|An example of using RTCMs to replace 420 links]]&lt;br /&gt;
&lt;br /&gt;
=Spectra Engineering=&lt;br /&gt;
* [http://wiki.w9cr.net/index.php/MX800#W9CR_alignment_procedure_and_setup_with_Allstar MX800 Base station] - Bryan Fields, W9CR has a complete setup guide for the MX800 Base station which includes fallback to the built in controller and an audio delay module.&lt;br /&gt;
&lt;br /&gt;
=Tait=&lt;br /&gt;
&lt;br /&gt;
=Beagle Board=&lt;br /&gt;
The Beagle Board XM project.&lt;br /&gt;
* [http://beagleboard.org/BeagleBoard-xM BeagleBoard-xM]&lt;br /&gt;
&lt;br /&gt;
=Lox board=&lt;br /&gt;
The Level One eXpansion board.&lt;br /&gt;
* [http://www.dmkeng.com/LOX_Order_Page.htm LOX Board] &lt;br /&gt;
&lt;br /&gt;
=URI / URI X=&lt;br /&gt;
The URI is manufactured and sold by [http://dmkeng.com/URI_Order_Page.htm DMK Engineering]. &lt;br /&gt;
*[[Media:URI Schematic.pdf|URI Schematic]]&lt;br /&gt;
*[[Media:URIx Schematic.pdf|URI X Schematic]]&lt;br /&gt;
&lt;br /&gt;
=RA-40 / RA-35=&lt;br /&gt;
The RA-40 is the latest version and is sold by W3KKC. The RA-40 includes audio output level control potentiometers and much more.&lt;br /&gt;
*[http://www.masterscommunications.com/products/radio-adapter/ra40.html RA-40]&lt;br /&gt;
*[http://www.masterscommunications.com/products/radio-adapter/ra35.html RA-35]&lt;br /&gt;
&lt;br /&gt;
=Vertex=&lt;br /&gt;
* [[Media:RTCM 2 VRX-5000.pdf|VRX-5000 / RTCM Interface Cable]]&lt;br /&gt;
&lt;br /&gt;
=Quad Radio PCI card=&lt;br /&gt;
*[[:File:Ft897 quadpci schematic.pdf|Yaesu FT-897 HF Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
*[[:File:Ic706 quadpci schematic.pdf|Icom IC-706 HF Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
*[[:File:Tmg707 quadpci schematic.pdf|Kenwood TMG-707 Dual Band FM mobile Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
=Modified USB FOB=&lt;br /&gt;
*[[:File:Usb2tmg707.pdf|Kenwood TMG-707 Dual Band FM mobile Radio(pdf)]]&lt;br /&gt;
[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Radio_Connections&amp;diff=1346</id>
		<title>Radio Connections</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Radio_Connections&amp;diff=1346"/>
		<updated>2019-01-28T16:51:59Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions for connecting radios, repeaters and AllStarLink interfaces including the RTCM, GPS, URI/URI X and like devices.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=GPS=&lt;br /&gt;
* [[Media:RTCM 2 Trimble.pdf|Trimble RTCM Interface Cable]]&lt;br /&gt;
* [[Media:RTCM 321 Cable.graffle.pdf|Trimble to Two RTCMs and Lady Heather Cable]]&lt;br /&gt;
* [[Media:RTCM to BG7TBL Cable.pdf|BG7TBL GPS / RTCM Cable]]&lt;br /&gt;
&lt;br /&gt;
=Motorola=&lt;br /&gt;
&lt;br /&gt;
==CDM==&lt;br /&gt;
CDMs make great nodes. This eBay reseller has very nice cables. Use to connect to URI or RTCM. &lt;br /&gt;
&lt;br /&gt;
[[Media:CDM Cable.pdf|CDM Cable from Kurt Meltzer]] ex-WB9KNX, now KC4NX - Cable 83 has only one output to use for either COS or CTCSS. Use another cable if you need both COS and CTCSS.&lt;br /&gt;
&lt;br /&gt;
==Maxtrac==&lt;br /&gt;
The venerable Maxtrac is a radio that was very well built, apparently has very stable reference LO, and can take a beating. When aligned properly, and sufficient *vectored* cooling is made, this radio will last for a very long, time even under several hours with of transmitting per day.&lt;br /&gt;
&lt;br /&gt;
The radio will need to be aligned, and programmed to the frequenc(y/ies) you want to use. You will also need to program the Accessory Option for PL/DPL &amp;amp; CSQ Output.&lt;br /&gt;
* Most URIs can accept active high or active low for valid RX signal detection, ie, open squelch. It is HIGHLY recommend in any situation COS is set to USB or active high. This will prevent issues. Too many to mention.&lt;br /&gt;
* It is a good idea to program pin 8 on the Maxtrac/GM300 for PL/DPL &amp;amp; CSQ output, active high. This will cause the radio to emit a 5Vdc signal when the squelch is open, and go low when squelch is closed.&lt;br /&gt;
&lt;br /&gt;
===TX/RX audio, COS, and PTT connections===&lt;br /&gt;
With the radio facing you in normal operating positing, volume knob on top left, and mic connection right below it, turn the radio over from the right side. The accessory connector is located on the rear, right top of the radio at this point. Starting from left to right, the pins on the top are / and the pins on the bottom are /. If you want to hear audio from the radios speaker, just a header jumper on the far right pins 15 and 16.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This section is a work in progress. &lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
The GM300 section has the link for further reading; the Maxtrac and GM300, are relatively close in design.&lt;br /&gt;
&lt;br /&gt;
==MTR-2000==&lt;br /&gt;
&lt;br /&gt;
==Quantar==&lt;br /&gt;
&lt;br /&gt;
The Quantar can be tricky to interface as it's extremely programmable and you will need a wireline card for I/O connections.  By default the I/O will not work unless the &amp;quot;wildcard&amp;quot; table is programed.  This wildcard table is Boolean logic of interrupt states in the radio, is extremely flexible and frustrating to debug.  It's a base station in it's own class.&lt;br /&gt;
&lt;br /&gt;
[[File:Front of quantar and controller.jpg|thumb|400px|right|Front of Quantar and controller]]&lt;br /&gt;
&lt;br /&gt;
* [[Media:QUANTAR-RTCM INTERFACE CABLE.pdf|Quantar/RTCM Interface Cable]]&lt;br /&gt;
&lt;br /&gt;
Note you will want to use [[RTCM_Client#DSP.2FBEW_Firmware_Version|BEW mode]] on the RTCM if using the RTCM do squelch.&lt;br /&gt;
&lt;br /&gt;
* [[Media:RTCM 2 Quantar.pdf|Another Quantar/RTCM Interface Cable]]&lt;br /&gt;
* [[Media:RTCM to Astro-TAC Cable.pdf|Astro-TAC/RTCM Interface Cable]]&lt;br /&gt;
* [http://wiki.w9cr.net/index.php/Allstar_and_P25_on_Quantar Interfacing to a Quantar with P25NX]  - Bryan Fields W9CR has page on interfacing the Qunatar using simple USB into Allstar and P25NX linking at the same time.  This is driven by programing on the Quantar Wildcard tables.&lt;br /&gt;
*[[Media:Quantar URI Interface.jpg|Quantar/URI Cable]]&lt;br /&gt;
*[[Media:QuantarMRTI2URI.jpg|Quantar MRTI/URI Cable]]&lt;br /&gt;
&lt;br /&gt;
==Syntor X==&lt;br /&gt;
The Motorola Syntor X with an Xcat installed makes a great frequency agile remote base. For more information see this [http://wd6awp.net/xcat/ Syntor Xcat] page. &lt;br /&gt;
&lt;br /&gt;
==VRM-850==&lt;br /&gt;
&lt;br /&gt;
==GM300==&lt;br /&gt;
These older radios are fairly common and easily to come by due to the narrow banding. Probably the hardest part is finding a computer and the RSS to program them. The Gm300 family has many different configurations, from low band VHF, to 800 Mhz. But the easiest variant of the GM300 is ones with the 16 pin connector.&lt;br /&gt;
[http://www.repeater-builder.com/motorola/maxtrac/maxtrac-index.html All about GM300 Radios] &lt;br /&gt;
&lt;br /&gt;
Connections are fairly simple but can be hard to determine which is the correct one to use. This [http://www.repeater-builder.com/motorola/maxtrac/maxtrac-option-plug.html link] is a good place to start.&lt;br /&gt;
&lt;br /&gt;
=Kenwood=&lt;br /&gt;
==TKR720/820==&lt;br /&gt;
Connections to: PTT, COS, RX audio out and MIC audio in&lt;br /&gt;
&lt;br /&gt;
TX/RX board, MIC audio input, pins 4 &amp;amp; 5: floating ground, must not tie to any other ground! Some installations may require a 10dB, resistor L-network consisting of a 4.7k and 470 ohm resistors. The 470 ohm resistor connection across pins four and five, the 4.7k resistor is soldered to pin 5 to which your TX audio from the URI will connect to.&lt;br /&gt;
&lt;br /&gt;
The MIC audio gain, deviation, and balance adjustments are *very* sensitive! &lt;br /&gt;
&lt;br /&gt;
- RA-35 without TX adj. trimmer pots: Using a service monitor with deviation metering, start low and work your way up to 3KHz deviation with 1KHz tone, generated by simpleusb-tune-menu. If enabled, *904 turns this tone on and off by command, ie, no tone time-out as in simpleusb-tune-menu.&lt;br /&gt;
&lt;br /&gt;
== TKR750/850 ==&lt;br /&gt;
[http://www.masterscommunications.com/products/radio-adapter/txt/tkr.txt Using the Masters Communications RA-35 or RA-40 radio adapters with the TKR750/850]&lt;br /&gt;
&lt;br /&gt;
=Repeater Controller=&lt;br /&gt;
&lt;br /&gt;
[[Media:RTCMwithController.pdf|An example of using RTCMs to replace 420 links]]&lt;br /&gt;
&lt;br /&gt;
=Spectra Engineering=&lt;br /&gt;
* [http://wiki.w9cr.net/index.php/MX800#W9CR_alignment_procedure_and_setup_with_Allstar MX800 Base station] - Bryan Fields, W9CR has a complete setup guide for the MX800 Base station which includes fallback to the built in controller and an audio delay module.&lt;br /&gt;
&lt;br /&gt;
=Tait=&lt;br /&gt;
&lt;br /&gt;
=Beagle Board=&lt;br /&gt;
The Beagle Board XM project.&lt;br /&gt;
* [http://beagleboard.org/BeagleBoard-xM BeagleBoard-xM]&lt;br /&gt;
&lt;br /&gt;
=Lox board=&lt;br /&gt;
The Level One eXpansion board.&lt;br /&gt;
* [http://www.dmkeng.com/LOX_Order_Page.htm LOX Board] &lt;br /&gt;
&lt;br /&gt;
=URI / URI X=&lt;br /&gt;
The URI is manufactured and sold by [http://dmkeng.com/URI_Order_Page.htm DMK Engineering]. &lt;br /&gt;
*[[Media:URI Schematic.pdf|URI Schematic]]&lt;br /&gt;
*[[Media:URIx Schematic.pdf|URI X Schematic]]&lt;br /&gt;
&lt;br /&gt;
=RA-40 / RA-35=&lt;br /&gt;
The RA-40 is the latest version and is sold by W3KKC. The RA-40 includes audio output level control potentiometers and much more.&lt;br /&gt;
*[http://www.masterscommunications.com/products/radio-adapter/ra40.html RA-40]&lt;br /&gt;
*[http://www.masterscommunications.com/products/radio-adapter/ra35.html RA-35]&lt;br /&gt;
&lt;br /&gt;
=Vertex=&lt;br /&gt;
* [[Media:RTCM 2 VRX-5000.pdf|VRX-5000 / RTCM Interface Cable]]&lt;br /&gt;
&lt;br /&gt;
== Quad Radio PCI card ==&lt;br /&gt;
[[:File:Ft897 quadpci schematic.pdf|Yaesu FT-897 HF Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
[[:File:Ic706 quadpci schematic.pdf|Icom IC-706 HF Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
[[:File:Tmg707 quadpci schematic.pdf|Kenwood TMG-707 Dual Band FM mobile Radio(pdf)]]&lt;br /&gt;
&lt;br /&gt;
== Modified USB FOB ==&lt;br /&gt;
[[:File:Usb2tmg707.pdf|Kenwood TMG-707 Dual Band FM mobile Radio(pdf)]]&lt;br /&gt;
[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=File:Usb2tmg707.pdf&amp;diff=1345</id>
		<title>File:Usb2tmg707.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=File:Usb2tmg707.pdf&amp;diff=1345"/>
		<updated>2019-01-28T16:51:25Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;USB FOB to TMG-707 schematic&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=File:Tmg707_quadpci_schematic.pdf&amp;diff=1344</id>
		<title>File:Tmg707 quadpci schematic.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=File:Tmg707_quadpci_schematic.pdf&amp;diff=1344"/>
		<updated>2019-01-28T16:48:35Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TMG-707 Quad Radio PCI card schematic&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=File:Ic706_quadpci_schematic.pdf&amp;diff=1343</id>
		<title>File:Ic706 quadpci schematic.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=File:Ic706_quadpci_schematic.pdf&amp;diff=1343"/>
		<updated>2019-01-28T16:46:37Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IC706 Quad Radio PCI card schematic&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=File:Ft897_quadpci_schematic.pdf&amp;diff=1342</id>
		<title>File:Ft897 quadpci schematic.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=File:Ft897_quadpci_schematic.pdf&amp;diff=1342"/>
		<updated>2019-01-28T16:44:48Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FT897 to Quad Radio PCI card schematic&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1341</id>
		<title>RTCM Firmware upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1341"/>
		<updated>2019-01-28T16:20:56Z</updated>

		<summary type="html">&lt;p&gt;N8THN: edited hyperlinks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
&lt;br /&gt;
The RTCM tries to update it's firmware every time it boots as part of the bootloader process. The bootloader has it's own IP address which is set by menu 14 of the IP parameters menu. The default bootloader IP address is 192.168.1.11. If that address fits in your network you can leave it there for all the RTCMs on your LAN as it is active only during the bootloader process.&lt;br /&gt;
&lt;br /&gt;
If you are updating an RTCM which is behind a firewall you will need to port forward 16388 UDP to the bootloader IP address. If you leave all your bootloaders on the same IP address then you won't have to change the forwarding to update different RTCMs.&lt;br /&gt;
&lt;br /&gt;
The RTCM firmware is updated with a Windows program EBLEX C3 Programmer. Download from '''[https://github.com/AllStarLink/voter here]'''. Put both the exe and the ini file in a folder.&lt;br /&gt;
&lt;br /&gt;
Download the firmware '''[https://github.com/AllStarLink/voter here]'''. You probably want Voter-SMT.cry unless you built a thru-hole board or you need the dspbew version. Save the cry file in the folder with the exe and ini files.&lt;br /&gt;
&lt;br /&gt;
Run the EBLEX Programmer:&lt;br /&gt;
* Fill in the target IP address with the public IP if your RTCM is behind a firewall otherwise fill in the target IP address with the bootloader IP address.&lt;br /&gt;
* Load the cry file.&lt;br /&gt;
* Click the Capture Target button.&lt;br /&gt;
* Reboot the RTCM with telnet, power cycle or the reset button. In a moment you should see text come up on the programmer.&lt;br /&gt;
* Click the Program button.&lt;br /&gt;
* In a few minutes you will see some more messages including a program complete message.&lt;br /&gt;
* Click the Reset LIA button. The RTCM will restart with the new firmware.&lt;br /&gt;
Telnet into your RTCM and verify the new version is loaded with menu 98.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1340</id>
		<title>RTCM Firmware upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1340"/>
		<updated>2019-01-28T15:45:42Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
'''Download links need updated...'''&lt;br /&gt;
&lt;br /&gt;
The RTCM tries to update it's firmware every time it boots as part of the bootloader process. The bootloader has it's own IP address which is set by menu 14 of the IP parameters menu. The default bootloader IP address is 192.168.1.11. If that address fits in your network you can leave it there for all the RTCMs on your LAN as it is active only during the bootloader process.&lt;br /&gt;
&lt;br /&gt;
If you are updating an RTCM which is behind a firewall you will need to port forward 16388 UDP to the bootloader IP address. If you leave all your bootloaders on the same IP address then you won't have to change the forwarding to update different RTCMs.&lt;br /&gt;
&lt;br /&gt;
The RTCM firmware is updated with a Windows program EBLEX C3 Programmer. Download from '''here'''. Put both the exe and the ini file in a folder.&lt;br /&gt;
&lt;br /&gt;
Download the firmware '''here'''. You probably want Voter-SMT.cry unless you built a thru-hole board or you need the dspbew version. Save the cry file in the folder with the exe and ini files.&lt;br /&gt;
&lt;br /&gt;
Run the EBLEX Programmer:&lt;br /&gt;
* Fill in the target IP address with the public IP if your RTCM is behind a firewall otherwise fill in the target IP address with the bootloader IP address.&lt;br /&gt;
* Load the cry file.&lt;br /&gt;
* Click the Capture Target button.&lt;br /&gt;
* Reboot the RTCM with telnet, power cycle or the reset button. In a moment you should see text come up on the programmer.&lt;br /&gt;
* Click the Program button.&lt;br /&gt;
* In a few minutes you will see some more messages including a program complete message.&lt;br /&gt;
* Click the Reset LIA button. The RTCM will restart with the new firmware.&lt;br /&gt;
Telnet into your RTCM and verify the new version is loaded with menu 98.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1339</id>
		<title>RTCM Firmware upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RTCM_Firmware_upgrading&amp;diff=1339"/>
		<updated>2019-01-28T15:43:02Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Transmitting_Tone_Sequences&amp;diff=1338</id>
		<title>Transmitting Tone Sequences</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Transmitting_Tone_Sequences&amp;diff=1338"/>
		<updated>2019-01-28T15:42:08Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added the content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== COP function ===&lt;br /&gt;
Cop function 48 is associated with transmitting arbitrary tone sequences. These tone sequences can be any combination of single tones, dual tones, and silence periods,&lt;br /&gt;
&lt;br /&gt;
These tone sequences are only heard on the repeater transmitter and not sent over the network.&lt;br /&gt;
&lt;br /&gt;
This function is available in app_rpt.c version 0.183 or later.&lt;br /&gt;
&lt;br /&gt;
=== Tone Sequences ===&lt;br /&gt;
Tone sequences are specified as &amp;lt;code&amp;gt;!Tone_A+Tone_B/Duration_in_MS&amp;lt;/code&amp;gt;. ToneB is optional and not specified, the + operator must be omitted.&lt;br /&gt;
&lt;br /&gt;
The exclamation point operator is required when specifying arbitrary tones.&lt;br /&gt;
&lt;br /&gt;
DTMF tones can be entered in shorthand fashion as as single digits separated by commas.&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
 881=cop,48,1,2,3,4,#                                           ; Send DTMF 1,2,3,4, and #&lt;br /&gt;
 882=cop,48,!399.8/1000,!339.6/2000                             ; Send two tone paging sequence: Motorola codes 144,141&lt;br /&gt;
 883=cop,48,!1100+1700/100,!0/60,!700+900/60,!0/60,!700+1100/60,!0/60,!700+900/60,!0/60,!1500+1700/60 ; Send MF tone sequence KP121ST&lt;br /&gt;
[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Transmitting_Tone_Sequences&amp;diff=1337</id>
		<title>Transmitting Tone Sequences</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Transmitting_Tone_Sequences&amp;diff=1337"/>
		<updated>2019-01-28T15:41:43Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1336</id>
		<title>Setup Autopatch</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1336"/>
		<updated>2019-01-28T15:39:45Z</updated>

		<summary type="html">&lt;p&gt;N8THN: /* Autopatch Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
&lt;br /&gt;
The autopatch feature in app_rpt allows users on the radio to interconnect with the public switched telephone network.&lt;br /&gt;
&lt;br /&gt;
=== Regulatory Issues ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Some countries which disallow third-party traffic do not allow autopatching or telephone interconnection on amateur radio frequencies. In addition, if a system is linked between one country which allows autopatching and one which doesn't, just the passing of the traffic itself across the link could be considered a violation of the rules in the prohibiting country. In countries which permit autopatching, users need be made aware of this and should take the node off-link before using the autopatch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Security Issues ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|The examples provided here do not secure the autopatch against toll fraud. A lot can be done to prevent or reduce toll fraud, but the prevention measures vary by where you are located geographically. Most of the prevention measures will be in extensions.conf, as you can write contexts to reject certain number sequences. The asterisk book in the references section should be consulted to see how to do this, Before placing any autopatch in service, please make sure you have secured your system so that toll fraud does not become an issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selecting an ITSP ===&lt;br /&gt;
Call termination into the public switched telephone network is a service offered by an Internet Telephone Service Provider (ITSP). This is a highly competitive business, and there are lots of ITSP's offering termination for Asterisk users. In the reference section is a link to a site which lists several ITSP's. Termination is usually provided using the SIP protocol, and IAX is also offered by a few providers.&lt;br /&gt;
&lt;br /&gt;
When selecting an ITSP, make sure they provide setup instructions with example configurations including usernames, and passwords. Quite a few ITSP's will automatically generate a custom SIP or IAX stanza for insertion into sip.conf, or iax.conf respectively.&lt;br /&gt;
&lt;br /&gt;
=== Configuration Files ===&lt;br /&gt;
Three configuration files will be affected: rpt.conf, extensions.conf and iax.conf or sip.conf. The ITSP should provide a stanza for you to insert in iax.conf or sip.conf. The flow diagram below shows how each of these files are used when an outgoing autopatch call is made:&lt;br /&gt;
&lt;br /&gt;
In the rpt.conf configuration file, a context in extensions.conf is defined in a node stanza using the context key:&lt;br /&gt;
 [1234]&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 context=autopatch      ; Aserisk context in which to place the call&lt;br /&gt;
 accountcode=&amp;quot;MYACCT&amp;quot;   ; optional ACCOUNTCODE for call on Asterisk&lt;br /&gt;
 callerid=&amp;quot;5592557827&amp;quot;  ; optional callerid to send for call&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
Also in the rpt.conf file, entries are added to the function table so that users can bring up or take down the autopatch:&lt;br /&gt;
 [functions]&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=20000 &lt;br /&gt;
 0=autopatchdn &lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
In extensions.conf, a stanza for the autopatch context is added which refers to the peer stanza in iax.conf or sip.conf. For outbound IAX connections extensions.conf&lt;br /&gt;
 [autopatch] &lt;br /&gt;
 &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,1,Dial,IAX2/peername/${EXTEN} &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,2,Congestion &lt;br /&gt;
For outbound SIP connections it should look like this:&lt;br /&gt;
 [autopatch] &lt;br /&gt;
 &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,1,Dial,SIP/peername/${EXTEN} &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,2,Congestion &lt;br /&gt;
The peer stanza you insert in iax.conf or sip.conf should preferably be provided by your ITSP. You'll want to use the stanza they identify for performing outgoing connections. A nonoperational example of an iax2 peer stanza looks like this:&lt;br /&gt;
 [peername]&lt;br /&gt;
 type=peer &lt;br /&gt;
 host=127.0.0.1 &lt;br /&gt;
 secret=nunya&lt;br /&gt;
 auth=md5 &lt;br /&gt;
 disallow=all &lt;br /&gt;
 allow=gsm &lt;br /&gt;
 allow=ulaw&lt;br /&gt;
&lt;br /&gt;
=== Autopatch Options ===&lt;br /&gt;
You may have noticed several options being passed in to the autopatchup command class.&lt;br /&gt;
&lt;br /&gt;
This table summarizes what they do:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Autopatch Option&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|context&lt;br /&gt;
|Override the context specified for the autopatch in rpt.conf&lt;br /&gt;
|-&lt;br /&gt;
|dialtime&lt;br /&gt;
|The maximum time to wait between DTMF digits when a telephone number is being dialed. The patch will automatically disconnect if this time is exceeded. The value is specified in milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
|farenddisconnect&lt;br /&gt;
|When set to 1, the patch will automatically disconnect when the called party hangs up. The default is send a circuit busy tone until the radio user brings the patch down.&lt;br /&gt;
|-&lt;br /&gt;
|noct&lt;br /&gt;
|When this is set to 1 the courtesy tone during an autopatch call will be disabled. The default is to send the courtesy tone whenever the radio user unkeys.&lt;br /&gt;
|-&lt;br /&gt;
|quiet&lt;br /&gt;
|When set to 1, Don't send dial tone, voice responses, just try to connect the call.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simplex Autopatch ==&lt;br /&gt;
For nodes with duplex set to 0 or 1, Simplex Autopatch operation is supported.&lt;br /&gt;
&lt;br /&gt;
This is accomplished by using a VOX on the audio coming from the telephone call,&lt;br /&gt;
&lt;br /&gt;
because of the half-duplex nature of the node. To avoid having audio from the&lt;br /&gt;
&lt;br /&gt;
telephone call keep the transmitter engaged for extended periods of time (if there&lt;br /&gt;
&lt;br /&gt;
is some source of continuous audio), there are two time-out values. One is the&lt;br /&gt;
&lt;br /&gt;
Vox timeout, which is the maximum amount of time that the VOX can hold the transmitter&lt;br /&gt;
&lt;br /&gt;
engaged, which by default is 10 seconds. The other one is the Vox recovery time, which&lt;br /&gt;
&lt;br /&gt;
is the amount of time that the Vox is disabled during times of continuous audio, after&lt;br /&gt;
&lt;br /&gt;
the Vox timeout, which is 2 seconds. So, during continuous audio, it transmits for&lt;br /&gt;
&lt;br /&gt;
10 seconds, then stops for 2 seconds (so that you can transmit to it and perhaps&lt;br /&gt;
&lt;br /&gt;
disconnect the call), then transmits for another 10 seconds, then stops for 2 seconds,&lt;br /&gt;
&lt;br /&gt;
and so on.&lt;br /&gt;
&lt;br /&gt;
Additionally, to prevent 'chop-off' of the first syllable or two of the audio from the&lt;br /&gt;
&lt;br /&gt;
telephone call, we delay the audio to allow for the transmitter to start transmitting&lt;br /&gt;
&lt;br /&gt;
and any CTCSS tones to be decoded. This delay is typically 500ms, but can be adjusted&lt;br /&gt;
&lt;br /&gt;
via the 'simplexpatchdelay' parameter. It is specified in units of 20 milliseconds.&lt;br /&gt;
&lt;br /&gt;
These time-out values may be overridden by using the following configuration parameters&lt;br /&gt;
&lt;br /&gt;
located in the [&amp;lt;node-number&amp;gt;] section of rpt.conf:&lt;br /&gt;
&lt;br /&gt;
[1999]&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
voxtimeout = 10000 ; vox timeout time in ms&lt;br /&gt;
&lt;br /&gt;
voxrecover = 2000 ; vox recover time in ms&lt;br /&gt;
&lt;br /&gt;
simplexpatchdelay = 25 ; Delay for transmit while in patch in 20ms increments&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
If not specified, it uses the default values as specified above.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1335</id>
		<title>Setup Autopatch</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1335"/>
		<updated>2019-01-28T15:38:13Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added the content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
&lt;br /&gt;
The autopatch feature in app_rpt allows users on the radio to interconnect with the public switched telephone network.&lt;br /&gt;
&lt;br /&gt;
=== Regulatory Issues ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Some countries which disallow third-party traffic do not allow autopatching or telephone interconnection on amateur radio frequencies. In addition, if a system is linked between one country which allows autopatching and one which doesn't, just the passing of the traffic itself across the link could be considered a violation of the rules in the prohibiting country. In countries which permit autopatching, users need be made aware of this and should take the node off-link before using the autopatch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Security Issues ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|The examples provided here do not secure the autopatch against toll fraud. A lot can be done to prevent or reduce toll fraud, but the prevention measures vary by where you are located geographically. Most of the prevention measures will be in extensions.conf, as you can write contexts to reject certain number sequences. The asterisk book in the references section should be consulted to see how to do this, Before placing any autopatch in service, please make sure you have secured your system so that toll fraud does not become an issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Selecting an ITSP ===&lt;br /&gt;
Call termination into the public switched telephone network is a service offered by an Internet Telephone Service Provider (ITSP). This is a highly competitive business, and there are lots of ITSP's offering termination for Asterisk users. In the reference section is a link to a site which lists several ITSP's. Termination is usually provided using the SIP protocol, and IAX is also offered by a few providers.&lt;br /&gt;
&lt;br /&gt;
When selecting an ITSP, make sure they provide setup instructions with example configurations including usernames, and passwords. Quite a few ITSP's will automatically generate a custom SIP or IAX stanza for insertion into sip.conf, or iax.conf respectively.&lt;br /&gt;
&lt;br /&gt;
=== Configuration Files ===&lt;br /&gt;
Three configuration files will be affected: rpt.conf, extensions.conf and iax.conf or sip.conf. The ITSP should provide a stanza for you to insert in iax.conf or sip.conf. The flow diagram below shows how each of these files are used when an outgoing autopatch call is made:&lt;br /&gt;
&lt;br /&gt;
In the rpt.conf configuration file, a context in extensions.conf is defined in a node stanza using the context key:&lt;br /&gt;
 [1234]&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 context=autopatch      ; Aserisk context in which to place the call&lt;br /&gt;
 accountcode=&amp;quot;MYACCT&amp;quot;   ; optional ACCOUNTCODE for call on Asterisk&lt;br /&gt;
 callerid=&amp;quot;5592557827&amp;quot;  ; optional callerid to send for call&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
Also in the rpt.conf file, entries are added to the function table so that users can bring up or take down the autopatch:&lt;br /&gt;
 [functions]&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=20000 &lt;br /&gt;
 0=autopatchdn &lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
 .&lt;br /&gt;
In extensions.conf, a stanza for the autopatch context is added which refers to the peer stanza in iax.conf or sip.conf. For outbound IAX connections extensions.conf&lt;br /&gt;
 [autopatch] &lt;br /&gt;
 &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,1,Dial,IAX2/peername/${EXTEN} &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,2,Congestion &lt;br /&gt;
For outbound SIP connections it should look like this:&lt;br /&gt;
 [autopatch] &lt;br /&gt;
 &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,1,Dial,SIP/peername/${EXTEN} &lt;br /&gt;
 exten =&amp;gt; _1NXXNXXXXXX,2,Congestion &lt;br /&gt;
The peer stanza you insert in iax.conf or sip.conf should preferably be provided by your ITSP. You'll want to use the stanza they identify for performing outgoing connections. A nonoperational example of an iax2 peer stanza looks like this:&lt;br /&gt;
 [peername]&lt;br /&gt;
 type=peer &lt;br /&gt;
 host=127.0.0.1 &lt;br /&gt;
 secret=nunya&lt;br /&gt;
 auth=md5 &lt;br /&gt;
 disallow=all &lt;br /&gt;
 allow=gsm &lt;br /&gt;
 allow=ulaw&lt;br /&gt;
&lt;br /&gt;
=== Autopatch Options ===&lt;br /&gt;
You may have noticed several options being passed in to the autopatchup command class.&lt;br /&gt;
&lt;br /&gt;
This table summarizes what they do:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Autopatch Option&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|context&lt;br /&gt;
|Override the context specified for the autopatch in rpt.conf&lt;br /&gt;
|-&lt;br /&gt;
|dialtime&lt;br /&gt;
|The maximum time to wait between DTMF digits when a telephone number is being dialed. The patch will automatically disconnect if this time is exceeded. The value is specified in milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
|farenddisconnect&lt;br /&gt;
|When set to 1, the patch will automatically disconnect when the called party hangs up. The default is send a circuit busy tone until the radio user brings the patch down.&lt;br /&gt;
|-&lt;br /&gt;
|noct&lt;br /&gt;
|When this is set to 1 the courtesy tone during an autopatch call will be disabled. The default is to send the courtesy tone whenever the radio user unkeys.&lt;br /&gt;
|-&lt;br /&gt;
|quiet&lt;br /&gt;
|When set to 1, Don't send dial tone, voice responses, just try to connect the call.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1334</id>
		<title>Setup Autopatch</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Setup_Autopatch&amp;diff=1334"/>
		<updated>2019-01-28T15:37:22Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Radioless_Nodes&amp;diff=1333</id>
		<title>Radioless Nodes</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Radioless_Nodes&amp;diff=1333"/>
		<updated>2019-01-28T15:34:34Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
IAXRPT is a specialized soft phone program which allows users to connect from their PC's to an Allstar node. Setting up IAXRPT access is similar to seting up dial-in access, but a different command line switch is used in extensions.conf, and user autheorization is done in iax.conf.&lt;br /&gt;
&lt;br /&gt;
=== Security Issues ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Incoming IAXRPT connections need to be authorized by making sure the incoming IAX user stanza is protected with a secret. This is the case because incoming IAX calls are not checked against a nodes stanza.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
First, a user stanza needs to added to iax.conf to allow incoming IAXRPT calls to be routed to a context in extensions.conf. A modified on the following stanza should be placed in iax.conf:&lt;br /&gt;
 [gui]&lt;br /&gt;
 type=user          &lt;br /&gt;
 context=radio-gui   &lt;br /&gt;
 auth=md5              &lt;br /&gt;
 secret=nunya  ; *** Important! Change this!!!&lt;br /&gt;
 host=dynamic      &lt;br /&gt;
 disallow=all&lt;br /&gt;
 allow=ulaw  &lt;br /&gt;
 allow=gsm        &lt;br /&gt;
 transfer=no&lt;br /&gt;
Second, a context stanza is added to extensions.conf to transfer control to the Rpt application:&lt;br /&gt;
 [radio-gui]                   &lt;br /&gt;
 exten = 1234,1,Rpt,1234|X    ; Change 1234 to your node number&lt;br /&gt;
The X option passed to the Rpt application disables the normal security checks. Because incoming connections are validated in iax.conf, and we don't know where the user will be coming from in advance, the X option is required.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Radioless_Nodes&amp;diff=1332</id>
		<title>Radioless Nodes</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Radioless_Nodes&amp;diff=1332"/>
		<updated>2019-01-28T15:33:50Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1330</id>
		<title>Rpt.conf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1330"/>
		<updated>2019-01-28T15:26:12Z</updated>

		<summary type="html">&lt;p&gt;N8THN: /* Putting it all Together */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rpt.conf is where the majority of user-facing features, such as the node's CW and voice ID, DTMF commands and timers are set. There is a lot of capability here which can be difficult to grasp. Fortunately the default [https://github.com/AllStarLink/DIAL/blob/master/configs/rpt.conf DIAL rpt.conf] is well commented and will work fine for most node admins.  &lt;br /&gt;
&lt;br /&gt;
=DTMF Commands=&lt;br /&gt;
DTMF commands are placed in any one of three [[Structure of Config Files|named stanzas]]. Function stanzas control access to DTMF commands that a user can issue from various &lt;br /&gt;
control points.&lt;br /&gt;
* The [[#Functions Stanza|fuctions stanza]] - to decode DTMF from the node's local receiver.&lt;br /&gt;
* The [[#Link Functions Stanza|link_functions stanza]] - to decode DTMF from linked nodes.&lt;br /&gt;
* The [[#Phone Functions Stanza|phone_functions stanza]] - to decode DTMF from telephone connects.&lt;br /&gt;
 &lt;br /&gt;
A function stanza key/value pair has the following format:&lt;br /&gt;
&lt;br /&gt;
dtmfcommand=functionclass,[functionmethod],[parameters]&lt;br /&gt;
Where:&lt;br /&gt;
* dtmfcommand is a DTMF digit sequence '''minus''' the [[#funcchar=|start character]] (usually *)&lt;br /&gt;
* functionclass is a string which defines what class of command; link, status or COP&lt;br /&gt;
* functionmethod defines the optional method number to use in the function class.&lt;br /&gt;
* functionoptions are one or more optional comma separated parameters which further define a command.&lt;br /&gt;
&lt;br /&gt;
==Status Commands==&lt;br /&gt;
Status commands (functioncalss 'status') provide general information about the node. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
712 = status,12   ; Give Time of Day (local only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1 || Force ID (global)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || Give Time of Day (global)&lt;br /&gt;
|-&lt;br /&gt;
|  3 || Give software Version (global)&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Give GPS location info&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Speak the last (dtmf) user &lt;br /&gt;
|-&lt;br /&gt;
|  11 || Force ID (local only)&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Give Time of Day (local only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Link Commands==&lt;br /&gt;
Link commands (functioncalss 'link') connect to, disconnect from, monitor (Rx only) other nodes and give link status. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3 = ilink,3   ; Connect specified link -- transceive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ilink !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Disconnect specified link&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Enter command mode on specified link&lt;br /&gt;
|-&lt;br /&gt;
| 5 || System status&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Disconnect all links&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Last Node to Key Up&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Connect specified link -- local monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Send Text Message (9,&amp;lt;destnodeno or 0 (for all)&amp;gt;,Message Text, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Disconnect all RANGER links (except permalinks)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Disconnect a previously permanently connected link&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Permanently connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Permanently connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Full system status (all nodes)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 17 || MDC test (for diag purposes)&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Permanently Connect specified link -- local monitor only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==COP Commands==&lt;br /&gt;
Control operator (functionclass 'cop') commands are privileged commands. Node admins may provide some of these to their user community based on personal preference. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
99 = cop,7   ; enable timeout timer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some COP commands can take multiple parameters. For example this COP 48 would send #3#607 on command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;900 = cop,48,#,3,#,6,0,7&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! COP !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1  || System warm boot&lt;br /&gt;
|-&lt;br /&gt;
 |  2  || System enable&lt;br /&gt;
|-&lt;br /&gt;
|  3  || System disable&lt;br /&gt;
|-&lt;br /&gt;
|  4  || Test Tone On/Off&lt;br /&gt;
|-&lt;br /&gt;
|  5  || Dump System Variables on Console (debug)&lt;br /&gt;
|-&lt;br /&gt;
|  6  || PTT (phone mode only)&lt;br /&gt;
|-&lt;br /&gt;
|  7  || Time out timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  8  || Time out timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  9  || Autopatch enable&lt;br /&gt;
|-&lt;br /&gt;
|  10 || Autopatch disable&lt;br /&gt;
|-&lt;br /&gt;
|  11 || Link enable&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Link disable&lt;br /&gt;
|-&lt;br /&gt;
|  13 || Query System State&lt;br /&gt;
|-&lt;br /&gt;
|  14 || Change System State&lt;br /&gt;
|-&lt;br /&gt;
|  15 || Scheduler Enable&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|  16 || Scheduler Disable&lt;br /&gt;
|-&lt;br /&gt;
|  17 || User functions (time, id, etc) enable&lt;br /&gt;
|-&lt;br /&gt;
|  18 || User functions (time, id, etc) disable&lt;br /&gt;
|-&lt;br /&gt;
|  19 || Select alternate hang timer&lt;br /&gt;
|-&lt;br /&gt;
|  20 || Select standard hang timer &lt;br /&gt;
|-&lt;br /&gt;
|  21 || Enable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  22 || Disable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  23 || Birdbath (Current Parrot Cleanup/Flush)&lt;br /&gt;
|-&lt;br /&gt;
|  24 || Flush all telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  25 || Query last node un-keyed&lt;br /&gt;
|-&lt;br /&gt;
|  26 || Query all nodes keyed/unkeyed&lt;br /&gt;
|-&lt;br /&gt;
|  27 || Reset DAQ minimum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  28 || Reset DAQ maximum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  30 || Recall Memory Setting in Attached Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  31 || Channel Selector for Parallel Programmed Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  32 || Touchtone pad test: command + Digit string + # to playback all digits pressed&lt;br /&gt;
|-&lt;br /&gt;
|  33 || Local Telemetry Output Enable&lt;br /&gt;
|-&lt;br /&gt;
|  34 || Local Telemetry Output Disable&lt;br /&gt;
|-&lt;br /&gt;
|  35 || Local Telemetry Output on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  36 || Foreign Link Local Output Path Enable&lt;br /&gt;
|-&lt;br /&gt;
|  37 || Foreign Link Local Output Path Disable&lt;br /&gt;
|-&lt;br /&gt;
|  38 || Foreign Link Local Output Path Follows Local Telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  39 || Foreign Link Local Output Path on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  42 || Echolink announce node # only&lt;br /&gt;
|-&lt;br /&gt;
|  43 || Echolink announce node Callsign only&lt;br /&gt;
|-&lt;br /&gt;
|  44 || Echolink announce node # &amp;amp; Callsign&lt;br /&gt;
|-&lt;br /&gt;
|  45 || Link Activity timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  46 || Link Activity timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  47 || Reset &amp;quot;Link Config Changed&amp;quot; Flag &lt;br /&gt;
|-&lt;br /&gt;
|  48 || Send Page Tone (Tone specs separated by parenthesis)&lt;br /&gt;
|-&lt;br /&gt;
|  49 || Disable incoming connections (control state noice)&lt;br /&gt;
|-&lt;br /&gt;
|  50 || Enable incoming connections (control state noicd)&lt;br /&gt;
|-&lt;br /&gt;
|  51 || Enable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  52 || Disable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  53 || Wake up from sleep&lt;br /&gt;
|-&lt;br /&gt;
|  54 || Go to sleep&lt;br /&gt;
|-&lt;br /&gt;
|  55 || Parrot Once if parrot mode is disabled&lt;br /&gt;
|-&lt;br /&gt;
|  56 || Rx CTCSS Enable&lt;br /&gt;
|-&lt;br /&gt;
|  57 || Rx CTCSS Disable&lt;br /&gt;
|-&lt;br /&gt;
|  58 || Tx CTCSS On Input only Enable&lt;br /&gt;
|-&lt;br /&gt;
|  59 || Tx CTCSS On Input only Disable&lt;br /&gt;
|-&lt;br /&gt;
|  60 || Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode])&lt;br /&gt;
Type is 'I' for PttID, 'E' for Emergency, and 'C' for Call &lt;br /&gt;
(SelCall or Alert), or 'SX' for STS (ststus), where X is 0-F.&lt;br /&gt;
DestID and subcode are only specified for  the 'C' type message.&lt;br /&gt;
UnitID is the local systems UnitID. DestID is the MDC1200 ID of&lt;br /&gt;
the radio being called, and the subcodes are as follows: &lt;br /&gt;
Subcode '8205' is Voice Selective Call for Spectra ('Call')&lt;br /&gt;
Subcode '8015' is Voice Selective Call for Maxtrac ('SC') or&lt;br /&gt;
Astro-Saber('Call')&lt;br /&gt;
Subcode '810D' is Call Alert (like Maxtrac 'CA')&lt;br /&gt;
|-&lt;br /&gt;
|  61 || Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  62 || Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  63 || Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR])&lt;br /&gt;
|-&lt;br /&gt;
|  64 || Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR]) &lt;br /&gt;
|-&lt;br /&gt;
|  65 || Send POCSAG page (equipped channel types only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Remote Base Commands==&lt;br /&gt;
Remote base commands (functionclass 'remote') provide remote base control. This stanza is [[Structure of Config Files#Settings to name other Stanzas|named by]] the remote base [[#Remote Base Functions=|Remote Base Functions]] key/value pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! remote !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Retrieve Memory&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Set freq.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Set tx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Set rx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Long status query&lt;br /&gt;
|-&lt;br /&gt;
| 99,CALLSIGN,LICENSETAG || Remote Base login&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Rx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Rx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Tx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Tx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Low Power&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Medium Power&lt;br /&gt;
|-&lt;br /&gt;
| 106 || High Power&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Bump -20&lt;br /&gt;
|-&lt;br /&gt;
| 108 || Bump -100&lt;br /&gt;
|-&lt;br /&gt;
| 109 || Bump -500&lt;br /&gt;
|-&lt;br /&gt;
| 110 || Bump +20&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Bump +100&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Bump +500&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Scan - slow&lt;br /&gt;
|-&lt;br /&gt;
| 114 || Scan - quick&lt;br /&gt;
|-&lt;br /&gt;
| 115 || Scan - fast&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Scan + slow&lt;br /&gt;
|-&lt;br /&gt;
| 117 || Scan + quick&lt;br /&gt;
|-&lt;br /&gt;
| 118 || Scan + fast&lt;br /&gt;
|-&lt;br /&gt;
| 119 || Tune&lt;br /&gt;
|-&lt;br /&gt;
| 140 || Short status query&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Send a *&lt;br /&gt;
|-&lt;br /&gt;
| 211 || Send a #&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not all commands above are supported by all radios. For example radios which don't support SSB, would not be able to be placed in LSB or USB mode.&lt;br /&gt;
&lt;br /&gt;
===Remote Base Login===&lt;br /&gt;
When [[#authlevel=|authlevel=]] is greater than zero, remote 99 is used to define a different dtmf sequence for each user authorized to use the remote base. The remote base will announce the callsign as access is granted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
9139583 = remote,99,WB6NIL,G   ; grant access to Jim (general)&lt;br /&gt;
9148351 = remote,99,WA6ZFT,E   ; grant access to Steve (extra)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When the remote base is disconnected from the originating node, the&lt;br /&gt;
user will be logged out. &lt;br /&gt;
&lt;br /&gt;
The LICENSETAG argument is used to enforce&lt;br /&gt;
tx frequency limits. Need info [txlimits].&lt;br /&gt;
&lt;br /&gt;
= Settings to name other Stanzas =&lt;br /&gt;
Within the node stanza, some key=value pairs point to other stanzas. This allows nodes on the same Asterisk/app_rpt server to have the same settings (without duplicate entries) or different settings in some cases. For example the phone patch command may be *6 on one node, yet *61 on another.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [1000]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1001]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1002]&lt;br /&gt;
 functions=functionsUHF&lt;br /&gt;
 &lt;br /&gt;
 [functionsVHF]&lt;br /&gt;
 ; Two meter Autopatch up is *6&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=20000 &lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
 &lt;br /&gt;
 [functionsUHF]&lt;br /&gt;
 ; 440 Autopatch up is *61&lt;br /&gt;
 61=autopatchup,noct=1,farenddisconnect=1,dialtime=20000  ; Autopatch up&lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
* controlstates=&lt;br /&gt;
* functions=&lt;br /&gt;
* link_functions=&lt;br /&gt;
* macro=&lt;br /&gt;
* phone_functions=&lt;br /&gt;
* telemetry=&lt;br /&gt;
* wait_times=&lt;br /&gt;
&lt;br /&gt;
=Node Number Stanza=&lt;br /&gt;
The node number stanza is the first stanza in rpt.conf. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1999]    ; Replace with your assigned node number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The node number stanza contains the following key/value pairs. &lt;br /&gt;
==althangtime===&lt;br /&gt;
This controls the length of the repeater hang time when the alternate hang timer is selected with a control operator function. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
althangtime=4000   ; 4 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==beaconing===&lt;br /&gt;
When set to 1 will send the repeater ID at the idtime interval regardless of whether there was repeater activity or not. This feature appears to be required in the UK, but is probably illegal in the US.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beaconing=1   ;Set to 1 to beacon. Defaults to 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==callerid===&lt;br /&gt;
This setting allows the autopatch on the node to be identified with a specific caller ID. The default setting is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
callerid=&amp;quot;Repeater&amp;quot; &amp;lt;0000000000&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': The value in quotes is the name of the autopatch caller, and the numbers in angle brackets are the originating telephone number to use.&lt;br /&gt;
&lt;br /&gt;
==context===&lt;br /&gt;
&lt;br /&gt;
This setting directs the autopatch for the node to use a specific context in extensions.conf for outgoing autopatch calls. The default is to specify a context name of radio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context=radio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==controlstates===&lt;br /&gt;
This setting defines the name of the [[Structure of Config Files|variable named]] control state stanza. Control states are an optional feature which allows groups of control operator commands to be executed all at once. To use control states, define an entry in your node stanzas to point to a dedicated control state stanza like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
controlstates = controlstates   ; points to control state stanza&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[controlstates]&lt;br /&gt;
0 = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation                                  &lt;br /&gt;
1 = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation                                             &lt;br /&gt;
2 = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Control States Stanza|control state stanza]] describes these mnemonics.&lt;br /&gt;
&lt;br /&gt;
==duplex===&lt;br /&gt;
The duplex key/value pairs sets the duplex mode for desired radio operation. Duplex mode 2 is the default if none specified.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Duplex Mode !! Description &lt;br /&gt;
|- &lt;br /&gt;
| 0 || Half duplex with no telemetry tones or hang time. Special Case: Full duplex if linktolink is set to yes. This mode is preferred when interfacing with an external multiport repeater controller. Comment out idrecording and idtalkover to suppress IDs.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Half duplex with telemetry tones and hang time. Does not repeat audio. This mode is preferred when interfacing a simplex node.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Full Duplex with telemetry tones and hang time. This mode is preferred when interfacing a repeater. &lt;br /&gt;
|- &lt;br /&gt;
| 3 || Full Duplex with telemetry tones and hang time, but no repeated audio.&lt;br /&gt;
|- &lt;br /&gt;
| 4 || Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
duplex = 0     ; 0 = Half duplex with no telemetry tones or hang time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==endchar===&lt;br /&gt;
This setting allows the end character used by some control functions to be changed. By default this is a #. The endchar value must not be the same as the funcchar default or overridden value.&lt;br /&gt;
&lt;br /&gt;
==erxgain===&lt;br /&gt;
Echolink receive gain adjustment in +/- db-volts. Used to balance Echolink recieve audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
erxgain = -3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==etxgain===&lt;br /&gt;
Echolink transmit gain adjustment in +/- db-volts. Used to balance Echolink transmit audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
etxgain = 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==funcchar===&lt;br /&gt;
This setting can be used to change the default function starting character of * to something else. Please note that the new value chosen must not be the same as the default or overridden value for endchar=.&lt;br /&gt;
&lt;br /&gt;
==functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the [[#Functions Stanza|function stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functionsUHF   ; pointer to 440 repeater functions stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Valid Values&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdefault&lt;br /&gt;
|0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdynamic&lt;br /&gt;
|0 = disallow users to change the gui telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Function Classes =&lt;br /&gt;
Function classes are names for categories of functions. There are several function classes defined. They are described in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Class&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|cop&lt;br /&gt;
|Control operator commands&lt;br /&gt;
|-&lt;br /&gt;
|ilink&lt;br /&gt;
|Internet linking commands&lt;br /&gt;
|-&lt;br /&gt;
|status&lt;br /&gt;
|User Status Commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchup&lt;br /&gt;
|Autopatch up commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchdn&lt;br /&gt;
|Autopatch down commands&lt;br /&gt;
|-&lt;br /&gt;
|remote&lt;br /&gt;
|Remote base commands&lt;br /&gt;
|-&lt;br /&gt;
|macro&lt;br /&gt;
|Command Macros&lt;br /&gt;
|}&lt;br /&gt;
Most of the above command classes require a function method and possibly one or more additional command parameters. Function methods are discussed next.&lt;br /&gt;
&lt;br /&gt;
= Function Methods =&lt;br /&gt;
Function methods are numbers which identify a specific function to execute within a function class. Function Methods are optional and in some cases should be omitted (Such as with the autopatchup method) A complete and up-to-date description of all functon methods can be found in the app_rpt.c source file. Some function methods are shown below as an example below:&lt;br /&gt;
 1  - Force ID (global)&lt;br /&gt;
 2  - Give Time of Day (global)&lt;br /&gt;
 3  - Give software Version (global)&lt;br /&gt;
 11 - Force ID (local only)&lt;br /&gt;
 12 - Give Time of Day (local only)&lt;br /&gt;
&lt;br /&gt;
= Function Options =&lt;br /&gt;
Some Function Methods can take function options. These are specified after the Function Method separated with commas. Not all commands require or take Function options. An example of a method which can accept Function Options is the autopatchup method.&lt;br /&gt;
&lt;br /&gt;
= Putting it all Together =&lt;br /&gt;
A small excerpt from the function stanza of rpt.conf is hown below.&lt;br /&gt;
 [functions]&lt;br /&gt;
 1=ilink,1                                               ; Specific link disconnect&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=2000   ; Autopatch up&lt;br /&gt;
The above example contains DTMF functions with all of the parameters discussed on previous pages.&lt;br /&gt;
&lt;br /&gt;
In the above example:&lt;br /&gt;
* *1 followed by a node number disconnects a specific link. The function class is ''ilink'' and the function method is ''1''&lt;br /&gt;
* *6 followed by a phone number brings up the autopatch with the function options specified. Note that there is no function method defined, but there are function options present.&lt;br /&gt;
&lt;br /&gt;
==hangtime===&lt;br /&gt;
This controls the length of the repeater hang time. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hangtime = 1000   ;Set hang time for 1 second&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==holdofftelem===&lt;br /&gt;
This node stanza configuration key forces all telemetry to be held off until a local user on the receiver or a remote user over a link unkeys. There is one exception to this behavior: When an ID needs to be sent and there is activity coming from a linked node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
holdofftelem = 1   ;Set to 1 to hold off. Default is 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== telemdefault= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telemdefault =  0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter. Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== telemdynamic= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telemdynamic = 0 = disallow users to change the local telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command. Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== phonelinkdefault= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phonelinkdefault = 0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode  Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== phonelinkdynamic= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phonelinkdynamic = 0 = disallow users to change phone telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command  Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==idrecording===&lt;br /&gt;
The identifier message is stored in the node stanza using the idrecording key. It can be changed to a different call sign by changing the value to something different. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==idtalkover===&lt;br /&gt;
The ID talkover message is stored in the node stanza using the idtalkover setting. The purpose of idtalkover is to specify an alternate ID to use when the ID must be sent over the top of a user transmission, This can be a shorter voice ID or an ID in morse code. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. Example usages are as follows:&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==inxlat===&lt;br /&gt;
The inxlat setting allows complete remapping of the funcchar and endchar digits to different digits or digit sequences.&lt;br /&gt;
inxlat acts on the digits received by the radio receiver on the node.&lt;br /&gt;
&lt;br /&gt;
Format: inxlat = funchars,endchars,passchars,dialtone&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* funcchars is the digit or digit sequence to replace funcchar&lt;br /&gt;
* endchars is the digit or digit sequence to replace endchar&lt;br /&gt;
* passchars are the digits to pass through (can be used to block certain digits)&lt;br /&gt;
* dialtone is optional. Set to Y for dial tone on successful funcchars.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inxlat = #56,#57,0123456789ABCD ; string xlat from radio port to sys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==link_functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the link_functions stanza.&lt;br /&gt;
&lt;br /&gt;
The link_functions setting directs the node to use a particular function stanza for functions dialed by users accessing the node via a link from another node. The traditional default is to point it to a function stanza named &amp;quot;functions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
link_functions = functions ; pointer to the Link Function stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkmongain===&lt;br /&gt;
Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received. If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db. If linkmongain set to a positive number monitored audio will increase by the set amount in db. The value of linkmongain is in db. The default value is 0 db.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkmongain = -20   ; reduce link volume 20dB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linktolink===&lt;br /&gt;
When operating in duplex mode 0, this forces the radio interface to operate in full duplex mode, but keeps all the other duplex mode 0 semantics. This is used when a radio interface is connected to a multiport analog repeater controller. The linktolink= key can take two values: yes or no.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linktolink = yes   ; set to yes to enable. Default is no.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkunkeyct===&lt;br /&gt;
The linkunkeyct setting selects the courtesy tone to send when a connected remote node unkeys. The default is no courtesy tone when a remote node unkeys.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkunkeyct = ct8  ; use courtesy tone 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==macro===&lt;br /&gt;
The marco key/value points to by the [[#Macro Stanza|Macro Stanza]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==nounkeyct===&lt;br /&gt;
The nounkeyct node stanza key completely disables the courtesy tone. This is useful for eliminating TX time in applications using simplex uplinks to repeaters on the repeater pair itself.  This practice is '''strongly''' discouraged.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nounkeyct = yes  ; :(&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==politeid===&lt;br /&gt;
The politeid setting specified the number of milliseconds prior to the end of the id cycle where the controller will attempt to play the ID in the tail when a user unkeys. If the controller does not get a chance to send the ID in the tail, the ID will be played over the top of the user transmission. Optional, default 30000.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
politeid = 30000   ; 30 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==propagate_dtmf===&lt;br /&gt;
Takes either yes or no. When set to yes, DTMF will be regenerated from out-of-band signalling or from from the receiver dtmf decoder whenever a function start character is NOT detected and command decoding has not begun. When set to no, no tones will be regenerated. The default for this setting is no.&lt;br /&gt;
This setting is meant to be used in conjunction with linktolink, inxlat, and outxlat when interfacing a radio port to a multiport analog repeater controller on an RF-linked system.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
propagate_dtmf = no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': There is a separate setting propagate_phonedtmf for use by dial-in (phone and dphone) users.&lt;br /&gt;
&lt;br /&gt;
==remotect===&lt;br /&gt;
The remotect setting allows the selection of the remote linked courtesy tone so that the users can tell there is a [[:Category:Remote Base|remote base]] connected locally.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remotect = ct3   ; use courtesy tone 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstfreq===&lt;br /&gt;
If rx tone burst operation is desired, specify the frequency in hertz of the desired tone burst. Setting to 0 (or not specifying) indicates no tone burst operation.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxburstfreq = 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstthreshold===&lt;br /&gt;
In rx toneburst mode, specifies the minimum signal to noise ratio in db that qualifies a valid tone.&lt;br /&gt;
Defaults to 16 (db).&lt;br /&gt;
&lt;br /&gt;
==rxbursttime===&lt;br /&gt;
For rx toneburst operation, specifies minimum amount of time that tone needs to be valid for recognition (in milliseconds). Defaults to 250.&lt;br /&gt;
&lt;br /&gt;
==rxchannel===&lt;br /&gt;
The rxchannel key/value pair selects the radio interface. There must be one (and only one) rxchannel per node. The selections are: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description &lt;br /&gt;
|- &lt;br /&gt;
| dahdi/pseudo || No radio, used for hubs&lt;br /&gt;
|- &lt;br /&gt;
| SimpleUSB/usb_1999 || [[Simpleusb.conf|SimpleUSB (limited DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| Radio/usb_1999 || [[Usbradio.conf|USBRadio (full DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| voter/1990 || [[Voter.conf|RTCM]] &lt;br /&gt;
|- &lt;br /&gt;
| Pi/1 || Raspberry Pi PiTA &lt;br /&gt;
|- &lt;br /&gt;
| Dahdi/1 || PCI Quad card &lt;br /&gt;
|- &lt;br /&gt;
| Beagle/1 || BeagleBoard &lt;br /&gt;
|- &lt;br /&gt;
| USRP/127.0.0.1:34001:32001 || GNU Radio interface USRP&lt;br /&gt;
|}&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = dahdi/pseudo     ; No radio (hub)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': This is selecting what is known as (in Asterisk terminology) the channel driver.&lt;br /&gt;
&lt;br /&gt;
==scheduler===&lt;br /&gt;
This setting defines the scheduler stanza. The scheduler is used to execute commands at a particular time.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler = schedule   ; name scheduler to 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==sleeptime===&lt;br /&gt;
This sets the inactivity period in seconds for no signal on the repeater receiver before the system goes to sleep. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sleeptime = 300   ; go to sleep after 5 mins of no activity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==startup_macro===&lt;br /&gt;
The startup_macro is executed once on system startup. Each node can have one startup macro defined in its node stanza.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
startup_macro = *31000*31001*31002   ; Connect to 1000, 1001 and 1002 at startup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailmessagelist===&lt;br /&gt;
The tailmessagelist setting allows a comma separated list of audio files to be specified for the tail message function. The tail messages will rotate from one to the next until the end of the list is reached at which point the first message in the list will be selected. If no absolute path name is specified, the directory var/lib/asterisk/sounds will be searched for the sound file. The file extension should be omitted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagelist = welcome,clubmeeting,wx   ; rotate 3 tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==tailmessagetime===&lt;br /&gt;
This sets the amount of time in milliseconds between tail messages. Tail Messages are played when a user unkeys on the repeater input at the point where the hang timer expires after the courtesy tone is sent.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagetime = 900000   ; 15 minutes between tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailsquashedtime===&lt;br /&gt;
If a tail message is &amp;quot;squashed&amp;quot; by a user keying up over the top of it, a separate time value can be loaded to make the tail message be retried at a shorter time interval than the standard tailmessagetime= setting. The tailsquashedtime= setting takes a value in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailsquashedtime = 300000   ; 5 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==totime===&lt;br /&gt;
This defines the time out timer interval. The value is in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
totime = 180000   ;  3 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==unlinkedct===&lt;br /&gt;
The unlinkedct setting selects the courtesy tone to be used when the system has no remote nodes connected and is operating as a standalone repeater.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unlinkedct = ct2   ; use courtesy tone 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==wait-times===&lt;br /&gt;
Wait-times points to the [[#Wait Times Stanza|Wait Times Stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name wait-times to 'wait-times'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Functions Stanza=&lt;br /&gt;
The functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#functions=|function=]] key/value pair.  Functions within this stanza are used to decode DTMF commands when accessing the node from its receiver.  This stanza is typically named 'functions'.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions   ; name the functions stanza 'functions'&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Link Functions Stanza=&lt;br /&gt;
The link functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#link_functions=|link_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node via a link from another node. The traditional usage is to point link_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a linked node and from the local node the same.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions        ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = my_link_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_link_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Phone Functions Stanza=&lt;br /&gt;
The phone functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#phone_functions=|phone_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node from a telephone. The traditional usage is to point phone_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a phone and from the local node the same. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions         ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                  ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = my_phone_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_phone_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Macro Stanza=&lt;br /&gt;
The marco stanza is named stanza pointed to by the [[#macro=|macro=]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Stanza=&lt;br /&gt;
Here are [[Structure of Config Files|key/value pairs]] required to configure a remote base.&lt;br /&gt;
&lt;br /&gt;
==authlevel===&lt;br /&gt;
The authlevel= key is used to enable or disable login requirements for a remote base.&lt;br /&gt;
&lt;br /&gt;
* authlevel=0 Disables all access control (not recommended, unsecured)&lt;br /&gt;
* authlevel=1 Enables access control, and waits for key up before prompting for the access code&lt;br /&gt;
* authlevel=2 Enables access control, and prompts for the access code at the time of connection&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autllevel = 0   ; allow all comers &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==civaddr===&lt;br /&gt;
civaddr= is used with ICOM band radios to set the CIV address. The value is a 2 digit hexadecimal number. If this key is not specified, then the CIV address will be set to the default of 88. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
civaddr = 98  ; set CIV to 98&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base functions===&lt;br /&gt;
functions= is a pointer to a remote base function stanza. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions-remote   ; name the functions stanza 'functions-remote'&lt;br /&gt;
&lt;br /&gt;
[functions-remote]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#Remote Base Functions Stanza|Remote Base Functions Stanza]].&lt;br /&gt;
&lt;br /&gt;
==ioaddr===&lt;br /&gt;
ioaddr= refers to a parallel port I/O address. It is specified as a hexadecimal number with a 0x prefix. The parallel port is used when the Doug Hall RBI-1 interface is employed.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioaddr = 0x378   ; set RB-1 address&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ioport===&lt;br /&gt;
ioport= sets the serial port. On Linux Systems, these are typically path names to special files in the /dev directory.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioport = /dev/ttyS1   ; Linux com1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base phone_functions===&lt;br /&gt;
phone_functions= is a pointer to a remote base phone function stanza. It is equivalent to phone_functions in the [[#Phone Functions Stanza|Phone Functions Stanza]] but provides a separate set of commands.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote===&lt;br /&gt;
remote= sets the type of radio. It also ensures that the node will be defined as a remote base node and not a standard node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote = xcat   ; set xcat interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Radio !! Value !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Dumb || y || Use for single channel remote base radios&lt;br /&gt;
|-&lt;br /&gt;
| FT-897 || ft897 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| TMG-707 || kenwood || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| IC-706 || ic706 || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|-&lt;br /&gt;
| TM-271 || tm271 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| Syntor Xcat || xcat || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==remote_inact_timeout===&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of time without keying from the link. Set to 0 to disable timeout.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_inact_timeout = 0   ; do not time out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout===&lt;br /&gt;
Session time out for remote base. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_timeout = 0   ; do not timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_warning===&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_freq===&lt;br /&gt;
&lt;br /&gt;
==Remote Base rxchannel===&lt;br /&gt;
This should contain the name of a usb radio interface which has been defined in [[usbradio.conf]] or a zaptel interface number if using a Quad Radio PCI Card.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = usbRadio/usb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Remote Configuration==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1234]&lt;br /&gt;
; Rx audio/signaling channel                                                                                   &lt;br /&gt;
rxchannel = Radio/usb&lt;br /&gt;
&lt;br /&gt;
; Serial port for control&lt;br /&gt;
ioport = /dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
; Radio Type                &lt;br /&gt;
remote = ft897 &lt;br /&gt;
&lt;br /&gt;
; Function list from link                                          &lt;br /&gt;
functions = functions-remote  &lt;br /&gt;
&lt;br /&gt;
; Function list from phone         &lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&lt;br /&gt;
; Authorization level                                         &lt;br /&gt;
authlevel = 0      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nodes Stanza=&lt;br /&gt;
The [nodes] stanza is a list of nodes, their IP addresses, port and &amp;quot;NONE&amp;quot; for non-remote base nodes. The nodes stanza is used to identify which node is mapped to which Internet call and to determine the destination to send the call to. If you are using automatic update for Allstar link (public) nodes, no Allstar link nodes should be defined here. Only place a definition for your local nodes, and private (off of allstar link) nodes or nodes behind the same NAT router here.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[nodes]&lt;br /&gt;
1000 = radio@127.0.0.1/1000,NONE               ; Private hub on this server&lt;br /&gt;
1001 = radio@host.domain.com/1001,NONE         ; Private node on another server&lt;br /&gt;
2501 = radio@127.0.0.1/2501,NONE               ; Public node on this server&lt;br /&gt;
2502 = radio@127.0.0.1/2502,NONE               ; Another public node on this server&lt;br /&gt;
2503 = radio@192.168.1.20:4570/2503,NONE       ; Public node behind the same NAT router&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The [nodes] stanza performs a function similar to an OS hosts file. When looking up node information, app_rpt looks in the [nodes] stanza first then searches (what could be called the Allstar DNS) the /var/lib/asterisk/rpt_extnodes file.&lt;br /&gt;
&lt;br /&gt;
=Telemetry Stanza=&lt;br /&gt;
This stanza is named by the telemetry= key/value pair. Telemetry entries can be shared across all nodes on the Asterisk/app_rpt server, or defined for each node. Can be a tone sequence, morse string, or a file as follows:&lt;br /&gt;
&lt;br /&gt;
* |t - Tone escape sequence:&lt;br /&gt;
** Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude). Single frequencies are created by setting freq1 or freq2 to zero.&lt;br /&gt;
* |m - Morse escape sequence:&lt;br /&gt;
**Sends Morse code at the '''telemetry amplitude and telemetry frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* |i - Morse ID escape sequence:&lt;br /&gt;
**Sends Morse code at the '''ID amplitude and ID frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* Path to sound file:&lt;br /&gt;
**Specify the path to a sound file on the server. Do not include file extension.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[telemetry]&lt;br /&gt;
ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)&lt;br /&gt;
ct2=|t(660,880,150,2048)  &lt;br /&gt;
ct3=|t(440,0,150,4096) &lt;br /&gt;
ct4=|t(550,0,150,2048)&lt;br /&gt;
ct4=|t(2475,0,250,768)&lt;br /&gt;
ct5=|t(660,0,150,2048)&lt;br /&gt;
ct6=|t(880,0,150,2048)&lt;br /&gt;
ct7=|t(660,440,150,2048)&lt;br /&gt;
ct8=|t(700,1100,150,2048)&lt;br /&gt;
ct9=|t(1633,0,50,1000)(0,0,30,0)(1209,0,50,1000); &lt;br /&gt;
;remotetx=|t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000);&lt;br /&gt;
remotetx=|t(880,0,150,2048) &lt;br /&gt;
remotemon=|t(1209,0,50,2048) &lt;br /&gt;
cmdmode=|t(900,903,200,2048)&lt;br /&gt;
functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)&lt;br /&gt;
patchup=rpt/callproceeding&lt;br /&gt;
patchdown=rpt/callterminated&lt;br /&gt;
&lt;br /&gt;
What the numbers mean,&lt;br /&gt;
 (000,000,010,000)&lt;br /&gt;
   |   |   |   |-------amplitude&lt;br /&gt;
   |   |   |-------------duration&lt;br /&gt;
   |   |-------------------Tone 2&lt;br /&gt;
   |-------------------------Tone 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Morse Stanza=&lt;br /&gt;
Morse code parameters, these are common to all nodes on a given Asterisk/app_rpt server.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[morse]&lt;br /&gt;
speed = 20            ; Approximate speed in WPM&lt;br /&gt;
frequency = 900       ; Morse Telemetry Frequency&lt;br /&gt;
amplitude = 4096      ; Morse Telemetry Amplitude&lt;br /&gt;
idfrequency = 746     ; Morse ID Frequency  &lt;br /&gt;
idamplitude = 768     ; Morse ID Amplitude&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wait Times Stanza=&lt;br /&gt;
This stanza is named by the [[#wait-times=|wait-times=]] key/value pair. The wait time stanza is used to set delay time between various node actions and their response. Values are in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name the stanza 'wait-times'&lt;br /&gt;
&lt;br /&gt;
[wait-times]                                                                                                 &lt;br /&gt;
telemwait = 2000&lt;br /&gt;
idwait = 500&lt;br /&gt;
unkeywait = 2000&lt;br /&gt;
calltermwait = 2000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Memory Stanza=&lt;br /&gt;
Remote base memories are in the format of:&lt;br /&gt;
&lt;br /&gt;
memory = rxfreq,plfreq,txpower,offset,tone&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[memory]&lt;br /&gt;
00 = 146.580,100.0,m&lt;br /&gt;
01 = 147.030,103.5,m+t&lt;br /&gt;
02 = 147.240,103.5,m+t&lt;br /&gt;
03 = 147.765,79.7,m-t&lt;br /&gt;
04 = 146.460,100.0,m&lt;br /&gt;
05 = 146.550,100.0,m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Control States Stanza=&lt;br /&gt;
&lt;br /&gt;
There are several predefined nmemonics (keywords) used in the control state stanza to enable and disable the various features of the controller. These nmemonics correspond to the control operator command to be executed and most of these are the same groups of letters sent back when a single control operator command is executed on the controller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nmemonic !! Description !! COP Method&lt;br /&gt;
|-&lt;br /&gt;
| rptena || Repeater Enable || 2&lt;br /&gt;
|-&lt;br /&gt;
| rptdis || Repeater Disable || 3&lt;br /&gt;
|-&lt;br /&gt;
| totena || Timeout Timer Enable || 7&lt;br /&gt;
|-&lt;br /&gt;
| totdis || Timeout Timer Disable || 8&lt;br /&gt;
|-&lt;br /&gt;
| apena || Autopatch Enable || 9&lt;br /&gt;
|-&lt;br /&gt;
| apdis || Autopatch Disable || 10&lt;br /&gt;
|-&lt;br /&gt;
| lnkena || Link Enable || 11&lt;br /&gt;
|-&lt;br /&gt;
| lnkdis || Link Disable || 12&lt;br /&gt;
|-&lt;br /&gt;
| skena || Scheduler Enable || 15&lt;br /&gt;
|-&lt;br /&gt;
| skdis || Scheduler Disable || 16&lt;br /&gt;
|-&lt;br /&gt;
| ufena || User Functions Enable || 17&lt;br /&gt;
|-&lt;br /&gt;
| ufdis || User Functions Disable || 18&lt;br /&gt;
|-&lt;br /&gt;
| atena || Alternate Hangtime Enable || 19&lt;br /&gt;
|-&lt;br /&gt;
| atdis || Alternate Hangtime Disable || 20&lt;br /&gt;
|-&lt;br /&gt;
| noice || No Incoming Connections Enable || 49&lt;br /&gt;
|-&lt;br /&gt;
| noicd || No Incoming Connections Disable || 50&lt;br /&gt;
|-&lt;br /&gt;
| slpen || Sleep Mode Enable || 51&lt;br /&gt;
|-&lt;br /&gt;
| slpds || Sleep Mode Disable || 52&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Schedule Stanza=&lt;br /&gt;
The scheduler can execute commands at certain times. For example for a net on Tuesday nights at 8 PM.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler=schedule   ; name the stanza 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]                                                                      &lt;br /&gt;
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied                                                  &lt;br /&gt;
2 = 00 00 * * *   ; at midnight every day, execute macro 2.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DAQ List Stanza=&lt;br /&gt;
&lt;br /&gt;
=Meter Faces Stanza=&lt;br /&gt;
&lt;br /&gt;
=Alarms Stanza=&lt;br /&gt;
&lt;br /&gt;
[[Category:Node Configuration]]&lt;br /&gt;
[[Category:Config Files]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1329</id>
		<title>Rpt.conf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1329"/>
		<updated>2019-01-28T15:20:37Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added telemdefault and telemdynamic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rpt.conf is where the majority of user-facing features, such as the node's CW and voice ID, DTMF commands and timers are set. There is a lot of capability here which can be difficult to grasp. Fortunately the default [https://github.com/AllStarLink/DIAL/blob/master/configs/rpt.conf DIAL rpt.conf] is well commented and will work fine for most node admins.  &lt;br /&gt;
&lt;br /&gt;
=DTMF Commands=&lt;br /&gt;
DTMF commands are placed in any one of three [[Structure of Config Files|named stanzas]]. Function stanzas control access to DTMF commands that a user can issue from various &lt;br /&gt;
control points.&lt;br /&gt;
* The [[#Functions Stanza|fuctions stanza]] - to decode DTMF from the node's local receiver.&lt;br /&gt;
* The [[#Link Functions Stanza|link_functions stanza]] - to decode DTMF from linked nodes.&lt;br /&gt;
* The [[#Phone Functions Stanza|phone_functions stanza]] - to decode DTMF from telephone connects.&lt;br /&gt;
 &lt;br /&gt;
A function stanza key/value pair has the following format:&lt;br /&gt;
&lt;br /&gt;
dtmfcommand=functionclass,[functionmethod],[parameters]&lt;br /&gt;
Where:&lt;br /&gt;
* dtmfcommand is a DTMF digit sequence '''minus''' the [[#funcchar=|start character]] (usually *)&lt;br /&gt;
* functionclass is a string which defines what class of command; link, status or COP&lt;br /&gt;
* functionmethod defines the optional method number to use in the function class.&lt;br /&gt;
* functionoptions are one or more optional comma separated parameters which further define a command.&lt;br /&gt;
&lt;br /&gt;
==Status Commands==&lt;br /&gt;
Status commands (functioncalss 'status') provide general information about the node. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
712 = status,12   ; Give Time of Day (local only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1 || Force ID (global)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || Give Time of Day (global)&lt;br /&gt;
|-&lt;br /&gt;
|  3 || Give software Version (global)&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Give GPS location info&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Speak the last (dtmf) user &lt;br /&gt;
|-&lt;br /&gt;
|  11 || Force ID (local only)&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Give Time of Day (local only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Link Commands==&lt;br /&gt;
Link commands (functioncalss 'link') connect to, disconnect from, monitor (Rx only) other nodes and give link status. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3 = ilink,3   ; Connect specified link -- transceive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ilink !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Disconnect specified link&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Enter command mode on specified link&lt;br /&gt;
|-&lt;br /&gt;
| 5 || System status&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Disconnect all links&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Last Node to Key Up&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Connect specified link -- local monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Send Text Message (9,&amp;lt;destnodeno or 0 (for all)&amp;gt;,Message Text, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Disconnect all RANGER links (except permalinks)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Disconnect a previously permanently connected link&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Permanently connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Permanently connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Full system status (all nodes)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 17 || MDC test (for diag purposes)&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Permanently Connect specified link -- local monitor only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==COP Commands==&lt;br /&gt;
Control operator (functionclass 'cop') commands are privileged commands. Node admins may provide some of these to their user community based on personal preference. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
99 = cop,7   ; enable timeout timer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some COP commands can take multiple parameters. For example this COP 48 would send #3#607 on command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;900 = cop,48,#,3,#,6,0,7&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! COP !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1  || System warm boot&lt;br /&gt;
|-&lt;br /&gt;
 |  2  || System enable&lt;br /&gt;
|-&lt;br /&gt;
|  3  || System disable&lt;br /&gt;
|-&lt;br /&gt;
|  4  || Test Tone On/Off&lt;br /&gt;
|-&lt;br /&gt;
|  5  || Dump System Variables on Console (debug)&lt;br /&gt;
|-&lt;br /&gt;
|  6  || PTT (phone mode only)&lt;br /&gt;
|-&lt;br /&gt;
|  7  || Time out timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  8  || Time out timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  9  || Autopatch enable&lt;br /&gt;
|-&lt;br /&gt;
|  10 || Autopatch disable&lt;br /&gt;
|-&lt;br /&gt;
|  11 || Link enable&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Link disable&lt;br /&gt;
|-&lt;br /&gt;
|  13 || Query System State&lt;br /&gt;
|-&lt;br /&gt;
|  14 || Change System State&lt;br /&gt;
|-&lt;br /&gt;
|  15 || Scheduler Enable&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|  16 || Scheduler Disable&lt;br /&gt;
|-&lt;br /&gt;
|  17 || User functions (time, id, etc) enable&lt;br /&gt;
|-&lt;br /&gt;
|  18 || User functions (time, id, etc) disable&lt;br /&gt;
|-&lt;br /&gt;
|  19 || Select alternate hang timer&lt;br /&gt;
|-&lt;br /&gt;
|  20 || Select standard hang timer &lt;br /&gt;
|-&lt;br /&gt;
|  21 || Enable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  22 || Disable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  23 || Birdbath (Current Parrot Cleanup/Flush)&lt;br /&gt;
|-&lt;br /&gt;
|  24 || Flush all telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  25 || Query last node un-keyed&lt;br /&gt;
|-&lt;br /&gt;
|  26 || Query all nodes keyed/unkeyed&lt;br /&gt;
|-&lt;br /&gt;
|  27 || Reset DAQ minimum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  28 || Reset DAQ maximum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  30 || Recall Memory Setting in Attached Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  31 || Channel Selector for Parallel Programmed Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  32 || Touchtone pad test: command + Digit string + # to playback all digits pressed&lt;br /&gt;
|-&lt;br /&gt;
|  33 || Local Telemetry Output Enable&lt;br /&gt;
|-&lt;br /&gt;
|  34 || Local Telemetry Output Disable&lt;br /&gt;
|-&lt;br /&gt;
|  35 || Local Telemetry Output on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  36 || Foreign Link Local Output Path Enable&lt;br /&gt;
|-&lt;br /&gt;
|  37 || Foreign Link Local Output Path Disable&lt;br /&gt;
|-&lt;br /&gt;
|  38 || Foreign Link Local Output Path Follows Local Telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  39 || Foreign Link Local Output Path on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  42 || Echolink announce node # only&lt;br /&gt;
|-&lt;br /&gt;
|  43 || Echolink announce node Callsign only&lt;br /&gt;
|-&lt;br /&gt;
|  44 || Echolink announce node # &amp;amp; Callsign&lt;br /&gt;
|-&lt;br /&gt;
|  45 || Link Activity timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  46 || Link Activity timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  47 || Reset &amp;quot;Link Config Changed&amp;quot; Flag &lt;br /&gt;
|-&lt;br /&gt;
|  48 || Send Page Tone (Tone specs separated by parenthesis)&lt;br /&gt;
|-&lt;br /&gt;
|  49 || Disable incoming connections (control state noice)&lt;br /&gt;
|-&lt;br /&gt;
|  50 || Enable incoming connections (control state noicd)&lt;br /&gt;
|-&lt;br /&gt;
|  51 || Enable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  52 || Disable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  53 || Wake up from sleep&lt;br /&gt;
|-&lt;br /&gt;
|  54 || Go to sleep&lt;br /&gt;
|-&lt;br /&gt;
|  55 || Parrot Once if parrot mode is disabled&lt;br /&gt;
|-&lt;br /&gt;
|  56 || Rx CTCSS Enable&lt;br /&gt;
|-&lt;br /&gt;
|  57 || Rx CTCSS Disable&lt;br /&gt;
|-&lt;br /&gt;
|  58 || Tx CTCSS On Input only Enable&lt;br /&gt;
|-&lt;br /&gt;
|  59 || Tx CTCSS On Input only Disable&lt;br /&gt;
|-&lt;br /&gt;
|  60 || Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode])&lt;br /&gt;
Type is 'I' for PttID, 'E' for Emergency, and 'C' for Call &lt;br /&gt;
(SelCall or Alert), or 'SX' for STS (ststus), where X is 0-F.&lt;br /&gt;
DestID and subcode are only specified for  the 'C' type message.&lt;br /&gt;
UnitID is the local systems UnitID. DestID is the MDC1200 ID of&lt;br /&gt;
the radio being called, and the subcodes are as follows: &lt;br /&gt;
Subcode '8205' is Voice Selective Call for Spectra ('Call')&lt;br /&gt;
Subcode '8015' is Voice Selective Call for Maxtrac ('SC') or&lt;br /&gt;
Astro-Saber('Call')&lt;br /&gt;
Subcode '810D' is Call Alert (like Maxtrac 'CA')&lt;br /&gt;
|-&lt;br /&gt;
|  61 || Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  62 || Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  63 || Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR])&lt;br /&gt;
|-&lt;br /&gt;
|  64 || Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR]) &lt;br /&gt;
|-&lt;br /&gt;
|  65 || Send POCSAG page (equipped channel types only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Remote Base Commands==&lt;br /&gt;
Remote base commands (functionclass 'remote') provide remote base control. This stanza is [[Structure of Config Files#Settings to name other Stanzas|named by]] the remote base [[#Remote Base Functions=|Remote Base Functions]] key/value pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! remote !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Retrieve Memory&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Set freq.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Set tx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Set rx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Long status query&lt;br /&gt;
|-&lt;br /&gt;
| 99,CALLSIGN,LICENSETAG || Remote Base login&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Rx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Rx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Tx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Tx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Low Power&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Medium Power&lt;br /&gt;
|-&lt;br /&gt;
| 106 || High Power&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Bump -20&lt;br /&gt;
|-&lt;br /&gt;
| 108 || Bump -100&lt;br /&gt;
|-&lt;br /&gt;
| 109 || Bump -500&lt;br /&gt;
|-&lt;br /&gt;
| 110 || Bump +20&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Bump +100&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Bump +500&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Scan - slow&lt;br /&gt;
|-&lt;br /&gt;
| 114 || Scan - quick&lt;br /&gt;
|-&lt;br /&gt;
| 115 || Scan - fast&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Scan + slow&lt;br /&gt;
|-&lt;br /&gt;
| 117 || Scan + quick&lt;br /&gt;
|-&lt;br /&gt;
| 118 || Scan + fast&lt;br /&gt;
|-&lt;br /&gt;
| 119 || Tune&lt;br /&gt;
|-&lt;br /&gt;
| 140 || Short status query&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Send a *&lt;br /&gt;
|-&lt;br /&gt;
| 211 || Send a #&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not all commands above are supported by all radios. For example radios which don't support SSB, would not be able to be placed in LSB or USB mode.&lt;br /&gt;
&lt;br /&gt;
===Remote Base Login===&lt;br /&gt;
When [[#authlevel=|authlevel=]] is greater than zero, remote 99 is used to define a different dtmf sequence for each user authorized to use the remote base. The remote base will announce the callsign as access is granted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
9139583 = remote,99,WB6NIL,G   ; grant access to Jim (general)&lt;br /&gt;
9148351 = remote,99,WA6ZFT,E   ; grant access to Steve (extra)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When the remote base is disconnected from the originating node, the&lt;br /&gt;
user will be logged out. &lt;br /&gt;
&lt;br /&gt;
The LICENSETAG argument is used to enforce&lt;br /&gt;
tx frequency limits. Need info [txlimits].&lt;br /&gt;
&lt;br /&gt;
= Settings to name other Stanzas =&lt;br /&gt;
Within the node stanza, some key=value pairs point to other stanzas. This allows nodes on the same Asterisk/app_rpt server to have the same settings (without duplicate entries) or different settings in some cases. For example the phone patch command may be *6 on one node, yet *61 on another.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [1000]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1001]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1002]&lt;br /&gt;
 functions=functionsUHF&lt;br /&gt;
 &lt;br /&gt;
 [functionsVHF]&lt;br /&gt;
 ; Two meter Autopatch up is *6&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=20000 &lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
 &lt;br /&gt;
 [functionsUHF]&lt;br /&gt;
 ; 440 Autopatch up is *61&lt;br /&gt;
 61=autopatchup,noct=1,farenddisconnect=1,dialtime=20000  ; Autopatch up&lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
* controlstates=&lt;br /&gt;
* functions=&lt;br /&gt;
* link_functions=&lt;br /&gt;
* macro=&lt;br /&gt;
* phone_functions=&lt;br /&gt;
* telemetry=&lt;br /&gt;
* wait_times=&lt;br /&gt;
&lt;br /&gt;
=Node Number Stanza=&lt;br /&gt;
The node number stanza is the first stanza in rpt.conf. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1999]    ; Replace with your assigned node number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The node number stanza contains the following key/value pairs. &lt;br /&gt;
==althangtime===&lt;br /&gt;
This controls the length of the repeater hang time when the alternate hang timer is selected with a control operator function. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
althangtime=4000   ; 4 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==beaconing===&lt;br /&gt;
When set to 1 will send the repeater ID at the idtime interval regardless of whether there was repeater activity or not. This feature appears to be required in the UK, but is probably illegal in the US.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beaconing=1   ;Set to 1 to beacon. Defaults to 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==callerid===&lt;br /&gt;
This setting allows the autopatch on the node to be identified with a specific caller ID. The default setting is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
callerid=&amp;quot;Repeater&amp;quot; &amp;lt;0000000000&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': The value in quotes is the name of the autopatch caller, and the numbers in angle brackets are the originating telephone number to use.&lt;br /&gt;
&lt;br /&gt;
==context===&lt;br /&gt;
&lt;br /&gt;
This setting directs the autopatch for the node to use a specific context in extensions.conf for outgoing autopatch calls. The default is to specify a context name of radio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context=radio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==controlstates===&lt;br /&gt;
This setting defines the name of the [[Structure of Config Files|variable named]] control state stanza. Control states are an optional feature which allows groups of control operator commands to be executed all at once. To use control states, define an entry in your node stanzas to point to a dedicated control state stanza like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
controlstates = controlstates   ; points to control state stanza&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[controlstates]&lt;br /&gt;
0 = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation                                  &lt;br /&gt;
1 = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation                                             &lt;br /&gt;
2 = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Control States Stanza|control state stanza]] describes these mnemonics.&lt;br /&gt;
&lt;br /&gt;
==duplex===&lt;br /&gt;
The duplex key/value pairs sets the duplex mode for desired radio operation. Duplex mode 2 is the default if none specified.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Duplex Mode !! Description &lt;br /&gt;
|- &lt;br /&gt;
| 0 || Half duplex with no telemetry tones or hang time. Special Case: Full duplex if linktolink is set to yes. This mode is preferred when interfacing with an external multiport repeater controller. Comment out idrecording and idtalkover to suppress IDs.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Half duplex with telemetry tones and hang time. Does not repeat audio. This mode is preferred when interfacing a simplex node.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Full Duplex with telemetry tones and hang time. This mode is preferred when interfacing a repeater. &lt;br /&gt;
|- &lt;br /&gt;
| 3 || Full Duplex with telemetry tones and hang time, but no repeated audio.&lt;br /&gt;
|- &lt;br /&gt;
| 4 || Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
duplex = 0     ; 0 = Half duplex with no telemetry tones or hang time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==endchar===&lt;br /&gt;
This setting allows the end character used by some control functions to be changed. By default this is a #. The endchar value must not be the same as the funcchar default or overridden value.&lt;br /&gt;
&lt;br /&gt;
==erxgain===&lt;br /&gt;
Echolink receive gain adjustment in +/- db-volts. Used to balance Echolink recieve audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
erxgain = -3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==etxgain===&lt;br /&gt;
Echolink transmit gain adjustment in +/- db-volts. Used to balance Echolink transmit audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
etxgain = 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==funcchar===&lt;br /&gt;
This setting can be used to change the default function starting character of * to something else. Please note that the new value chosen must not be the same as the default or overridden value for endchar=.&lt;br /&gt;
&lt;br /&gt;
==functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the [[#Functions Stanza|function stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functionsUHF   ; pointer to 440 repeater functions stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Valid Values&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdefault&lt;br /&gt;
|0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdynamic&lt;br /&gt;
|0 = disallow users to change the gui telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Function Classes =&lt;br /&gt;
Function classes are names for categories of functions. There are several function classes defined. They are described in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Class&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|cop&lt;br /&gt;
|Control operator commands&lt;br /&gt;
|-&lt;br /&gt;
|ilink&lt;br /&gt;
|Internet linking commands&lt;br /&gt;
|-&lt;br /&gt;
|status&lt;br /&gt;
|User Status Commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchup&lt;br /&gt;
|Autopatch up commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchdn&lt;br /&gt;
|Autopatch down commands&lt;br /&gt;
|-&lt;br /&gt;
|remote&lt;br /&gt;
|Remote base commands&lt;br /&gt;
|-&lt;br /&gt;
|macro&lt;br /&gt;
|Command Macros&lt;br /&gt;
|}&lt;br /&gt;
Most of the above command classes require a function method and possibly one or more additional command parameters. Function methods are discussed next.&lt;br /&gt;
&lt;br /&gt;
= Function Methods =&lt;br /&gt;
Function methods are numbers which identify a specific function to execute within a function class. Function Methods are optional and in some cases should be omitted (Such as with the autopatchup method) A complete and up-to-date description of all functon methods can be found in the app_rpt.c source file. Some function methods are shown below as an example below:&lt;br /&gt;
 1  - Force ID (global)&lt;br /&gt;
 2  - Give Time of Day (global)&lt;br /&gt;
 3  - Give software Version (global)&lt;br /&gt;
 11 - Force ID (local only)&lt;br /&gt;
 12 - Give Time of Day (local only)&lt;br /&gt;
&lt;br /&gt;
= Function Options =&lt;br /&gt;
Some Function Methods can take function options. These are specified after the Function Method separated with commas. Not all commands require or take Function options. An example of a method which can accept Function Options is the autopatchup method.&lt;br /&gt;
&lt;br /&gt;
= Putting it all Together =&lt;br /&gt;
A small excerpt from the function stanza of rpt.conf is hown below.&lt;br /&gt;
 [functions]&lt;br /&gt;
 1=ilink,1                                               ; Specific link disconnect&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=2000   ; Autopatch up&lt;br /&gt;
The above example contains DTMF functions with all of the parameters discussed on previous pages.&lt;br /&gt;
&lt;br /&gt;
In the above example:&lt;br /&gt;
* *1 followed by a node number disconnects a specific link. The function class is ''ilink'' and the function method is ''1''&lt;br /&gt;
* *6 followed by a phone number brings up the autopatch with the function options specified. Note that there is no function method defined, but there are function options present.&lt;br /&gt;
&lt;br /&gt;
==hangtime===&lt;br /&gt;
This controls the length of the repeater hang time. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hangtime = 1000   ;Set hang time for 1 second&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==holdofftelem===&lt;br /&gt;
This node stanza configuration key forces all telemetry to be held off until a local user on the receiver or a remote user over a link unkeys. There is one exception to this behavior: When an ID needs to be sent and there is activity coming from a linked node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
holdofftelem = 1   ;Set to 1 to hold off. Default is 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== telemdefault= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telemdefault =  0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter. Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== telemdynamic= ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telemdynamic = 0 = disallow users to change the local telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command. Default is 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==idrecording===&lt;br /&gt;
The identifier message is stored in the node stanza using the idrecording key. It can be changed to a different call sign by changing the value to something different. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==idtalkover===&lt;br /&gt;
The ID talkover message is stored in the node stanza using the idtalkover setting. The purpose of idtalkover is to specify an alternate ID to use when the ID must be sent over the top of a user transmission, This can be a shorter voice ID or an ID in morse code. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. Example usages are as follows:&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==inxlat===&lt;br /&gt;
The inxlat setting allows complete remapping of the funcchar and endchar digits to different digits or digit sequences.&lt;br /&gt;
inxlat acts on the digits received by the radio receiver on the node.&lt;br /&gt;
&lt;br /&gt;
Format: inxlat = funchars,endchars,passchars,dialtone&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* funcchars is the digit or digit sequence to replace funcchar&lt;br /&gt;
* endchars is the digit or digit sequence to replace endchar&lt;br /&gt;
* passchars are the digits to pass through (can be used to block certain digits)&lt;br /&gt;
* dialtone is optional. Set to Y for dial tone on successful funcchars.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inxlat = #56,#57,0123456789ABCD ; string xlat from radio port to sys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==link_functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the link_functions stanza.&lt;br /&gt;
&lt;br /&gt;
The link_functions setting directs the node to use a particular function stanza for functions dialed by users accessing the node via a link from another node. The traditional default is to point it to a function stanza named &amp;quot;functions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
link_functions = functions ; pointer to the Link Function stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkmongain===&lt;br /&gt;
Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received. If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db. If linkmongain set to a positive number monitored audio will increase by the set amount in db. The value of linkmongain is in db. The default value is 0 db.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkmongain = -20   ; reduce link volume 20dB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linktolink===&lt;br /&gt;
When operating in duplex mode 0, this forces the radio interface to operate in full duplex mode, but keeps all the other duplex mode 0 semantics. This is used when a radio interface is connected to a multiport analog repeater controller. The linktolink= key can take two values: yes or no.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linktolink = yes   ; set to yes to enable. Default is no.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkunkeyct===&lt;br /&gt;
The linkunkeyct setting selects the courtesy tone to send when a connected remote node unkeys. The default is no courtesy tone when a remote node unkeys.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkunkeyct = ct8  ; use courtesy tone 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==macro===&lt;br /&gt;
The marco key/value points to by the [[#Macro Stanza|Macro Stanza]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==nounkeyct===&lt;br /&gt;
The nounkeyct node stanza key completely disables the courtesy tone. This is useful for eliminating TX time in applications using simplex uplinks to repeaters on the repeater pair itself.  This practice is '''strongly''' discouraged.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nounkeyct = yes  ; :(&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==politeid===&lt;br /&gt;
The politeid setting specified the number of milliseconds prior to the end of the id cycle where the controller will attempt to play the ID in the tail when a user unkeys. If the controller does not get a chance to send the ID in the tail, the ID will be played over the top of the user transmission. Optional, default 30000.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
politeid = 30000   ; 30 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==propagate_dtmf===&lt;br /&gt;
Takes either yes or no. When set to yes, DTMF will be regenerated from out-of-band signalling or from from the receiver dtmf decoder whenever a function start character is NOT detected and command decoding has not begun. When set to no, no tones will be regenerated. The default for this setting is no.&lt;br /&gt;
This setting is meant to be used in conjunction with linktolink, inxlat, and outxlat when interfacing a radio port to a multiport analog repeater controller on an RF-linked system.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
propagate_dtmf = no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': There is a separate setting propagate_phonedtmf for use by dial-in (phone and dphone) users.&lt;br /&gt;
&lt;br /&gt;
==remotect===&lt;br /&gt;
The remotect setting allows the selection of the remote linked courtesy tone so that the users can tell there is a [[:Category:Remote Base|remote base]] connected locally.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remotect = ct3   ; use courtesy tone 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstfreq===&lt;br /&gt;
If rx tone burst operation is desired, specify the frequency in hertz of the desired tone burst. Setting to 0 (or not specifying) indicates no tone burst operation.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxburstfreq = 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstthreshold===&lt;br /&gt;
In rx toneburst mode, specifies the minimum signal to noise ratio in db that qualifies a valid tone.&lt;br /&gt;
Defaults to 16 (db).&lt;br /&gt;
&lt;br /&gt;
==rxbursttime===&lt;br /&gt;
For rx toneburst operation, specifies minimum amount of time that tone needs to be valid for recognition (in milliseconds). Defaults to 250.&lt;br /&gt;
&lt;br /&gt;
==rxchannel===&lt;br /&gt;
The rxchannel key/value pair selects the radio interface. There must be one (and only one) rxchannel per node. The selections are: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description &lt;br /&gt;
|- &lt;br /&gt;
| dahdi/pseudo || No radio, used for hubs&lt;br /&gt;
|- &lt;br /&gt;
| SimpleUSB/usb_1999 || [[Simpleusb.conf|SimpleUSB (limited DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| Radio/usb_1999 || [[Usbradio.conf|USBRadio (full DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| voter/1990 || [[Voter.conf|RTCM]] &lt;br /&gt;
|- &lt;br /&gt;
| Pi/1 || Raspberry Pi PiTA &lt;br /&gt;
|- &lt;br /&gt;
| Dahdi/1 || PCI Quad card &lt;br /&gt;
|- &lt;br /&gt;
| Beagle/1 || BeagleBoard &lt;br /&gt;
|- &lt;br /&gt;
| USRP/127.0.0.1:34001:32001 || GNU Radio interface USRP&lt;br /&gt;
|}&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = dahdi/pseudo     ; No radio (hub)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': This is selecting what is known as (in Asterisk terminology) the channel driver.&lt;br /&gt;
&lt;br /&gt;
==scheduler===&lt;br /&gt;
This setting defines the scheduler stanza. The scheduler is used to execute commands at a particular time.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler = schedule   ; name scheduler to 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==sleeptime===&lt;br /&gt;
This sets the inactivity period in seconds for no signal on the repeater receiver before the system goes to sleep. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sleeptime = 300   ; go to sleep after 5 mins of no activity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==startup_macro===&lt;br /&gt;
The startup_macro is executed once on system startup. Each node can have one startup macro defined in its node stanza.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
startup_macro = *31000*31001*31002   ; Connect to 1000, 1001 and 1002 at startup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailmessagelist===&lt;br /&gt;
The tailmessagelist setting allows a comma separated list of audio files to be specified for the tail message function. The tail messages will rotate from one to the next until the end of the list is reached at which point the first message in the list will be selected. If no absolute path name is specified, the directory var/lib/asterisk/sounds will be searched for the sound file. The file extension should be omitted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagelist = welcome,clubmeeting,wx   ; rotate 3 tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==tailmessagetime===&lt;br /&gt;
This sets the amount of time in milliseconds between tail messages. Tail Messages are played when a user unkeys on the repeater input at the point where the hang timer expires after the courtesy tone is sent.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagetime = 900000   ; 15 minutes between tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailsquashedtime===&lt;br /&gt;
If a tail message is &amp;quot;squashed&amp;quot; by a user keying up over the top of it, a separate time value can be loaded to make the tail message be retried at a shorter time interval than the standard tailmessagetime= setting. The tailsquashedtime= setting takes a value in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailsquashedtime = 300000   ; 5 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==totime===&lt;br /&gt;
This defines the time out timer interval. The value is in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
totime = 180000   ;  3 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==unlinkedct===&lt;br /&gt;
The unlinkedct setting selects the courtesy tone to be used when the system has no remote nodes connected and is operating as a standalone repeater.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unlinkedct = ct2   ; use courtesy tone 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==wait-times===&lt;br /&gt;
Wait-times points to the [[#Wait Times Stanza|Wait Times Stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name wait-times to 'wait-times'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Functions Stanza=&lt;br /&gt;
The functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#functions=|function=]] key/value pair.  Functions within this stanza are used to decode DTMF commands when accessing the node from its receiver.  This stanza is typically named 'functions'.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions   ; name the functions stanza 'functions'&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Link Functions Stanza=&lt;br /&gt;
The link functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#link_functions=|link_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node via a link from another node. The traditional usage is to point link_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a linked node and from the local node the same.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions        ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = my_link_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_link_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Phone Functions Stanza=&lt;br /&gt;
The phone functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#phone_functions=|phone_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node from a telephone. The traditional usage is to point phone_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a phone and from the local node the same. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions         ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                  ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = my_phone_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_phone_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Macro Stanza=&lt;br /&gt;
The marco stanza is named stanza pointed to by the [[#macro=|macro=]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Stanza=&lt;br /&gt;
Here are [[Structure of Config Files|key/value pairs]] required to configure a remote base.&lt;br /&gt;
&lt;br /&gt;
==authlevel===&lt;br /&gt;
The authlevel= key is used to enable or disable login requirements for a remote base.&lt;br /&gt;
&lt;br /&gt;
* authlevel=0 Disables all access control (not recommended, unsecured)&lt;br /&gt;
* authlevel=1 Enables access control, and waits for key up before prompting for the access code&lt;br /&gt;
* authlevel=2 Enables access control, and prompts for the access code at the time of connection&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autllevel = 0   ; allow all comers &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==civaddr===&lt;br /&gt;
civaddr= is used with ICOM band radios to set the CIV address. The value is a 2 digit hexadecimal number. If this key is not specified, then the CIV address will be set to the default of 88. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
civaddr = 98  ; set CIV to 98&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base functions===&lt;br /&gt;
functions= is a pointer to a remote base function stanza. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions-remote   ; name the functions stanza 'functions-remote'&lt;br /&gt;
&lt;br /&gt;
[functions-remote]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#Remote Base Functions Stanza|Remote Base Functions Stanza]].&lt;br /&gt;
&lt;br /&gt;
==ioaddr===&lt;br /&gt;
ioaddr= refers to a parallel port I/O address. It is specified as a hexadecimal number with a 0x prefix. The parallel port is used when the Doug Hall RBI-1 interface is employed.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioaddr = 0x378   ; set RB-1 address&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ioport===&lt;br /&gt;
ioport= sets the serial port. On Linux Systems, these are typically path names to special files in the /dev directory.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioport = /dev/ttyS1   ; Linux com1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base phone_functions===&lt;br /&gt;
phone_functions= is a pointer to a remote base phone function stanza. It is equivalent to phone_functions in the [[#Phone Functions Stanza|Phone Functions Stanza]] but provides a separate set of commands.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote===&lt;br /&gt;
remote= sets the type of radio. It also ensures that the node will be defined as a remote base node and not a standard node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote = xcat   ; set xcat interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Radio !! Value !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Dumb || y || Use for single channel remote base radios&lt;br /&gt;
|-&lt;br /&gt;
| FT-897 || ft897 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| TMG-707 || kenwood || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| IC-706 || ic706 || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|-&lt;br /&gt;
| TM-271 || tm271 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| Syntor Xcat || xcat || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==remote_inact_timeout===&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of time without keying from the link. Set to 0 to disable timeout.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_inact_timeout = 0   ; do not time out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout===&lt;br /&gt;
Session time out for remote base. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_timeout = 0   ; do not timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_warning===&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_freq===&lt;br /&gt;
&lt;br /&gt;
==Remote Base rxchannel===&lt;br /&gt;
This should contain the name of a usb radio interface which has been defined in [[usbradio.conf]] or a zaptel interface number if using a Quad Radio PCI Card.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = usbRadio/usb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Remote Configuration==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1234]&lt;br /&gt;
; Rx audio/signaling channel                                                                                   &lt;br /&gt;
rxchannel = Radio/usb&lt;br /&gt;
&lt;br /&gt;
; Serial port for control&lt;br /&gt;
ioport = /dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
; Radio Type                &lt;br /&gt;
remote = ft897 &lt;br /&gt;
&lt;br /&gt;
; Function list from link                                          &lt;br /&gt;
functions = functions-remote  &lt;br /&gt;
&lt;br /&gt;
; Function list from phone         &lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&lt;br /&gt;
; Authorization level                                         &lt;br /&gt;
authlevel = 0      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nodes Stanza=&lt;br /&gt;
The [nodes] stanza is a list of nodes, their IP addresses, port and &amp;quot;NONE&amp;quot; for non-remote base nodes. The nodes stanza is used to identify which node is mapped to which Internet call and to determine the destination to send the call to. If you are using automatic update for Allstar link (public) nodes, no Allstar link nodes should be defined here. Only place a definition for your local nodes, and private (off of allstar link) nodes or nodes behind the same NAT router here.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[nodes]&lt;br /&gt;
1000 = radio@127.0.0.1/1000,NONE               ; Private hub on this server&lt;br /&gt;
1001 = radio@host.domain.com/1001,NONE         ; Private node on another server&lt;br /&gt;
2501 = radio@127.0.0.1/2501,NONE               ; Public node on this server&lt;br /&gt;
2502 = radio@127.0.0.1/2502,NONE               ; Another public node on this server&lt;br /&gt;
2503 = radio@192.168.1.20:4570/2503,NONE       ; Public node behind the same NAT router&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The [nodes] stanza performs a function similar to an OS hosts file. When looking up node information, app_rpt looks in the [nodes] stanza first then searches (what could be called the Allstar DNS) the /var/lib/asterisk/rpt_extnodes file.&lt;br /&gt;
&lt;br /&gt;
=Telemetry Stanza=&lt;br /&gt;
This stanza is named by the telemetry= key/value pair. Telemetry entries can be shared across all nodes on the Asterisk/app_rpt server, or defined for each node. Can be a tone sequence, morse string, or a file as follows:&lt;br /&gt;
&lt;br /&gt;
* |t - Tone escape sequence:&lt;br /&gt;
** Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude). Single frequencies are created by setting freq1 or freq2 to zero.&lt;br /&gt;
* |m - Morse escape sequence:&lt;br /&gt;
**Sends Morse code at the '''telemetry amplitude and telemetry frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* |i - Morse ID escape sequence:&lt;br /&gt;
**Sends Morse code at the '''ID amplitude and ID frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* Path to sound file:&lt;br /&gt;
**Specify the path to a sound file on the server. Do not include file extension.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[telemetry]&lt;br /&gt;
ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)&lt;br /&gt;
ct2=|t(660,880,150,2048)  &lt;br /&gt;
ct3=|t(440,0,150,4096) &lt;br /&gt;
ct4=|t(550,0,150,2048)&lt;br /&gt;
ct4=|t(2475,0,250,768)&lt;br /&gt;
ct5=|t(660,0,150,2048)&lt;br /&gt;
ct6=|t(880,0,150,2048)&lt;br /&gt;
ct7=|t(660,440,150,2048)&lt;br /&gt;
ct8=|t(700,1100,150,2048)&lt;br /&gt;
ct9=|t(1633,0,50,1000)(0,0,30,0)(1209,0,50,1000); &lt;br /&gt;
;remotetx=|t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000);&lt;br /&gt;
remotetx=|t(880,0,150,2048) &lt;br /&gt;
remotemon=|t(1209,0,50,2048) &lt;br /&gt;
cmdmode=|t(900,903,200,2048)&lt;br /&gt;
functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)&lt;br /&gt;
patchup=rpt/callproceeding&lt;br /&gt;
patchdown=rpt/callterminated&lt;br /&gt;
&lt;br /&gt;
What the numbers mean,&lt;br /&gt;
 (000,000,010,000)&lt;br /&gt;
   |   |   |   |-------amplitude&lt;br /&gt;
   |   |   |-------------duration&lt;br /&gt;
   |   |-------------------Tone 2&lt;br /&gt;
   |-------------------------Tone 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Morse Stanza=&lt;br /&gt;
Morse code parameters, these are common to all nodes on a given Asterisk/app_rpt server.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[morse]&lt;br /&gt;
speed = 20            ; Approximate speed in WPM&lt;br /&gt;
frequency = 900       ; Morse Telemetry Frequency&lt;br /&gt;
amplitude = 4096      ; Morse Telemetry Amplitude&lt;br /&gt;
idfrequency = 746     ; Morse ID Frequency  &lt;br /&gt;
idamplitude = 768     ; Morse ID Amplitude&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wait Times Stanza=&lt;br /&gt;
This stanza is named by the [[#wait-times=|wait-times=]] key/value pair. The wait time stanza is used to set delay time between various node actions and their response. Values are in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name the stanza 'wait-times'&lt;br /&gt;
&lt;br /&gt;
[wait-times]                                                                                                 &lt;br /&gt;
telemwait = 2000&lt;br /&gt;
idwait = 500&lt;br /&gt;
unkeywait = 2000&lt;br /&gt;
calltermwait = 2000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Memory Stanza=&lt;br /&gt;
Remote base memories are in the format of:&lt;br /&gt;
&lt;br /&gt;
memory = rxfreq,plfreq,txpower,offset,tone&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[memory]&lt;br /&gt;
00 = 146.580,100.0,m&lt;br /&gt;
01 = 147.030,103.5,m+t&lt;br /&gt;
02 = 147.240,103.5,m+t&lt;br /&gt;
03 = 147.765,79.7,m-t&lt;br /&gt;
04 = 146.460,100.0,m&lt;br /&gt;
05 = 146.550,100.0,m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Control States Stanza=&lt;br /&gt;
&lt;br /&gt;
There are several predefined nmemonics (keywords) used in the control state stanza to enable and disable the various features of the controller. These nmemonics correspond to the control operator command to be executed and most of these are the same groups of letters sent back when a single control operator command is executed on the controller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nmemonic !! Description !! COP Method&lt;br /&gt;
|-&lt;br /&gt;
| rptena || Repeater Enable || 2&lt;br /&gt;
|-&lt;br /&gt;
| rptdis || Repeater Disable || 3&lt;br /&gt;
|-&lt;br /&gt;
| totena || Timeout Timer Enable || 7&lt;br /&gt;
|-&lt;br /&gt;
| totdis || Timeout Timer Disable || 8&lt;br /&gt;
|-&lt;br /&gt;
| apena || Autopatch Enable || 9&lt;br /&gt;
|-&lt;br /&gt;
| apdis || Autopatch Disable || 10&lt;br /&gt;
|-&lt;br /&gt;
| lnkena || Link Enable || 11&lt;br /&gt;
|-&lt;br /&gt;
| lnkdis || Link Disable || 12&lt;br /&gt;
|-&lt;br /&gt;
| skena || Scheduler Enable || 15&lt;br /&gt;
|-&lt;br /&gt;
| skdis || Scheduler Disable || 16&lt;br /&gt;
|-&lt;br /&gt;
| ufena || User Functions Enable || 17&lt;br /&gt;
|-&lt;br /&gt;
| ufdis || User Functions Disable || 18&lt;br /&gt;
|-&lt;br /&gt;
| atena || Alternate Hangtime Enable || 19&lt;br /&gt;
|-&lt;br /&gt;
| atdis || Alternate Hangtime Disable || 20&lt;br /&gt;
|-&lt;br /&gt;
| noice || No Incoming Connections Enable || 49&lt;br /&gt;
|-&lt;br /&gt;
| noicd || No Incoming Connections Disable || 50&lt;br /&gt;
|-&lt;br /&gt;
| slpen || Sleep Mode Enable || 51&lt;br /&gt;
|-&lt;br /&gt;
| slpds || Sleep Mode Disable || 52&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Schedule Stanza=&lt;br /&gt;
The scheduler can execute commands at certain times. For example for a net on Tuesday nights at 8 PM.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler=schedule   ; name the stanza 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]                                                                      &lt;br /&gt;
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied                                                  &lt;br /&gt;
2 = 00 00 * * *   ; at midnight every day, execute macro 2.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DAQ List Stanza=&lt;br /&gt;
&lt;br /&gt;
=Meter Faces Stanza=&lt;br /&gt;
&lt;br /&gt;
=Alarms Stanza=&lt;br /&gt;
&lt;br /&gt;
[[Category:Node Configuration]]&lt;br /&gt;
[[Category:Config Files]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1328</id>
		<title>Rpt.conf</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Rpt.conf&amp;diff=1328"/>
		<updated>2019-01-28T15:14:42Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added guilinkdefault and guilinkdynamic&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rpt.conf is where the majority of user-facing features, such as the node's CW and voice ID, DTMF commands and timers are set. There is a lot of capability here which can be difficult to grasp. Fortunately the default [https://github.com/AllStarLink/DIAL/blob/master/configs/rpt.conf DIAL rpt.conf] is well commented and will work fine for most node admins.  &lt;br /&gt;
&lt;br /&gt;
=DTMF Commands=&lt;br /&gt;
DTMF commands are placed in any one of three [[Structure of Config Files|named stanzas]]. Function stanzas control access to DTMF commands that a user can issue from various &lt;br /&gt;
control points.&lt;br /&gt;
* The [[#Functions Stanza|fuctions stanza]] - to decode DTMF from the node's local receiver.&lt;br /&gt;
* The [[#Link Functions Stanza|link_functions stanza]] - to decode DTMF from linked nodes.&lt;br /&gt;
* The [[#Phone Functions Stanza|phone_functions stanza]] - to decode DTMF from telephone connects.&lt;br /&gt;
 &lt;br /&gt;
A function stanza key/value pair has the following format:&lt;br /&gt;
&lt;br /&gt;
dtmfcommand=functionclass,[functionmethod],[parameters]&lt;br /&gt;
Where:&lt;br /&gt;
* dtmfcommand is a DTMF digit sequence '''minus''' the [[#funcchar=|start character]] (usually *)&lt;br /&gt;
* functionclass is a string which defines what class of command; link, status or COP&lt;br /&gt;
* functionmethod defines the optional method number to use in the function class.&lt;br /&gt;
* functionoptions are one or more optional comma separated parameters which further define a command.&lt;br /&gt;
&lt;br /&gt;
==Status Commands==&lt;br /&gt;
Status commands (functioncalss 'status') provide general information about the node. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
712 = status,12   ; Give Time of Day (local only)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1 || Force ID (global)&lt;br /&gt;
|-&lt;br /&gt;
|  2 || Give Time of Day (global)&lt;br /&gt;
|-&lt;br /&gt;
|  3 || Give software Version (global)&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Give GPS location info&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Speak the last (dtmf) user &lt;br /&gt;
|-&lt;br /&gt;
|  11 || Force ID (local only)&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Give Time of Day (local only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Link Commands==&lt;br /&gt;
Link commands (functioncalss 'link') connect to, disconnect from, monitor (Rx only) other nodes and give link status. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3 = ilink,3   ; Connect specified link -- transceive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ilink !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Disconnect specified link&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Enter command mode on specified link&lt;br /&gt;
|-&lt;br /&gt;
| 5 || System status&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Disconnect all links&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Last Node to Key Up&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Connect specified link -- local monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Send Text Message (9,&amp;lt;destnodeno or 0 (for all)&amp;gt;,Message Text, etc.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Disconnect all RANGER links (except permalinks)&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Disconnect a previously permanently connected link&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Permanently connect specified link -- monitor only&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Permanently connect specified link -- tranceive&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Full system status (all nodes)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 17 || MDC test (for diag purposes)&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Permanently Connect specified link -- local monitor only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==COP Commands==&lt;br /&gt;
Control operator (functionclass 'cop') commands are privileged commands. Node admins may provide some of these to their user community based on personal preference. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
99 = cop,7   ; enable timeout timer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some COP commands can take multiple parameters. For example this COP 48 would send #3#607 on command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;900 = cop,48,#,3,#,6,0,7&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! COP !! Description&lt;br /&gt;
|-&lt;br /&gt;
|  1  || System warm boot&lt;br /&gt;
|-&lt;br /&gt;
 |  2  || System enable&lt;br /&gt;
|-&lt;br /&gt;
|  3  || System disable&lt;br /&gt;
|-&lt;br /&gt;
|  4  || Test Tone On/Off&lt;br /&gt;
|-&lt;br /&gt;
|  5  || Dump System Variables on Console (debug)&lt;br /&gt;
|-&lt;br /&gt;
|  6  || PTT (phone mode only)&lt;br /&gt;
|-&lt;br /&gt;
|  7  || Time out timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  8  || Time out timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  9  || Autopatch enable&lt;br /&gt;
|-&lt;br /&gt;
|  10 || Autopatch disable&lt;br /&gt;
|-&lt;br /&gt;
|  11 || Link enable&lt;br /&gt;
|-&lt;br /&gt;
|  12 || Link disable&lt;br /&gt;
|-&lt;br /&gt;
|  13 || Query System State&lt;br /&gt;
|-&lt;br /&gt;
|  14 || Change System State&lt;br /&gt;
|-&lt;br /&gt;
|  15 || Scheduler Enable&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|  16 || Scheduler Disable&lt;br /&gt;
|-&lt;br /&gt;
|  17 || User functions (time, id, etc) enable&lt;br /&gt;
|-&lt;br /&gt;
|  18 || User functions (time, id, etc) disable&lt;br /&gt;
|-&lt;br /&gt;
|  19 || Select alternate hang timer&lt;br /&gt;
|-&lt;br /&gt;
|  20 || Select standard hang timer &lt;br /&gt;
|-&lt;br /&gt;
|  21 || Enable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  22 || Disable Parrot Mode&lt;br /&gt;
|-&lt;br /&gt;
|  23 || Birdbath (Current Parrot Cleanup/Flush)&lt;br /&gt;
|-&lt;br /&gt;
|  24 || Flush all telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  25 || Query last node un-keyed&lt;br /&gt;
|-&lt;br /&gt;
|  26 || Query all nodes keyed/unkeyed&lt;br /&gt;
|-&lt;br /&gt;
|  27 || Reset DAQ minimum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  28 || Reset DAQ maximum on a pin&lt;br /&gt;
|-&lt;br /&gt;
|  30 || Recall Memory Setting in Attached Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  31 || Channel Selector for Parallel Programmed Xcvr&lt;br /&gt;
|-&lt;br /&gt;
|  32 || Touchtone pad test: command + Digit string + # to playback all digits pressed&lt;br /&gt;
|-&lt;br /&gt;
|  33 || Local Telemetry Output Enable&lt;br /&gt;
|-&lt;br /&gt;
|  34 || Local Telemetry Output Disable&lt;br /&gt;
|-&lt;br /&gt;
|  35 || Local Telemetry Output on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  36 || Foreign Link Local Output Path Enable&lt;br /&gt;
|-&lt;br /&gt;
|  37 || Foreign Link Local Output Path Disable&lt;br /&gt;
|-&lt;br /&gt;
|  38 || Foreign Link Local Output Path Follows Local Telemetry&lt;br /&gt;
|-&lt;br /&gt;
|  39 || Foreign Link Local Output Path on Demand&lt;br /&gt;
|-&lt;br /&gt;
|  42 || Echolink announce node # only&lt;br /&gt;
|-&lt;br /&gt;
|  43 || Echolink announce node Callsign only&lt;br /&gt;
|-&lt;br /&gt;
|  44 || Echolink announce node # &amp;amp; Callsign&lt;br /&gt;
|-&lt;br /&gt;
|  45 || Link Activity timer enable&lt;br /&gt;
|-&lt;br /&gt;
|  46 || Link Activity timer disable&lt;br /&gt;
|-&lt;br /&gt;
|  47 || Reset &amp;quot;Link Config Changed&amp;quot; Flag &lt;br /&gt;
|-&lt;br /&gt;
|  48 || Send Page Tone (Tone specs separated by parenthesis)&lt;br /&gt;
|-&lt;br /&gt;
|  49 || Disable incoming connections (control state noice)&lt;br /&gt;
|-&lt;br /&gt;
|  50 || Enable incoming connections (control state noicd)&lt;br /&gt;
|-&lt;br /&gt;
|  51 || Enable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  52 || Disable sleep mode&lt;br /&gt;
|-&lt;br /&gt;
|  53 || Wake up from sleep&lt;br /&gt;
|-&lt;br /&gt;
|  54 || Go to sleep&lt;br /&gt;
|-&lt;br /&gt;
|  55 || Parrot Once if parrot mode is disabled&lt;br /&gt;
|-&lt;br /&gt;
|  56 || Rx CTCSS Enable&lt;br /&gt;
|-&lt;br /&gt;
|  57 || Rx CTCSS Disable&lt;br /&gt;
|-&lt;br /&gt;
|  58 || Tx CTCSS On Input only Enable&lt;br /&gt;
|-&lt;br /&gt;
|  59 || Tx CTCSS On Input only Disable&lt;br /&gt;
|-&lt;br /&gt;
|  60 || Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode])&lt;br /&gt;
Type is 'I' for PttID, 'E' for Emergency, and 'C' for Call &lt;br /&gt;
(SelCall or Alert), or 'SX' for STS (ststus), where X is 0-F.&lt;br /&gt;
DestID and subcode are only specified for  the 'C' type message.&lt;br /&gt;
UnitID is the local systems UnitID. DestID is the MDC1200 ID of&lt;br /&gt;
the radio being called, and the subcodes are as follows: &lt;br /&gt;
Subcode '8205' is Voice Selective Call for Spectra ('Call')&lt;br /&gt;
Subcode '8015' is Voice Selective Call for Maxtrac ('SC') or&lt;br /&gt;
Astro-Saber('Call')&lt;br /&gt;
Subcode '810D' is Call Alert (like Maxtrac 'CA')&lt;br /&gt;
|-&lt;br /&gt;
|  61 || Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  62 || Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)&lt;br /&gt;
|-&lt;br /&gt;
|  63 || Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR])&lt;br /&gt;
|-&lt;br /&gt;
|  64 || Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR]) &lt;br /&gt;
|-&lt;br /&gt;
|  65 || Send POCSAG page (equipped channel types only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Remote Base Commands==&lt;br /&gt;
Remote base commands (functionclass 'remote') provide remote base control. This stanza is [[Structure of Config Files#Settings to name other Stanzas|named by]] the remote base [[#Remote Base Functions=|Remote Base Functions]] key/value pair.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! remote !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Retrieve Memory&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Set freq.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Set tx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Set rx PL tone&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Long status query&lt;br /&gt;
|-&lt;br /&gt;
| 99,CALLSIGN,LICENSETAG || Remote Base login&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Rx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Rx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Tx PL off&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Tx PL on&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Low Power&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Medium Power&lt;br /&gt;
|-&lt;br /&gt;
| 106 || High Power&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Bump -20&lt;br /&gt;
|-&lt;br /&gt;
| 108 || Bump -100&lt;br /&gt;
|-&lt;br /&gt;
| 109 || Bump -500&lt;br /&gt;
|-&lt;br /&gt;
| 110 || Bump +20&lt;br /&gt;
|-&lt;br /&gt;
| 111 || Bump +100&lt;br /&gt;
|-&lt;br /&gt;
| 112 || Bump +500&lt;br /&gt;
|-&lt;br /&gt;
| 113 || Scan - slow&lt;br /&gt;
|-&lt;br /&gt;
| 114 || Scan - quick&lt;br /&gt;
|-&lt;br /&gt;
| 115 || Scan - fast&lt;br /&gt;
|-&lt;br /&gt;
| 116 || Scan + slow&lt;br /&gt;
|-&lt;br /&gt;
| 117 || Scan + quick&lt;br /&gt;
|-&lt;br /&gt;
| 118 || Scan + fast&lt;br /&gt;
|-&lt;br /&gt;
| 119 || Tune&lt;br /&gt;
|-&lt;br /&gt;
| 140 || Short status query&lt;br /&gt;
|-&lt;br /&gt;
| 210 || Send a *&lt;br /&gt;
|-&lt;br /&gt;
| 211 || Send a #&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Not all commands above are supported by all radios. For example radios which don't support SSB, would not be able to be placed in LSB or USB mode.&lt;br /&gt;
&lt;br /&gt;
===Remote Base Login===&lt;br /&gt;
When [[#authlevel=|authlevel=]] is greater than zero, remote 99 is used to define a different dtmf sequence for each user authorized to use the remote base. The remote base will announce the callsign as access is granted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
9139583 = remote,99,WB6NIL,G   ; grant access to Jim (general)&lt;br /&gt;
9148351 = remote,99,WA6ZFT,E   ; grant access to Steve (extra)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
When the remote base is disconnected from the originating node, the&lt;br /&gt;
user will be logged out. &lt;br /&gt;
&lt;br /&gt;
The LICENSETAG argument is used to enforce&lt;br /&gt;
tx frequency limits. Need info [txlimits].&lt;br /&gt;
&lt;br /&gt;
= Settings to name other Stanzas =&lt;br /&gt;
Within the node stanza, some key=value pairs point to other stanzas. This allows nodes on the same Asterisk/app_rpt server to have the same settings (without duplicate entries) or different settings in some cases. For example the phone patch command may be *6 on one node, yet *61 on another.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 [1000]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1001]&lt;br /&gt;
 functions=functionsVHF&lt;br /&gt;
 &lt;br /&gt;
 [1002]&lt;br /&gt;
 functions=functionsUHF&lt;br /&gt;
 &lt;br /&gt;
 [functionsVHF]&lt;br /&gt;
 ; Two meter Autopatch up is *6&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=20000 &lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
 &lt;br /&gt;
 [functionsUHF]&lt;br /&gt;
 ; 440 Autopatch up is *61&lt;br /&gt;
 61=autopatchup,noct=1,farenddisconnect=1,dialtime=20000  ; Autopatch up&lt;br /&gt;
 0=autopatchdn       ; Autopatch down&lt;br /&gt;
* controlstates=&lt;br /&gt;
* functions=&lt;br /&gt;
* link_functions=&lt;br /&gt;
* macro=&lt;br /&gt;
* phone_functions=&lt;br /&gt;
* telemetry=&lt;br /&gt;
* wait_times=&lt;br /&gt;
&lt;br /&gt;
=Node Number Stanza=&lt;br /&gt;
The node number stanza is the first stanza in rpt.conf. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1999]    ; Replace with your assigned node number&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The node number stanza contains the following key/value pairs. &lt;br /&gt;
==althangtime===&lt;br /&gt;
This controls the length of the repeater hang time when the alternate hang timer is selected with a control operator function. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
althangtime=4000   ; 4 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==beaconing===&lt;br /&gt;
When set to 1 will send the repeater ID at the idtime interval regardless of whether there was repeater activity or not. This feature appears to be required in the UK, but is probably illegal in the US.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beaconing=1   ;Set to 1 to beacon. Defaults to 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==callerid===&lt;br /&gt;
This setting allows the autopatch on the node to be identified with a specific caller ID. The default setting is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
callerid=&amp;quot;Repeater&amp;quot; &amp;lt;0000000000&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': The value in quotes is the name of the autopatch caller, and the numbers in angle brackets are the originating telephone number to use.&lt;br /&gt;
&lt;br /&gt;
==context===&lt;br /&gt;
&lt;br /&gt;
This setting directs the autopatch for the node to use a specific context in extensions.conf for outgoing autopatch calls. The default is to specify a context name of radio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
context=radio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==controlstates===&lt;br /&gt;
This setting defines the name of the [[Structure of Config Files|variable named]] control state stanza. Control states are an optional feature which allows groups of control operator commands to be executed all at once. To use control states, define an entry in your node stanzas to point to a dedicated control state stanza like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
controlstates = controlstates   ; points to control state stanza&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[controlstates]&lt;br /&gt;
0 = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation                                  &lt;br /&gt;
1 = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation                                             &lt;br /&gt;
2 = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [[#Control States Stanza|control state stanza]] describes these mnemonics.&lt;br /&gt;
&lt;br /&gt;
==duplex===&lt;br /&gt;
The duplex key/value pairs sets the duplex mode for desired radio operation. Duplex mode 2 is the default if none specified.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Duplex Mode !! Description &lt;br /&gt;
|- &lt;br /&gt;
| 0 || Half duplex with no telemetry tones or hang time. Special Case: Full duplex if linktolink is set to yes. This mode is preferred when interfacing with an external multiport repeater controller. Comment out idrecording and idtalkover to suppress IDs.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Half duplex with telemetry tones and hang time. Does not repeat audio. This mode is preferred when interfacing a simplex node.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Full Duplex with telemetry tones and hang time. This mode is preferred when interfacing a repeater. &lt;br /&gt;
|- &lt;br /&gt;
| 3 || Full Duplex with telemetry tones and hang time, but no repeated audio.&lt;br /&gt;
|- &lt;br /&gt;
| 4 || Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
duplex = 0     ; 0 = Half duplex with no telemetry tones or hang time.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==endchar===&lt;br /&gt;
This setting allows the end character used by some control functions to be changed. By default this is a #. The endchar value must not be the same as the funcchar default or overridden value.&lt;br /&gt;
&lt;br /&gt;
==erxgain===&lt;br /&gt;
Echolink receive gain adjustment in +/- db-volts. Used to balance Echolink recieve audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
erxgain = -3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==etxgain===&lt;br /&gt;
Echolink transmit gain adjustment in +/- db-volts. Used to balance Echolink transmit audio on an app_rpt node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
etxgain = 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[:Category:How to|Echolink How to]]&lt;br /&gt;
&lt;br /&gt;
==funcchar===&lt;br /&gt;
This setting can be used to change the default function starting character of * to something else. Please note that the new value chosen must not be the same as the default or overridden value for endchar=.&lt;br /&gt;
&lt;br /&gt;
==functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the [[#Functions Stanza|function stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functionsUHF   ; pointer to 440 repeater functions stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Valid Values&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdefault&lt;br /&gt;
|0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|guilinkdynamic&lt;br /&gt;
|0 = disallow users to change the gui telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Function Classes =&lt;br /&gt;
Function classes are names for categories of functions. There are several function classes defined. They are described in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Class&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|cop&lt;br /&gt;
|Control operator commands&lt;br /&gt;
|-&lt;br /&gt;
|ilink&lt;br /&gt;
|Internet linking commands&lt;br /&gt;
|-&lt;br /&gt;
|status&lt;br /&gt;
|User Status Commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchup&lt;br /&gt;
|Autopatch up commands&lt;br /&gt;
|-&lt;br /&gt;
|autopatchdn&lt;br /&gt;
|Autopatch down commands&lt;br /&gt;
|-&lt;br /&gt;
|remote&lt;br /&gt;
|Remote base commands&lt;br /&gt;
|-&lt;br /&gt;
|macro&lt;br /&gt;
|Command Macros&lt;br /&gt;
|}&lt;br /&gt;
Most of the above command classes require a function method and possibly one or more additional command parameters. Function methods are discussed next.&lt;br /&gt;
&lt;br /&gt;
= Function Methods =&lt;br /&gt;
Function methods are numbers which identify a specific function to execute within a function class. Function Methods are optional and in some cases should be omitted (Such as with the autopatchup method) A complete and up-to-date description of all functon methods can be found in the app_rpt.c source file. Some function methods are shown below as an example below:&lt;br /&gt;
 1  - Force ID (global)&lt;br /&gt;
 2  - Give Time of Day (global)&lt;br /&gt;
 3  - Give software Version (global)&lt;br /&gt;
 11 - Force ID (local only)&lt;br /&gt;
 12 - Give Time of Day (local only)&lt;br /&gt;
&lt;br /&gt;
= Function Options =&lt;br /&gt;
Some Function Methods can take function options. These are specified after the Function Method separated with commas. Not all commands require or take Function options. An example of a method which can accept Function Options is the autopatchup method.&lt;br /&gt;
&lt;br /&gt;
= Putting it all Together =&lt;br /&gt;
A small excerpt from the function stanza of rpt.conf is hown below.&lt;br /&gt;
 [functions]&lt;br /&gt;
 1=ilink,1                                               ; Specific link disconnect&lt;br /&gt;
 6=autopatchup,noct=1,farenddisconnect=1,dialtime=2000   ; Autopatch up&lt;br /&gt;
The above example contains DTMF functions with all of the parameters discussed on previous pages.&lt;br /&gt;
&lt;br /&gt;
In the above example:&lt;br /&gt;
* *1 followed by a node number disconnects a specific link. The function class is ''ilink'' and the function method is ''1''&lt;br /&gt;
* *6 followed by a phone number brings up the autopatch with the function options specified. Note that there is no function method defined, but there are function options present.&lt;br /&gt;
&lt;br /&gt;
==hangtime===&lt;br /&gt;
This controls the length of the repeater hang time. It is specified in milliseconds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hangtime = 1000   ;Set hang time for 1 second&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==holdofftelem===&lt;br /&gt;
This node stanza configuration key forces all telemetry to be held off until a local user on the receiver or a remote user over a link unkeys. There is one exception to this behavior: When an ID needs to be sent and there is activity coming from a linked node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
holdofftelem = 1   ;Set to 1 to hold off. Default is 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==idrecording===&lt;br /&gt;
The identifier message is stored in the node stanza using the idrecording key. It can be changed to a different call sign by changing the value to something different. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idrecording = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==idtalkover===&lt;br /&gt;
The ID talkover message is stored in the node stanza using the idtalkover setting. The purpose of idtalkover is to specify an alternate ID to use when the ID must be sent over the top of a user transmission, This can be a shorter voice ID or an ID in morse code. The value can be either a morse code identification string prefixed with |i, or the name of a sound file containing a voice identification message. When using a sound file, the default path for the sound file is /var/lib/asterisk/sounds. Example usages are as follows:&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = |iwa6zft/r   ; Morse Code ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
idtalkover = /var/lib/asterisk/sounds/myid   ; Voice ID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==inxlat===&lt;br /&gt;
The inxlat setting allows complete remapping of the funcchar and endchar digits to different digits or digit sequences.&lt;br /&gt;
inxlat acts on the digits received by the radio receiver on the node.&lt;br /&gt;
&lt;br /&gt;
Format: inxlat = funchars,endchars,passchars,dialtone&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
* funcchars is the digit or digit sequence to replace funcchar&lt;br /&gt;
* endchars is the digit or digit sequence to replace endchar&lt;br /&gt;
* passchars are the digits to pass through (can be used to block certain digits)&lt;br /&gt;
* dialtone is optional. Set to Y for dial tone on successful funcchars.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inxlat = #56,#57,0123456789ABCD ; string xlat from radio port to sys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==link_functions===&lt;br /&gt;
This [[Structure of Config Files#Settings to name other Stanzas|names (points to)]] the link_functions stanza.&lt;br /&gt;
&lt;br /&gt;
The link_functions setting directs the node to use a particular function stanza for functions dialed by users accessing the node via a link from another node. The traditional default is to point it to a function stanza named &amp;quot;functions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
link_functions = functions ; pointer to the Link Function stanza&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkmongain===&lt;br /&gt;
Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received. If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db. If linkmongain set to a positive number monitored audio will increase by the set amount in db. The value of linkmongain is in db. The default value is 0 db.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkmongain = -20   ; reduce link volume 20dB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linktolink===&lt;br /&gt;
When operating in duplex mode 0, this forces the radio interface to operate in full duplex mode, but keeps all the other duplex mode 0 semantics. This is used when a radio interface is connected to a multiport analog repeater controller. The linktolink= key can take two values: yes or no.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linktolink = yes   ; set to yes to enable. Default is no.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==linkunkeyct===&lt;br /&gt;
The linkunkeyct setting selects the courtesy tone to send when a connected remote node unkeys. The default is no courtesy tone when a remote node unkeys.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linkunkeyct = ct8  ; use courtesy tone 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==macro===&lt;br /&gt;
The marco key/value points to by the [[#Macro Stanza|Macro Stanza]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==nounkeyct===&lt;br /&gt;
The nounkeyct node stanza key completely disables the courtesy tone. This is useful for eliminating TX time in applications using simplex uplinks to repeaters on the repeater pair itself.  This practice is '''strongly''' discouraged.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nounkeyct = yes  ; :(&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==politeid===&lt;br /&gt;
The politeid setting specified the number of milliseconds prior to the end of the id cycle where the controller will attempt to play the ID in the tail when a user unkeys. If the controller does not get a chance to send the ID in the tail, the ID will be played over the top of the user transmission. Optional, default 30000.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
politeid = 30000   ; 30 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==propagate_dtmf===&lt;br /&gt;
Takes either yes or no. When set to yes, DTMF will be regenerated from out-of-band signalling or from from the receiver dtmf decoder whenever a function start character is NOT detected and command decoding has not begun. When set to no, no tones will be regenerated. The default for this setting is no.&lt;br /&gt;
This setting is meant to be used in conjunction with linktolink, inxlat, and outxlat when interfacing a radio port to a multiport analog repeater controller on an RF-linked system.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
propagate_dtmf = no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note'': There is a separate setting propagate_phonedtmf for use by dial-in (phone and dphone) users.&lt;br /&gt;
&lt;br /&gt;
==remotect===&lt;br /&gt;
The remotect setting allows the selection of the remote linked courtesy tone so that the users can tell there is a [[:Category:Remote Base|remote base]] connected locally.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remotect = ct3   ; use courtesy tone 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstfreq===&lt;br /&gt;
If rx tone burst operation is desired, specify the frequency in hertz of the desired tone burst. Setting to 0 (or not specifying) indicates no tone burst operation.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxburstfreq = 1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rxburstthreshold===&lt;br /&gt;
In rx toneburst mode, specifies the minimum signal to noise ratio in db that qualifies a valid tone.&lt;br /&gt;
Defaults to 16 (db).&lt;br /&gt;
&lt;br /&gt;
==rxbursttime===&lt;br /&gt;
For rx toneburst operation, specifies minimum amount of time that tone needs to be valid for recognition (in milliseconds). Defaults to 250.&lt;br /&gt;
&lt;br /&gt;
==rxchannel===&lt;br /&gt;
The rxchannel key/value pair selects the radio interface. There must be one (and only one) rxchannel per node. The selections are: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Value !! Description &lt;br /&gt;
|- &lt;br /&gt;
| dahdi/pseudo || No radio, used for hubs&lt;br /&gt;
|- &lt;br /&gt;
| SimpleUSB/usb_1999 || [[Simpleusb.conf|SimpleUSB (limited DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| Radio/usb_1999 || [[Usbradio.conf|USBRadio (full DSP)]] &lt;br /&gt;
|- &lt;br /&gt;
| voter/1990 || [[Voter.conf|RTCM]] &lt;br /&gt;
|- &lt;br /&gt;
| Pi/1 || Raspberry Pi PiTA &lt;br /&gt;
|- &lt;br /&gt;
| Dahdi/1 || PCI Quad card &lt;br /&gt;
|- &lt;br /&gt;
| Beagle/1 || BeagleBoard &lt;br /&gt;
|- &lt;br /&gt;
| USRP/127.0.0.1:34001:32001 || GNU Radio interface USRP&lt;br /&gt;
|}&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = dahdi/pseudo     ; No radio (hub)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': This is selecting what is known as (in Asterisk terminology) the channel driver.&lt;br /&gt;
&lt;br /&gt;
==scheduler===&lt;br /&gt;
This setting defines the scheduler stanza. The scheduler is used to execute commands at a particular time.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler = schedule   ; name scheduler to 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==sleeptime===&lt;br /&gt;
This sets the inactivity period in seconds for no signal on the repeater receiver before the system goes to sleep. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sleeptime = 300   ; go to sleep after 5 mins of no activity&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==startup_macro===&lt;br /&gt;
The startup_macro is executed once on system startup. Each node can have one startup macro defined in its node stanza.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
startup_macro = *31000*31001*31002   ; Connect to 1000, 1001 and 1002 at startup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailmessagelist===&lt;br /&gt;
The tailmessagelist setting allows a comma separated list of audio files to be specified for the tail message function. The tail messages will rotate from one to the next until the end of the list is reached at which point the first message in the list will be selected. If no absolute path name is specified, the directory var/lib/asterisk/sounds will be searched for the sound file. The file extension should be omitted.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagelist = welcome,clubmeeting,wx   ; rotate 3 tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note'': ID recording files must have extension gsm,ulaw,pcm, or wav. The extension is left off when it is defined as the example shows above. File extensions are used by Asterisk to determine how to decode the file. All ID recording files should be sampled at 8KHz. See [[Recording Audio Files|Recording audio files]]&lt;br /&gt;
&lt;br /&gt;
==tailmessagetime===&lt;br /&gt;
This sets the amount of time in milliseconds between tail messages. Tail Messages are played when a user unkeys on the repeater input at the point where the hang timer expires after the courtesy tone is sent.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailmessagetime = 900000   ; 15 minutes between tail messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tailsquashedtime===&lt;br /&gt;
If a tail message is &amp;quot;squashed&amp;quot; by a user keying up over the top of it, a separate time value can be loaded to make the tail message be retried at a shorter time interval than the standard tailmessagetime= setting. The tailsquashedtime= setting takes a value in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailsquashedtime = 300000   ; 5 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==totime===&lt;br /&gt;
This defines the time out timer interval. The value is in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
totime = 180000   ;  3 minutes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==unlinkedct===&lt;br /&gt;
The unlinkedct setting selects the courtesy tone to be used when the system has no remote nodes connected and is operating as a standalone repeater.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unlinkedct = ct2   ; use courtesy tone 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==wait-times===&lt;br /&gt;
Wait-times points to the [[#Wait Times Stanza|Wait Times Stanza]].&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name wait-times to 'wait-times'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Functions Stanza=&lt;br /&gt;
The functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#functions=|function=]] key/value pair.  Functions within this stanza are used to decode DTMF commands when accessing the node from its receiver.  This stanza is typically named 'functions'.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions   ; name the functions stanza 'functions'&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Link Functions Stanza=&lt;br /&gt;
The link functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#link_functions=|link_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node via a link from another node. The traditional usage is to point link_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a linked node and from the local node the same.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions        ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                ; name the functions stanza 'functions'&lt;br /&gt;
link_functions = my_link_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_link_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Phone Functions Stanza=&lt;br /&gt;
The phone functions stanza is a named stanza [[Structure of Config Files#Settings to name other Stanzas|pointed to]] by the [[#phone_functions=|phone_function=]] key/value pair.  Functions within this stanza are used decode DTMF commands when accessing the node from a telephone. The traditional usage is to point phone_functions= to the same stanza as named  by [[#functions=|functions=]] thereby having functions from a phone and from the local node the same. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions         ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = functions   ; use the same stanza &lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If a different set of either limited or more capable functions is desired:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions                  ; name the functions stanza 'functions'&lt;br /&gt;
phone_functions = my_phone_functions   ; use a different stanza&lt;br /&gt;
&lt;br /&gt;
[functions]&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[my_phone_functions]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See [[#DTMF Commands|DTMF Commands]] for the list of functions available.&lt;br /&gt;
&lt;br /&gt;
=Macro Stanza=&lt;br /&gt;
The marco stanza is named stanza pointed to by the [[#macro=|macro=]] key/value pair. Macros are DTMF shortcuts. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
macro=macro   ; use stanza names 'macros'&lt;br /&gt;
&lt;br /&gt;
[macro]&lt;br /&gt;
1 = *32000*32001     ; connect to nodes 2000 and 2001&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Stanza=&lt;br /&gt;
Here are [[Structure of Config Files|key/value pairs]] required to configure a remote base.&lt;br /&gt;
&lt;br /&gt;
==authlevel===&lt;br /&gt;
The authlevel= key is used to enable or disable login requirements for a remote base.&lt;br /&gt;
&lt;br /&gt;
* authlevel=0 Disables all access control (not recommended, unsecured)&lt;br /&gt;
* authlevel=1 Enables access control, and waits for key up before prompting for the access code&lt;br /&gt;
* authlevel=2 Enables access control, and prompts for the access code at the time of connection&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
autllevel = 0   ; allow all comers &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==civaddr===&lt;br /&gt;
civaddr= is used with ICOM band radios to set the CIV address. The value is a 2 digit hexadecimal number. If this key is not specified, then the CIV address will be set to the default of 88. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
civaddr = 98  ; set CIV to 98&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base functions===&lt;br /&gt;
functions= is a pointer to a remote base function stanza. &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
functions = functions-remote   ; name the functions stanza 'functions-remote'&lt;br /&gt;
&lt;br /&gt;
[functions-remote]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[#Remote Base Functions Stanza|Remote Base Functions Stanza]].&lt;br /&gt;
&lt;br /&gt;
==ioaddr===&lt;br /&gt;
ioaddr= refers to a parallel port I/O address. It is specified as a hexadecimal number with a 0x prefix. The parallel port is used when the Doug Hall RBI-1 interface is employed.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioaddr = 0x378   ; set RB-1 address&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ioport===&lt;br /&gt;
ioport= sets the serial port. On Linux Systems, these are typically path names to special files in the /dev directory.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ioport = /dev/ttyS1   ; Linux com1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Remote Base phone_functions===&lt;br /&gt;
phone_functions= is a pointer to a remote base phone function stanza. It is equivalent to phone_functions in the [[#Phone Functions Stanza|Phone Functions Stanza]] but provides a separate set of commands.  &lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote===&lt;br /&gt;
remote= sets the type of radio. It also ensures that the node will be defined as a remote base node and not a standard node.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote = xcat   ; set xcat interface&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Radio !! Value !! Comments&lt;br /&gt;
|-&lt;br /&gt;
| Dumb || y || Use for single channel remote base radios&lt;br /&gt;
|-&lt;br /&gt;
| FT-897 || ft897 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| TMG-707 || kenwood || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| IC-706 || ic706 || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|-&lt;br /&gt;
| TM-271 || tm271 || Must specify serial port using ioport=&lt;br /&gt;
|-&lt;br /&gt;
| Syntor Xcat || xcat || Must specify serial port using ioport=. Must specify civaddr using civaddr=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==remote_inact_timeout===&lt;br /&gt;
&lt;br /&gt;
Specifies the amount of time without keying from the link. Set to 0 to disable timeout.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_inact_timeout = 0   ; do not time out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout===&lt;br /&gt;
Session time out for remote base. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote_timeout = 0   ; do not timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_warning===&lt;br /&gt;
&lt;br /&gt;
==remote_timeout_freq===&lt;br /&gt;
&lt;br /&gt;
==Remote Base rxchannel===&lt;br /&gt;
This should contain the name of a usb radio interface which has been defined in [[usbradio.conf]] or a zaptel interface number if using a Quad Radio PCI Card.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rxchannel = usbRadio/usb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sample Remote Configuration==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[1234]&lt;br /&gt;
; Rx audio/signaling channel                                                                                   &lt;br /&gt;
rxchannel = Radio/usb&lt;br /&gt;
&lt;br /&gt;
; Serial port for control&lt;br /&gt;
ioport = /dev/ttyS1&lt;br /&gt;
&lt;br /&gt;
; Radio Type                &lt;br /&gt;
remote = ft897 &lt;br /&gt;
&lt;br /&gt;
; Function list from link                                          &lt;br /&gt;
functions = functions-remote  &lt;br /&gt;
&lt;br /&gt;
; Function list from phone         &lt;br /&gt;
phone_functions = functions-remote&lt;br /&gt;
&lt;br /&gt;
; Authorization level                                         &lt;br /&gt;
authlevel = 0      &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nodes Stanza=&lt;br /&gt;
The [nodes] stanza is a list of nodes, their IP addresses, port and &amp;quot;NONE&amp;quot; for non-remote base nodes. The nodes stanza is used to identify which node is mapped to which Internet call and to determine the destination to send the call to. If you are using automatic update for Allstar link (public) nodes, no Allstar link nodes should be defined here. Only place a definition for your local nodes, and private (off of allstar link) nodes or nodes behind the same NAT router here.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[nodes]&lt;br /&gt;
1000 = radio@127.0.0.1/1000,NONE               ; Private hub on this server&lt;br /&gt;
1001 = radio@host.domain.com/1001,NONE         ; Private node on another server&lt;br /&gt;
2501 = radio@127.0.0.1/2501,NONE               ; Public node on this server&lt;br /&gt;
2502 = radio@127.0.0.1/2502,NONE               ; Another public node on this server&lt;br /&gt;
2503 = radio@192.168.1.20:4570/2503,NONE       ; Public node behind the same NAT router&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The [nodes] stanza performs a function similar to an OS hosts file. When looking up node information, app_rpt looks in the [nodes] stanza first then searches (what could be called the Allstar DNS) the /var/lib/asterisk/rpt_extnodes file.&lt;br /&gt;
&lt;br /&gt;
=Telemetry Stanza=&lt;br /&gt;
This stanza is named by the telemetry= key/value pair. Telemetry entries can be shared across all nodes on the Asterisk/app_rpt server, or defined for each node. Can be a tone sequence, morse string, or a file as follows:&lt;br /&gt;
&lt;br /&gt;
* |t - Tone escape sequence:&lt;br /&gt;
** Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude). Single frequencies are created by setting freq1 or freq2 to zero.&lt;br /&gt;
* |m - Morse escape sequence:&lt;br /&gt;
**Sends Morse code at the '''telemetry amplitude and telemetry frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* |i - Morse ID escape sequence:&lt;br /&gt;
**Sends Morse code at the '''ID amplitude and ID frequency''' as defined in the [morse] section. Follow with an alphanumeric string.&lt;br /&gt;
* Path to sound file:&lt;br /&gt;
**Specify the path to a sound file on the server. Do not include file extension.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[telemetry]&lt;br /&gt;
ct1=|t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)&lt;br /&gt;
ct2=|t(660,880,150,2048)  &lt;br /&gt;
ct3=|t(440,0,150,4096) &lt;br /&gt;
ct4=|t(550,0,150,2048)&lt;br /&gt;
ct4=|t(2475,0,250,768)&lt;br /&gt;
ct5=|t(660,0,150,2048)&lt;br /&gt;
ct6=|t(880,0,150,2048)&lt;br /&gt;
ct7=|t(660,440,150,2048)&lt;br /&gt;
ct8=|t(700,1100,150,2048)&lt;br /&gt;
ct9=|t(1633,0,50,1000)(0,0,30,0)(1209,0,50,1000); &lt;br /&gt;
;remotetx=|t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000);&lt;br /&gt;
remotetx=|t(880,0,150,2048) &lt;br /&gt;
remotemon=|t(1209,0,50,2048) &lt;br /&gt;
cmdmode=|t(900,903,200,2048)&lt;br /&gt;
functcomplete=|t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)&lt;br /&gt;
patchup=rpt/callproceeding&lt;br /&gt;
patchdown=rpt/callterminated&lt;br /&gt;
&lt;br /&gt;
What the numbers mean,&lt;br /&gt;
 (000,000,010,000)&lt;br /&gt;
   |   |   |   |-------amplitude&lt;br /&gt;
   |   |   |-------------duration&lt;br /&gt;
   |   |-------------------Tone 2&lt;br /&gt;
   |-------------------------Tone 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Morse Stanza=&lt;br /&gt;
Morse code parameters, these are common to all nodes on a given Asterisk/app_rpt server.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[morse]&lt;br /&gt;
speed = 20            ; Approximate speed in WPM&lt;br /&gt;
frequency = 900       ; Morse Telemetry Frequency&lt;br /&gt;
amplitude = 4096      ; Morse Telemetry Amplitude&lt;br /&gt;
idfrequency = 746     ; Morse ID Frequency  &lt;br /&gt;
idamplitude = 768     ; Morse ID Amplitude&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wait Times Stanza=&lt;br /&gt;
This stanza is named by the [[#wait-times=|wait-times=]] key/value pair. The wait time stanza is used to set delay time between various node actions and their response. Values are in milliseconds.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wait-times = wait-times   ; name the stanza 'wait-times'&lt;br /&gt;
&lt;br /&gt;
[wait-times]                                                                                                 &lt;br /&gt;
telemwait = 2000&lt;br /&gt;
idwait = 500&lt;br /&gt;
unkeywait = 2000&lt;br /&gt;
calltermwait = 2000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Remote Base Memory Stanza=&lt;br /&gt;
Remote base memories are in the format of:&lt;br /&gt;
&lt;br /&gt;
memory = rxfreq,plfreq,txpower,offset,tone&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[memory]&lt;br /&gt;
00 = 146.580,100.0,m&lt;br /&gt;
01 = 147.030,103.5,m+t&lt;br /&gt;
02 = 147.240,103.5,m+t&lt;br /&gt;
03 = 147.765,79.7,m-t&lt;br /&gt;
04 = 146.460,100.0,m&lt;br /&gt;
05 = 146.550,100.0,m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Control States Stanza=&lt;br /&gt;
&lt;br /&gt;
There are several predefined nmemonics (keywords) used in the control state stanza to enable and disable the various features of the controller. These nmemonics correspond to the control operator command to be executed and most of these are the same groups of letters sent back when a single control operator command is executed on the controller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Nmemonic !! Description !! COP Method&lt;br /&gt;
|-&lt;br /&gt;
| rptena || Repeater Enable || 2&lt;br /&gt;
|-&lt;br /&gt;
| rptdis || Repeater Disable || 3&lt;br /&gt;
|-&lt;br /&gt;
| totena || Timeout Timer Enable || 7&lt;br /&gt;
|-&lt;br /&gt;
| totdis || Timeout Timer Disable || 8&lt;br /&gt;
|-&lt;br /&gt;
| apena || Autopatch Enable || 9&lt;br /&gt;
|-&lt;br /&gt;
| apdis || Autopatch Disable || 10&lt;br /&gt;
|-&lt;br /&gt;
| lnkena || Link Enable || 11&lt;br /&gt;
|-&lt;br /&gt;
| lnkdis || Link Disable || 12&lt;br /&gt;
|-&lt;br /&gt;
| skena || Scheduler Enable || 15&lt;br /&gt;
|-&lt;br /&gt;
| skdis || Scheduler Disable || 16&lt;br /&gt;
|-&lt;br /&gt;
| ufena || User Functions Enable || 17&lt;br /&gt;
|-&lt;br /&gt;
| ufdis || User Functions Disable || 18&lt;br /&gt;
|-&lt;br /&gt;
| atena || Alternate Hangtime Enable || 19&lt;br /&gt;
|-&lt;br /&gt;
| atdis || Alternate Hangtime Disable || 20&lt;br /&gt;
|-&lt;br /&gt;
| noice || No Incoming Connections Enable || 49&lt;br /&gt;
|-&lt;br /&gt;
| noicd || No Incoming Connections Disable || 50&lt;br /&gt;
|-&lt;br /&gt;
| slpen || Sleep Mode Enable || 51&lt;br /&gt;
|-&lt;br /&gt;
| slpds || Sleep Mode Disable || 52&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Schedule Stanza=&lt;br /&gt;
The scheduler can execute commands at certain times. For example for a net on Tuesday nights at 8 PM.&lt;br /&gt;
&lt;br /&gt;
Sample:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scheduler=schedule   ; name the stanza 'schedule'&lt;br /&gt;
&lt;br /&gt;
[schedule]                                                                      &lt;br /&gt;
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied                                                  &lt;br /&gt;
2 = 00 00 * * *   ; at midnight every day, execute macro 2.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DAQ List Stanza=&lt;br /&gt;
&lt;br /&gt;
=Meter Faces Stanza=&lt;br /&gt;
&lt;br /&gt;
=Alarms Stanza=&lt;br /&gt;
&lt;br /&gt;
[[Category:Node Configuration]]&lt;br /&gt;
[[Category:Config Files]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Echolink_Channel_Driver&amp;diff=1327</id>
		<title>Echolink Channel Driver</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Echolink_Channel_Driver&amp;diff=1327"/>
		<updated>2019-01-28T15:07:18Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added Node stanza section from drupal site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The chan_echolink channel driver allows AllStar nodes to register on and communicate with the EchoLink network.  The following information is originally from [http://docs.allstarlink.org/drupal/node/12 echolink.conf].&lt;br /&gt;
&lt;br /&gt;
=echolink.conf=&lt;br /&gt;
With the addition of the chan_echolink Asterisk channel driver direct connections to and from echolink to Asterisk/app_rpt are now supported. No other programs (e.g. rtpDir, or the link box) are required. With chan_echolink, EchoLink nodes become part of the AllStar link number space.&lt;br /&gt;
&lt;br /&gt;
From an app_rpt/Allstar node, Echolink connections look just like Allstar/App_rpt connections except the Echolink node numbers have been prefixed with a 3 and padded out to 7 digits with leading zeroes. For instance, if you want to connect to Echolink node 1234 on your app_rpt system you would dial *3 followed by 3001234. If you have a 6 digit Echolink node number 123456, you would dial *3 followed by 3123456. As you can see we have reserved Allstar node numbers with a leading 3 for the Echolink number space.&lt;br /&gt;
&lt;br /&gt;
For users originating from an Echolink node using Echolink supplied software, nothing changes for them, they just dial the 4 or 6 digit Echolink node number assigned to your app_rpt system and they get connected!&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
First, if you are behind a NAT router, please make sure the ports for Echolink service are correctly forwarded to your asterisk system. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port To Forward !! Service&lt;br /&gt;
|-&lt;br /&gt;
|  5198 || UDP&lt;br /&gt;
|-&lt;br /&gt;
|  5199 || UDP&lt;br /&gt;
|-&lt;br /&gt;
|  5200 || TCP&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, if you are running a firewall and not a consumer grade router which is configured to limit outbound access to a specific number of ports, you must enable UDP outbound access for 5198, and 5199, and TCP outbound access for port 5200. &lt;br /&gt;
&lt;br /&gt;
Current documentation on what ports need to be forwarded can be found on echolink.org in the [http://echolink.org/firewall-friendly.htm EchoLink, Firewalls, and Routers] section.&lt;br /&gt;
&lt;br /&gt;
To activate the Echolink channel driver, all that's required is a properly formatted configuration file. A base configuration file has been included with Both ACID and Limey Linux and is located in /usr/src/configs/examples/echolink. Copy this file to /etc/asterisk, and edit it to match your callsign, password and node number assignment from Echolink.org. The sample echolink.conf file is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[el0]&lt;br /&gt;
confmode=no           ; Conference mode&lt;br /&gt;
call=W6ABC-R	      ; Change this to your callsign!&lt;br /&gt;
pwd=XXXXX	      ; Change this to your password!&lt;br /&gt;
name=echolinkusername ; Change this to your real name!&lt;br /&gt;
qth=echolink-location ; Change this to your actual QTH!&lt;br /&gt;
email=foo@bar.com     ; Change this to your echolink registered email!&lt;br /&gt;
maxstns=20            ; The maximum 'at-once' connections allowed/supported (see ** below)&lt;br /&gt;
node=123456           ; Change this to the assigned 'ECHOLINK' node# &lt;br /&gt;
astnode=2345          ; Change this to your active Allstar node number!&lt;br /&gt;
context=radio-secure  ; The allstar context (leave the default unless you have good reason to change)&lt;br /&gt;
server1=server1.echolink.org&lt;br /&gt;
server2=server2.echolink.org  &lt;br /&gt;
server3=server3.echolink.org&lt;br /&gt;
rtcptimeout=10&lt;br /&gt;
recfile=/tmp/recorded.gsm&lt;br /&gt;
freq=145.000          ; Freq in MHz&lt;br /&gt;
tone=100.0            ; CTCSS Tone (0 for none)&lt;br /&gt;
lat=34.74978          ; Latitude in decimal degrees&lt;br /&gt;
lon=-92.27666         ; Longitude in decimal degrees&lt;br /&gt;
power=0    ; 0=0W, 1=1W, 2=4W,  3=9W, 4=16W, 5=25W, 6=36W,  7=49W,  8=64W,  9=81W  (Power in Watts)&lt;br /&gt;
height=0   ; 0=10' ,1=20',2=40',3=80' ,4=160' ,5=320' ,6=640' ,7=1280',8=2560',9=5120' (AMSL in Feet)&lt;br /&gt;
gain=7     ; Gain in db (0-9)&lt;br /&gt;
dir=0      ; 0=omni, 1=45deg, 2=90deg, 3=135deg, 4=180deg, 5=225deg, 6=270deg, 7=315deg, 8=360deg (Direction)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** How many stations will your node support ? The 2 most particular factors will be how much CPU/Memory power you have&lt;br /&gt;
AND how much bandwidth you have available. So you should not expect a bunch from cpu's under 1ghz or from memory below 1gb.&lt;br /&gt;
&lt;br /&gt;
Once you have made the changes, restart Asterisk, and within a few minutes time, the node should show up on the echolink.org website under [http://echolink.org Current Logins].&lt;br /&gt;
&lt;br /&gt;
== Node Stanza Keys ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Valid Values&lt;br /&gt;
!Default&lt;br /&gt;
|-&lt;br /&gt;
|eannmode&lt;br /&gt;
|0 = do not announce Echolink nodes at all, 1 = announce only the node number (Allstar-translated), 2 = announce only the call of the echolink station, 3 = announce both&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|echolinkdefault&lt;br /&gt;
|0 = telemetry output off, 1 = telemetry output on, 2 = timed telemetry output on command execution and for a short time thereafter, 3 = follow local telemetry mode&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|echolinkdynamic&lt;br /&gt;
|0 = disallow users to change current echolink telemetry setting with a COP command, 1 = Allow users to change the setting with a COP command&lt;br /&gt;
|1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Node Configuration]]&lt;br /&gt;
[[Category:Config Files]]&lt;br /&gt;
&lt;br /&gt;
==Controlling Access==&lt;br /&gt;
Echolink connections may be denied on a per-callsign basis. This is done by using the deny and permit key values in the above [el0] stanza. The default is to allow all connections if the permit and deny keywords are not present. If a permit is specified, then only the callsigns specified in the permit statement will be allowed to connect. If deny is specified, then the callsign(s) specified will be denied access and the connection will be terminated. Commas are used to delimit multiple callsigns for permit and deny keys. Wildcards are supported so that whole classes of connections can be rejected. Examples:&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
To deny w6xxx you would add the statement: '''deny=w6xxx'''&lt;br /&gt;
&lt;br /&gt;
To prohibit computer-based connections you would write: '''permit=*-*'''&lt;br /&gt;
&lt;br /&gt;
To allow access to only a select group of callsigns: '''permit=w6abc,w6def,...'''&lt;br /&gt;
&lt;br /&gt;
==Setting Audio Levels==&lt;br /&gt;
The audio gain going to and coming from the Echolink system may be set from within a Node Stanza as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
erxgain=-3.0      ; defaults to -3.0 db&lt;br /&gt;
etxgain=3.0       ; defaults to 3.0 db.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
The chan_echolink driver supports debugging output.  &lt;br /&gt;
&lt;br /&gt;
Debugging can be a activated with the command '''echolink debug level x'''  (Where x = 0-7.  0=off).  With debugging turned on, chan_echolink will output various messages to the terminal related to connecting to nodes, etc.&lt;br /&gt;
&lt;br /&gt;
In addition to turning on debugging, you can use the following commands to query your node's copy of the EchoLink database:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Description !! Command&lt;br /&gt;
|-&lt;br /&gt;
|  Dump EchoLink database || echolink dbdump&lt;br /&gt;
|-&lt;br /&gt;
|  Query EchoLink station by callsign || echolink dbget callsign &amp;lt;EchoLink Callsign&amp;gt;  (i.e., KG7QIN-R)&lt;br /&gt;
|-&lt;br /&gt;
|  Query EchoLink station by nodename || echolink dbget nodename &amp;lt;EchoLink node number&amp;gt;  (i.e., 407301)&lt;br /&gt;
|-&lt;br /&gt;
|  Query EchoLink station by ip address || echolink dbget ip &amp;lt;EchoLink node ip address&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=Miscellaneous=&lt;br /&gt;
==Connectivity Issues==&lt;br /&gt;
When debugging EchoLink connectivity issues with your AllStar node, remember the following:&lt;br /&gt;
*Never run the EchoLink application from your mobile device (cell phone/tablet/etc) using the '''same network''' as your AllStar node.  This will lead to problems with one or the other not being able to connect to/register/use the EchoLink servers or other EchoLink nodes.  (This also applies to running the Windows application on the same network as your AllStar node).&lt;br /&gt;
*If using the EchoLink application on your mobile device (cell phone/tablet/etc), make sure that the EchoLink application is '''not set to run/is not running in the background'''.  Having the application running in the background can cause problems with your AllStar node not being able to connect to/register/use the EchoLink servers or other EchoLink nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Note: Same network refers to the the Public IP address that both your AllStar node AND the device running the EchoLink application are using -- even if they are on different subnets internally.  The Public IP is what the EchoLink servers/network sees and uses when communicating with your node/device.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Caveats==&lt;br /&gt;
The chan_echolink driver currently:&lt;br /&gt;
&lt;br /&gt;
* Does not send its station info.&lt;br /&gt;
* Does not process chat text.&lt;br /&gt;
* Only recognizes a few remote text commands.&lt;br /&gt;
* Does not have a busy, deaf or mute feature.&lt;br /&gt;
* Does not have capacity limits.&lt;br /&gt;
* Does not have a banned or private station list.  ''(Access controls are rudimentary and on a per station basis.  See [[Echolink_Channel_Driver#Controlling_Access|Controlling Access]])''&lt;br /&gt;
* Does not have an admin list, only local 127.0.0.1 access.&lt;br /&gt;
* Does not have a customizable welcome text message.&lt;br /&gt;
* Does not support login or connect timeouts.&lt;br /&gt;
* Does not have a max TX time limit.&lt;br /&gt;
* Does not support activity reporting.&lt;br /&gt;
* Does not have event notifications.&lt;br /&gt;
* Does not have any stats.&lt;br /&gt;
* Does not have any callsign prefix restrictions.&lt;br /&gt;
* Does not announce on connects/disconnects.  ''(Connect/disconnect announcements come from app_rpt's telemetry using the 3xxxxxx node number format)''&lt;br /&gt;
* Does not have any loop detection.&lt;br /&gt;
* Allows &amp;quot;doubles&amp;quot; (newer version of the software are preventing this. Work in progress)&lt;br /&gt;
&lt;br /&gt;
==Remote Commands==&lt;br /&gt;
The following '''''remote text commands''''' can be sent to the chan_echolink driver running on your AllStar link node using ''netcat'':&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Function&lt;br /&gt;
|-&lt;br /&gt;
| o.conip &amp;lt;IPaddress&amp;gt;  || Request a connect&lt;br /&gt;
|-&lt;br /&gt;
| o.dconip &amp;lt;IPaddress&amp;gt; || Request a disconnect&lt;br /&gt;
|-&lt;br /&gt;
| o.rec || Turn on/off recording&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Node Configuration]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Standard_Node_vs_Remote_Base&amp;diff=1326</id>
		<title>Standard Node vs Remote Base</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Standard_Node_vs_Remote_Base&amp;diff=1326"/>
		<updated>2019-01-28T14:30:27Z</updated>

		<summary type="html">&lt;p&gt;N8THN: added content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Specifying a Standard Node and a Remote Base Node in rpt.conf ===&lt;br /&gt;
In the '''nodes stanza''', a remote base node is denoted when it is suffixed with a y option:&lt;br /&gt;
 [nodes] &lt;br /&gt;
 1234 = radio@127.0.0.1/1234,NONE,y ; Remote base node &lt;br /&gt;
 5678 = radio@127.0.0.1/5678,NONE ; Standard node&lt;br /&gt;
In the above example node 1234 is a remote base node, and node 5678 is a standard node.&lt;br /&gt;
[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Standard_Node_vs_Remote_Base&amp;diff=1325</id>
		<title>Standard Node vs Remote Base</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Standard_Node_vs_Remote_Base&amp;diff=1325"/>
		<updated>2019-01-28T14:29:25Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Whats_Required&amp;diff=1324</id>
		<title>Whats Required</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Whats_Required&amp;diff=1324"/>
		<updated>2019-01-28T14:16:11Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
In order to deploy a remote base node, the following items will be required:&lt;br /&gt;
# An assigned dedicated node number (e.g. allstarlink.org)&lt;br /&gt;
# A radio interface&lt;br /&gt;
# A radio interface cable&lt;br /&gt;
# A supported radio&lt;br /&gt;
# A new or existing PC host computer&lt;br /&gt;
&lt;br /&gt;
=== Requesting an Allstar Node Number for a Remote Base ===&lt;br /&gt;
Remote base nodes must be specifically requested from &amp;lt;nowiki&amp;gt;http://allstarlink.org&amp;lt;/nowiki&amp;gt;. When requesting a remote base node, check the box Rem. Base, and if the remote base is frequency agile, check the box Freq. Agile.&lt;br /&gt;
&lt;br /&gt;
=== Radio Interface ===&lt;br /&gt;
A free port on a radio interface such as the Quad Radio PCI card, or the URI adapter must be made available for use by the remote base&lt;br /&gt;
&lt;br /&gt;
=== Radio Interface Cable ===&lt;br /&gt;
A radio Interface cable must be constructed to interface the Radio to the Radio Interface. Links to schematics for a few of these cables are at the end of this book.&lt;br /&gt;
&lt;br /&gt;
=== Supported Radios ===&lt;br /&gt;
This is a list of remote base radios which are currently supported in app_rpt:&lt;br /&gt;
# Dumb (Any radio, with no remote tuning capability)&lt;br /&gt;
# Kenwood TMG-707A&lt;br /&gt;
# Kenwoood TM-271&lt;br /&gt;
# Yaesu FT-897D&lt;br /&gt;
# Icom IC-706&lt;br /&gt;
&lt;br /&gt;
=== Host Computer ===&lt;br /&gt;
Any PC running ACID or Limey Linux with a spare PCI Slot for the Quad Radio PCI card, or a spare USB port for the URI.&lt;br /&gt;
[[Category:Obsolete]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Whats_Required&amp;diff=1323</id>
		<title>Whats Required</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Whats_Required&amp;diff=1323"/>
		<updated>2019-01-28T14:15:26Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RTCM_Client&amp;diff=1322</id>
		<title>RTCM Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RTCM_Client&amp;diff=1322"/>
		<updated>2019-01-28T14:11:39Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Added Voter Buffer section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Radio Thin Client Module (RTCM) is commercially available hardware for interfacing radios to an AllStarLink computer.&lt;br /&gt;
&lt;br /&gt;
The Micro-Node RTCM and VOTER interfaces are typically used with AllStar in voting/simulcast applications. They MAY be used for ANY repeater interface application, through the chan_voter channel driver. The VOTER is the original through-hole board designed by Jim Dixon for this application. It is open-source, and the relevant Gerber files and BoM to build it are available. The [http://www.micro-node.com/thin-m1.shtml Micro-Node Radio Thin Client Module (RTCM)] is the commercial version of the VOTER. It uses surface mount parts (SMT), but is functionally equivalent to the original VOTER. In general, the two terms (RTCM/VOTER) are used interchangeably, as they operate the same, and use the same firmware (mostly, see below).&lt;br /&gt;
&lt;br /&gt;
This page will highlight some of the operational concerns, quirks, bugs, and other items of interest that relate to these interfaces. Much of the information has been gleaned off the AllStar mail list, comes from personal experience, or comes from notes in the firmware source code.&lt;br /&gt;
&lt;br /&gt;
=Testing=&lt;br /&gt;
RTCM's come preconfigured to login to [http://voter-demo-allstarlink.org voter-demo-allstarlink.org] for out of the box testing.&lt;br /&gt;
&lt;br /&gt;
=Factory Reset=&lt;br /&gt;
A factory reset can be performed by setting SW 1 down and then applying power to the RTCM. Wait for the green LED to stop blinking, power off and set SW 1 back up. &lt;br /&gt;
&lt;br /&gt;
=Firmware=&lt;br /&gt;
The firmware in the RTCM and VOTER is the same, except it is compiled for the specific dsPIC that is installed in each. As such, the firmware is specific to the VOTER or the RTCM, and is NOT interchangeable (it won't boot in the wrong device). Firmware for the RTCM is denoted by &amp;quot;smt&amp;quot; in the filename.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The VOTER uses a dsPIC33FJ128GP802 and the RTCM uses a dsPIC33FJ128GP804.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are '''two parts''' to the firmware, a bootloader, and then the actual firmware file. The bootloader starts when power is applied, and allows you to talk to the dsPIC and load new firmware files over ethernet. If the bootloader is not intercepted by the loading tool, it will continue to boot the current firmware file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All new boards will need to have the bootloader installed first, followed by a firmware file. You '''can''' load a firmware file directly (.hex) in to the dsPIC, but then you will not have any of the bootloader remote loading features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current bootloader (.cof file) is available here: https://github.com/AllStarLink/voter/tree/master/voter-bootloader (the -smt file is for the RTCM). It needs to be loaded with a PICKit programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Current firmware (.cry file) is available here: https://github.com/AllStarLink/voter/tree/master/board-firmware . They are loaded with the EBLEX C30 Programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are multiple &amp;quot;flavors&amp;quot; of firmware available. See below for further explanation of what all the options mean.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The DSPBEW versions have Jim's DSP/BEW feature enabled. Note that due to the size of this feature, the diagnostics menu is NOT available in this version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The CHUCK versions have Chuck Henderson's RSSI and Squelch modifications enabled. This is probably the version that most user's will want to use in production.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compiling Environment==&lt;br /&gt;
If you look in the [https://github.com/AllStarLink/voter/blob/master/votersystem.pdf votersystem.pdf], you will find a procedure to modify and load the bootloader in to the dsPIC of a VOTER board. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is an important step '''missing''' in that procedure, which is covered below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In addition, the old links for the MPLAB software are dead, so let's update this info and get you going.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Currently (Feb 2017), you can get the required software from:&lt;br /&gt;
:http://www.microchip.com/development-tools/downloads-archive&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download MPLAB IDE 32-bit Windows v8.66:&lt;br /&gt;
:http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_v8_66.zip&lt;br /&gt;
:http://dvswitch.org/files/AllStarLink/Voter/MPLAB_IDE_v8_66.zip&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download MPLAB C Compiler for PIC24 and dsPIC DSCs v3.31 '''NOT v.3.25''':&lt;br /&gt;
:http://ww1.microchip.com/downloads/en/DeviceDoc/mplabc30-v3_31-windows-installer.exe&lt;br /&gt;
:http://dvswitch.org/files/AllStarLink/Voter/mplabc30-v3_31-windows-installer.exe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optionally, install Windows Virtual PC and XP Mode. This is getting to be pretty old software, so running it under XP Mode may be a good idea, so we can keep it isolated (install it in a virtual machine). It does run fine in Windows 7.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To setup the compile/build environment, follow these steps:&lt;br /&gt;
*Run the MPLAB IDE installer. You don't need to install the HI-TECH C Compiler at the end (click no)&lt;br /&gt;
*Run the MPLAB C Compiler installer&lt;br /&gt;
*Select Legacy Directory Name&lt;br /&gt;
*'''Select Lite Compiler'''&lt;br /&gt;
*Go to: https://github.com/AllStarLink&lt;br /&gt;
*Follow the links to: voter --&amp;gt; Clone or Download --&amp;gt; Download Zip. That will get you voter-master.zip which is a download of the whole VOTER tree from GitHub.&lt;br /&gt;
*Extract it somewhere (ie. in the XP Mode Virtual PC)&lt;br /&gt;
*Launch the MPLAB IDE&lt;br /&gt;
*Go to Configure --&amp;gt; Settings --&amp;gt; Projects and de-select one-to-one project mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bootloader==&lt;br /&gt;
If you need to load the bootloader in to a fresh board, you will need to follow these steps:&lt;br /&gt;
*Go to Project --&amp;gt; Open --&amp;gt; voter-bootloader.mcp --&amp;gt; Open (it is in the voter-bootloader folder of the GitHub source)&lt;br /&gt;
*Go to File --&amp;gt; Import --&amp;gt; voter-bootloader --&amp;gt; ENC_C30.cof --&amp;gt; Open '''This step is missing from the original procedure.'''&lt;br /&gt;
*Remove JP7 on the VOTER Board. This is necessary to allow programming by the PICKit2/PICKit3 device.&lt;br /&gt;
*Attach the PICKIT2/PICKit3 device to J1 on the VOTER board. Note that Pin 1 is closest to the power supply modules (as indicated on the board).&lt;br /&gt;
*If you have not already selected a programming device, go to Programmer --&amp;gt; Select Device and choose PICKit3 (or PICKit2, depending on what you are using).&lt;br /&gt;
*Go to Programmer --&amp;gt; Program. This will program the bootloader firmware into the PIC device on the board.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to change the default IP address from 192.168.1.11 in the bootloader:&lt;br /&gt;
*Select View --&amp;gt; Program Memory (from the top menu bar)&lt;br /&gt;
*Hit Control-F (to &amp;quot;find&amp;quot;) and search for the digits &amp;quot;00A8C0&amp;quot;.&lt;br /&gt;
*These should be found at memory address &amp;quot;03018&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;A8C0&amp;quot; at 03018 represents the hex digits C0 (192) and A8 (168) which are the first two octets of the IP address. The six digits to enter are 00 then the SECOND octet of the IP address in hex then the FIRST octet of the IP address in hex.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;0B01&amp;quot; at 0301A represents the hex digits 0B (11) and 01 (1) which are the second two octets of the IP address. The six digits to enter are 00 then the FOURTH octet of the IP address in hex then the THIRD octet of the IP address in hex.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have modified the address to your desired IP, follow the programming procedure (above).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Firmware==&lt;br /&gt;
To compile the firmware (if you want to make custom changes):&lt;br /&gt;
*Go to Project --&amp;gt; Open --&amp;gt; navigate to board-firmware and open the .mcp file for the flavor of firmware you want to compile. They are in the board-firmware folder of the GitHub source.&lt;br /&gt;
*'''NOTE''': the .mcp files with the &amp;quot;smt&amp;quot; suffix are for the RTCM (built with SMT parts). The non-smt files are for the ORIGINAL through-hole VOTER boards. The difference is that the VOTER uses a dsPIC33FJ128GP802 and the RTCM uses a dsPIC33FJ128GP804.&lt;br /&gt;
*Go to Project --&amp;gt; Build Configuration and select &amp;quot;Release&amp;quot;. This may not be necessary (I don't believe that option is used in the firmware), but it removes the compiler option of __DEBUG being passed, so theoretically it would build &amp;quot;normal&amp;quot; firmware.&lt;br /&gt;
*Go to Configure --&amp;gt; Select Device and choose the appropriate device for your board from the Device list. If you don't select the right one, the board will not boot. Select dsPIC33FJ128GP802 for the VOTER, and dsPIC33FJ128GP804 for the RTCM.&lt;br /&gt;
*Now, if you go to Project --&amp;gt; Build All it should compile everything and show you &amp;quot;Build Succeeded&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A .cry file should be in the board-firmware folder. You can load this with the ENC Loader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is also a .hex file in there that you could load with a programmer... but that would wipe the bootloader... so don't do that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Chuck Squelch==&lt;br /&gt;
If you want to enable &amp;quot;Chuck Squelch&amp;quot;, open the HardwareProfile.h and un-comment #define CHUCK. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to go down to Line 291 in Voter.c (right click on the window, go to Properties --&amp;gt; &amp;quot;C&amp;quot; File Types --&amp;gt; Line Numbers) and tack on CHUCK after 1.60 (the current version number) so that when you load this firmware, the version will be shown as 1.51CHUCK, and you'll know that Chuck Squelch is compiled in. We should probably make that more automagic in the future...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DSP/BEW==&lt;br /&gt;
If you want to compile the DSPBEW version, open the DSPBEW project file instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=DSP/BEW Firmware Version=&lt;br /&gt;
DSP BEW Firmware is mutually exclusive with the diagnostic menu. There is not enough space for both, if you load the DSP/BEW firmware, you will '''NOT''' have a diag menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BEW stands for Baseband Examination Window.&lt;br /&gt;
&lt;br /&gt;
Typically, the discriminator of an FM communications receiver produces results containing audio spectrum from the &amp;quot;sub-audible&amp;quot; range (typically &amp;lt; 100 Hz) to well above frequencies able to be produced by modulating audio. These higher frequencies can be utilized to determine signal quality, since they can only contain noise (or no noise, if a sufficiently strong signal is present).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For receivers (such as the Motorola Quantar, etc) that do not provide sufficient spectral content at these &amp;quot;noise&amp;quot; frequencies (for various reasons), The &amp;quot;DSP/BEW (Digital Signal Processor / Baseband Examination Window)&amp;quot; feature of the RTCM firmware may be utilized. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These receivers are perfectly capable of providing valid &amp;quot;noise&amp;quot; signal with no modulation on the input of the receiver, but with strong modulation (high frequency audio and high deviation), it severely interferes with proper analysis of signal strength.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This feature provides a means by which a &amp;quot;Window&amp;quot; of baseband (normal audio range) signal is examined by a DSP and a determination of whether or not sufficient audio is present to cause interference of proper signal strength is made. During the VERY brief periods of time when it is determined that sufficient audio is present to cause interference, the signal strength value is &amp;quot;held&amp;quot; (the last valid value previous to the time of interference) until such time that the interfering audio is no longer present.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The DSP/BEW feature is selectable, and '''should not''' be used for a receiver that does not need it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A note on the Motorola SLR5700 per VE7FET. DSP/BEW definitely makes a difference on what AllMon reports for the signal strength of received signals. It is less reactive when DSP/BEW = 1 than with it set to 0. We'll have to see what the real world trials show. It might be better to leave it off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Chuck Squelch=&lt;br /&gt;
&amp;quot;Chuck Squelch&amp;quot; are a couple firmware changes made by Chuck Henderson, WB9UUS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pre-compiled firmware versions including this option are available on [https://github.com/AllStarLink/voter/tree/master/board-firmware GitHub]. See above on how it is enabled/compiled, if you are rolling your own firmware modifications.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
One of the changes fixes an issue with weak signals producing RSSI readings all over the place. It is caused by a 16 bit value that was overflowing (it is the RSSI change in the firmware). It results in rock-solid RSSI values being reported, even on barely or non-readable signals. '''This change will likely be rolled in to a permanent fix in a future firmware release.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other firmware change changes how the squelch responds (looks at the noise in the last two audio samples) and makes the &amp;quot;Micor squelch&amp;quot; action work better.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may also want to consider the following changes in [[Voter.conf|/etc/asterisk/voter.conf]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;Comment out:&lt;br /&gt;
;thresholds =&lt;br /&gt;
&lt;br /&gt;
;and set:&lt;br /&gt;
linger = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Squelch Issues=&lt;br /&gt;
*If anyone is off frequency a little bit, that will make the voice talk off worse. Double check that the repeater and the users are all on frequency.&lt;br /&gt;
*Don't use narrow bandwidth on the repeater receiver. &lt;br /&gt;
*Make sure that the discriminator audio is not rolled off even a little bit at the high end. There should not be resistors in series or capacitors to ground between the discriminator chip output pin and the voter board input, for best results.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Motorola Quantar==&lt;br /&gt;
Some things to consider:&lt;br /&gt;
*Install JP1 on the Quantar's RTCM. The squelch should calibrate at around 4 blinks rather than the 12 blinks or so without JP1.&lt;br /&gt;
*Be sure you've done the diode and squelch calibration with the actual attached radio (no antenna). &lt;br /&gt;
*The Quantar firmware should be 20.14.48 as later versions have better noise output. &lt;br /&gt;
*Try the &amp;quot;Chuck Squelch&amp;quot; RTCM version.&lt;br /&gt;
*Each RTCM should have 3 to 5 turns past threshold to prevent the squelch form being too loose. Somewhere around the 350 level seems about right. Chuck Squelch seems to need fewer turns but YMMV.&lt;br /&gt;
*Don't &amp;quot;and&amp;quot; CTCSS with squelch. That may override the RTCM's squelch detection. Compare with CTCSS on and off to see effect if any.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=RTCM/VOTER LED's=&lt;br /&gt;
RX LED on the RTCM/VOTER will flash (same rate as ACT LED) if you have External CTCSS enabled, and the received signal has the wrong (or no) valid PL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Menus=&lt;br /&gt;
==Main Menu==&lt;br /&gt;
This is what a typical Main Menu looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Select the following values to View/Modify:&lt;br /&gt;
&lt;br /&gt;
1  - Serial # (0000) (which is MAC ADDR 00:04:A3:00:00:00)&lt;br /&gt;
2  - VOTER Server Address (FQDN) (44.128.1.1)&lt;br /&gt;
3  - VOTER Server Port (667),  4  - Local Port (Override) (0)&lt;br /&gt;
5  - Client Password (password1),  6  - Host Password (hostpass1)&lt;br /&gt;
7  - Tx Buffer Length (800)&lt;br /&gt;
8  - GPS Data Protocol (0=NMEA, 1=TSIP) (1)&lt;br /&gt;
9  - GPS Serial Polarity (0=Non-Inverted, 1=Inverted) (1)&lt;br /&gt;
10 - GPS PPS Polarity (0=Non-Inverted, 1=Inverted, 2=NONE) (0)&lt;br /&gt;
11 - GPS Baud Rate (9600)&lt;br /&gt;
12 - External CTCSS (0=Ignore, 1=Non-Inverted, 2=Inverted) (0)&lt;br /&gt;
13 - COR Type (0=Normal, 1=IGNORE COR, 2=No Receiver) (0)&lt;br /&gt;
14 - Debug Level (0)&lt;br /&gt;
15  - Alt. VOTER Server Address (FQDN) ()&lt;br /&gt;
16  - Alt. VOTER Server Port (Override) (0)&lt;br /&gt;
17  - DSP/BEW Mode (0)&lt;br /&gt;
18 - &amp;quot;Duplex Mode 3&amp;quot; (0=DISABLED, 1-255 Hang Time) (1/10 secs) (0)&lt;br /&gt;
19 - Simulcast Launch Delay (0) (approx 200 ns, 5 = 1us, &amp;gt; 0 to ENA SC)&lt;br /&gt;
97 - RX Level,  98 - Status,  99 - Save Values to EEPROM&lt;br /&gt;
i - IP Parameters menu, o - Offline Mode Parameters menu&lt;br /&gt;
q - Disconnect Remote Console Session, r - reboot system, d - diagnostics&lt;br /&gt;
&lt;br /&gt;
Enter Selection (1-27,97-99,r,q,d) :&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==IP Parameters Menu==&lt;br /&gt;
This is what a typical IP Parameters Menu looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IP Parameters Menu&lt;br /&gt;
&lt;br /&gt;
Select the following values to View/Modify:&lt;br /&gt;
&lt;br /&gt;
1  - (Static) IP Address (44.128.1.2)&lt;br /&gt;
2  - (Static) Netmask (255.255.255.0)&lt;br /&gt;
3  - (Static) Gateway (44.128.1.254)&lt;br /&gt;
4  - (Static) Primary DNS Server (44.128.1.254)&lt;br /&gt;
5  - (Static) Secondary DNS Server (0.0.0.0)&lt;br /&gt;
6  - DHCP Enable (0)&lt;br /&gt;
7  - Telnet Port (23)&lt;br /&gt;
8  - Telnet Username (admin)&lt;br /&gt;
9  - Telnet Password (radios)&lt;br /&gt;
10 - DynDNS Enable (0)&lt;br /&gt;
11 - DynDNS Username (wb6nil)&lt;br /&gt;
12 - DynDNS Password (radios42)&lt;br /&gt;
13 - DynDNS Host (voter-test.dyndns.org)&lt;br /&gt;
14 - BootLoader IP Address (192.168.1.10) (OK)&lt;br /&gt;
15 - Ethernet Duplex (0=Half, 1=Full) (1)&lt;br /&gt;
99 - Save Values to EEPROM&lt;br /&gt;
x  - Exit IP Parameters Menu (back to main menu)&lt;br /&gt;
q  - Disconnect Remote Console Session, r - reboot system&lt;br /&gt;
&lt;br /&gt;
Enter Selection (1-14,99,c,x,q,r) :&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Offline Parameters Menu==&lt;br /&gt;
This is what a typical Offline Parameters Menu looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OffLine Mode Parameters Menu&lt;br /&gt;
&lt;br /&gt;
Select the following values to View/Modify:&lt;br /&gt;
&lt;br /&gt;
1  - Offline Mode (0=NONE, 1=Simplex, 2=Simplex w/Trigger, 3=Repeater) (3)&lt;br /&gt;
2  - CW Speed (400) (1/8000 secs)&lt;br /&gt;
3  - Pre-CW Delay (4000) (1/8000 secs)&lt;br /&gt;
4  - Post-CW Delay (4000) (1/8000 secs)&lt;br /&gt;
5  - CW &amp;quot;Offline&amp;quot; (ID) String (WB6NIL)&lt;br /&gt;
6  - CW &amp;quot;Online&amp;quot; String (OK)&lt;br /&gt;
7  - &amp;quot;Offline&amp;quot; (CW ID) Period Time (6000) (1/10 secs)&lt;br /&gt;
8  - Offline Repeat Hang Time (15) (1/10 secs)&lt;br /&gt;
9  - Offline CTCSS Tone (0.0) Hz&lt;br /&gt;
10 - Offline CTCSS Level (0-32767) (3000)&lt;br /&gt;
11 - Offline De-Emphasis Override (0=NORMAL, 1=OVERRIDE) (0)&lt;br /&gt;
99 - Save Values to EEPROM&lt;br /&gt;
x  - Exit OffLine Mode Parameter Menu (back to main menu)&lt;br /&gt;
q  - Disconnect Remote Console Session, r - reboot system&lt;br /&gt;
&lt;br /&gt;
Enter Selection (1-9,99,c,x,q,r) :&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Configuration Options=&lt;br /&gt;
==Main Menu Options==&lt;br /&gt;
===Serial #===&lt;br /&gt;
Sets the serial number for the RTCM/VOTER.&lt;br /&gt;
*This sets the MAC address of the unit.&lt;br /&gt;
*Each unit must have a unique serial number on your network segment.&lt;br /&gt;
&lt;br /&gt;
===VOTER Server Address (FQDN)===&lt;br /&gt;
This is the DNS name or IP address of the Asterisk server you are connecting to.&lt;br /&gt;
&lt;br /&gt;
===VOTER Server Port===&lt;br /&gt;
This is the UDP port that the Asterisk server is listening on for clients.&lt;br /&gt;
*Typically it is left at the default of port 667.&lt;br /&gt;
*'''MUST''' match the ''port'' directive in ''voter.conf''.&lt;br /&gt;
&lt;br /&gt;
===Local Port (Override)===&lt;br /&gt;
Sets the local unit UDP port to be something different.&lt;br /&gt;
*This is typically not used and left at default (0).&lt;br /&gt;
&lt;br /&gt;
===Client Password===&lt;br /&gt;
This is the '''unique''' password for this unit.&lt;br /&gt;
*Every unit '''must''' have a '''unique''' password.&lt;br /&gt;
*'''MUST''' match the password on the client configuration line in ''voter.conf''.&lt;br /&gt;
&lt;br /&gt;
===Host Password===&lt;br /&gt;
This is the password of the Asterisk server.&lt;br /&gt;
*Configured with the ''password'' directive in ''voter.conf''.&lt;br /&gt;
&lt;br /&gt;
===Tx Buffer Length===&lt;br /&gt;
This is the size of the TX buffer from the RTCM/VOTER to the Asterisk server.&lt;br /&gt;
*Tuned parameter, set via the tuning instructions based on network configuration.&lt;br /&gt;
&lt;br /&gt;
===GPS Data Protocol (0=NMEA, 1=TSIP)===&lt;br /&gt;
Type of GPS connected.&lt;br /&gt;
*NMEA for all non-Trimble GPS units.&lt;br /&gt;
*TSIP to use with Trimble GPS that use Trimble Serial Interface Protocol (TSIP).&lt;br /&gt;
&lt;br /&gt;
===GPS Serial Polarity (0=Non-Inverted, 1=Inverted)===&lt;br /&gt;
GPS dependent setting. &lt;br /&gt;
*Depends on if you are sending TTL or RS-232 data, adjust as needed.&lt;br /&gt;
&lt;br /&gt;
===GPS PPS Polarity (0=Non-Inverted, 1=Inverted, 2=NONE)===&lt;br /&gt;
GPS dependent setting. &lt;br /&gt;
*Depends on if you are sending TTL or RS-232 data for the PPS signal, adjust as needed.&lt;br /&gt;
*If not using GPS or configuring as a mixed client, set to 2 (None).&lt;br /&gt;
&lt;br /&gt;
===GPS Baud Rate===&lt;br /&gt;
Communication speed for the GPS, default is 9600.&lt;br /&gt;
&lt;br /&gt;
===External CTCSS (0=Ignore, 1=Non-Inverted, 2=Inverted)===&lt;br /&gt;
If you are using the CTCSS input from an external CTCSS decoder, adjust this for your logic polarity, or set to 0 (ignore) if not used.&lt;br /&gt;
&lt;br /&gt;
===COR Type (0=Normal, 1=IGNORE COR, 2=No Receiver)===&lt;br /&gt;
Typically, this is left at Normal. &lt;br /&gt;
*Set to 1 (Ignore COR), if you are using the External CTCSS input.&lt;br /&gt;
&lt;br /&gt;
===Debug Level===&lt;br /&gt;
Set the Debug Level, if needed, based on the [[#Debug Options | Debug Options]] below.&lt;br /&gt;
&lt;br /&gt;
===Alt. VOTER Server Address (FQDN)===&lt;br /&gt;
If you are using redundant Asterisk servers, set the IP/DNS address of the redundant server here.&lt;br /&gt;
&lt;br /&gt;
===Alt. VOTER Server Port (Override)===&lt;br /&gt;
If the redundant Asterisk server UDP port is not 667, set it here.&lt;br /&gt;
&lt;br /&gt;
===DSP/BEW Mode===&lt;br /&gt;
If the firmware supports DSP/BEW Mode, set this to 1 to enable it, if desired.&lt;br /&gt;
*DSP/BEW firmware versions use extra firmware space and will make the diagnostic menu unavailable.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Duplex Mode 3&amp;quot; (0=DISABLED, 1-255 Hang Time) (1/10 secs)===&lt;br /&gt;
If you are using Duplex Mode 3, set the hang time here to enable the option. Most users leave this disabled.&lt;br /&gt;
&lt;br /&gt;
===Simulcast Launch Delay===&lt;br /&gt;
If you are using Simulcast, set your launch delay here.&lt;br /&gt;
&lt;br /&gt;
===RX Level===&lt;br /&gt;
This opens the RX Level tuning screen to adjust the receive audio level from the repeater.&lt;br /&gt;
&lt;br /&gt;
===Status===&lt;br /&gt;
This opens the status menu, showing some of the current operating parameters.&lt;br /&gt;
&lt;br /&gt;
===Save Values to EEPROM===&lt;br /&gt;
Save all the options to non-volatile EEPROM.&lt;br /&gt;
*Make sure to save after you make any changes.&lt;br /&gt;
&lt;br /&gt;
===IP Parameters menu===&lt;br /&gt;
Open the IP Parameters Menu.&lt;br /&gt;
&lt;br /&gt;
===Offline Mode Parameters menu===&lt;br /&gt;
Open the Offline Mode Parameters Menu.&lt;br /&gt;
&lt;br /&gt;
===Disconnect Remote Console Session===&lt;br /&gt;
If you are connected via Telnet, this will exit your session.&lt;br /&gt;
&lt;br /&gt;
===Reboot System===&lt;br /&gt;
Reboot the VOTER/RTCM.&lt;br /&gt;
*This should be done after making configuration changes.&lt;br /&gt;
*Some setting changes require a reboot to become effective.&lt;br /&gt;
&lt;br /&gt;
===Diagnostics===&lt;br /&gt;
Open the Diagnostics Menu.&lt;br /&gt;
*Diagnostics are unavailable if you are using DSP/BEW firmware.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Network Information=&lt;br /&gt;
==RTCM/VOTER Bandwidth==&lt;br /&gt;
Assuming ulaw... The RTCM will require approximately 80kbps of bandwidth for continual usage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Quality==&lt;br /&gt;
Your IP Network quality is important. You may wish to add a rule in your routers to prioritize traffic on UDP port 667 so that RTCM audio is given priority over other &lt;br /&gt;
traffic. Also see the [[#Debug Options]] below for notes on how to tag your packets with ToS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RX/TX Buffers are NOT Both Millisecond Values== &lt;br /&gt;
You might assume an RX buffer (in voter.conf) of 120ms would be equivalent of a TX buffer (in the RTCM) of 120ms. That is not the case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The TX buffer is a number of 125 '''microsecond''' intervals, where the RX buffer is in milliseconds. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you follow the buffer setting instructions, you should be fine, in most cases. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Debug Options=&lt;br /&gt;
The VOTER/RTCM firmware supports some additional debugging information that can be turned on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the source code, the different Debug Options are listed as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1 - Alt/Main Host change notifications&lt;br /&gt;
2 - Ignore HWlock (GGPS only)&lt;br /&gt;
4 - GPS/PPS Failure simulation (GGPS only)&lt;br /&gt;
8 - POCSAG H/W output disable (GGPS only)&lt;br /&gt;
16 - IP TOS Class for Ubiquiti&lt;br /&gt;
32 - GPS Debug&lt;br /&gt;
64 - Fix GPS 1 second off&lt;br /&gt;
128 - Fix GPS 1 month off (WTF,O??)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Not sure what they all do, but that is what they are. Here are the most common ones used:&lt;br /&gt;
*&amp;quot;Alt/Main Host change notifications&amp;quot; &lt;br /&gt;
**shows when the connection to the Asterisk server changes state.&lt;br /&gt;
*&amp;quot;IP TOS Class for Ubiquity&amp;quot; &lt;br /&gt;
**marks the IP headers from the RTCM/VOTER '''TO''' the network with ToS C0/DSCP 48 (UBNT shows this as 802.1p Class 6 (Voice &amp;lt;10mS latency). Other sources show this as a Network Control TOS.) If you enable this, you also will want to have &amp;quot;utos=y&amp;quot; in your voter.conf to mark the packets from the network '''TO''' the RTCM/VOTER. We will probably change this option to mark the packets by default in a future version.&lt;br /&gt;
*&amp;quot;GPS Debug&amp;quot; &lt;br /&gt;
**will print NMEA or TSIP debug strings from the connected GPS.&lt;br /&gt;
*&amp;quot;Fix GPS 1 second off&amp;quot;&lt;br /&gt;
**this is for NMEA GPS '''only'''. It will add one second to the time.&lt;br /&gt;
*&amp;quot;Fix GPS 1 month off (WTF,O??)&amp;quot;&lt;br /&gt;
**this is for TSIP GPS '''only'''. It will effectively add a month to the date. The mktime function normally needs one month subtracted from the raw month it converts to a time/date string. Maybe there are some GPS out there that do that automatically? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The way this works is you add together the options you want to enable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Want to enable GPS Debug and IP ToS, set debug to 48.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just want to turn on GPS Debug, set debug to 32.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just want ToS turned on, set debug to 16.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Un-documented Menus/Features=&lt;br /&gt;
*Menu 96 - If firmware compiled with DUMPENCREGS enabled, Menu 96 looks like it dumps the registers from the ENC (Ethernet) chip?&lt;br /&gt;
&lt;br /&gt;
*Menu 111 - show the &amp;quot;hidden&amp;quot; option values (normally they should all be 0).&lt;br /&gt;
&lt;br /&gt;
*Menu 11780 - set the &amp;quot;Elkes&amp;quot; value. Developed for Pete Elkes, this is for solar type sites. It shuts off the Tx after a period of no Rx activity.&lt;br /&gt;
&lt;br /&gt;
*Menu 1103 - set the &amp;quot;Glaser&amp;quot; timer value? No idea what this does.&lt;br /&gt;
&lt;br /&gt;
*Menu 1170 - set &amp;quot;Sawyer Mode&amp;quot;. Developed for Tim Sawyer use on Yaesu VXR5000 repeater. It modifies de-ephasis behavior when on/off line. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Audio=&lt;br /&gt;
The RTCM/VOTER is totally flexible regarding emphasis. Although the way it is set is completely obscure. It tries to automatically do the right thing for you, which is great most of the time. But when it’s not, it's hard to know what is going on. &lt;br /&gt;
&lt;br /&gt;
If you are changing the COR Type settings, or nodeemp in voter.conf, make sure you save/reboot the RTCM/VOTER every time you make a change... changes are '''not''' effective until the RTCM/VOTER reboots!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voting==&lt;br /&gt;
Before we get in to the different ways audio is routed, there is an important consideration you need to make if you are using the RTCM/VOTER for voting. &lt;br /&gt;
&lt;br /&gt;
The way the voting process works, it needs '''discriminator audio''' to determine the signal to noise level from each satellite receiver. As such, you will need to be feeding discriminator audio in to the RX audio pin, so that the hardware/software can vote properly. That means you also need to let the hardware/software do the squelch action.&lt;br /&gt;
&lt;br /&gt;
If you need RX CTCSS, you'll need to feed logic from an external CTCSS decoder in to the CTCSS input pin.&lt;br /&gt;
&lt;br /&gt;
Also, don't disable COR in the RTCM/VOTER... it will cause it to disable the squelch and it will report an RSSI of 255 (full quieting) for all received signals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Receiver De-emphasis==&lt;br /&gt;
On the RX side the COR Type setting in the RTCM/VOTER determines whether the de-emphasis filter is used for RX audio. 0=Normal means the RTCM/VOTER squelch circuit is in use and it is expecting discriminator audio on the RX pin (to be able to do the squelch action), and therefore it '''will''' provide de-emphasis (audio is routed THROUGH the de-emphasis RC filter circuit) to the receiver audio. COR Type 1=IGNORE COR uses the CTCSS input pin for COR or CTCSS ''logic'' and it then expects de-emphasized receive (line) audio on the RX pin, and therefore will '''not''' provide de-emphasis to the received audio (the RC filter is switched '''out''' and audio passes straight through). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most of the time, you do NOT need to override the automatic filter selection. However, if you do, and you are sure you have a good reason to, you CAN switch the de-emphasis filter '''out''' of the circuit so that audio passes straight through to the encoder. You would do this by setting the nodeemp=1 option in voter.conf. When you set nodeemp=1, the ''VOTER Protocol'' tells the RTCM/VOTER to switch the filter '''out''', so audio is passed straight through.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Transmitter Pre-emhpasis==&lt;br /&gt;
On the TX side, the RTCM/VOTER expects the repeater to accept ''mic audio''. In other words, the '''repeater''' is providing the pre-emphasis, not the RTCM/VOTER (you are '''not''' directly modulating the TX). This can be overridden by setting CTCSS tone in voter.conf. If a CTCSS tone is defined, the RTCM '''will''' provide pre-emphasis to the audio, and expects that you will be connecting to your repeater's flat audio input (direct modulation). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you don’t want TX CTCSS tone but '''do''' need pre-emphasis, set an arbitrary (any) CTCSS tone in voter.conf, and set the level to 0. This will force the RTCM/VOTER to pre-emphasize the audio it generates on the TX pin, but it won't actually mix in a CTCSS tone. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Level Setting==&lt;br /&gt;
Setting the audio levels for the RTCM/VOTER is pretty straight forward. Just follow these steps:&lt;br /&gt;
*Ensure you have a connection to your host Asterisk server/chan_voter instance&lt;br /&gt;
*Send a 1kHz@3kHz on-channel, full-quieting signal in to the repeater's RX&lt;br /&gt;
*Set the RX up so it reads 3kHz deviation on the RTCM's built in console meter&lt;br /&gt;
*Now set the TX level '''pot''' to get 3kHz out of the transmitter (No PL)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change the modulation from 1kHz tone to 800Hz followed by 1.8kHz and verify that the deviation level doesn't change as the tone frequency changes. '''Changing levels indicates a pre/de-emphasis issue.''' You will want to read the above sections on how audio is handled, and figure out where your issue is.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If using PL you have to account for that deviation, unless you filter it out with your IFR (test set). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That's it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optionally, if you are using the built-in &amp;quot;offline repeat&amp;quot; functions, fail the connection to the host Asterisk server, and make sure your repeat audio performs the same as above.&lt;br /&gt;
&lt;br /&gt;
==== Resolution issues when setting levels using built VOTER boards ====&lt;br /&gt;
Sometimes, depending on what radio is being used getting a good enough resolution with R61 when setting levels is a problem. You move a small amount on the pot and it jumps several hundred KHz of deviation. Inserting a 4:1 voltage divider between the VOTER board and transmitter helps with this. Something such as a 1K and 330 ohm resistor will work. This allows for much finer adjustment on the transmit audio (R61).&lt;br /&gt;
&lt;br /&gt;
==Crappy Transmit Audio==&lt;br /&gt;
&lt;br /&gt;
Does your repeated audio sounded really bassy, muffled, and not very understandable? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There was a situation where, compared to a typical simplex radio-to-radio transmission, the audio through the repeater (RTCM and Asterisk) was unacceptable. What was discovered was that the RTCM has an internal pre-emphasis function that was disabled. The user had intentionally disabled &amp;quot;txctcss&amp;quot; and &amp;quot;txctcsslevel&amp;quot; in voter.conf because he didn't &lt;br /&gt;
want the RTCM transmitting CTCSS (the Quantar was doing that already). He ultimately found a post on the mail list explaining the settings above that said enabling txctcss = some valid tone (114.8 in his case) and setting txctcsslevel = 0 would turn on the pre-emphasis function in the RTCM without transmitting CTCSS tones. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
He did, and it worked like a charm! Audio now had more treble and was less bassy/muffled. So, future RTCM users, be sure not to comment out txctcss and txctcsslevel in voter.conf!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Just enable and set the level to 0. You'll thank me later. &lt;br /&gt;
&lt;br /&gt;
== Pulse Noise on Transmit Audio ==&lt;br /&gt;
It has been noticed sometimes on built VOTER boards that it has low level DAC noise which sometimes is apparent as a pulsing noise on the audio output. Adding a 4:1 voltage divider inline between the transmitter and VOTER board helps reduce or eliminate this as described above in Level setting. &lt;br /&gt;
&lt;br /&gt;
=GPS=&lt;br /&gt;
The RTCM/VOTER will work with most GPS available. It requires either NMEA or Trimble TSIP binary data. It only receives data '''from''' the GPS (GPS TX), it does not send anything '''to''' the GPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The firmware is specifically written to talk to Trimble Thunderbolt receivers using Trimble's TSIP binary data interface, however, other Trimbles GPS receivers that talk TSIP are generally compatible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==NMEA Sentences==&lt;br /&gt;
If you are using an NMEA GPS (as opposed to a Trimble using the TSIP binary interface), the RTCM/VOTER is looking for the following NMEA sentences:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$GPGGA&lt;br /&gt;
$GPGSV&lt;br /&gt;
$GPRMC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GPS Lock==&lt;br /&gt;
The GPS led will go solid regardless of the connection LED. That '''has''' to happen or it won't connect to the Asterisk server. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is not unusual for it to take up to 20 mins to get a GPS lock LED (ie. using a Trimble Thunderbolt) after any reboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GPS De-sense==&lt;br /&gt;
If you are having odd loss of lock issues, consider you may have interference to your GPS antenna from strong RF nearby. A note from Jesse Lloyd:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
I also had crazy problems with poor signal on my GPS when I set it up sitting in a window, and once installed at site I had the GPS antenna maybe 6 ft from the VHF antenna, and after some troubleshooting found it was getting swamped with RF and loosing lock. &lt;br /&gt;
&lt;br /&gt;
I found the debug setting of 32 useful in the RTCM, you can see a hex output of the GPS status.  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GPS Issues==&lt;br /&gt;
===Trimble Thunderbolt===&lt;br /&gt;
You may find your Trimble Thunderbolt is showing the incorrect date at the moment. It could be showing the year as 1997. This is due to the date in the Thunderbolt being reported incorrectly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''This can cause some of your voting receivers to not connect, if they are used with other GPS in your system.''' If you have '''ALL''' Thunderbolts, or '''NO''' Thunderbolts, you are probably fine. If you have '''ALL''' Thunderbolts, the date/time is probably wrong, but they will ALL be wrong, so they will connect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GPS Time is a continuous counting time scale beginning at the January 5, 1980 to January 6, 1980 midnight. It is split into two parts: a time of week measured in seconds from midnight Sat/Sun and a week number. The time of week is transmitted in an unambiguous manner by the satellites, but only the bottom 10 bits of the week number are transmitted. This means that a receiver will see a week number count that goes up steadily until it reaches 1023 after which it will “roll over” back to zero, before steadily going up again. Such a week rollover will occur approx. every 20 years. The last week rollover occurred in 1999 and the next one will be in 2019.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Thunderbolt manual states:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The ThunderBolt adjusts for this week rollover by adding 1024 to any week number reported by GPS which is less than week number 936 which began on December 14, 1997. With this technique, the ThunderBolt will provide an accurate translation of GPS week number and TOW to time and date until July 30, 2017.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As such, the Trimble Thunderbolt has a firmware issue with the GPS Week rollover that manifested itself on July 30, 2017, causing the date to become incorrect. The Thunderbolt thinks the week changed from 935 to 936 (actual week 1959-1024=935), so it stopped adding 1024 to the week.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have added a brute-force fix starting in RTCM/VOTER firmware &amp;gt;=1.51. This fix adds 619315200 seconds (1024 weeks) to the time reported by the GPS. It fixes the Thunderbolts, we have not done extensive testing to see how it affects other TSIP receivers.&lt;br /&gt;
&lt;br /&gt;
===Garmin===&lt;br /&gt;
====Garmin 18x LVC Wiring Issues====&lt;br /&gt;
If you have issues with your GPS 18x LVC not talking to the RTCM/VOTER, it may not be hooked up to the RTCM correctly. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Garmin pin labeling is backwards to what you may think. See below. You probably need to swap pins 6 and 14.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RTCM   	                 GPS 18x LVC      &lt;br /&gt;
6 GRX 	&amp;lt;-- Rx Data 	 6 Green  &lt;br /&gt;
7 GPPS 	&amp;lt;-- Pulse Output 1 Yellow  &lt;br /&gt;
8 GND   Ground 		 3 Black  &lt;br /&gt;
8 GND   Ground 		 5 Black  &lt;br /&gt;
13 +5V 	--&amp;gt;Vin 		 2 Red  &lt;br /&gt;
14 GTX 	--&amp;gt; TX Data 	 4 White&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log into the RTCM and do 98 and you should see something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Current Time: Sun  Apr 20, 2014  04:37:02.820&lt;br /&gt;
Last Rx Pkt System time: 04/20/2014 03:55:35.580, diff: 2487260 msec&lt;br /&gt;
Last Rx Pkt Timestamp time: 04/20/2014 03:55:32.064, diff: 3515 msec&lt;br /&gt;
Last Rx Pkt index: 160, inbounds: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Garmin and the RTCM====&lt;br /&gt;
Beware when buying newer Garmin GPS's to use with the Micro-Node RTCM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The RTCM expects a 5V PPS signal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Newer Garmin's (GPS 18X, 18X LVC, etc.) MAY NOT output 5V, and can cause issues. '''Check the Garmin datasheet'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The VOTER is designed to accept both 3.3V or 5V signals, and ''should'' work fine.&lt;br /&gt;
&lt;br /&gt;
* Some of the Garmin GPS's come with 4800 baud set as default. If you are getting a &amp;quot;Warning: GPS Data time period elapsed&amp;quot; error on your RTCM, change both the GPS and RTCM to use 9600 baud. To do this, interface the GPS to a DB9 connector as per page 8 of the [http://wiki.allstarlink.org/w/images/4/41/GPS_18x_Tech_Specs.pdf manual] (remembering to ONLY use 5V as the power source *facepalm*). Once done, download, extract and open [http://www8.garmin.com/support/download_details.jsp?id=4053 SNSRXCFG_330.exe] and run.&lt;br /&gt;
# Select your GPS (in most cases GPS 18x PC/LVC). Press F10 to switch to NMEA mode (Config &amp;gt; Switch to NMEA Mode)&lt;br /&gt;
# Select Config &amp;gt; Setup and choose the COM port your GPS is connected too. Leave baud rate as auto for now, OK.&lt;br /&gt;
# Select Comm &amp;gt; Connect to connect to the GPS. &lt;br /&gt;
# Go to Config &amp;gt; Get Configuration from GPS to download it's current configuration&lt;br /&gt;
# Click File &amp;gt; Save to save the current configuration&lt;br /&gt;
# In Config &amp;gt; Sensor Configuration change the Baud Rate to 9600. You can also check to make sure 1PPS is enabled here too. Click OK. &lt;br /&gt;
# Hitting F7 when in the main window of the software also brings up the GPS sentences to output if that is of interest.&lt;br /&gt;
# File &amp;gt; Save to a different file than step 5. &lt;br /&gt;
# Press F9 or Config &amp;gt; Send Configuration to GPS. This will then send all the changes you made to the GPS unit (including baud rate so a reconnect may be needed)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==No GPS/Mixed Mode==&lt;br /&gt;
You do not need a timing source to use an RTCM if you don’t want to vote. That’s called Mix Mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Having the PPS Polarity set to 2 tells the RTCM you do not have a GPS. That forces the RTCM to become a mix (non-voting) client. Turn it on, save it, and restart. A simple voter.conf would look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[general]&lt;br /&gt;
port = 667&lt;br /&gt;
password = BLAH&lt;br /&gt;
&lt;br /&gt;
[1000]&lt;br /&gt;
Site1 = pswrd1,master,transmit&lt;br /&gt;
Site2 = pswrd2,transmit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mixed Client Error==&lt;br /&gt;
&amp;quot;I am getting this error in Asterisk&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING[2368]: chan_voter.c:4511 voter_reader: Voter client master timing source mobile1 attempting to authenticate as mix client!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A mixed client error means the voter.conf file is expecting an RTCM to try and connect with a GPS IP packet (ie. has '''master''' in it in voter.conf), but the RTCM isn't &lt;br /&gt;
sending a GPS IP packet. So its a mismatch between voter.conf and Option 10 in the RTCM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to use a mix client (non-voted), make sure that receiver's configuration line in voter.conf '''does not''' have the '''master''' option set.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mix Clients with Voted Client Issues==&lt;br /&gt;
&lt;br /&gt;
Situation...&lt;br /&gt;
&amp;quot;I have a private node with 6 voted receivers using RTCMs. I'd like to add a 7th RTCM to this node that is always mixed in rather than voted. I'm able to make this RTCM work as a 7th voted receiver with no problem. Everything I've read seems to indicate that if I change GPS PPS polarity to &amp;quot;none&amp;quot; this will achieve my desired results, however I am unable to get audio out of my transmit RTCM from this 7th site. It does change color to cyan in Allmon indicating it is non voted input but I do not get any indication or audio when that units COR goes active.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Setting voter debug level 3 in Asterisk and I'm seeing the following message repeatedly scrolling by in a blur when the mix client detects COR (COR is active). Sequence numbers are continually incrementing by 1. I'm running software version 1.47 on all my clients:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mix client (Mulaw) my_client index:0 their seq:629 our seq:629&lt;br /&gt;
mix client my_client outa bounds, resetting!!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have a similar situation to the above... check your buflen in voter.conf. Make sure it is at &amp;gt;=160 and see if that fixes it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GPS Debug==&lt;br /&gt;
To turn on GPS Debugging, set the Debug Option Level in the RTCM/VOTER to 32.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[#Debug Options]] levels for more information on how this works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trimble Debug Status Decoding==&lt;br /&gt;
The VOTER/RTCM when in TSIP mode (Trimble), assumes it is a Trimble Thunderbolt and is looking for two packets:&lt;br /&gt;
*0x8F-AB - Primary Timing Packet&lt;br /&gt;
*0x8F-AC - Supplemental Timing Packet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grab a copy of the Thunderbolt User Guide: http://leapsecond.com/pages/tbolt/Thunderbolt-2012-02.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pages 78-83 are the important ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Packet 0x8F-AB is what grabs the timing information, and packet 0x8F-AC is what it looks at for everything else (including debug).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The debug string that the VOTER/RTCM reports:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	printf(&amp;quot;GPS-DEBUG: TSIP: ok %d, 9 - 14: %02x %02x %02x %02x %02x %02x\n&amp;quot;,&lt;br /&gt;
					happy,gps_buf[9],gps_buf[10],gps_buf[11],gps_buf[12],gps_buf[13],gps_buf[14]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, the 1 after ok is the &amp;quot;happy gps&amp;quot; flag. The other 5 bytes are supposed to be bytes 9-14 from the packet... sort of. They are bytes 9-14 of the buffer, but they are actually bytes 8-13 of the binary message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Looking at the message structure, bytes 8-13 are:&lt;br /&gt;
*8-9 Critical Alarms&lt;br /&gt;
*10-11 Minor Alarms&lt;br /&gt;
*12 GPS Decoding Status&lt;br /&gt;
*13 Disciplining Activity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Therefore, the messages you are seeing break down as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GPS-DEBUG: TSIP: ok 1, 9 - 14: 00 00 00 00 00 00 - everything is good in the 'hood, Doing Fixes, Phase Locking&lt;br /&gt;
&lt;br /&gt;
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 18 08 06 - not happy, Not Tracking Satellites, Not Disciplining Oscillator (0x18 --&amp;gt; 0b000000011000), No Usable Sats, Inactive&lt;br /&gt;
&lt;br /&gt;
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 08 08 05 - not happy, Not Tracking Satellites, No Useable Sats, Compensating OXCO (holdover)&lt;br /&gt;
&lt;br /&gt;
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 00 00 05 - not happy, Compensating OXCO (holdover)&lt;br /&gt;
&lt;br /&gt;
GPS-DEBUG: TSIP: ok 1, 9 - 14: 00 00 00 00 00 08 - happy, Recovery Mode&lt;br /&gt;
&lt;br /&gt;
GPS-DEBUG: TSIP: ok 0, 9 - 14: 00 00 00 00 00 04 - not happy, Initializing Loop Filter&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GPS is flagged as NOT HAPPY in TSIP mode if ANY of the following are TRUE:&lt;br /&gt;
*If GPS Decoding Status is anything other than &amp;quot;Doing Fixes&amp;quot;.&lt;br /&gt;
*If Disciplining Activity is not Phase Locking or Recovery Mode.&lt;br /&gt;
*Any Critical Alarms.&lt;br /&gt;
*Any Minor Alarms.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Ubiquity ToS=&lt;br /&gt;
See https://help.ubnt.com/hc/en-us/articles/205231750-airMAX-How-is-QoS-and-prioritization-handled-by-airMAX-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, if we set ToS/DSCP in the header to C0, then Ubiquity (and other gear watching ToS) ''should'' prioritize the packets. This sets the DSCP to 110 000 aka 48. UBNT shows this as 802.1p Class 6 (Voice &amp;lt;10mS latency). Other sources show this as a Network Control TOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is an option in voter.conf to turn this on (utos=y). However, this only controls packets being sent from Asterisk '''TO''' the RTCM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to tag packets from the RTCM '''TO''' Asterisk, you need to set the RTCM debug option level to 16 (see [[#Debug Options]] for how this works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At some point we should probably change the default behaviour of the RTCM firmware to mark the packets and use the debug setting to '''disable''' ToS. That change (if you wanted to compile your own firmware) would be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Change line 90 in IP.c&lt;br /&gt;
&lt;br /&gt;
From:&lt;br /&gt;
#define IP_SERVICE         ((AppConfig.DebugLevel &amp;amp; 16) ? 0xc0 : (IP_SERVICE_ROUTINE | IP_SERVICE_N_DELAY))&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
#define IP_SERVICE         ((AppConfig.DebugLevel &amp;amp; 16) ? (IP_SERVICE_ROUTINE | IP_SERVICE_N_DELAY) : 0xc0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This changes the conditional expression from if the debug level is 16 to mark the packets with DSCP 48 to if the debug level is 16, mark the packets routine (DSCP 0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=RTCM Simulcasting=&lt;br /&gt;
The RTCM/VOTER boards do support simulcasting, however, there are a bunch of quirks that one needs to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Radio Hardware==&lt;br /&gt;
For best results, you should use all identical RF equipment between your voting RX sites and simulcast TX sites. If you don't, you can end up with strange audio artifacts when different receivers are used, and other strange audio issues when different transmitters are used. The most important thing when setting your levels is that ALL the RX and TX levels match from radio to radio. The best way this is achieved is using a &amp;quot;master&amp;quot; radio and reference from that - all radios might be identical models, but may not have identical audio characteristics so check those levels! Also check CTCSS and audio levels separately to make sure they all match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==9.6MHz Oscillator==&lt;br /&gt;
If you want reliable simulcast with an acceptable level of overlap warble, you MUST inject a GPS-disciplined or OXCO 9.6MHz signal to the clock of the RTCM's, in lieu of their stock internal crystal. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise, the inherent internal clock jitter of the RTCM's will cause CTCSS warble, etc. in areas where your transmitters overlap. The 1 PPS feed that you normally feed the RTCM's is acceptable for voting, but naturally, a typical crystal-driven clock will slightly drift in between the pulses every second due to inherent jitter, etc., and that ain't to good for situations like simulcast which demand sample-accurate performance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some comments from Joe, KC2IRV, on the subject. He has also created his own wiki, specific to simulcast issues, you can find it at: http://rtcmsimulcast.wikifoundry.com/ &lt;br /&gt;
&lt;br /&gt;
:I felt I needed to let those on this mailing list know my findings with simulcasting with the RTCM units since I have received a great deal of help and information from people on this list.&lt;br /&gt;
&lt;br /&gt;
:For the past week I have had a two (2) site simulcast system up and running on UHF using the RTCM units. I have done a great deal of testing and proving on the bench and it is so far working beautifully. &lt;br /&gt;
&lt;br /&gt;
:The one issue that was made apparent to me early on was that in order for the RTCM's to be suitable for simulcast, the processor inside it needed to be clocked to a more accurate source. This source is supposed to be the Programmable Clock Generator Module in order to produce a GPS locked 9.6 MHz reference for the processor. Unfortunately this unit is not currently available.&lt;br /&gt;
&lt;br /&gt;
:Knowing this, I started to go down the road of possibly designing my own, but stumbled upon a cheap, plentiful supply of Symmetricom 9.6 MHz sinewave OCXO's. I took a chance and ordered a few to experiment with to see if the RTCM would be able to use this in place of the supplied crystal for a clock. I found they did, with that I decided to modify the RTCM with an SMA connector just above the audio adjustment pots and use this OCXO. I trimmed the frequency on the units to match each other and used them to produce the processor clock.&lt;br /&gt;
&lt;br /&gt;
:After a week of testing, I have found the results in the overlap areas to be exactly as I would expect them on a public safety/commercial simulcast system. While in an overlap region where both transmitters are within 3dB of one another, to the ear you hear no audio phase wandering. Of course , this has only been a week of testing so I wouldn't call it case closed yet.&lt;br /&gt;
&lt;br /&gt;
:I will say that if this system remains this way after testing for 6 months to a year than using a 9.6 MHz OXCO is a viable alternative to achieve the needed precision and accuracy needed for the processor clock to make it suitable for simulcast.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comments from Jim Dixon on the issue:&lt;br /&gt;
&lt;br /&gt;
:You have to use '''something''' that will take the precise 10MHz (or whatever it is) from the GPSDO and PLL (phase-locked) convert it to 9.6MHz (square wave at 3.3V for the CPU clock).&lt;br /&gt;
&lt;br /&gt;
:We had to use 9.6MHz mainly because of the DAC in the dsPIC instead of 10MHz. The options for various divide/clock radios in the part are RATHER limited. As I recall, there wasn't even a way of getting the necessary 16kb/s sample rate on the ADC from 10MHZ, either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Micro-Node RTCM Clock Issue=&lt;br /&gt;
James, KI0KN, had some strange-ness with some of his RTCM's when used for voting. As soon as he changed menu item 10 on the RTCM to either a (1) or a (0) instead of (2), he '''instantly''' got this on the RTCM console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
04/05/2016 18:44:13.660  Lost GPS Time synchronization&lt;br /&gt;
04/05/2016 18:44:13.660  Host Connection Lost (Pri) (10.16.1.240)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And it sits there forever and never re-establishes connection to the host. The issue was finally traced to a bad batch of 9.6MHz crystals that affected a small run of the RTCM's. The issue was eventually resolved by Micro-Node, but we'll document it here just for record keeping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
James comments to the list:&lt;br /&gt;
&lt;br /&gt;
:Well, after many of you offered your time and thoughts on my voter problem, Jim, WB6NIL, graciously donated a couple of hours of his time to remotely help me and he uncovered the problem.&lt;br /&gt;
&lt;br /&gt;
:All 5 of my RTCMs were purchased within the last 6 months, and I suspect all 5 have the same problem (will verify that today). The problem is that the microprocessor crystal is running too fast! There is 9.6Mhz crystal that drives the MPU, on the particular unit that Jim helped me diagnose, it's running 2.5 khz too fast.  &lt;br /&gt;
&lt;br /&gt;
:There is a sanity check in the firmware that makes sure the correct number of samples were taken in the last second (it's supposed to be 8000) and fails if the sample is incorrectly sized (mine is taking 8003 samples).  Jim helped adjust the code to be more tolerant of the sampling error and my whole system instantly worked.&lt;br /&gt;
&lt;br /&gt;
:I have since tested it with ALL my GPSs (they all work great!). So I now have everything working, including the voting.&lt;br /&gt;
&lt;br /&gt;
:I haven't contact Micro-Node about it yet. Jim told me that voting should work fine but this clock error would probably not be acceptable for Simulcast (something we have no plans on doing as of now). Since mine are deployed at mountain top sites, I'll probably pursue a crystal that is running at the correct frequency and use &amp;quot;standard&amp;quot; firmware so that if the decision is ever made to play with simulcast, I won't be right back in this same boat.&lt;br /&gt;
&lt;br /&gt;
:Thanks to all that helped out, and a HUGE thanks to Jim for taking the time to troubleshoot this.&lt;br /&gt;
&lt;br /&gt;
:BTW- This clock error will NOT effect the RTCM in mix client mode, it only affects it in voting or simulcast mode!&lt;br /&gt;
&lt;br /&gt;
:In voter.c, the stock line is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if ((samplecnt &amp;gt;= 7999) &amp;amp;&amp;amp; (samplecnt &amp;lt;= 8001))&lt;br /&gt;
&lt;br /&gt;
it needs to be changed to something like:&lt;br /&gt;
&lt;br /&gt;
if ((samplecnt &amp;gt;= 7999) &amp;amp;&amp;amp; (samplecnt &amp;lt;= 8003 ))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:That was just enough to make my first RTCM work. I've had a chance now to check a few more of my RTCMs on the bench this morning and the crystal frequencies are kind of all over.  The next one I had on the bench was 5.2Khz fast. The above code was still not enough to fix it (as would be expected) so it looks like the quality control on whatever manufacturer that crystal is, isn't very good (or a low tolerance crystal is being used). I am going to pursue crystal replacement to get a highly accurate, stable, on-frequency crystal in there as my first choice. Changing the firmware 5 different times doesn't seem like the right answer.&lt;br /&gt;
&lt;br /&gt;
:Jim put that sanity check in there for a reason. Working around it '''may''' allow the device to work, but to me, it seems getting the hardware operating the way it was supposed to originally is the better answer. I will follow up with Micro-node and let you all know how it goes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After following up with Micro-Node:&lt;br /&gt;
:They were all off, some were off a LOT. I talked to Mark @ Micronode. He told me there were 25 units that made it out the door with a crystal from an unapproved source and that was quite likely the reason for the problem. He gladly sent me 5 new crystals to replace (he offered to replace them himself if I sent the units in, but I am comfortable doing it myself to save the time and postage). &lt;br /&gt;
&lt;br /&gt;
:I haven't received them in the mail yet to show that the problem is fixed, but I will post here when that happens. He was great to work with and had no issue getting things set straight. If you are having the same issue and your RTCMs were bought about the same time, I'd suggest you contact him and have him help you resolve the issue!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duplex Mode 3=&lt;br /&gt;
Does delayed repeat audio bug you? Tired of hearing a bit of yourself after you unkey? Wish you could talk full duplex? Hate the echo chamber effect? Then we have the answer for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Duplex Mode 3 in app_rpt allows for &amp;quot;in-cabinet repeat&amp;quot; (where the radio hardware provides repeat audio) and app_rpt adds the hang time, courtesy tones, linking - all the &lt;br /&gt;
things apt_rpt does sans repeat audio. Therefore no repeat audio delay. Cool, eh? This duplex mode has been in app_rpt for a while. Problem has been how to implement it in the RTCM environment. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Duplex Mode 3 support in the RTCM provides in-cabinet repeat functionality. Repeat audio loops through the RTCM and has almost zero delay because it does not have to traverse the network. The delay is not quite zero but it's plenty short enough to eliminate all of the above mentioned annoyances. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course Duplex Mode 3 support can't be used with voting or simulcast. You also loose Touch Tone muting, Time Out Timer and Repeater Disable functions because the repeat path is not through app_rpt.&lt;br /&gt;
&lt;br /&gt;
= Setting Voter Buffers =&lt;br /&gt;
Voter ping is useful for end-to-end network evaluation when ICMP ping is turned off and/or the RTCM is behind a firewall and is not ICMP reachable. It can also help with finding the correct RTCM and voter.conf buffer settings.&lt;br /&gt;
&lt;br /&gt;
=== Voter Ping Usage ===&lt;br /&gt;
The voter ping asterisk CLI syntax is:&lt;br /&gt;
 *CLI&amp;gt;voter ping nameOfClient [packetCount]&lt;br /&gt;
If packetCount is not specified 8 pings will be sent. Use packetCount of 0 to stop an in progress voter ping. Set packetCount to at least 100 when evaluating link quality.&lt;br /&gt;
&lt;br /&gt;
The result will be similar to:&lt;br /&gt;
 ...&lt;br /&gt;
 PING (nameOfClient): Packets tx: 100, rx: 100, oos: 0, Avg.: 26.710 ms&lt;br /&gt;
 PING (nameOfClient):  Worst: 38 ms, Best: 22 ms, 100.0% Packets successfully received (0.0% loss)&lt;br /&gt;
The output above is self evident except for oos which is a count of out of sequence packets. Voter ping requires RTCM firmware 1.23 or newer and chan_voter 2013-08-04 or newer.&lt;br /&gt;
&lt;br /&gt;
=== RX Buffer Size ===&lt;br /&gt;
Ping all the receiver sites and look for the worst response of the worst client. As a rough rule of thumb the buflen setting in voter.conf should be set to the worst response + 40ms or 120 whichever is greater. Using the above case the buflen should be set to 120 (38+40&lt;br /&gt;
&lt;br /&gt;
=== TX Buffer Size ===&lt;br /&gt;
Ping all the transmitter sites and look for the worst response of the worst client. The RTCM TX Buffer Length should be set to (worst response + 40ms) * 8 or 480 whichever is greater. Using the above case the RTCM TX Buffer Length should be set to 624 ((38+40)*8).&lt;br /&gt;
&lt;br /&gt;
=== Assumptions ===&lt;br /&gt;
* The minimum TX buffer size is 480 (60ms) and the minimum RX buffer is 120ms. These were derived by testing on a LAN segment with chan_voter 2013-08-04 and RTCM 1.26.&lt;br /&gt;
* The ping times are not round trip times but they are in fact round trip times. Therefore the worst response could (should?) be divided by 2. Ie RX buffer = 38/2+40=59 and TX buffer = (38/2 + 40) * 8 = 472. Minimums still apply.&lt;br /&gt;
* The internet path to and from the RTCM under test is symmetrical.&lt;br /&gt;
* The added 40ms pad is an estimate of buffer ingress and egress.&lt;br /&gt;
As always your milage may vary. Some trial and error may be required to find the optimum settings.&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
The RX buffer is set with buflen=120 in /etc/asterisk/voter.conf. The value is in milliseconds. The TX buffer is set in the RTCM with menu item 7. The value is in 125 microsecond increments. To match the size of the TX to the RX buffer, use the RX buffer * 8 to get the TX buffer size.&lt;br /&gt;
[[Category:How to]]&lt;br /&gt;
[[Category:Node Configuration]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RX_Toneburst&amp;diff=1321</id>
		<title>RX Toneburst</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RX_Toneburst&amp;diff=1321"/>
		<updated>2019-01-28T14:06:17Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting Up Receive Toneburst Access (Europe mainly) =&lt;br /&gt;
[[Category:How to]]&lt;br /&gt;
&lt;br /&gt;
If you wish to set up a node to require receive toneburst (typically 1750 Hz, in Europe), you must, at least specify the toneburst frequency:&lt;br /&gt;
&lt;br /&gt;
(The following parameters go into rpt.conf in the section for the desired node)&lt;br /&gt;
&lt;br /&gt;
rxburstfreq=1750&lt;br /&gt;
&lt;br /&gt;
If you wish to change the minimum duration of the tone:&lt;br /&gt;
&lt;br /&gt;
rxbursttime=500 ;this would set the minimum time to 500ms&lt;br /&gt;
&lt;br /&gt;
If you wish to change the minimum signal/noise ratio for the tone:&lt;br /&gt;
&lt;br /&gt;
rxburstthreshold=10 ;this would set the minimum s/n quality to 10db&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=RX_Toneburst&amp;diff=1320</id>
		<title>RX Toneburst</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=RX_Toneburst&amp;diff=1320"/>
		<updated>2019-01-28T14:05:36Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=WebTransceiver_on_MAC&amp;diff=1319</id>
		<title>WebTransceiver on MAC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=WebTransceiver_on_MAC&amp;diff=1319"/>
		<updated>2019-01-28T14:04:03Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
The WebTransceiver the AllStar Link PORTAL works fine on the Mac. This howto shows you the setting you need to make to get it working. These instructions are for Mavericks (OS 10.9). In Safari preferences click the Security icon, then Manage Website Settings, then Java, then allstarlink.org. Select Run in Unsafe Mode from the drop down, then click Done and exit preferences. See the attached screenshot.&lt;br /&gt;
[[Category:Obsolete]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=WebTransceiver_on_MAC&amp;diff=1318</id>
		<title>WebTransceiver on MAC</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=WebTransceiver_on_MAC&amp;diff=1318"/>
		<updated>2019-01-28T14:02:34Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1317</id>
		<title>Event Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1317"/>
		<updated>2019-01-28T14:00:36Z</updated>

		<summary type="html">&lt;p&gt;N8THN: Corrected broken page link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
As of app_rpt version 0.259, 10/9/2010, there exists a method by which a user can specify actions to be taken when certain events occur, such as transitions in receive and transmit keying, presence and modes of links, and external inputs, such as GPIO pins on the URI (or similar USB devices).&lt;br /&gt;
&lt;br /&gt;
Bear in mind, this now also includes the ability to set the condition of external devices, such&lt;br /&gt;
&lt;br /&gt;
as output pins on a URI (or similar USB devices), or a Parallel Printer Port. &lt;br /&gt;
&lt;br /&gt;
'''[[Manipulating GPIO|Manipulating GPIO (and Parallel Printer Port) signals within chan_usbradio and chan_simpleusb.]]''' &lt;br /&gt;
&lt;br /&gt;
The actions to be taken, and methods and steps required for doing so are specified in the rpt.conf&lt;br /&gt;
&lt;br /&gt;
file under the [events] section (or other named section, settable with events=sectionname under the&lt;br /&gt;
&lt;br /&gt;
node number section also in rpt.conf).&lt;br /&gt;
&lt;br /&gt;
This subsystem utilizes Asterisk channel variables (or global variables if you dare) to indicate the&lt;br /&gt;
&lt;br /&gt;
state of various signals and modes and are named as such:&lt;br /&gt;
 RPT_RXKEYED -- Set to 1 when the node's main (RF) receiver is receiving a valid signal&lt;br /&gt;
 RPT_TXKEYED -- Set to 1 when the node's main (RF) transmitter is transmitting&lt;br /&gt;
 RPT_NUMLINKS -- Count of links currently connected to node&lt;br /&gt;
 RPT_LINKS -- List of Node numbers currently linked to this node and their mode and receive keying&lt;br /&gt;
     status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMLINKS&amp;gt;,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;[,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,T2000,R2001 would indicate that there are 2 nodes linked currently,&lt;br /&gt;
        first one is node 2000 in Transceive mode, and the second one is node 2001 in Receive-Only&lt;br /&gt;
        (monitor) mode.&lt;br /&gt;
 &lt;br /&gt;
 RPT_NUMALINKS -- Count of adjacent links currently connected to node&lt;br /&gt;
 RPT_ALINKS -- List of Node numbers currently linked adjacent to this node and their mode and receive&lt;br /&gt;
     keying status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMALINKS&amp;gt;,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;amp;gt[,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,2000TU,2001RK would indicate that there are 2 adjacent nodes linked currently,&lt;br /&gt;
         first one is node 2000 in Transceive mode, and is not presently sending a keying&lt;br /&gt;
         signal towards this node, and the second one is node 2001 in Receive-Only (monitor)&lt;br /&gt;
         mode, and is presently sending a keying signal towards this node.&lt;br /&gt;
 &lt;br /&gt;
 Adjacent nodes are ones that are directly connected to this node. This differs from the RPT_LINKS&lt;br /&gt;
 in that the RPT_LINKS is a list of all nodes, whether connected directly, or connected through&lt;br /&gt;
 a node that is connected directly. The keying information is not given with the RPT_LINKS because&lt;br /&gt;
 in that context it is meaningless.&lt;br /&gt;
There may also be others included from external devices/sources, such as the URI (or similar USB&lt;br /&gt;
&lt;br /&gt;
devices), or a Parallel Printer Port that will appear if so configured (within the configuration&lt;br /&gt;
&lt;br /&gt;
for that particular device),&lt;br /&gt;
&lt;br /&gt;
such as:&lt;br /&gt;
 RPT_URI_GPIO1 -- This would be the GPIO 1 pin, if configured as an input.&lt;br /&gt;
 RPT_URI_GPIO4 -- This would be the GPIO 4 pin, if configured as an input.&lt;br /&gt;
 RPT_PP12 -- This would be the Parallel Printer Port, pin 12 (input)&lt;br /&gt;
 &lt;br /&gt;
 These are set to &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; (the state of the input pin).&lt;br /&gt;
Each line of the [events] section is specified as follows:&lt;br /&gt;
 &amp;lt;action-spec&amp;gt; = &amp;lt;action&amp;gt;|&amp;lt;type&amp;gt;|&amp;amp;ltvar-spec&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 If action is 'V' (for &amp;quot;setting variable&amp;quot;), then action-spec is the variable being set.&lt;br /&gt;
 If action is 'G' (for &amp;quot;setting global variable&amp;quot;), then action-spec is the global variable being set.&lt;br /&gt;
 If action is 'F' (for &amp;quot;function&amp;quot;), then action-spec is a DTMF function to be executed (if result is 1).&lt;br /&gt;
 If action is 'C' (for &amp;quot;rpt command&amp;quot;), then action-spec is a raw rpt command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 If action is 'S' (for &amp;quot;shell command&amp;quot;), then action-spec is a shell command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 &lt;br /&gt;
 If type is 'E' (for &amp;quot;evaluate statement&amp;quot; (or perhaps &amp;quot;equals&amp;quot;) ) then the var-spec is a full statement&lt;br /&gt;
     containing expressions, variables and operators per the expression evaluation built into Asterisk.&lt;br /&gt;
 If type is 'T' (for &amp;quot;going True&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has just gone from 0 to 1.&lt;br /&gt;
 If type is 'F' (for &amp;quot;going False&amp;quot;), var-spec is a single (already-defined) variable name, and the&lt;br /&gt;
     result will be 1 if the varible has just gone from 1 to 0.&lt;br /&gt;
 If type is 'N' (for &amp;quot;no change&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has not changed.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
Set the channel variable 'MYVAR' true if main receiver has valid signal and transmitter is&lt;br /&gt;
&lt;br /&gt;
not transmitting. Presumable this variable will be used in a later statement for something.&lt;br /&gt;
 MYVAR = v|e|${RPT_RXKEYED} &amp;amp; !${RPT_TXKEYED}&lt;br /&gt;
Have the system give the time of day after all links are disconnected. This performs the&lt;br /&gt;
&lt;br /&gt;
specified rpt command when the 'RPT_NUMLINKS' variable goes from true to false, and therefore&lt;br /&gt;
&lt;br /&gt;
happens when all links are disconnected (if and only if some were connected previously).&lt;br /&gt;
 status,2 = c|f|RPT_NUMLINKS&lt;br /&gt;
 &lt;br /&gt;
 Note: although 'RPT_NUMLINKS' ''is'' an Integer count of links, it can also be treated as a&lt;br /&gt;
 boolean, since non-zero values evaluate to the same as '1'.&lt;br /&gt;
Execute the DTMF command '*1234' (whatever the heck that is) when node 2000 connects to this node.&lt;br /&gt;
 TEMPVAR = v|e|${RPT_LINKS} =~ &amp;quot;\&amp;quot;,2000.\&amp;quot;&amp;quot;&lt;br /&gt;
 *1234 = f|t|TEMPVAR&lt;br /&gt;
 &lt;br /&gt;
 Note: We are interested in executing the function ONLY when the node connects. Therefore, you must&lt;br /&gt;
 define a variable the meets the condition you are looking for in general (in this case, node 2000&lt;br /&gt;
 being connected, then you have to execute the desired function when that variable goes from 1 to 0&lt;br /&gt;
 (changes to false).&lt;br /&gt;
 &lt;br /&gt;
 Any time you are using regex to look for a node number int the 'RPT_LINKS' variable, you must&lt;br /&gt;
 put a comma in front of the qualifying string to make sure that it does not match some other&lt;br /&gt;
 node number that has the desired information (in this case, the digits '2000') within a longer&lt;br /&gt;
 node number.&lt;br /&gt;
Get a detailed directory listing of the '/tmp' directory, and put its output into the file&lt;br /&gt;
&lt;br /&gt;
'/tmp/example.txt' every time node 2001 is connected to, and stops indicating keying towards our node&lt;br /&gt;
&lt;br /&gt;
(not that anyone would ever really want to do that... its just an example).&lt;br /&gt;
 TEMPVAR = v|e|${RPT_ALINKS} =~ &amp;quot;\&amp;quot;,2001[TRC]K\&amp;quot;&amp;quot;&lt;br /&gt;
 ls -l /tmp &amp;gt; /tmp/example.txt = s|f|TEMPVAR&lt;br /&gt;
If you wish to set channel variable(s) for a node from the CLI, you may use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar &amp;lt;nodenum&amp;gt; &amp;lt;name=value&amp;gt; [&amp;lt;name=value&amp;gt;...]&lt;br /&gt;
For Example, this would set the &amp;quot;MYVAR&amp;quot; variable to &amp;quot;1&amp;quot; for node 2000:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar 2000 MYVAR=1&lt;br /&gt;
If you wish to display all the variables for a node, use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt showvars &amp;lt;nodenum&amp;gt;&lt;br /&gt;
Also, a channel variable for a node may be set from the Asterisk Dialplan as follows:&lt;br /&gt;
 rpt(&amp;lt;nodenum&amp;amp;gt,V,&amp;lt;name=value&amp;gt;)&lt;br /&gt;
For example, for extension 1234 priority 5, set variable 'MYVAR' to '0' for node 2000:&lt;br /&gt;
 exten =&amp;gt; 1234,5,rpt(2000,V,MYVAR=0)&lt;br /&gt;
Granted, there may very well be some things (such as interesting information that can be expressed&lt;br /&gt;
&lt;br /&gt;
within this subsystem) that has been overlooked, and any suggestions and/or comments regarding this&lt;br /&gt;
&lt;br /&gt;
whole thing would be much appreciated.&lt;br /&gt;
&lt;br /&gt;
This also opens a completely new avenue of customization and individual creativity for each system&lt;br /&gt;
&lt;br /&gt;
implementer. There are many innovative things that can be done with this. Also there are many just plain&lt;br /&gt;
&lt;br /&gt;
silly ones, such as connecting your doorbell to one the input pins on the URI, and having the system&lt;br /&gt;
&lt;br /&gt;
connect to your favorite Echolink node or something when someone rings the doorbell.&lt;br /&gt;
&lt;br /&gt;
At some point there should be a contest to see who can come up with the most utterly ludicrous&lt;br /&gt;
&lt;br /&gt;
appication of this subsystem. There are many possibilities to explore in this area. Hint: you will&lt;br /&gt;
&lt;br /&gt;
get '''major''' extra bonus points if it involves the script re-writing itself (self-modifying&lt;br /&gt;
&lt;br /&gt;
code, that exhibits at least plausibility of long-term stability (going to poo-poo in less then&lt;br /&gt;
&lt;br /&gt;
1000 iterations is ''just'' not acceptible)).&lt;br /&gt;
&lt;br /&gt;
In any case, please contribute whatever wonderful configurations you come up with so that all users&lt;br /&gt;
&lt;br /&gt;
may have the benefits of all the wonderful ideas everyone comes up with.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Manipulating_GPIO&amp;diff=1316</id>
		<title>Manipulating GPIO</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Manipulating_GPIO&amp;diff=1316"/>
		<updated>2019-01-28T13:59:34Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
The GPIO (general-purpose I/O) pins on a URI (or similar USB device) may be individually used as&lt;br /&gt;
&lt;br /&gt;
either input or output pins. Currently the URI (because of the CM108-AH chip) only supports 2&lt;br /&gt;
&lt;br /&gt;
usable GPIO pins (GPIO 1 and GPIO 4), plus one pin (labeled GPIO2, but is actually the 'HOOK' signal&lt;br /&gt;
&lt;br /&gt;
on the CM-108AH chip) that may be used only for input. The old version of the URI and some other&lt;br /&gt;
&lt;br /&gt;
devices that use the original CM-108A chip, have full access to the GPIO 2 signal also.&lt;br /&gt;
&lt;br /&gt;
The upside to the CM-108AH is that if you are monitoring an external contact closure, the GPIO2 (HOOK)&lt;br /&gt;
&lt;br /&gt;
input is internally pulled-up and de-bounced, so its perfect for such applications.&lt;br /&gt;
&lt;br /&gt;
Chan_usbradio and chan_simpleusb supports configuration of the GPIO pins in the following manner&lt;br /&gt;
&lt;br /&gt;
(from within the section of usbradio.conf that is for the desired device):&lt;br /&gt;
&lt;br /&gt;
gpio1 = in ; in, out0 or out1&lt;br /&gt;
&lt;br /&gt;
gpio4 = out0 ; in, out0 or out1&lt;br /&gt;
&lt;br /&gt;
When you configure a GPIO pin, you can either designate it as 'in' (input), 'out0' (output with a default state of 'off'), or 'out1' (output with a default state of 'on').&lt;br /&gt;
&lt;br /&gt;
It also supports configuration of pins 2-9 (output) and pins 10-13 and 15 (inputs) on a Parallel&lt;br /&gt;
&lt;br /&gt;
Printer Port (if you happen to have one) in the following manner:&lt;br /&gt;
&lt;br /&gt;
pp2 = out1 ; out0, out1 or ptt&lt;br /&gt;
&lt;br /&gt;
pp10 = in ; in, cor or ctcss&lt;br /&gt;
&lt;br /&gt;
When you configure an input pin (10,11,12,13 or 15), you can either designate it as 'in' (input),&lt;br /&gt;
&lt;br /&gt;
'cor' (use as the 'cor' input), or 'ctcss' (use as the 'ctcss') input. If you choose 'cor' or&lt;br /&gt;
&lt;br /&gt;
'ctcss', you also need to set the associated 'carrierfrom' or 'ctcssfrom' to either 'pp' (use the&lt;br /&gt;
&lt;br /&gt;
associated input pin non-inverted) or 'ppinvert' (use the associated input pin inverted).&lt;br /&gt;
&lt;br /&gt;
When you configure an output pin (2-9), you can either designate it as 'out0' (output with a default&lt;br /&gt;
&lt;br /&gt;
state of 'off'), 'out1' (output with a default state of 'on'), or 'ptt' makes the PTT signal present&lt;br /&gt;
&lt;br /&gt;
on it either non-inverted or inverted, depending on the 'invertptt' setting.&lt;br /&gt;
&lt;br /&gt;
Pins 18-25 are ground, and all other pins are to be treated as no connection.&lt;br /&gt;
&lt;br /&gt;
The condition of the input pins are made available via channel variables (e.g. RPT_URI_GPIO1,&lt;br /&gt;
&lt;br /&gt;
RPT_URI_GPIO4, RPT_PP12, etc.) used by the Event Management Subsystem.&lt;br /&gt;
&lt;br /&gt;
The output pins may be manipulated via the 'cop,61' (or 'cop,62') command (directly or through a DTMF&lt;br /&gt;
&lt;br /&gt;
command) as follows:&lt;br /&gt;
&lt;br /&gt;
61 - Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,PP4=1].....)&lt;br /&gt;
&lt;br /&gt;
62 - Same as above, without generating the 'complete' telemetry.&lt;br /&gt;
&lt;br /&gt;
Use 0 or 1 to set the specified output to 0 or 1, or a number greater then 1 to specify how&lt;br /&gt;
&lt;br /&gt;
many milliseconds minus 1 to invert its current state. For example, to pulse the bit for 500ms you&lt;br /&gt;
&lt;br /&gt;
would use the value '501'(currently, specified time only significant in increments of 50ms). The&lt;br /&gt;
&lt;br /&gt;
use of specifying a value of N+1 to indicate N milliseconds was done so that if, in the future,&lt;br /&gt;
&lt;br /&gt;
the granulatity increases down to the millisecond level, a value of 1 ms could be specified.&lt;br /&gt;
&lt;br /&gt;
For example, if you wanted to have a DTMF function (in this example *1234) that turned GPIO 1&lt;br /&gt;
&lt;br /&gt;
on, you would specify the following in the [functions] section of the rpt.conf file:&lt;br /&gt;
&lt;br /&gt;
1234 = cop,61,GPIO1=1 ; Turn on GPIO 1&lt;br /&gt;
&lt;br /&gt;
Note: You must have app_rpt version 0.259 10/9/2010, and chan_usbradio also released at&lt;br /&gt;
&lt;br /&gt;
that time, and for Parallel Printer Port support, you must have app_rpt version 0.267&lt;br /&gt;
&lt;br /&gt;
10/23/2010, and chan_usbradio also released at that time.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Manipulating_GPIO&amp;diff=1315</id>
		<title>Manipulating GPIO</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Manipulating_GPIO&amp;diff=1315"/>
		<updated>2019-01-28T13:59:01Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1314</id>
		<title>Event Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1314"/>
		<updated>2019-01-28T13:57:59Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
As of app_rpt version 0.259, 10/9/2010, there exists a method by which a user can specify actions to be taken when certain events occur, such as transitions in receive and transmit keying, presence and modes of links, and external inputs, such as GPIO pins on the URI (or similar USB devices).&lt;br /&gt;
&lt;br /&gt;
Bear in mind, this now also includes the ability to set the condition of external devices, such&lt;br /&gt;
&lt;br /&gt;
as output pins on a URI (or similar USB devices), or a Parallel Printer Port. &lt;br /&gt;
&lt;br /&gt;
'''Manipulating GPIO (and Parallel Printer Port) signals within chan_usbradio and chan_simpleusb.''' &lt;br /&gt;
&lt;br /&gt;
The actions to be taken, and methods and steps required for doing so are specified in the rpt.conf&lt;br /&gt;
&lt;br /&gt;
file under the [events] section (or other named section, settable with events=sectionname under the&lt;br /&gt;
&lt;br /&gt;
node number section also in rpt.conf).&lt;br /&gt;
&lt;br /&gt;
This subsystem utilizes Asterisk channel variables (or global variables if you dare) to indicate the&lt;br /&gt;
&lt;br /&gt;
state of various signals and modes and are named as such:&lt;br /&gt;
 RPT_RXKEYED -- Set to 1 when the node's main (RF) receiver is receiving a valid signal&lt;br /&gt;
 RPT_TXKEYED -- Set to 1 when the node's main (RF) transmitter is transmitting&lt;br /&gt;
 RPT_NUMLINKS -- Count of links currently connected to node&lt;br /&gt;
 RPT_LINKS -- List of Node numbers currently linked to this node and their mode and receive keying&lt;br /&gt;
     status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMLINKS&amp;gt;,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;[,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,T2000,R2001 would indicate that there are 2 nodes linked currently,&lt;br /&gt;
        first one is node 2000 in Transceive mode, and the second one is node 2001 in Receive-Only&lt;br /&gt;
        (monitor) mode.&lt;br /&gt;
 &lt;br /&gt;
 RPT_NUMALINKS -- Count of adjacent links currently connected to node&lt;br /&gt;
 RPT_ALINKS -- List of Node numbers currently linked adjacent to this node and their mode and receive&lt;br /&gt;
     keying status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMALINKS&amp;gt;,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;amp;gt[,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,2000TU,2001RK would indicate that there are 2 adjacent nodes linked currently,&lt;br /&gt;
         first one is node 2000 in Transceive mode, and is not presently sending a keying&lt;br /&gt;
         signal towards this node, and the second one is node 2001 in Receive-Only (monitor)&lt;br /&gt;
         mode, and is presently sending a keying signal towards this node.&lt;br /&gt;
 &lt;br /&gt;
 Adjacent nodes are ones that are directly connected to this node. This differs from the RPT_LINKS&lt;br /&gt;
 in that the RPT_LINKS is a list of all nodes, whether connected directly, or connected through&lt;br /&gt;
 a node that is connected directly. The keying information is not given with the RPT_LINKS because&lt;br /&gt;
 in that context it is meaningless.&lt;br /&gt;
There may also be others included from external devices/sources, such as the URI (or similar USB&lt;br /&gt;
&lt;br /&gt;
devices), or a Parallel Printer Port that will appear if so configured (within the configuration&lt;br /&gt;
&lt;br /&gt;
for that particular device),&lt;br /&gt;
&lt;br /&gt;
such as:&lt;br /&gt;
 RPT_URI_GPIO1 -- This would be the GPIO 1 pin, if configured as an input.&lt;br /&gt;
 RPT_URI_GPIO4 -- This would be the GPIO 4 pin, if configured as an input.&lt;br /&gt;
 RPT_PP12 -- This would be the Parallel Printer Port, pin 12 (input)&lt;br /&gt;
 &lt;br /&gt;
 These are set to &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; (the state of the input pin).&lt;br /&gt;
Each line of the [events] section is specified as follows:&lt;br /&gt;
 &amp;lt;action-spec&amp;gt; = &amp;lt;action&amp;gt;|&amp;lt;type&amp;gt;|&amp;amp;ltvar-spec&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 If action is 'V' (for &amp;quot;setting variable&amp;quot;), then action-spec is the variable being set.&lt;br /&gt;
 If action is 'G' (for &amp;quot;setting global variable&amp;quot;), then action-spec is the global variable being set.&lt;br /&gt;
 If action is 'F' (for &amp;quot;function&amp;quot;), then action-spec is a DTMF function to be executed (if result is 1).&lt;br /&gt;
 If action is 'C' (for &amp;quot;rpt command&amp;quot;), then action-spec is a raw rpt command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 If action is 'S' (for &amp;quot;shell command&amp;quot;), then action-spec is a shell command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 &lt;br /&gt;
 If type is 'E' (for &amp;quot;evaluate statement&amp;quot; (or perhaps &amp;quot;equals&amp;quot;) ) then the var-spec is a full statement&lt;br /&gt;
     containing expressions, variables and operators per the expression evaluation built into Asterisk.&lt;br /&gt;
 If type is 'T' (for &amp;quot;going True&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has just gone from 0 to 1.&lt;br /&gt;
 If type is 'F' (for &amp;quot;going False&amp;quot;), var-spec is a single (already-defined) variable name, and the&lt;br /&gt;
     result will be 1 if the varible has just gone from 1 to 0.&lt;br /&gt;
 If type is 'N' (for &amp;quot;no change&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has not changed.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
Set the channel variable 'MYVAR' true if main receiver has valid signal and transmitter is&lt;br /&gt;
&lt;br /&gt;
not transmitting. Presumable this variable will be used in a later statement for something.&lt;br /&gt;
 MYVAR = v|e|${RPT_RXKEYED} &amp;amp; !${RPT_TXKEYED}&lt;br /&gt;
Have the system give the time of day after all links are disconnected. This performs the&lt;br /&gt;
&lt;br /&gt;
specified rpt command when the 'RPT_NUMLINKS' variable goes from true to false, and therefore&lt;br /&gt;
&lt;br /&gt;
happens when all links are disconnected (if and only if some were connected previously).&lt;br /&gt;
 status,2 = c|f|RPT_NUMLINKS&lt;br /&gt;
 &lt;br /&gt;
 Note: although 'RPT_NUMLINKS' ''is'' an Integer count of links, it can also be treated as a&lt;br /&gt;
 boolean, since non-zero values evaluate to the same as '1'.&lt;br /&gt;
Execute the DTMF command '*1234' (whatever the heck that is) when node 2000 connects to this node.&lt;br /&gt;
 TEMPVAR = v|e|${RPT_LINKS} =~ &amp;quot;\&amp;quot;,2000.\&amp;quot;&amp;quot;&lt;br /&gt;
 *1234 = f|t|TEMPVAR&lt;br /&gt;
 &lt;br /&gt;
 Note: We are interested in executing the function ONLY when the node connects. Therefore, you must&lt;br /&gt;
 define a variable the meets the condition you are looking for in general (in this case, node 2000&lt;br /&gt;
 being connected, then you have to execute the desired function when that variable goes from 1 to 0&lt;br /&gt;
 (changes to false).&lt;br /&gt;
 &lt;br /&gt;
 Any time you are using regex to look for a node number int the 'RPT_LINKS' variable, you must&lt;br /&gt;
 put a comma in front of the qualifying string to make sure that it does not match some other&lt;br /&gt;
 node number that has the desired information (in this case, the digits '2000') within a longer&lt;br /&gt;
 node number.&lt;br /&gt;
Get a detailed directory listing of the '/tmp' directory, and put its output into the file&lt;br /&gt;
&lt;br /&gt;
'/tmp/example.txt' every time node 2001 is connected to, and stops indicating keying towards our node&lt;br /&gt;
&lt;br /&gt;
(not that anyone would ever really want to do that... its just an example).&lt;br /&gt;
 TEMPVAR = v|e|${RPT_ALINKS} =~ &amp;quot;\&amp;quot;,2001[TRC]K\&amp;quot;&amp;quot;&lt;br /&gt;
 ls -l /tmp &amp;gt; /tmp/example.txt = s|f|TEMPVAR&lt;br /&gt;
If you wish to set channel variable(s) for a node from the CLI, you may use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar &amp;lt;nodenum&amp;gt; &amp;lt;name=value&amp;gt; [&amp;lt;name=value&amp;gt;...]&lt;br /&gt;
For Example, this would set the &amp;quot;MYVAR&amp;quot; variable to &amp;quot;1&amp;quot; for node 2000:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar 2000 MYVAR=1&lt;br /&gt;
If you wish to display all the variables for a node, use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt showvars &amp;lt;nodenum&amp;gt;&lt;br /&gt;
Also, a channel variable for a node may be set from the Asterisk Dialplan as follows:&lt;br /&gt;
 rpt(&amp;lt;nodenum&amp;amp;gt,V,&amp;lt;name=value&amp;gt;)&lt;br /&gt;
For example, for extension 1234 priority 5, set variable 'MYVAR' to '0' for node 2000:&lt;br /&gt;
 exten =&amp;gt; 1234,5,rpt(2000,V,MYVAR=0)&lt;br /&gt;
Granted, there may very well be some things (such as interesting information that can be expressed&lt;br /&gt;
&lt;br /&gt;
within this subsystem) that has been overlooked, and any suggestions and/or comments regarding this&lt;br /&gt;
&lt;br /&gt;
whole thing would be much appreciated.&lt;br /&gt;
&lt;br /&gt;
This also opens a completely new avenue of customization and individual creativity for each system&lt;br /&gt;
&lt;br /&gt;
implementer. There are many innovative things that can be done with this. Also there are many just plain&lt;br /&gt;
&lt;br /&gt;
silly ones, such as connecting your doorbell to one the input pins on the URI, and having the system&lt;br /&gt;
&lt;br /&gt;
connect to your favorite Echolink node or something when someone rings the doorbell.&lt;br /&gt;
&lt;br /&gt;
At some point there should be a contest to see who can come up with the most utterly ludicrous&lt;br /&gt;
&lt;br /&gt;
appication of this subsystem. There are many possibilities to explore in this area. Hint: you will&lt;br /&gt;
&lt;br /&gt;
get '''major''' extra bonus points if it involves the script re-writing itself (self-modifying&lt;br /&gt;
&lt;br /&gt;
code, that exhibits at least plausibility of long-term stability (going to poo-poo in less then&lt;br /&gt;
&lt;br /&gt;
1000 iterations is ''just'' not acceptible)).&lt;br /&gt;
&lt;br /&gt;
In any case, please contribute whatever wonderful configurations you come up with so that all users&lt;br /&gt;
&lt;br /&gt;
may have the benefits of all the wonderful ideas everyone comes up with.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1313</id>
		<title>Event Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1313"/>
		<updated>2019-01-28T13:52:00Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
As of app_rpt version 0.259, 10/9/2010, there exists a method by which a user can specify actions to be taken when certain events occur, such as transitions in receive and transmit keying, presence and modes of links, and external inputs, such as GPIO pins on the URI (or similar USB devices).&lt;br /&gt;
&lt;br /&gt;
Bear in mind, this now also includes the ability to set the condition of external devices, such&lt;br /&gt;
&lt;br /&gt;
as output pins on a URI (or similar USB devices), or a Parallel Printer Port. &lt;br /&gt;
&lt;br /&gt;
The actions to be taken, and methods and steps required for doing so are specified in the rpt.conf&lt;br /&gt;
&lt;br /&gt;
file under the [events] section (or other named section, settable with events=sectionname under the&lt;br /&gt;
&lt;br /&gt;
node number section also in rpt.conf).&lt;br /&gt;
&lt;br /&gt;
This subsystem utilizes Asterisk channel variables (or global variables if you dare) to indicate the&lt;br /&gt;
&lt;br /&gt;
state of various signals and modes and are named as such:&lt;br /&gt;
 RPT_RXKEYED -- Set to 1 when the node's main (RF) receiver is receiving a valid signal&lt;br /&gt;
 RPT_TXKEYED -- Set to 1 when the node's main (RF) transmitter is transmitting&lt;br /&gt;
 RPT_NUMLINKS -- Count of links currently connected to node&lt;br /&gt;
 RPT_LINKS -- List of Node numbers currently linked to this node and their mode and receive keying&lt;br /&gt;
     status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMLINKS&amp;gt;,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;[,&amp;lt;MODE&amp;gt;&amp;lt;NODEMUM&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,T2000,R2001 would indicate that there are 2 nodes linked currently,&lt;br /&gt;
        first one is node 2000 in Transceive mode, and the second one is node 2001 in Receive-Only&lt;br /&gt;
        (monitor) mode.&lt;br /&gt;
 &lt;br /&gt;
 RPT_NUMALINKS -- Count of adjacent links currently connected to node&lt;br /&gt;
 RPT_ALINKS -- List of Node numbers currently linked adjacent to this node and their mode and receive&lt;br /&gt;
     keying status, as follows:&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;NUMALINKS&amp;gt;,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;amp;gt[,&amp;lt;NODEMUM&amp;gt;&amp;lt;MODE&amp;gt;&amp;lt;RXKEYED&amp;gt;...]&lt;br /&gt;
 &lt;br /&gt;
     For example: 2,2000TU,2001RK would indicate that there are 2 adjacent nodes linked currently,&lt;br /&gt;
         first one is node 2000 in Transceive mode, and is not presently sending a keying&lt;br /&gt;
         signal towards this node, and the second one is node 2001 in Receive-Only (monitor)&lt;br /&gt;
         mode, and is presently sending a keying signal towards this node.&lt;br /&gt;
 &lt;br /&gt;
 Adjacent nodes are ones that are directly connected to this node. This differs from the RPT_LINKS&lt;br /&gt;
 in that the RPT_LINKS is a list of all nodes, whether connected directly, or connected through&lt;br /&gt;
 a node that is connected directly. The keying information is not given with the RPT_LINKS because&lt;br /&gt;
 in that context it is meaningless.&lt;br /&gt;
There may also be others included from external devices/sources, such as the URI (or similar USB&lt;br /&gt;
&lt;br /&gt;
devices), or a Parallel Printer Port that will appear if so configured (within the configuration&lt;br /&gt;
&lt;br /&gt;
for that particular device),&lt;br /&gt;
&lt;br /&gt;
such as:&lt;br /&gt;
 RPT_URI_GPIO1 -- This would be the GPIO 1 pin, if configured as an input.&lt;br /&gt;
 RPT_URI_GPIO4 -- This would be the GPIO 4 pin, if configured as an input.&lt;br /&gt;
 RPT_PP12 -- This would be the Parallel Printer Port, pin 12 (input)&lt;br /&gt;
 &lt;br /&gt;
 These are set to &amp;quot;0&amp;quot; or &amp;quot;1&amp;quot; (the state of the input pin).&lt;br /&gt;
Each line of the [events] section is specified as follows:&lt;br /&gt;
 &amp;lt;action-spec&amp;gt; = &amp;lt;action&amp;gt;|&amp;lt;type&amp;gt;|&amp;amp;ltvar-spec&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 If action is 'V' (for &amp;quot;setting variable&amp;quot;), then action-spec is the variable being set.&lt;br /&gt;
 If action is 'G' (for &amp;quot;setting global variable&amp;quot;), then action-spec is the global variable being set.&lt;br /&gt;
 If action is 'F' (for &amp;quot;function&amp;quot;), then action-spec is a DTMF function to be executed (if result is 1).&lt;br /&gt;
 If action is 'C' (for &amp;quot;rpt command&amp;quot;), then action-spec is a raw rpt command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 If action is 'S' (for &amp;quot;shell command&amp;quot;), then action-spec is a shell command to be executed (if &lt;br /&gt;
     result is 1).&lt;br /&gt;
 &lt;br /&gt;
 If type is 'E' (for &amp;quot;evaluate statement&amp;quot; (or perhaps &amp;quot;equals&amp;quot;) ) then the var-spec is a full statement&lt;br /&gt;
     containing expressions, variables and operators per the expression evaluation built into Asterisk.&lt;br /&gt;
 If type is 'T' (for &amp;quot;going True&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has just gone from 0 to 1.&lt;br /&gt;
 If type is 'F' (for &amp;quot;going False&amp;quot;), var-spec is a single (already-defined) variable name, and the&lt;br /&gt;
     result will be 1 if the varible has just gone from 1 to 0.&lt;br /&gt;
 If type is 'N' (for &amp;quot;no change&amp;quot;), var-spec is a single (already-defined) variable name, and the result&lt;br /&gt;
     will be 1 if the varible has not changed.&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
Set the channel variable 'MYVAR' true if main receiver has valid signal and transmitter is&lt;br /&gt;
&lt;br /&gt;
not transmitting. Presumable this variable will be used in a later statement for something.&lt;br /&gt;
 MYVAR = v|e|${RPT_RXKEYED} &amp;amp; !${RPT_TXKEYED}&lt;br /&gt;
Have the system give the time of day after all links are disconnected. This performs the&lt;br /&gt;
&lt;br /&gt;
specified rpt command when the 'RPT_NUMLINKS' variable goes from true to false, and therefore&lt;br /&gt;
&lt;br /&gt;
happens when all links are disconnected (if and only if some were connected previously).&lt;br /&gt;
 status,2 = c|f|RPT_NUMLINKS&lt;br /&gt;
 &lt;br /&gt;
 Note: although 'RPT_NUMLINKS' ''is'' an Integer count of links, it can also be treated as a&lt;br /&gt;
 boolean, since non-zero values evaluate to the same as '1'.&lt;br /&gt;
Execute the DTMF command '*1234' (whatever the heck that is) when node 2000 connects to this node.&lt;br /&gt;
 TEMPVAR = v|e|${RPT_LINKS} =~ &amp;quot;\&amp;quot;,2000.\&amp;quot;&amp;quot;&lt;br /&gt;
 *1234 = f|t|TEMPVAR&lt;br /&gt;
 &lt;br /&gt;
 Note: We are interested in executing the function ONLY when the node connects. Therefore, you must&lt;br /&gt;
 define a variable the meets the condition you are looking for in general (in this case, node 2000&lt;br /&gt;
 being connected, then you have to execute the desired function when that variable goes from 1 to 0&lt;br /&gt;
 (changes to false).&lt;br /&gt;
 &lt;br /&gt;
 Any time you are using regex to look for a node number int the 'RPT_LINKS' variable, you must&lt;br /&gt;
 put a comma in front of the qualifying string to make sure that it does not match some other&lt;br /&gt;
 node number that has the desired information (in this case, the digits '2000') within a longer&lt;br /&gt;
 node number.&lt;br /&gt;
Get a detailed directory listing of the '/tmp' directory, and put its output into the file&lt;br /&gt;
&lt;br /&gt;
'/tmp/example.txt' every time node 2001 is connected to, and stops indicating keying towards our node&lt;br /&gt;
&lt;br /&gt;
(not that anyone would ever really want to do that... its just an example).&lt;br /&gt;
 TEMPVAR = v|e|${RPT_ALINKS} =~ &amp;quot;\&amp;quot;,2001[TRC]K\&amp;quot;&amp;quot;&lt;br /&gt;
 ls -l /tmp &amp;gt; /tmp/example.txt = s|f|TEMPVAR&lt;br /&gt;
If you wish to set channel variable(s) for a node from the CLI, you may use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar &amp;lt;nodenum&amp;gt; &amp;lt;name=value&amp;gt; [&amp;lt;name=value&amp;gt;...]&lt;br /&gt;
For Example, this would set the &amp;quot;MYVAR&amp;quot; variable to &amp;quot;1&amp;quot; for node 2000:&lt;br /&gt;
 *CLI&amp;gt; rpt setvar 2000 MYVAR=1&lt;br /&gt;
If you wish to display all the variables for a node, use the following command:&lt;br /&gt;
 *CLI&amp;gt; rpt showvars &amp;lt;nodenum&amp;gt;&lt;br /&gt;
Also, a channel variable for a node may be set from the Asterisk Dialplan as follows:&lt;br /&gt;
 rpt(&amp;lt;nodenum&amp;amp;gt,V,&amp;lt;name=value&amp;gt;)&lt;br /&gt;
For example, for extension 1234 priority 5, set variable 'MYVAR' to '0' for node 2000:&lt;br /&gt;
 exten =&amp;gt; 1234,5,rpt(2000,V,MYVAR=0)&lt;br /&gt;
Granted, there may very well be some things (such as interesting information that can be expressed&lt;br /&gt;
&lt;br /&gt;
within this subsystem) that has been overlooked, and any suggestions and/or comments regarding this&lt;br /&gt;
&lt;br /&gt;
whole thing would be much appreciated.&lt;br /&gt;
&lt;br /&gt;
This also opens a completely new avenue of customization and individual creativity for each system&lt;br /&gt;
&lt;br /&gt;
implementer. There are many innovative things that can be done with this. Also there are many just plain&lt;br /&gt;
&lt;br /&gt;
silly ones, such as connecting your doorbell to one the input pins on the URI, and having the system&lt;br /&gt;
&lt;br /&gt;
connect to your favorite Echolink node or something when someone rings the doorbell.&lt;br /&gt;
&lt;br /&gt;
At some point there should be a contest to see who can come up with the most utterly ludicrous&lt;br /&gt;
&lt;br /&gt;
appication of this subsystem. There are many possibilities to explore in this area. Hint: you will&lt;br /&gt;
&lt;br /&gt;
get '''major''' extra bonus points if it involves the script re-writing itself (self-modifying&lt;br /&gt;
&lt;br /&gt;
code, that exhibits at least plausibility of long-term stability (going to poo-poo in less then&lt;br /&gt;
&lt;br /&gt;
1000 iterations is ''just'' not acceptible)).&lt;br /&gt;
&lt;br /&gt;
In any case, please contribute whatever wonderful configurations you come up with so that all users&lt;br /&gt;
&lt;br /&gt;
may have the benefits of all the wonderful ideas everyone comes up with.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1312</id>
		<title>Event Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Event_Management&amp;diff=1312"/>
		<updated>2019-01-28T13:49:48Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=European_Repeater_Operation&amp;diff=1311</id>
		<title>European Repeater Operation</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=European_Repeater_Operation&amp;diff=1311"/>
		<updated>2019-01-28T13:36:33Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
&lt;br /&gt;
We realize that there are different requirements for repeater operation in different parts of the world. Until recently, we have not dealt much with these, not out of insensitivity, but out of unfamiliarity.&lt;br /&gt;
&lt;br /&gt;
Two things have been brought to our attention that we have added functionality to support.&lt;br /&gt;
&lt;br /&gt;
In the UK, it is necessary for a repeater to identify on a periodic basis regardless of activity.&lt;br /&gt;
&lt;br /&gt;
To enable this feature:&lt;br /&gt;
&lt;br /&gt;
The following are parameters in the [node] section of rpt.conf:&lt;br /&gt;
 beaconing=yes&lt;br /&gt;
Also, many countries still require access to the repeater be with a toneburst (generally 1750 Hz).&lt;br /&gt;
&lt;br /&gt;
To enable this feature:&lt;br /&gt;
 rxburstfreq=1750     ; set burst frequency to 1750 Hz (or whatever freq you desire)&lt;br /&gt;
 &lt;br /&gt;
 Also, optionally:&lt;br /&gt;
 &lt;br /&gt;
 rxbursttime=500      ; set minimum decode time to 500Hz&lt;br /&gt;
 rxburstthreshold=10  ; set minimum s/n ratio for decode&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=European_Repeater_Operation&amp;diff=1310</id>
		<title>European Repeater Operation</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=European_Repeater_Operation&amp;diff=1310"/>
		<updated>2019-01-28T13:35:45Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Update_from_SVN&amp;diff=1309</id>
		<title>Update from SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Update_from_SVN&amp;diff=1309"/>
		<updated>2019-01-28T13:28:48Z</updated>

		<summary type="html">&lt;p&gt;N8THN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
[[Category:Obsolete]]&lt;br /&gt;
As we fix bugs and add additional features, new source code is posted to SVN (and available from the viewvc interface) from time to time. New installs do not get the latest updates as what is in SVN is considered experimental. However, 99.99% of the time you'll want/need the latest. The update procedure is documented on the Allstar site. It is reproduced here for your convenience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /usr/src&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rm -rf astsrc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;http://x.allstarlink.org/svn-trunk.tar.gz&amp;lt;/nowiki&amp;gt; -O- | tar xzv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mv trunk astsrc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd astsrc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make upgrade-acid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This procedure can take over an hour on slow computers or under 10 minutes on fast ones. Restart asterisk when complete.&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
	<entry>
		<id>https://wiki.pttlink.org/index.php?title=Update_from_SVN&amp;diff=1308</id>
		<title>Update from SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.pttlink.org/index.php?title=Update_from_SVN&amp;diff=1308"/>
		<updated>2019-01-28T13:28:00Z</updated>

		<summary type="html">&lt;p&gt;N8THN: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How to]]&lt;br /&gt;
[[Category:Obsolete]]&lt;/div&gt;</summary>
		<author><name>N8THN</name></author>
	</entry>
</feed>