To verify that your repeater is still online on the internet, we will add a DTMF command that tells you by an announcement on request.
Copy the file Logic.tcl
in sub-directory local
. This allows us to never change the original file Local.tcl
(original file in /usr/share/svxlink/events.d/
.)
cd /usr/share/svxlink/events.d/ sudo mkdir local cp Logic.tcl ./local/Logic.tcl
In Logic.tcl
file, searching the function that will handle our remote commands on receipt of DTMF codesdtmf_cmd_received
, and copy the following lines (between if {$cmd == “25”} { # DTMF 25
et return 1 }
)
sudo nano /usr/share/svxlink/events.d/local/Logic.tcl
#SEND DTMF CODE 25# if {$cmd == "25"} { set result [catch {exec ping -c 1 google.com }]; if {$result == 0} { puts "Internet online :Connected" playMsg "Default/internet_status" "Internet_Connection_Active"; #speeling of the internet public IP address set runcmd [exec curl http://ip.42.pl/short 2>&1]; #Internet IP adress puts "Internet IP Adress : $runcmd" set splitip [split $runcmd .] lassign $splitip ip1 ip2 ip3 ip4 spellWord $ip1; playMsg "Default" "decimal"; spellWord $ip2; playMsg "Default" "decimal"; spellWord $ip3; playMsg "Default" "decimal"; spellWord $ip4; } else { puts "Internet online :Disconnected" playMsg "Default/internet_status" "Internet_Connection_Inactive"; } return 1 } return 0 }
In this TCL code , we also integrate from the line #speeling of the internet public IP address
a few lines that will allow players to play one character at your public IP address . This reading uses the standard function spellWord
.
Both read messages are two sound files wav to set up in a subdirectory , eg
/usr/share/svxlink/sounds/fr_FR/internet_status/
.
Files available on https://github.com/F8ASB