ldapget: die eingehende Rufnummer in einen Namen wandeln

yuraukar

Neuer User
Mitglied seit
23 Feb 2005
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Ich möchte gern eingehende Nummern in einen Namen wandeln um zu sehen wer mich anruft. Die Nummern und Namen liegen bereits in einem LDAP Verzeichnis. ldapget wäre hierfür die erste Wahl.

Aber: es gibt ja nun unterschiedliche gültige Schreibweisen für eine Rufnummer, z.B. sind
+49 30 9994531
0049 30 999-4531
030 999 4531
(030) 9994531
alles die gleiche Rufnummer. Wie kann ich nun eine quasi unscharfe Suche machen?
Schwierig sind (a) Leerzeichen und Bindestriche (b) optionale Ländervorwahlen per + oder 00 (c) Stadtvorwahlen mit oder ohne 0 und Klammern.

Hat da jemand schon eine Lösung?
 
Ich habe bei mir ein kleines Skript geschrieben, welches die Rufnummern in eine einheitliche Form bringt. Oder sind die Daten im LDAP-Verzeichnis auch auf unterschiedliche Weise hinterlegt?
 
Die Daten liegen im LDAP ggf. unterschiedlich vor.

Insbesondere Leerzeichen und Bindestriche sind dort sogar ausdrücklich gewünscht um die Nummern lesbarer zu gestalten -- sie sind halt nicht nur für Asterisk gedacht.

Wie sieht Dein script denn ansonsten aus?
 
Die Daten liegen im LDAP ggf. unterschiedlich vor.

Dann hast Du wahrscheinlich ganz schlechte Karten. Denn die Daten, die vom LDAP-Server kommen, kannst Du nicht mal eben so "unscharf" machen.
 
Du benötigst ein Script, das
a) nach dem Auslesen aus dem ldap
b) und die eingehende Nummer
"normalisiert" wird.

Wie so ein Regelwerk aussehen kann, must du dir selber ausdenken.
 
Älteres Thema, stehe aber gerade vor dem gleichen Problem.

betateilchen schrieb:
Dann hast Du wahrscheinlich ganz schlechte Karten. Denn die Daten, die vom LDAP-Server kommen, kannst Du nicht mal eben so "unscharf" machen.

Ich habe die Rufnummern im Format "+49-1234-567890" gespeichert.
Bei mir funktioniert folgendes:

Code:
[cidname]
host = localhost
; user =
; pass =
base = ou=address,dc=ich,dc=lokal
filter = (&(objectClass=*)(|(telephoneNumber=*%s)(mobile=*%s)(fax=*%s)(homePhone=*%s)))
attribute = cn
convert = UTF-8, ISO-8859-1

Ein AEL Bespiel fuer eingehende Anrufe via ISDN
Code:
    123456 => {
        clen=${LEN(${CALLERID(number)})};
        NoOp(Length of the caller id ${clen});
        // Nummer sollte nicht zu kurz sein, um falsche Suchergebnisse zu vermeiden
        if (${clen} > 6 ) { // Achtung Klammer nicht versetzten
            num=${CALLERID(number):1}; // Nummer um erste Null kuerzen, fuer internationle Anrufer muesste man das aendern
            LDAPget(CALLERIDNAME=cidname/${num},${num},${num},${num}); // "unscharfe" Suche (in ldap.conf eingestellt) nach CALLERID
        };
        Dial(LOCAL/41,60,tw);
        Hangup();
    };


Allerdings sollte man vorher nochmal genau testen/nachlesen, damit es nicht zu falschen Suchergebnissen kommt.

Ein Alternative zu einem AGI wäre eventuell wenn man z.B. beim Start von Asterisk oder per cron eine Liste aus dem LDAP Verzeichnis erstellt, das die Rufnummern entsprechend umwandelt und man dann entweder eine extra LDAP Liste anlegt oder die neue Liste in die Asteriskdatenbank schreibt.
(Natürlich kann man auch die eigentlichen LDAP Einträge ergänzen).
 
Ich habe die Rufnummern im Format "+49-1234-567890" gespeichert.

Wenn alle Nummern im gleichen Format vorliegen, ist das ja alles kein Thema. In der ursprünglichen Fragestellung ging es aber darum, daß das genau nicht der Fall ist.
 
betateilchen schrieb:
Wenn alle Nummern im gleichen Format vorliegen, ist das ja alles kein Thema. In der ursprünglichen Fragestellung ging es aber darum, daß das genau nicht der Fall ist.
Na ja, zumindest
0049 30 999-4531
030 999 4531
+49 30 9994531
aus dem ersten Beitrag stellen kein Problem mit meinem BSP dar, (030) 9994531 geht nicht.
Außerdem war die Frage ja auch noch
Schwierig sind (a) Leerzeichen und Bindestriche (b) optionale Ländervorwahlen per + oder 00 (c) Stadtvorwahlen mit oder ohne 0 und Klammern.

So wie ich zumindest das Thema gelesen hatte, dachte ich, das es mit LDAPget gar nicht geht
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,887
Beiträge
2,303,982
Mitglieder
378,566
Neuestes Mitglied
draco777