Hallo
Mich würde mal interessieren, was Ihr so an scripten auf Linuxbasis geschrieben habt, um gewisse Dinge zu automatisieren.
Wenn es solch einen Thread schon gibt, dann bitte dorthin verschieben.
Ich würde mal starten wollen mit dem, was ich aktuell im Einsatz habe:
1.) Mute-Schaltung über Linux mit Überprüfung, ob Mute schon aktiv ist. Aufruf über ./muteTV.sh <ip-adresse-der Box> (Bei mir im dialplan der Asterisk beim Anruf auf meine Nummern)
Alles anzeigen
2.) Lautstärküberwachung während der Ruhezeiten mit automatischer Lautstärkereduzierung. Aufruf über crontab alle Minute
Alles anzeigen
3.) Anrufanzeige auf der Box inklusive Rückwärtssuche bei dasoertliche (Kombination aus Asterisk dialplan und Linux script:
3.1) Aufruf des Scriptes aus dem Dialplan der Asterisk (extensions.conf) an geeigneter Stelle:
3.2) Linux script:
Alles anzeigen
3.3) Weiter verwenden des aufgelösten Namens in der extensions.conf:
4.) Umschalten einer beliebigen, per http erreichbaren Box per Anruf einer Rufnummer in der Asterisk:
4.1) Extensions.conf in der Asterisk:
Alles anzeigen
4.2) Linux script auf der Asterisk zum Umschalten: (Leider habe ich hier noch keinen eleganteren Weg gefunden, die möglichen 4 Ziffern des Kanals umzuschreiben, deswegen die lange if / fi Kette....)
Alles anzeigen
So. Ich bin nun gespannt wie der Thread ankommt, und ob Ihr auch schreibt was Ihr schon so verbrochen habt
Freue mich auf viele Antworten mit Anregungen für weitere Automatisierung
Mich würde mal interessieren, was Ihr so an scripten auf Linuxbasis geschrieben habt, um gewisse Dinge zu automatisieren.
Wenn es solch einen Thread schon gibt, dann bitte dorthin verschieben.
Ich würde mal starten wollen mit dem, was ich aktuell im Einsatz habe:
1.) Mute-Schaltung über Linux mit Überprüfung, ob Mute schon aktiv ist. Aufruf über ./muteTV.sh <ip-adresse-der Box> (Bei mir im dialplan der Asterisk beim Anruf auf meine Nummern)
Shell-Script
- [root@VoIPServer ~]# cat muteTV.sh
- #!/bin/sh
- Datum=$(date)
- user=meinuser
- pass=meinpass
- ip=$1
- waittime=1
- tmpfile=/tmp/mute.$ip.status
- rm $tmpfile
- wget --output-document=$tmpfile http://$user:$pass@$ip/web/vol
- muteTVstatus=$(cat $tmpfile | grep e2ismuted | cut -b 13-16)
- echo $muteTVstatus
- if [[ $muteTVstatus = Fals ]]
- then
- echo "let's turn on mute for $ip"
- wget "http://$user:$pass@$ip/web/remotecontrol?command=113"&
- else
- echo "$ip is already muted, just exiting."
- fi
- rm -f remotecontrol*
2.) Lautstärküberwachung während der Ruhezeiten mit automatischer Lautstärkereduzierung. Aufruf über crontab alle Minute
Shell-Script
- root@UbuntuServer:/usr/script# cat CheckVolume.100.sh
- #!/bin/sh
- Datum=$(date)
- user=meinuser
- pass=meinpass
- ip=192.168.1.100
- waittime=0.05
- filename=/usr/script/vol.100
- Ruhe=$(date +"%H")
- if [ $Ruhe -ge 8 -a $Ruhe -le 11 ]
- then
- exit 0
- fi
- if [ $Ruhe -ge 15 -a $Ruhe -le 19 ]
- then
- exit 0
- fi
- echo "Es herrscht Ruhezeit!!! Script greift ein!"
- rm -f $filename
- wget --output-document=$filename http://$user:$pass@$ip/web/vol
- volume=$(cat $filename | grep e2current | cut -b 5-15 |sed s/[^0-9]//g)
- echo $volume
- if [ $volume -gt 80 ]
- then
- wget "http://$user:$pass@$ip/web/message?text=Hier spricht der 'Volume-Watchdog!!!'%0A%0AGanz schön laut eingestellt... :-(%0AIch regele mal von $volume% runter auf 60%...&type=1&timeout=30"
- wget "http://$user:$pass@$ip/web/vol?set=set60"
- echo "$Datum: Volume exeeded! IP: $ip, Volume set to: $volume%." >> /var/log/volumewatchdog.log
- # else
- # wget "http://$user:$pass@$ip/web/message?text=Nothing to do for me...&type=1&timeout=10"
- fi
- rm -f /usr/script/vol\?set\=set60
- rm -f /usr/script/message*
3.) Anrufanzeige auf der Box inklusive Rückwärtssuche bei dasoertliche (Kombination aus Asterisk dialplan und Linux script:
3.1) Aufruf des Scriptes aus dem Dialplan der Asterisk (extensions.conf) an geeigneter Stelle:
3.2) Linux script:
Shell-Script
- [root@VoIPServer]# cat dasoertliche.sh
- #!/bin/sh
- rm /tmp/name.log
- echo "searching for CLI: "$1 >> /var/log/asterisk/das_oertliche_lookup.log
- wget -q -O /tmp/step1 "http://www1.dasoertliche.de/?form_name=search_inv&ph="$1
- cat /tmp/step1 | grep na: >> /tmp/step2
- name_work=$(cat /tmp/step2 | sed 's|["]||g')
- name=${name_work#* }
- echo $name
- if [ -z $name ]
- then
- echo "Kein Eintrag gefunden"
- name="Unbekannt"
- else
- echo "Eintrag gefunden"
- fi
- echo $name > /tmp/name.log
- rm /tmp/step1
- rm /tmp/step2
4.) Umschalten einer beliebigen, per http erreichbaren Box per Anruf einer Rufnummer in der Asterisk:
4.1) Extensions.conf in der Asterisk:
Quellcode
- [macro-choice7]
- exten => s,1,NoOp
- exten => s,n,Flite(Please enter your choice)
- exten => s,n,Flite(1 is Box1)
- exten => s,n,Flite(2 is Box2)
- exten => s,n,Flite(3 is Box3)
- exten => s,n,Flite(4 is Box4)
- exten => s,n,Flite(5 is Box5)
- exten => s,n,Read(choice,,1,3)
- exten => s,n,Flite(Thank you)
- exten => s,n,Flite(Now please enter the channel number)
- exten => s,n,Read(channel,,4,3)
- exten => s,n,Flite(Thank you)
- exten => s,n,Flite(Going to change channel now)
- exten => s,n,Gotoif($[ ${choice} = 1 ]?101:)
- exten => s,n,Gotoif($[ ${choice} = 2 ]?201:)
- exten => s,n,Gotoif($[ ${choice} = 3 ]?301:)
- exten => s,n,Gotoif($[ ${choice} = 4 ]?401:)
- exten => s,n,Gotoif($[ ${choice} = 5 ]?501:)
- exten => s,101,NoOp
- exten => s,n,System(/etc/asterisk/zap.sh 192.168.1.100 ${channel})
- exten => s,n,Flite(Good bye)
- exten => s,n,Hangup()
- exten => s,201,NoOp
- exten => s,n,System(/etc/asterisk/zap.sh 192.168.1.101 ${channel})
- exten => s,n,Flite(Good bye)
- exten => s,n,Hangup()
- exten => s,301,NoOp
- exten => s,n,System(/etc/asterisk/zap.sh 192.168.1.102 ${channel})
- exten => s,n,Flite(Good bye)
- exten => s,n,Hangup()
- exten => s,401,NoOp
- exten => s,n,System(/etc/asterisk/zap.sh 192.168.1.104 ${channel})
- exten => s,n,Flite(Good bye)
- exten => s,n,Hangup()
- exten => s,501,NoOp
- exten => s,n,System(/etc/asterisk/zap.sh 192.168.17.83 ${channel})
- exten => s,n,Flite(Good bye)
- exten => s,n,Hangup()
4.2) Linux script auf der Asterisk zum Umschalten: (Leider habe ich hier noch keinen eleganteren Weg gefunden, die möglichen 4 Ziffern des Kanals umzuschreiben, deswegen die lange if / fi Kette....)
Shell-Script
- [root@VoIPServer asterisk]# cat zap.sh
- #!/bin/sh
- Datum=$(date)
- user=meinuser
- pass=meinpass
- ip=$1
- waittime=0.05
- channel=$2
- tmpfile=/tmp/channel.zap
- rm $tmpfile
- echo $2 >> $tmpfile
- dig1=$(cat $tmpfile | cut -b 1-1 )
- dig2=$(cat $tmpfile | cut -b 2-2 )
- dig3=$(cat $tmpfile | cut -b 3-3 )
- dig4=$(cat $tmpfile | cut -b 4-4 )
- if [ $dig1 = 1 ]
- then
- com1="2"
- fi
- if [ $dig1 = 2 ]
- then
- com1="3"
- fi
- if [ $dig1 = 3 ]
- then
- com1="4"
- fi
- if [ $dig1 = 4 ]
- then
- com1="5"
- fi
- if [ $dig1 = 5 ]
- then
- com1="6"
- fi
- if [ $dig1 = 6 ]
- then
- com1="7"
- fi
- if [ $dig1 = 7 ]
- then
- com1="8"
- fi
- if [ $dig1 = 8 ]
- then
- com1="9"
- fi
- if [ $dig1 = 9 ]
- then
- com1="10"
- fi
- if [ $dig1 = 0 ]
- then
- com1="11"
- fi
- if [ $dig2 = 1 ]
- then
- com2="2"
- fi
- if [ $dig2 = 2 ]
- then
- com2="3"
- fi
- if [ $dig2 = 3 ]
- then
- com2="4"
- fi
- if [ $dig2 = 4 ]
- then
- com2="5"
- fi
- if [ $dig2 = 5 ]
- then
- com2="6"
- fi
- if [ $dig2 = 6 ]
- then
- com2="7"
- fi
- if [ $dig2 = 7 ]
- then
- com2="8"
- fi
- if [ $dig2 = 8 ]
- then
- com2="9"
- fi
- if [ $dig2 = 9 ]
- then
- com2="10"
- fi
- if [ $dig2 = 0 ]
- then
- com2="11"
- fi
- if [ $dig3 = 1 ]
- then
- com3="2"
- fi
- if [ $dig3 = 2 ]
- then
- com3="3"
- fi
- if [ $dig3 = 3 ]
- then
- com3="4"
- fi
- if [ $dig3 = 4 ]
- then
- com3="5"
- fi
- if [ $dig3 = 5 ]
- then
- com3="6"
- fi
- if [ $dig3 = 6 ]
- then
- com3="7"
- fi
- if [ $dig3 = 7 ]
- then
- com3="8"
- fi
- if [ $dig3 = 8 ]
- then
- com3="9"
- fi
- if [ $dig3 = 9 ]
- then
- com3="10"
- fi
- if [ $dig3 = 0 ]
- then
- com3="11"
- fi
- if [ $dig4 = 1 ]
- then
- com4="2"
- fi
- if [ $dig4 = 2 ]
- then
- com4="3"
- fi
- if [ $dig4 = 3 ]
- then
- com4="4"
- fi
- if [ $dig4 = 4 ]
- then
- com4="5"
- fi
- if [ $dig4 = 5 ]
- then
- com4="6"
- fi
- if [ $dig4 = 6 ]
- then
- com4="7"
- fi
- if [ $dig4 = 7 ]
- then
- com4="8"
- fi
- if [ $dig4 = 8 ]
- then
- com4="9"
- fi
- if [ $dig4 = 9 ]
- then
- com4="10"
- fi
- if [ $dig4 = 0 ]
- then
- com4="11"
- fi
- echo $ip, $channel, $dig1, $dig2, $dig3, $dig4, $com1, $com2, $com3, $com4
- wget -q --spider http://$user:$pass@$ip/web/remotecontrol?command=$com1
- sleep $waittime
- wget -q --spider http://$user:$pass@$ip/web/remotecontrol?command=$com2
- sleep $waittime
- wget -q --spider http://$user:$pass@$ip/web/remotecontrol?command=$com3
- sleep $waittime
- wget -q --spider http://$user:$pass@$ip/web/remotecontrol?command=$com4
- sleep $waittime
- wget -q --spider http://$user:$pass@$ip/web/remotecontrol?command=352
So. Ich bin nun gespannt wie der Thread ankommt, und ob Ihr auch schreibt was Ihr schon so verbrochen habt
Freue mich auf viele Antworten mit Anregungen für weitere Automatisierung
LG skamm71
"Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
"Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."