| Line 344: |
Line 344: |
| | [[File:108_diag_menu_g.png|none|thumb|640x640px]] | | [[File:108_diag_menu_g.png|none|thumb|640x640px]] |
| | | | |
| | + | == Ensure the nodelist is downloading == |
| | + | Before your node will connect it needs to have the nodelist available. This file will automatically be downloaded by systems support scripts and placed into /var/lib/asterisk/rpt_nodes. |
| | + | |
| | + | If for some reason your node never downloads the nodelist, it may mean you are missing the required support scripts and configuration. |
| | + | |
| | + | === Add missing NodeUpdate.sh and NodeNameUpdate.sh scripts === |
| | + | Copy the following if you are missing the scripts below in /usr/local/bin and do not have contab entries that call them |
| | + | |
| | + | * Copy the following to /usr/local/bin/NodeUpdate.sh |
| | + | <syntaxhighlight lang="sh"> |
| | + | #!/bin/bash |
| | + | # |
| | + | # A cron job script for downloading the extnodes file with error reporting |
| | + | # |
| | + | # |
| | + | # This is intended to be run from cron every 5 min |
| | + | # Copyright 2018 Bryan Fields |
| | + | # Licensed under the GNU GPLv2 |
| | + | |
| | + | URL="http://register.pttlink.org/cgi-bin/gennodes.php" |
| | + | FILEPATH=/var/lib/asterisk |
| | + | |
| | + | #sleep for a random time of 0-300 seconds |
| | + | #sleep $[( $RANDOM % 299 ) + 1 ]s |
| | + | |
| | + | |
| | + | # use curl in silent and compressed mode, connect timeout of 5 and |
| | + | # -f for fail with an error code of 22 on server errors |
| | + | #-m 20 is a max time for the whole process of 20 seconds |
| | + | curl -s --compressed --connect-timeout 5 -f -m 20 -o /tmp/rpt_extnodes-temp $URL |
| | + | #curl --connect-timeout 5 -f -m 20 -o /tmp/rpt_extnodes-temp $URL |
| | + | exitcode=$? |
| | + | if [ "$exitcode" = "0" ]; then |
| | + | grep -q extnodes /tmp/rpt_extnodes-temp |
| | + | if [ $? -eq "0" ] ;then |
| | + | chmod 700 /tmp/rpt_extnodes-temp |
| | + | cp /tmp/rpt_extnodes-temp $FILEPATH/rpt_extnodes-temp |
| | + | mv -f $FILEPATH/rpt_extnodes-temp $FILEPATH/rpt_extnodes |
| | + | whenandwhere=`grep "Generated at" /tmp/rpt_extnodes-temp |cut -c2-100` |
| | + | #don't print out on good run |
| | + | #echo "NodeUpdate installed a new nodes list $whenandwhere" |
| | + | logger -i "NodeUpdate installed a new nodes list $whenandwhere" |
| | + | else |
| | + | #echo "NodeUpdate failed to parse node list; node list not updated" |
| | + | logger -i "NodeUpdate failed to parse node list; node list not updated" |
| | + | exit 1 |
| | + | fi |
| | + | |
| | + | else |
| | + | #echo "NodeUpdate could not get nodes list from server" |
| | + | logger -i "NodeUpdate could not get nodes list from server" |
| | + | exit 1 |
| | + | fi |
| | + | exit 0 |
| | + | </syntaxhighlight> |
| | + | * Copy the following to /usr/local/bin/NodeNameUpdate.sh |
| | + | <syntaxhighlight lang="sh"> |
| | + | #!/bin/bash |
| | + | # |
| | + | # A cron job script for downloading custom node announcements with error reporting |
| | + | # |
| | + | # This is intended to be run from cron every 8 hours and will randomly insert a delay from 0-8 hours |
| | + | # |
| | + | # Copyright 2018 Bryan Fields |
| | + | # Licensed under the GNU GPLv2 |
| | + | |
| | + | URL="rsync://rsync.pttlink.org/connect-messages" |
| | + | FILEPATH="/var/lib/asterisk/sounds/rpt/nodenames" |
| | + | |
| | + | #sleep for a random time of 0-28800 seconds (8 hours) |
| | + | sleep $[ ( $RANDOM % 28799 ) + 1 ]s |
| | + | |
| | + | #assign the filesUpdated var with the number of files changed by rsync. This is nasty, but it works. |
| | + | |
| | + | filesUpdated=`rsync -a --stats $URL $FILEPATH |grep "Number of regular files transferred" | cut -c 38-50` |
| | + | exitcode=$? |
| | + | if [ "$exitcode" = "0" ]; then |
| | + | if [ "$filesUpdated" = "0" ]; then |
| | + | echo "NodeNameUpdate run with no updates" |
| | + | logger -i "NodeNameUpdate run with no updates" |
| | + | elif [ "$filesUpdated" > "0" ]; then |
| | + | echo "NodeNameUpdate updated $filesUpdated nodenames" |
| | + | logger -i "NodeNameUpdate updated $filesUpdated nodenames" |
| | + | fi |
| | + | else |
| | + | echo "NodeNameUpdate failed" |
| | + | logger -i "NodeUpdate failed" |
| | + | exit 1 |
| | + | fi |
| | + | exit 0 |
| | + | </syntaxhighlight> |
| | + | * Add entries to crontab |
| | + | <syntaxhighlight lang="text"> |
| | + | 0 0,8,16 * * * root /usr/local/sbin/NodeNameUpdate.sh > /dev/null 2>&1 |
| | + | */5 * * * * root /usr/local/sbin/NodeUpdate.sh > /dev/null 2>&1 |
| | + | </syntaxhighlight> |
| | + | == PTTLink Configuration Updates == |
| | Run the following commands to add PTTLink server address. | | Run the following commands to add PTTLink server address. |
| | | | |