[Projekt] LDAP Server für VoIP mit Asterisk nutzen

betateilchen schrieb:
Da ist soeben die Version 0.5.0 erschienen

Ja und ? Genau das steht doch auf der Seite die sich unter dem angegebenen Link öffnet :roll: Verstehe den Sinn dieses Doppelpostings irgendwie nicht. Zumal das ja nun nicht gerade "zeitgleich" war.

Hatte nicht gesehen, dass es inzwischen eine zweite Seite zu dem Thread gab, vergisses einfach.
 
betateilchen schrieb:
kannst Du die BASE-Abfrage irgendwie konfigurieren ? Z.B. einfach einen STERN eintragen ?

als Base ist gar nichts eingetragen..
Witziger Weise hat genau mit dieser Konfig es monatelang funktioniert. Ich glaube, das das Problem eher im Domino Server versteckt ist, das sich irgendwas an der Konfig geändert hat, oder auch eine Datei korrupt wurde oder auch das Schema sich geändert hat - scheinbar lebt die Domina - ähh der Domino...
 
Es gibt was Neues in dieser Sache:

Asterisk Realtime LDAP Driver Released Click to view a printable version
Wed, 16 Nov 2005 10:03:12 -0800

Link

Damit werde ich mich jetzt wohl ein bißchen genauer beschäftigen :wink:
 
Achtung !

In dem Schema, das vom Entwickler geliefert wird, ist ein Fehler !

Der letze Eintrag in der Schema-Datei ist falsch. Korrekt muß der Eintrag so aussehen:

Code:
objectclass ( 1.3.6.1.4.1.4980.10.3.2.4
        NAME 'oxyPBXConfig'
        SUP top STRUCTURAL
        DESC 'Oxymium PBX Config'
        MUST ( oxyPBXConfigFilename $ oxyPBXConfigCommented $ oxyPBXConfigCatego
ry $ oxyPBXConfigVariableName $ oxyPBXConfigVariableValue )
        MAY ( cn $ oxyPBXConfigCategoryMetric)
        )

Im Original fehl im MAY () das cn :roll: das hat mich eine halbe Nacht Fehlersuche gekostet.

Der Entwickler hat mir zugesagt, diesen Fehler im Schema zu korrigieren, sodaß sich das Problem bald erledigt hat.
 
So. Nun habe ich es immerhin schonmal geschafft, SIP-Endgeräte (sip.conf) und einen Mini-Dialplan für die extensions.conf nach LDAP auszulagern.

Für die Leute, die das Mal nachbauen wollen, habe ich hier mal die aktuellsten Versionen der Treiber-Files beigefügt. Achtung - die sind gegenüber der ersten veröffentlichten Version des Treibers grundlegend geändert !

Und hier kommt mal noch ein Beispiel-LDIF, um ein SIP-Gerät 70 zu registrieren und im Dialplan die extensions 203 und 204 anrufen zu können.

Code:
dn: ou=accounts, dc=mydomain,dc=com
ou: accounts
objectClass: top
objectClass: organizationalUnit

dn: cn=sip_70_parameters, ou=accounts, dc=mydomain,dc=com
oxyPBXAccountNAT: yes
oxyPBXAccountAccountingCode: baseacccode
oxyPBXAccountContext: ldaptest
oxyPBXAccountHost: dynamic
objectClass: top
objectClass: oxyPBXAccount
objectClass: oxyPBXAccountSIP
uid: sip_70_parameters
cn: sip_70_parameters
preferredLanguage: DE
oxyPBXAccountAMAFlags: billing

dn: cn=70, ou=accounts, dc=mydomain,dc=com
oxyPBXAccountBaseDN: cn=sip_70_parameters,ou=accounts,dc=mydomain,dc=com
uid: 70
userPassword:: Z2VoZWlt
objectClass: top
objectClass: simpleSecurityObject
objectClass: oxyPBXAccount
objectClass: oxyPBXAccountSIP
oxyPBXAccountCallerID: GXP2000 <70>
cn: 70

dn: ou=extensions, dc=mydomain,dc=com
ou: extensions
objectClass: top
objectClass: organizationalUnit

dn: cn=203_001, ou=extensions, dc=mydomain,dc=com
oxyPBXExtensionApplication: NoOp
oxyPBXExtensionApplicationData: 203_1
objectClass: top
objectClass: oxyPBXExtension
oxyPBXExtensionExten: 203
oxyPBXExtensionContext: TEST
cn: 203_001
oxyPBXExtensionPriority: 1

