Asterisk 1.6.0.1 und LDAP

phase_tn

Neuer User
Mitglied seit
12 Nov 2008
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich teste jetzt Asterisk 1.6.0.1 in Debian um eventuell vom Asterisk 1.4 umzusteigen. Ziel ist den neuen LDAP Modul auszunutzen.

Für die Einrichtung habe ich die folgende Anleitung benutzt:
http://www.flyn.org/astldap/astldap.html

Eigentlich funktioniert die LDAP Verbindung ganz gut, den der (Zoiper) Softphone (lokal) sich ohne Probleme registrieren kann. Allerdings bekomme ich beim registrieren in der CLI folgenden Fehler (verbose 5):

Code:
-- Registered SIP 'jmueller' at 127.0.0.1 port 5061 expires 3600
[Nov 12 11:53:04] ERROR[3432]: res_config_ldap.c:1292 update_ldap: Couldn't modify dn:uid=jmueller,ou=users,dc=xxx,dc=xx because Undefined attribute type
[Nov 12 11:53:04] NOTICE[3432]: chan_sip.c:18078 handle_request_subscribe: Received SIP subscribe for peer without mailbox: jmueller
Was will den res_config_ldap.c genau modifizieren und warum? Wenn ich versuche eine Extension anzurufen, taucht folgendes Fehler auf:

Code:
== Using SIP RTP CoS mark 5
    -- Executing Dial("SIP/jmueller-b741f7c0", "SIP/jmueller")
  == Using SIP RTP CoS mark 5
[Nov 12 12:48:45] WARNING[3515]: app_dial.c:1450 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Auto fallthrough, channel 'SIP/jmueller-b741f7c0' status is 'CHANUNAVAIL'
Ja, ich habe mich selbst angerufen, aber es funktioniert auch nicht wenn ich eine andere Extension anrufe.

Meine SIP Daten in LDAP sehen wie folgt aus:
Code:
AstAccountCallerID = J Mueller
AstAccountCanReinvite = no
AstAccountContext = default
AstAccountDTMFMode = rfc2833
AstAccountFromUser = ich
AstAccountHost = dynamic
AstAccountName = jmueller
AstAccountNAT = no
AstAccountRealmedPassword = blablabla
AstAccountType = friend
... und die Extension Daten:
Code:
AstApplication = Dial
AstApplicationData = SIP/jmueller
AstContext = default
AstExtension = 2833
AstPriority = 1
extensions.conf besteht nur aus:
Code:
[default]
switch => Realtime/@
res_ldap.conf (nur [_general] Abschnitt):
Code:
[_general]
host=xxx.xxx.xxx.xxx
protocol=3
basedn="dc=xxx,dc=xx"
pass=****
user=cn=xxx,dc=xxx,dc=xx
und extconfig.conf
Code:
[settings]
sipusers => ldap,"dc=xxx,dc=xx",sip
sippeers => ldap,"dc=xxx,dc=xx",sip
voicemail => ldap,"dc=xxx,dc=xx",voicemail
voicemail_data => ldap,"dc=xxx,dc=xx",voicemail
extensions => ldap,"dc=xxx,dc=xx",extensions
queues => ldap,"dc=xxx,dc=xx=de",queue
queue_members => ldap,"dc=xxx,dc=xx",queue_member
musiconhold => mysql,asterisk
queue_log => mysql,asterisk
meetme => ldap,"dc=xxx,dc=xx",meetme
Ich kenne mich leider mit LDAP nicht besonders gut aus. Weiß jemand woran es liegt, dass ich nicht anrufen kann?

Ich danke eure Hilfe im Voraus!
 
Hallo nochmal,

inzwischen hat sich das Problem gelöst. Falls jemand irgendwann das gleiche Problem haben sollte, schreibe ich nun was mir geholfen hat...

Erstens habe ich mit Hilfe von Wireshark rausgefunden, was res_config_ldap am LDAP modifizieren wollte, und zwar die folgenden Attribute:
- AstAccountExpirationTimestamp
- AstAccountIpadress
- AstAccountPort
- AstAccountDefaultUser

Diese vier Attribute müssen für jedem SIP User im LDAP umbedingt hinzugefügt werden. Wenn sie nicht da sind können Clients nicht anrufen..
Das nächste Problem war, dass meinem Asterisk Schema nicht den Attribut AstAccountDefaultUser hatte.

Ich habe übrigens den Schema aus http://www.voip-info.org/wiki/view/LDAP genommen.

Den fehlenden Attribut muss im Schema natürlich hinzugefügt werden, und zwar hier

Code:
#############################################################################
# Attribute OIDs e.g.: objectIdentifier AstContext AstAttrType:1
#############################################################################
objectIdentifier AstContext AstAttrType:1
...
...
objectIdentifier AstMeetmePin AstAttrType:112
objectIdentifier AstMeetmeAdminpin AstAttrType:113
objectIdentifier AstMeetmeMembers AstAttrType:114
[B]objectIdentifier AstAccountDefaultUser AstAttrType:115[/B]
hier
Code:
#############################################################################

attributetype ( AstContext
        NAME 'AstContext'
        DESC 'Asterisk Context'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)

...
...
...

attributetype ( AstMeetmeMembers
        NAME 'AstMeetmeMembers'
        DESC 'Asterisk LDAP Meetme Members'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)

[B]attributetype ( AstAccountDefaultUser
        NAME 'AstAccountDefaultUser'
        DESC 'Asterisk LDAP Account Default User'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)[/B]
und hier
Code:
objectclass ( AsteriskSIPUser 
    NAME 'AsteriskSIPUser'
    DESC 'SIP User information for Asterisk'
    SUP AsteriskExtension AUXILIARY
    MUST cn
    MAY (
        AstAccountAMAFlags $ 
        AstAccountCallGroup $ 
        ...
        ...
        AstAccountCanCallForward $ 
        AstAccountSecret $ 
        AstAccountName [B]$
        AstAccountDefaultUser[/B]
Hoffe es hilft. Ich kann jetzt ohne Probleme anrufen! :)

Edit Guard-X: Bitte nächstes mal Code-Tags statt Quote-Tags verwenden!
 
Hi Leute,

wenn Ihr nicht wollt das es ins LDAP Verzeichniss geschrieben wird, solltet ihr in der sip.conf in der sektion [general] den Parameter rtcachefriends auf yes setzt.

rtcachefriends=yes


dann werden die immer wieder registrierenden SIP/friends/peers in den Cache/Datenbank von Asterisk geschrieben und nicht ins LDAP. Dann kann man diese in Asterisk mit den Befhel sip show peers auch sehen.

Aber Achtung rtcachefriends könnte auch für HA settings Vorteile haben.
 
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.