Asterisk + Ldap + Adressbuch

unlimitopen

Neuer User
Mitglied seit
16 Feb 2008
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich suche mir gerade einen Wolf, warum mein Asterisk1.4 mein ldap
Adressbuch nicht sauber abfragt.

Asterisk ohne Ldap ok
Ldap funktion ok,
app_ldap ist konfiguriert

hier die ldap.conf
[cidname]
host = ldapsrv.homenet.netz
version = 3
user = cn=admin,dc=homenet,dc=netz
pass = xxxxx
filter = (&(objectClass=inetOrgPerson)(|(telephoneNumber=${CALLERIDNUM})))
base = ou=namesadressbook,dc=homenet,dc=netz

extension.conf
exten => _0X.,1,LDAPget(CIDNAME=cidname/${CALLERIDNUM},${CALLERIDNUM},${CALLERIDNUM})
exten => _0X.,n,SetCIDName(${CIDNAME})
exten => _0X.,n,Dial(CAPI/ISDN1/${EXTEN:1})

Meldung
Executing [00xxxxxx@intern01:1] LDAPget("SIP/2000-081dcae0", "CIDNAME=cidname/||") in new stack
-- LDAPget: varname=CIDNAME, config-section=cidname, keys=||
== Parsing '/etc/asterisk/ldap.conf': Found
> LDAPget: ldap://ldapsrv.homenet.netz/ou=namesadressbook,dc=homenet,dc=netz?cn?sub?(&(objectClass=inetOrgPerson)(|(telephoneNumber=${CALLERIDNUM})))
-- LDAPget: ldap://ldapsrv.homenet.netz/ou=namesadressbook,dc=homenet,dc=netz?cn?sub?(&(objectClass=inetOrgPerson)(|(telephoneNumber=)))
-- LDAPget: bind to ldapsrv.homenet.netz as cn=admin,dc=homenet,dc=netz
-- LDAPget: Value not found in directory.
[Feb 16 22:54:57] WARNING[8561]: pbx.c:1797 pbx_extension_helper: No application 'SetCIDName' for extension (intern01, 00xxxxxxx, 2)
== Spawn extension (intern01, 00xxxxxxx, 2) exited non-zero on 'SIP/2000-081dcae0'

hat Jemand schon eine lauffähige Ldap konfiguration mit?
grüße und danke!
 
Zuletzt bearbeitet:
app_ldap 2.01rc1


ldap.conf
Code:
[cidname]
host = localhost
user = cn=asteriskldap,ou=DSA,dc=meinnetz,dc=lokal
pass = *************
base = ou=contacts,dc=meinnetz,dc=lokal

; neu fuer Asterisk 1.4 (alter Syntax: Asterisk crash)
filter = (&(objectClass=*)(|(telephoneNumber=*${num})(mobile=*${num})(fax=*${num})(homePhone=*${num})(pager=*${num})))

attribute = cn
convert = UTF-8, ISO-8859-1

Ich benutzte das/ein mozillaOrgPerson schema v. 0.6.3.
convert / umlaute Problem: Dazu gibt es im Forum glaube ich, einige Lösungsansätze (event. im SNOM Forum suchen)