dn: cn=203_002, ou=extensions, dc=mydomain,dc=com
oxyPBXExtensionApplication: NoOp
oxyPBXExtensionApplicationData: 203_2
objectClass: top
objectClass: oxyPBXExtension
oxyPBXExtensionExten: 203
oxyPBXExtensionContext: TEST
cn: 203_002
oxyPBXExtensionPriority: 2

dn: cn=204_001, ou=extensions, dc=mydomain,dc=com
oxyPBXExtensionApplication: NoOp
oxyPBXExtensionApplicationData: 204_1
objectClass: top
objectClass: oxyPBXExtension
oxyPBXExtensionExten: 204
oxyPBXExtensionContext: TEST
cn: 204_001
oxyPBXExtensionPriority: 1

dn: cn=204_002, ou=extensions, dc=mydomain,dc=com
oxyPBXExtensionApplication: NoOp
oxyPBXExtensionApplicationData: 204_2
objectClass: top
objectClass: oxyPBXExtension
oxyPBXExtensionExten: 204
oxyPBXExtensionContext: TEST
cn: 204_002
oxyPBXExtensionPriority: 2
 

Anhänge

  • res_ldap.tar.bz2
    10.2 KB · Aufrufe: 33
@betateilchen

Das von dir zur Verfügung gestellte res_ldap.tar.bz2 enthält ja eine Patchdatei (ldap-patch.diff). Ich hab nun schon versucht die Asterisk-Addons bzw. Asterisk damit zu patchen, aber ich erhalte jedes mal folgende Fehlermeldung:
Code:
testasterisk:/usr/src/packages/SOURCES/asterisk-addons-1.2.0 # patch -p1 < ldap-patch.diff
patching file Makefile
Hunk #1 FAILED at 12.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej

Probier ich das ganze mit der Originaldatei erhalte ich den selben Fehler.

Woran liegt das?

Desweiteren möchte ich wissen was ihr von dem LDAP-Tutorial aus iX Ausgabe 12/2005 haltet?

Den relevanten Auszug aus dem Artikel findet ihr unter http://www.heise.de/ix/artikel/2005/12/160/

lg Dani
 
Die Patch-Datei darf nicht in Asterisk-Addons eingespielt werden ... da gehört sie nicht hin. die gehört nach /usr/src/asterisk/res

Der in dem von Dir angesprochenen LDAP-Tutorial aufgezeigte Lösungsweg funktioniert zwar, hält sich aber in seiner Umsetzung nicht an die Konzeption von Realtime (und hat damit auch nix zu tun) Dabei geht es einfach darum, Namen einer Telefonnummern zuzuordnen. Also eine eher einfach Anwendung. Um sich mit dem Thema LDAP aber mal grundsätzlich zu beschäftigen, ist es nicht schlecht aufgebaut.
 
OK...und in welchen Ordner muss ich dann wechseln um das patch -p1 < ldap-patch.diff auszuführen?
 
Aus folgendem Grund hab ich so blöd nachgefragt
Code:
testasterisk:/usr/src/packages/SOURCES/bristuff-0.2.0-RC8f-CVS/asterisk/res # patch -p1 < ldap-patch.diff
patching file Makefile
Hunk #1 FAILED at 12.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
 
dann trag doch die Änderung aus dem Patchfile manuell in das Makefile ein. Sind doch nur 2 oder 3 Zeilen.

Wenn ich Deine Signatur richtig deute, hast Du Asterisk 1.0.9 - für diese Version wird der LDAP Treiber wahrscheinlich gar nicht funktionieren.
 
Brauch ich für res_ldap.tar.bz2 überhaupt die Asterisk-Addons?
 
nein
 
Ich hab mein Testsystem neu aufgesetzt und folgendes gemacht:
- Patch verändert
Code:
Index: res/Makefile
===================================================================
RCS file: /usr/cvsroot/asterisk/res/Makefile,v
retrieving revision 1.28
diff -u -r1.28 Makefile
--- res/Makefile	1 Nov 2005 21:53:30 -0000	1.28
+++ res/Makefile	16 Nov 2005 12:00:49 -0000
@@ -12,6 +12,11 @@
 #
 
 MODS=res_indications.so res_monitor.so res_adsi.so res_agi.so res_features.so
 MODS+=res_config_ldap.so
 
 res_config_ldap.so: res_config_ldap.o
 	$(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -lldap
 
 
 ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/odbcinst.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/odbcinst.h),)
   ifneq (${OSARCH},FreeBSD)
