- Mitglied seit
- 17 Jul 2004
- Beiträge
- 263
- Punkte für Reaktionen
- 0
- Punkte
- 0
[highlight=orange:ab3ef39dd9]EDIT: Das Skript wurde neu überarbeitet. Die aktuellste Version gibt es nun hier zum Download. Der untenstehende Text ist veraltet.[/highlight:ab3ef39dd9]
Hallo,
auf http://www.voip-info.org/tiki-index.php?page=Asterisk tips wake-up gibt es zwar schon sowas. Jedoch komm ich mit dem perl-Skript nicht zurecht. Deshalb hab ich ein eigenes wakeup.agi erstellt. Das run_wakeups Skript kann von obigem Link übernommen werden.
Das Skript wird vom Telefon, über das ich geweckt werden möchte mit 999
angerufen:
Für den Weckruf hab ich noch folgenden Context angelegt:
Mein Skript wakeup.agi ist nicht sehr elegant, erfüllt aber seinen Zweck:
Bin für Fragen oder Verbesserungsvorschläge jederzeit offen.
Benno
Hallo,
auf http://www.voip-info.org/tiki-index.php?page=Asterisk tips wake-up gibt es zwar schon sowas. Jedoch komm ich mit dem perl-Skript nicht zurecht. Deshalb hab ich ein eigenes wakeup.agi erstellt. Das run_wakeups Skript kann von obigem Link übernommen werden.
Das Skript wird vom Telefon, über das ich geweckt werden möchte mit 999
angerufen:
Code:
exten => 999,1,agi,wakeup.agi
Für den Weckruf hab ich noch folgenden Context angelegt:
Code:
[weckruf]
exten => ***,1,Answer
exten => ***,2,MP3Player(/var/lib/asterisk/mohmp3/Hahnkraeh.mp3)
exten => ***,3,Hangup
Mein Skript wakeup.agi ist nicht sehr elegant, erfüllt aber seinen Zweck:
Code:
#!/bin/sh
read agi_request
read agi_language
read agi_channel
read agi_type
read agi_uniqueid
read agi_callerid
echo $agi_callerid > /tmp/"callerid.$agi_callerid"
callerid=`sed s/"agi_callerid: "// /tmp/"callerid.$agi_callerid"`
read agi_dnid
read agi_rdnis
read agi_context
read agi_extension
read agi_priority
read agi_enhanced
read agi_accountcode
read emptyline
echo $agi_extension > /tmp/weckzeit.$callerid
echo "GET DATA hours 3000 2" > /dev/stdout
read stunden
echo $stunden > /tmp/stunden.$callerid
hh=`sed s/"200 result="// /tmp/stunden.$callerid`
case $hh in
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23)
;;
*)
echo 'STREAM FILE invalid ""' > /dev/stdout
read false
echo 'HANGUP'
read false
exit
;;
esac
echo "GET DATA minutes 3000 2" > /dev/stdout
read minuten
echo $minuten > /tmp/minuten.$callerid
mm=`sed s/"200 result="// /tmp/minuten.$callerid`
case $mm in
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |\
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |\
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |\
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |\
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59)
;;
*)
echo 'STREAM FILE invalid ""' > /dev/stdout
read false
echo 'HANGUP'
read false
exit
;;
esac
echo "Channel: Zap/g1/$callerid" > /tmp/wakeups/$hh$mm.$callerid.call
echo "Callerid: 999" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "MaxRetries: 2" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "RetryTime: 60" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "WaitTime: 60" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "Context: weckruf" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "Extension: ***" >> /tmp/wakeups/$hh$mm.$callerid.call
echo "Priority: 1" >> /tmp/wakeups/$hh$mm.$callerid.call
if [ $hh -lt 10 ]
then hh=`sed s/"200 result=0"// /tmp/stunden.$callerid`
fi
if [ $mm -lt 10 ]
then mm=`sed s/"200 result=0"// /tmp/minuten.$callerid`
fi
echo 'SAY NUMBER '"$hh"' ""' > /dev/stdout
read in
echo 'STREAM FILE oclock ""' > /dev/stdout
read in
echo 'SAY NUMBER '"$mm"' ""' > /dev/stdout
read in
echo 'STREAM FILE vm-goodbye ""' > /dev/stdout
read in
echo 'HANGUP' > /dev/stdout
read in
Bin für Fragen oder Verbesserungsvorschläge jederzeit offen.
Benno