Beispiel für slapd.conf Eintrag
(Achtung: auf Sicherheit selber achten :twisted:
Code:
access to dn.children="ou=contacts,dc=meinnetz,dc=lokal"
      by dn="cn=asteriskldap,ou=DSA,dc=meinnetz,dc=lokal" read
      by * none stop

AELv2 Code:
Code:
Set(clen=${LEN(${CALLERID(number)})});
// Nummer sollte nicht zu kurz sein, um falsche Suchergebnisse zu vermeiden
if (${clen} > 6 ) { 
    Set(num=${CALLERID(number):1}); // Nummer um erste Null kuerzen, fuer internationle Anrufer muesste man das aendern    
    LDAPget(CALLERIDNAME=cidname); // "unscharfe" Suche nach CALLERID
}

Gespeichert sind die Nummern im Format "+49 123 47586", wobei "+49-123-47586" auch gehen müsste.


PS: Code Tags fürs Forum benutzten (# Symbol im Editor)
 
vielen dank!

Hallo zurück,

Ich habe die neue Schreibweise nicht beachtet!!

Code:
 	 app_ldap 2.01rc1
ja nutze ich.

Code:
Ich benutzte das/ein mozillaOrgPerson schema v. 0.6.3.
die nutze ich auch

Code:
Beispiel für slapd.conf Eintrag
(Achtung: auf Sicherheit selber achten
ja, für den test ist es der "manager" - wird sich aber ändern.

Ich werde es jetzt direkt ausprobieren.
Und Ja, ich werde die Code´s demnächst anders eingeben!:D

Bis hierhin vielen dank!!
 
Zuletzt bearbeitet:
funktioniert leider doch net.

Upps, zu früh gefreut.

Ich weiß nicht was ich wieder Falsch gemacht habe, anscheinend wird zwar im Asterisk Log der cn korrekt angezeigt aber nicht mehr (ja, es funktionierte erst) auf dem Telefon an. Woran kann es liegen`?

hier meine Konfigurationen.

die extensions.conf
Code:
exten => _0X.,1,LDAPget(CIDNAME=cidname/${CALLERID(num)},${CALLERID(num)},${CALLERID(num)})

exten => _0X.,n,Dial(CAPI/ISDN1/${EXTEN:1})

den Asterisk log
Code:
 Executing [00123456789@intern01:1] LDAPget("SIP/2000-08206e58", "CIDNAME=cidname/2000|2000|2000") in new stack
    -- LDAPget: varname=CIDNAME, config-section=cidname, keys=2000|2000|2000
  == Parsing '/etc/asterisk/ldap.conf': Found
    -- LDAPget: ldap://ldapsrv.homenet.netz/ou=namesadressbook,dc=homenet,dc=netz?cn?sub?(&(objectClass=*)(|(telephoneNumber=*)(mobile=*)(fax=*)(homePhone=*)(pager=*)))
    -- LDAPget: bind to ldapsrv.homenet.netz as cn=admin,dc=homenet,dc=netz
    -- LDAPget: cn=hans hermann
    -- LDAPget: convert: UTF-8 -> ISO-8859-1
    -- LDAPget: set CIDNAME='hans hermann'
    -- Executing [00123456789@intern01:2] Dial("SIP/2000-08206e58", "CAPI/ISDN1/00123456789") in new stack
    -- Called ISDN1/0123456789

was mache ich da wieder falsch?

grüße
 
Zuletzt bearbeitet:
Hallo unlimitopen,

das sieht doch aber garnicht so schlecht aus,
Du rufst von einem SipTelefon mit der Nummer 2000 an, guckst den Absender nach und waehlst raus.

Dass Du nen Set(CALLERID(name)=${CIDNAME}) machst, seh ich zwar grad nicht, aber hast Du bestimmt da stehen. :)

Ich frag mich nur gerade warum Du das so machst, den Absender - also den Namen - nachzuschlagen macht doch bei SIP->PSTN keinen Sinn, denn da draussen werden doch eh nur Nummern uebertragen, oder? ... :confused:

kann es sein, dass Du eigentlich vom PSTN aufs SIP anrufen wolltest ? :rolleyes:

Gruss Micro
 
ich versuche mich immernoch ...?

Hallo zusammen,

und danke für die Informationen
Code:
kann es sein, dass Du eigentlich vom PSTN aufs SIP anrufen wolltest ?
kannst du mir das nochmals erläutern? Stehe im Moment sehr auf dem Schlauch.
ich möchte gerne den Anrufer von draußen erkennen. 2. möchte ich auch den internen Anrufer erkennen alles über LDAP.

- hast du selber einen ATA Adapter im Einsatz?

meine extensions.conf
Code:
exten => _0X.,n,LDAPget(cidname=cidname/${CALLERID(num)},${CALLERID(num)},${CALLERID(num)})
exten => _0X.,n,Set(CALLERID(num)=${CIDNAME})
exten => _0X.,n,Dial(mISDN/g:intern/${EXTEN:1})

Ldap config ist noch wie oben beschrieben.

Grüße
und danke!
Chris
 
Zuletzt bearbeitet:
Code:
exten => _0X.,n,LDAPget(cidname=cidname/${CALLERID(num)},${CALLERID(num)},${CALLERID(num)})
exten => _0X.,n,Set(CALLERID([B][COLOR="Red"]num[/COLOR][/B])=${CIDNAME})
exten => _0X.,n,Dial(mISDN/g:intern/${EXTEN:1})

Hey... Probier's doch mal mit:
Code:
Set(CALLERID([B][COLOR="Red"]name[/COLOR][/B])=${CIDNAME})
 
naja, ich meinte eigentlich nur, dass Du nen Anruf von SIP ueber Deine ISDN-Karte ins Telefonnetz startest und dafuer den Namen aus dem LDAP holst. Du kannst ja aber uebers ISDN keine Namen uebertragen.

@geistio - dat wird m.E. nichts bei nem dial auf mISDN. CALLERID(name) is da soweit ich weiss nutzlos.

und jetzt hab ich grad gesehen, dass Du CALLERID(num) setzt ... d.h. wenn ich Dich jetzt richtig verstehe moechtest Du wohl die Absendernummer setzen und nicht den Namen. Du rufst aber laut Deinem Log cidname='hans hermann' ab und weist das der CALLERID(num) zu.

Das wird jedoch wohl nicht ganz klappen, da CALLERID(num) in der ISDN Welt nur numerisch sein kann. refer: Asterisk callerid

mit
Code:
attribute = cn
in der ldap.conf kannst Du die Eigenschaft aus dem LDAP-Eintrag auswaehlen. Muesstest Du wahrscheinlich von cn auf telephoneNumber oder so setzen.

Hab ich Dich da jetzt richtig verstanden ?

P.S.: jeap, hab auch nen ATA (grad auch in die Signatur gewandert ;-) ) fuer nen Analog FAX - gehe aber ueber 4 B-Kanaele ins PSTN, falls Du das meinst.
 
Zuletzt bearbeitet:
mmhh. ich drücke mich zu kompliziert aus

Hallo,

was möchte ich und was funktioniert.

1.Ich möchte alle ankommenden Anrufe, egal ob ISDN SIP- Egal ob intern SIP oder auch extern SIP, durch mein Adressbuch laufen lassen, existiert dieser Eintrag schreibe den Namen zur Nummer.

2.Wenn ich nun eine Rufnummer wähle anstatt das Adressbuch zu nutzen Bsp. 2001 soll dort "Frauchen" erscheinen. :rolleyes:

Was zumindest vom reinen Gedanken funktioniert: ich rufe mich per handy an - mein Name erscheint im Display. Rufe ich nun mit einer anderen Handynummer an (die auch im Ldap unter "Frauchen" gepflegt ist)- erscheint wieder mein Name, obwohl dort "Frauchen" erscheinen müsste. :confused:

ich schaue morgen mal weiter.

So, der letzte macht das Licht aus :) 1:15

Danke für euer Verständnis!

Chris
 
app_ldap 2.01rc1


ldap.conf
Code:
[cidname]
host = localhost
user = cn=asteriskldap,ou=DSA,dc=meinnetz,dc=lokal
pass = *************
base = ou=contacts,dc=meinnetz,dc=lokal

; neu fuer Asterisk 1.4 (alter Syntax: Asterisk crash)
filter = (&(objectClass=*)(|(telephoneNumber=*${num})(mobile=*${num})(fax=*${num})(homePhone=*${num})(pager=*${num})))

attribute = cn
convert = UTF-8, ISO-8859-1
Ich habe auch ein Problem mit der Filter-Syntax (http://www.ip-phone-forum.de/showthread.php?p=1334889#post1334889). Wobei bei mir deine hier aufgeführte Schreibweise «*${num}» anstatt «%s» zwar den Asterisk nicht zum Abstürzen bringt und auch ein Resultat zeigt; leider aber irgendeinen Wert aus dem LDAP und nicht zur Nummer gehörend.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,046
Beiträge
2,244,990
Mitglieder
373,451
Neuestes Mitglied
Ayzham
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.