Asterisk 1.4 und Enum bei 0180-telefonbuch

thorsten.gehrig

Mitglied
Mitglied seit
14 Jun 2004
Beiträge
493
Punkte für Reaktionen
0
Punkte
16
Hi
hat irgendjemand Asterisk mit Enum beim 0180-Telefonbuch am laufen?
Bei enum.0180.info sollen ja die Daten liegen - ich kriege aber keine nummer aufgelöst.
[suche] habe ich auch schon probiert - aber nichts gefunden.

Bin für jeden Tip dankbar.

Gruß
Thorsten
 
hallo Thorsten,

seit dem der service zu teltarif gewechselt ist ist enum nicht mehr möglich. Ich habe bei teltarif schon einmal eine Anfrage bzgl. Schnittstelle gestellt und nur die Antwort bekommen, dass Privatpersonen doch die Webseite nutzen sollen.
Das sehe ich als Einveständnis ein Script über die html-Seite laufen zu lassen und alle Infos von dort abzugreifen. Damit habe ich auch schon angefangen kann aber wegen mangelnder Zeit gerade nicht damit weiter machen.

Ich denke in 14 Tage ist das Script soweit ;)
 
Automatische Nutzung des 0180-Telefonbuchs

Hi
ich hab gestern noch stundenlang selbst gebastelt.
Rausgekommen ist das:
0180.agi
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
        lynx "http://www.tk-anbieter.de/0180/suche.html?NR=$NUMMER" \
        -dump -nolist -connect_timeout=3>  $TMPFILE
        NUM2=`grep 0180[1-5]-  $TMPFILE | grep spix.gif | awk '{ if (FNR == 1) print $3 }' `
        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

Mein extensions.conf
Code:
[line-out]
...blabla...

; 0180-Context
exten => _00180.,1,Noop; Wait(0.5)
exten => _00180.,2,Noop
exten => _00180.,3,noop
exten => _00180.,4,Macro(record,1,1)
exten => _00180.,5,Set(NUM1=${EXTEN})
exten => _00180.,6,Set(NUM2=${EXTEN:1})
exten => _00180.,7,Set(NUM2_FOUND="FALSE")
exten => _00180.,8,AGI,0180.agi|${NUM2}
exten => _00180.,9,Noop(${NUM2} - ${NUM2_FOUND})
exten => _00180.,10,GotoIf($[${NUM2_FOUND}=TRUE]?0180-auswahl|s,1)
exten => _00180.,11,Dial(SIP/${EXTEN:1}@dusnet,90,T)
exten => _00180.,12,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

Funktioniert soweit recht gut. Der erste Eintrag wird Übernommen in das Cachefile. Wenn es mehrere Einträge gibt - und der erste nicht der gewünschte ist kann man das für das nächste mal Manuell korrigieren.
Wenn es eine Alternativrufnummer gibt wird man daraf hingewießen. Zur sicherheit wird die Alternativrufnummer vor dem Wählen Angesagt.
Beim wählen der Alternativrufnummer wird die Wahl in meinen "normalen" Line-Out-Context geschickt. Beim wählen der Originalrufnummer passiert dies direkt im 0180-context.

Die extension "goto,hangup|${HANGUPCAUSE}|1" kann durch ein normales "congestion()" ersetzt werden. Bei mir wird in dem Hangup-Context angesagt warum die Verbindung beendet wurde...

Meine Ansagen habe ich hier zur Verfügung gestellt:
http://www.gehrig.info/ansagen/

Ich bin mal gespannt ob die "Community" mein Script verbessern kann....
Allerdings fände ich ein Voicemenü was evtl. mehrere vorhandene Alternativrufnummern vorliest und auswählbar macht einen "overkill"....

Gruß
Thorsten Gehrig

Nachtrag: wie ich gerade feststelle wird nicht immer die richtige spalte ausgewählt. Bei "anbieter 000000" funktioniert es, bei "anbieter blabla 0000000" wird "blabla" gewählt. Die passende Stelle im Script ist hier:
NUM2=`grep 0180[1-5]- $TMPFILE | grep spix.gif | awk '{ if (FNR == 1) print $3 }' `
Wer hier was besseres Textet ist sehr willkommen!
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.