- Patch nach asterisk/res kopiert
- cd bristuff/asterisk
- patch p1 < ldap-patch.diff
- make, make install
- Asterisk starten
- show modules
Code:
testasterisk*CLI> show modules
Module                         Description                              Use Count
res_musiconhold.so             Music On Hold Resource                   1
res_indications.so             Indications Configuration                0
res_watchdog.so                Watchdog Resource                        1
res_features.so                Call Features Resource                   1
res_agi.so                     Asterisk Gateway Interface (AGI)         0
res_crypto.so                  Cryptographic Digital Signatures         1
res_adsi.so                    ADSI Resource                            1
res_monitor.so                 Call Monitoring Resource                 1
chan_mgcp.so                   Media Gateway Control Protocol (MGCP)    0
chan_zap.so                    Zapata Telephony w/PRI                   0
chan_local.so                  Local Proxy Channel                      0
chan_iax2.so                   Inter Asterisk eXchange (Ver 2)          0
chan_agent.so                  Agent Proxy Channel                      0
chan_phone.so                  Linux Telephony API Support              0
chan_skinny.so                 Skinny Client Control Protocol (Skinny)  0
chan_features.so               Feature Proxy Channel                    0
chan_sip.so                    Session Initiation Protocol (SIP)        0
pbx_dundi.so                   Distributed Universal Number Discovery ( 1
pbx_functions.so               Builtin dialplan functions               0
pbx_ael.so                     Asterisk Extension Language Compiler     0
pbx_spool.so                   Outgoing Spool Support                   1
pbx_loopback.so                Loopback Switch                          1
pbx_config.so                  Text Extension Configuration             0
pbx_realtime.so                Realtime Switch                          1
app_sms.so                     SMS/PSTN handler                         0
cdr_custom.so                  Customizable Comma Separated Values CDR  0
app_hasnewvoicemail.so         Indicator for whether a voice mailbox ha 0
format_wav_gsm.so              Microsoft WAV format (Proprietary GSM)   0
app_url.so                     Send URL Applications                    0
app_test.so                    Interface Test Application               0
app_eval.so                    Reevaluates strings                      0
app_chanspy.so                 Listen to the audio of an active channel 0
app_sendtext.so                Send Text Applications                   0
app_exec.so                    Executes applications                    0
app_txtcidname.so              TXTCIDName                               0
cdr_manager.so                 Asterisk Call Manager CDR Backend        0
app_directory.so               Extension Directory                      0
app_playback.so                Sound File Playback Application          0
codec_adpcm.so                 Adaptive Differential PCM Coder/Decoder  0
app_groupcount.so              Group Management Routines                0
app_adsiprog.so                Asterisk ADSI Programming Application    0
app_chanisavail.so             Check channel availability               0
app_callingpres.so             Callingpres(number): Changes the present 0
app_softhangup.so              Hangs up the requested channel           0
codec_lpc10.so                 LPC10 2.4kbps (signed linear) Voice Code 0
app_setcidname.so              Set CallerID Name                        0
format_g723.so                 G.723.1 Simple Timestamp File Format     0
format_g726.so                 Raw G.726 (16/24/32/40kbps) data         0
format_g729.so                 Raw G729 data                            0
app_userevent.so               Custom User Event Application            0
codec_gsm.so                   GSM/PCM16 (signed linear) Codec Translat 0
app_authenticate.so            Authentication Application               0
format_pcm_alaw.so             Raw aLaw 8khz PCM Audio support          0
format_ilbc.so                 Raw iLBC data                            0
format_h263.so                 Raw h263 data                            0
func_uri.so                    URI encode/decode functions              0
app_forkcdr.so                 Fork The CDR into 2 separate entities.   0
app_page.so                    Page Multiple Phones                     0
app_ices.so                    Encode and Stream via icecast and ices   0
app_nbscat.so                  Silly NBS Stream Application             0
codec_a_mu.so                  A-law and Mulaw direct Coder/Decoder     0
app_system.so                  Generic System() application             0
app_record.so                  Trivial Record Application               0
app_milliwatt.so               Digital Milliwatt (mu-law) Test Applicat 0
app_parkandannounce.so         Call Parking and Announce Application    0
app_sayunixtime.so             Say time                                 0
app_dumpchan.so                Dump Info About The Calling Channel      0
app_zapscan.so                 Scan Zap channels application            0
app_macro.so                   Extension Macros                         0
app_random.so                  Random goto                              0
app_settransfercapability.so   Set ISDN Transfer Capability             0
codec_ulaw.so                  Mu-law Coder/Decoder                     0
app_zapras.so                  Zap RAS Application                      0
app_controlplayback.so         Control Playback Application             0
format_au.so                   Sun Microsystems AU format (signed linea 0
format_jpeg.so                 JPEG (Joint Picture Experts Group) Image 0
codec_alaw.so                  A-law Coder/Decoder                      0
app_transfer.so                Transfer                                 0
cdr_csv.so                     Comma Separated Values CDR Backend       0
app_externalivr.so             External IVR Interface Application       0
app_voicemail.so               Comedian Mail (Voicemail System)         0
app_pickup.so                  PickUp/PickDown/Steal/PickupChan/StealCh 0
app_while.so                   While Loops and Conditional Execution    0
app_verbose.so                 Send verbose output                      0
app_setcdruserfield.so         CDR user field apps                      0
codec_g726.so                  ITU G.726-32kbps G726 Transcoder         0
app_lookupblacklist.so         Look up Caller*ID name/number from black 0
app_zapbarge.so                Barge in on Zap channel application      0
app_mixmonitor.so              Mixed Audio Monitoring Application       0
app_getcpeid.so                Get ADSI CPE ID                          0
app_enumlookup.so              ENUM Lookup                              0
codec_ilbc.so                  iLBC/PCM16 (signed linear) Codec Transla 0
app_dictate.so                 Virtual Dictation Machine                0
app_segfault.so                Application for crashing Asterisk with a 0
app_read.so                    Read Variable Application                0
app_alarmreceiver.so           Alarm Receiver for Asterisk              0
format_gsm.so                  Raw GSM data                             0
app_dial.so                    Dialing Application                      0
app_disa.so                    DISA (Direct Inward System Access) Appli 0
app_realtime.so                Realtime Data Lookup/Rewrite             0
app_cdr.so                     Tell Asterisk to not maintain a CDR for  0
app_image.so                   Image Transmission Application           0
func_callerid.so               Caller ID related dialplan function      0
func_enum.so                   ENUMLOOKUP allows for general or specifi 0
app_cut.so                     Cut out information from a string        0
app_devstate.so                Application for sending device state mes 0
app_setrdnis.so                Set RDNIS Number                         0
app_festival.so                Simple Festival Interface                0
app_meetme.so                  MeetMe conference bridge                 0
app_echo.so                    Simple Echo Application                  0
format_pcm.so                  Raw uLaw 8khz Audio support (PCM)        0
app_privacy.so                 Require phone number to be entered, if n 0
app_flash.so                   Flash zap trunk application              0
app_setcallerid.so             Set CallerID Application                 0
app_stack.so                   Stack Routines                           0
format_sln.so                  Raw Signed Linear Audio support (SLN)    0
app_zapateller.so              Block Telemarketers with Special Informa 0
app_queue.so                   True Call Queueing                       0
app_md5.so                     MD5 checksum applications                0
app_mp3.so                     Silly MP3 Application                    0
app_lookupcidname.so           Look up CallerID Name from local databas 0
format_wav.so                  Microsoft WAV format (8000hz Signed Line 0
app_senddtmf.so                Send DTMF digits Application             0
format_vox.so                  Dialogic VOX (ADPCM) File Format         0
app_directed_pickup.so         Directed Call Pickup Application         0
app_waitforring.so             Waits until first ring after time        0
app_readfile.so                Stores content of file into a variable   0
app_setcidnum.so               Set CallerID Number                      0
app_talkdetect.so              Playback with Talk Detection             0
app_math.so                    Basic Math Functions                     0
app_db.so                      Database Access Functions                0
app_waitforsilence.so          Wait For Silence                         0
132 modules loaded
Nix zu sehen von einem LDAP-Modul....

Hast du nicht vielleicht irgendwo eine Doku zu deiner Vorgehensweise bei der Anbindung von Asterisk an LDAP rumliegen, die du der Allgemeinheit zur Verfügung stellen könntest?
 
Meine Versuche ...

Hallo allerseits,

ich finde das Thema Asterisk+LDAP ebenfalls sehr interessant und versuche mich gerade am neuen RealTimeDriver (BetaTeilchens Paket).

Soo schlecht sieht das auch nicht aus:
Code:
show modules like res_config_ldap.so
Module                         Description                              Use Count 
res_config_ldap.so             LDAP RealTime Configuration Driver       0         
1 modules loaded

Das Modul wird geladen ^^ - Nur, scheinbar nicht genutzt ..

Meine extconfig.conf
Code:
[_general]
sip => ldap,ou=Accounts,ou=Asterisk,ou=Technik,dc=domain,dc=de,sip

Wenn ich asterisk starte/reloade, dann wird mein LDAP-Server kurz angesprochen, der im "_global"-Teil der res_ldap.conf festgelegte User wird angemeldet.
Anschließend nicht mehr.
Anscheinend ist meinem Asterisk noch nicht wirklich bewusst, das er im LDAP nachschauen soll wegen der SIP-Accounts.

Eine sip.conf habe ich nicht.

Gelesen wird extconfig.conf, keine Ahnung, warum er damit nix anfangenkann :(

In der res_ldap.conf gibt es eine [sip]-Section.

Ich würd mich auch über nen kleinen Erfahrungsbericht von betateilchen freuen ^^


Grüsse aus Hamburch ...
 
Die Einrichtung des Asterisk ist der eine Teil - aber hast Du auch Deinen LDAP Server korrekt konfiguriert ?
 
betateilchen schrieb:
Die Einrichtung des Asterisk ist der eine Teil - aber hast Du auch Deinen LDAP Server korrekt konfiguriert ?
Ich gehe davon aus ;)
Ich habe dein SIP-Phone übernommen ;)

Sieht man denn irgendwas im Asterisk davon, das er versucht Sachen vom LDAP abzugreifen?
Ich habe das Gefühl, er versucht es gar nicht erst ..

(ich starte den ldap-server manuell: "slapd -d 9999")
Und es passiert nur einmal etwas, dann wenn die res_ldap.conf geparsed wird.

Wenn ich
ship show settings
eingebe, dann meldet er unter anderem:

SIP Realtime: Disabled

:(


Der Asterisk ist aus den 1.2.1er Sourcen kompiliert.
 
Sieht man denn irgendwas im Asterisk davon, das er versucht Sachen vom LDAP abzugreifen?

Nur wenn Du die DEBUG Protokolle anschaust.

Du solltest aber zumindest auf der LDAP Console die Verbindung sehen, wenn Du den slapd mit -d startest

Ansonsten hast Du noch ein Problem in Deinen Asterisk CONF Dateien
 
betateilchen schrieb:
Sieht man denn irgendwas im Asterisk davon, das er versucht Sachen vom LDAP abzugreifen?

Nur wenn Du die DEBUG Protokolle anschaust.

Du solltest aber zumindest auf der LDAP Console die Verbindung sehen, wenn Du den slapd mit -d startest

Ansonsten hast Du noch ein Problem in Deinen Asterisk CONF Dateien

Das befürchte ich auch.

Sehe ich es richtig, dass ich keine sip.conf benötige, sondern das über die extconfig.conf gegen LDAP mappe?

sip => ldap,ou=Accounts,ouAsterisk,dc=mydomain,dc=com,sip
+ die res_ldap.conf
Mehr brauche ich doch eigentlich nicht..?


Danke für deine fixen Antworten übrigends ;)
 
Ob es ganz ohne sip.conf geht, weiß ich nicht, das hab ich nie getestet.
Meine sip.conf sieht jedenfalls so aus:

Code:
[general]
port = 5060                     ; Sipport
bindaddr = 0.0.0.0        ; Addresse für den SIP Kanal
srvlookup = yes                 ; Enable DNS SRV lookups on outbound calls
maxexpirey=3600
defaultexpirey=120
dtmfmode=rfc2833
nat=no
allow=all
;rtcachefriends=yes
rtautoclear=yes
context=ankommend

Also nix peer-spezifisches enthalten.
Probiere mal mit
sipusers=>ldap,ou=Accounts|ou=Asterisk|dc=mydomain|dc=com,sip
 
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.