.titleBar { margin-bottom: 5px!important; }

Asterisk 1.6.0.1 und LDAP

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von phase_tn, 12 Nov. 2008.

  1. phase_tn

    phase_tn Neuer User

    Registriert seit:
    12 Nov. 2008
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    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!
     
  2. phase_tn

    phase_tn Neuer User

    Registriert seit:
    12 Nov. 2008
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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!
     
  3. pemer

    pemer Neuer User

    Registriert seit:
    20 Juni 2008
    Beiträge:
    43
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.