- Mitglied seit
- 14 Jun 2004
- Beiträge
- 493
- Punkte für Reaktionen
- 0
- Punkte
- 16
Hallo,
nachdem das "Reverse-lookup-Script" ja scheinbar sehr häufig eingesetzt wird möchte ich euch nun an meiner neuen "Erungenschaft" partizipieren lassen:
Das 0180-geht-auch-Billiger-Script
Hintergrund: auf http://www.tk-anbieter.de/0180/ kann man für 0180er Rufnummern nach billigen alternativrufnummern suchen.
Es ging wohl mal per ENUM - leider wohl aber (seid langem) nicht mehr. Daher musste ich dafür wieder HTML-content durchsuchen...
Die Routione funktioniert so, dass bei 0180er-Rufnummern automatisch nach alternativen gesucht wird. Wenn eine gefunden wird, bekommt der Teilnehmer eine Ansage "es wurde eine alternativrufnummer gefunden - bitte drücken Sie die 1 zum wählen der alternativen Rufnummer oder drücken Sie die 2 zum wählen der originalen Rufnummer". Beim auswählen der altenativrufnummer wird diese vor dem Wählen Angesagt...
Alternativrufnummern werde automatisch in einem Cache gespeichert (der auch manuell "befüllbar" ist). Stehen mehrere Alternativrufnummern zur auswahl wird nur die erste genommen (soll eine andere genommen werden ist dies manuell in die cachedatei einzufügen).
Extensions.conf
und hier das 0180.agi-script
Hier gibts noch die 3 Sounddateien für die Ansagen:
http://gehrig.info/ast_sound/0180auswahl.wav
http://gehrig.info/ast_sound/0180original.wav
http://gehrig.info/ast_sound/0180alternativ.wav
Ich bin auf euer Feedback gespannt.
Gruß
Thorsten Gehrig
Edit/Nachtrag:
a)wie man ja an den Codezeilen erkennen kann wird bei mir mit "0" das Amt "geholt" - daher werden bei den ersetzen Rufnummern natürlich auch die 0 davor gesetzt - kann man aber leicht anpassen.
b) In der extensions.conf ist direkt meine SIP-Wahl drinnen... muss sich auch jeder persönlich anpassen.
c) "exten => _00180.,8,goto,hangup|${HANGUPCAUSE}|1" srpingt bei mir in eine Standardansage warum die Verbindung beendet wurde (Besetzt, Nummer ungültig, etc). Dies kann man natürlich durch ein einfaches "Hangup" ersetzen...
nachdem das "Reverse-lookup-Script" ja scheinbar sehr häufig eingesetzt wird möchte ich euch nun an meiner neuen "Erungenschaft" partizipieren lassen:
Das 0180-geht-auch-Billiger-Script
Hintergrund: auf http://www.tk-anbieter.de/0180/ kann man für 0180er Rufnummern nach billigen alternativrufnummern suchen.
Es ging wohl mal per ENUM - leider wohl aber (seid langem) nicht mehr. Daher musste ich dafür wieder HTML-content durchsuchen...
Die Routione funktioniert so, dass bei 0180er-Rufnummern automatisch nach alternativen gesucht wird. Wenn eine gefunden wird, bekommt der Teilnehmer eine Ansage "es wurde eine alternativrufnummer gefunden - bitte drücken Sie die 1 zum wählen der alternativen Rufnummer oder drücken Sie die 2 zum wählen der originalen Rufnummer". Beim auswählen der altenativrufnummer wird diese vor dem Wählen Angesagt...
Alternativrufnummern werde automatisch in einem Cache gespeichert (der auch manuell "befüllbar" ist). Stehen mehrere Alternativrufnummern zur auswahl wird nur die erste genommen (soll eine andere genommen werden ist dies manuell in die cachedatei einzufügen).
Extensions.conf
Code:
; 0180-Context
exten => _00180.,1,Set(NUM1=${EXTEN})
exten => _00180.,2,Set(NUM2=${EXTEN:1})
exten => _00180.,3,Set(NUM2_FOUND="FALSE")
exten => _00180.,4,AGI,0180.agi|${NUM2}
exten => _00180.,5,Noop(${NUM2} - ${NUM2_FOUND})
exten => _00180.,6,GotoIf($[${NUM2_FOUND}=TRUE]?0180-auswahl|s,1)
exten => _00180.,7,Dial(SIP/${EXTEN:1}@dusnet,90,T)
exten => _00180.,8,goto,hangup|${HANGUPCAUSE}|1
[0180-auswahl]
;Menü - 1 für alternative Nummer, 2 für normale nummer
exten => s,1,Background(0180auswahl)
exten => s,2,WaitExten(5)
exten => s,3,Goto(0180-auswahl,s,1) ;
; alternative Nummer ansagen und wählen
exten => 1,1,Playback(0180alternativ)
exten => 1,2,saydigits(${NUM2:1})
exten => 1,3,goto(line-out,${NUM2},1)
;2 Gedrückt - wähle Originl
exten => 2,1,Playback(0180original)
exten => 2,2,Dial(SIP/${NUM1:1}@dusnet,90,T)
exten => 2,3,goto,hangup|${HANGUPCAUSE}|1
exten => i,1,Goto(0180-auswahl,1,1) ; gehe zu Nummer 2, schritt 1
und hier das 0180.agi-script
Code:
#!/bin/sh
#pfad zum cachefile
CACHE="/var/spool/asterisk/0180_cache"
#pfad um das tempfile anzulegen
TMPFILE="/tmp/tmpsuche"
TMPFILE2="/tmp/tmpclir"
NUM2_FOUND="FALSE"
echo "$1-$2-$3" >/tmp/reverse.tmp
NUMMER=`echo $1 | sed -e "s/\ //g" -e "s/+49/0/"`
#echo "Suche nach $NUMMER im cache"
NUM2=`awk -F '\t' '{ if ($1 == "'$NUMMER'") print $2 }' $CACHE`
if [ "$NUM2" == "" ]; then
wget "http://www.tk-anbieter.de/0180/suche.html?NR=$NUMMER" -O $TMPFILE -q
NUM2=`grep " <b>" $TMPFILE | sed "-e s/\ \;/\ /g" | sed "-e s/<b>/\ /g" | sed "-e s/<\/b>/\ /g" | awk '{ if (FNR == 1) print $1 }' `
echo -e "$NUMMER\t$NUM2" >>$CACHE
if [ "$NUM2" == "" ]; then
NUM2=$NUMMER
else
NUM2_FOUND="TRUE"
fi;
else
NUM2_FOUND="TRUE"
fi;
echo 'SET VARIABLE NUM2 '"\"0$NUM2\"" >/dev/stdout
echo 'SET VARIABLE NUM2_FOUND '"\"$NUM2_FOUND\"" >/dev/stdout
read in
exit 0
Hier gibts noch die 3 Sounddateien für die Ansagen:
http://gehrig.info/ast_sound/0180auswahl.wav
http://gehrig.info/ast_sound/0180original.wav
http://gehrig.info/ast_sound/0180alternativ.wav
Ich bin auf euer Feedback gespannt.
Gruß
Thorsten Gehrig
Edit/Nachtrag:
a)wie man ja an den Codezeilen erkennen kann wird bei mir mit "0" das Amt "geholt" - daher werden bei den ersetzen Rufnummern natürlich auch die 0 davor gesetzt - kann man aber leicht anpassen.
b) In der extensions.conf ist direkt meine SIP-Wahl drinnen... muss sich auch jeder persönlich anpassen.
c) "exten => _00180.,8,goto,hangup|${HANGUPCAUSE}|1" srpingt bei mir in eine Standardansage warum die Verbindung beendet wurde (Besetzt, Nummer ungültig, etc). Dies kann man natürlich durch ein einfaches "Hangup" ersetzen...
Zuletzt bearbeitet: