<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Conexi%C3%B3n_de_Asterisk_con_openLDAP</id>
	<title>Conexión de Asterisk con openLDAP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Conexi%C3%B3n_de_Asterisk_con_openLDAP"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Conexi%C3%B3n_de_Asterisk_con_openLDAP&amp;action=history"/>
	<updated>2026-10-26T03:12:57Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Conexi%C3%B3n_de_Asterisk_con_openLDAP&amp;diff=11696&amp;oldid=prev</id>
		<title>Ramiro: /* sippeers.ldif */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Conexi%C3%B3n_de_Asterisk_con_openLDAP&amp;diff=11696&amp;oldid=prev"/>
		<updated>2009-05-11T15:53:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;sippeers.ldif&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Conexión Asterisk con openldap.=&lt;br /&gt;
&lt;br /&gt;
Co propósito de manter a información dos usuarios/as nun directorio, evitando deste xeito a duplicación de datos conectaremos Asterisk con un servidor openldap, donde se almacenará basicamente a información que doutro xeito estaría nos ficheiros de configuracion Asterisk &amp;#039;&amp;#039;sip.conf&amp;#039;&amp;#039; e &amp;#039;&amp;#039;extensions.conf&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==Configuración ldap.==&lt;br /&gt;
Instalaremos un servidor openldap no mesmo servidor onde corre Asterisk.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
yum install openldap openldap-clients openldap-servers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Configuramos o servidor ldap cuns datos de exemplo para asterisk.&lt;br /&gt;
===slapd.conf===&lt;br /&gt;
Editamos o ficheiro &amp;#039;&amp;#039;/etc/openldap/slapd.conf&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# See slapd.conf(5) for details on configuration options.&lt;br /&gt;
# This file should NOT be world readable.&lt;br /&gt;
#&lt;br /&gt;
include         /etc/openldap/schema/core.schema&lt;br /&gt;
include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
include         /etc/openldap/schema/nis.schema&lt;br /&gt;
&lt;br /&gt;
# Allow LDAPv2 client connections.  This is NOT the default.&lt;br /&gt;
allow bind_v2&lt;br /&gt;
&lt;br /&gt;
# Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
# service AND an understanding of referrals.&lt;br /&gt;
#referral       ldap://root.openldap.org&lt;br /&gt;
&lt;br /&gt;
pidfile         /var/run/openldap/slapd.pid&lt;br /&gt;
argsfile        /var/run/openldap/slapd.args&lt;br /&gt;
&lt;br /&gt;
# Load dynamic backend modules:&lt;br /&gt;
# modulepath    /usr/lib/openldap&lt;br /&gt;
&lt;br /&gt;
# modules available in openldap-servers-overlays RPM package:&lt;br /&gt;
# moduleload accesslog.la&lt;br /&gt;
# moduleload auditlog.la&lt;br /&gt;
# moduleload denyop.la&lt;br /&gt;
# moduleload dyngroup.la&lt;br /&gt;
# moduleload dynlist.la&lt;br /&gt;
# moduleload lastmod.la&lt;br /&gt;
# moduleload pcache.la&lt;br /&gt;
# moduleload ppolicy.la&lt;br /&gt;
# moduleload refint.la&lt;br /&gt;
# moduleload retcode.la&lt;br /&gt;
# moduleload rwm.la&lt;br /&gt;
# moduleload smbk5pwd.la&lt;br /&gt;
# moduleload syncprov.la&lt;br /&gt;
# moduleload translucent.la&lt;br /&gt;
# moduleload unique.la&lt;br /&gt;
# moduleload valsort.la&lt;br /&gt;
&lt;br /&gt;
# modules available in openldap-servers-sql RPM package:&lt;br /&gt;
# moduleload back_sql.la&lt;br /&gt;
&lt;br /&gt;
# The next three lines allow use of TLS for encrypting connections using a&lt;br /&gt;
# dummy test certificate which you can generate by changing to&lt;br /&gt;
# /etc/pki/tls/certs, running &amp;quot;make slapd.pem&amp;quot;, and fixing permissions on&lt;br /&gt;
# slapd.pem so that the ldap user or group can read it.  Your client software&lt;br /&gt;
# may balk at self-signed certificates, however.&lt;br /&gt;
# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt&lt;br /&gt;
# TLSCertificateFile /etc/pki/tls/certs/slapd.pem&lt;br /&gt;
# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem&lt;br /&gt;
&lt;br /&gt;
# Sample security restrictions&lt;br /&gt;
#       Require integrity protection (prevent hijacking)&lt;br /&gt;
#       Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
#       Require 63-bit encryption for simple bind&lt;br /&gt;
# security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
&lt;br /&gt;
# Sample access control policy:&lt;br /&gt;
#       Root DSE: allow anyone to read it&lt;br /&gt;
#       Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
#       Other DSEs:&lt;br /&gt;
#               Allow self write access&lt;br /&gt;
#               Allow authenticated users read access&lt;br /&gt;
#               Allow anonymous users to authenticate&lt;br /&gt;
#       Directives needed to implement policy:&lt;br /&gt;
# access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
# access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
# access to *&lt;br /&gt;
#       by self write&lt;br /&gt;
#       by users read&lt;br /&gt;
#       by anonymous auth&lt;br /&gt;
#&lt;br /&gt;
# if no access controls are present, the default policy&lt;br /&gt;
# allows anyone and everyone to read anything but restricts&lt;br /&gt;
# updates to rootdn.  (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
#&lt;br /&gt;
# rootdn can always read and write EVERYTHING!&lt;br /&gt;
&lt;br /&gt;
#######################################################################&lt;br /&gt;
# ldbm and/or bdb database definitions&lt;br /&gt;
#######################################################################&lt;br /&gt;
&lt;br /&gt;
database        bdb&lt;br /&gt;
suffix          &amp;quot;dc=my-domain,dc=com&amp;quot;&lt;br /&gt;
rootdn          &amp;quot;cn=Manager,dc=my-domain,dc=com&amp;quot;&lt;br /&gt;
# Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
# Use of strong authentication encouraged.&lt;br /&gt;
# rootpw                secret&lt;br /&gt;
# rootpw                {crypt}ijFYNcSNctBYg&lt;br /&gt;
&lt;br /&gt;
# The database directory MUST exist prior to running slapd AND&lt;br /&gt;
# should only be accessible by the slapd and slap tools.&lt;br /&gt;
# Mode 700 recommended.&lt;br /&gt;
directory       /var/lib/ldap&lt;br /&gt;
&lt;br /&gt;
# Indices to maintain for this database&lt;br /&gt;
index objectClass                       eq,pres&lt;br /&gt;
index ou,cn,mail,surname,givenname      eq,pres,sub&lt;br /&gt;
index uidNumber,gidNumber,loginShell    eq,pres&lt;br /&gt;
index uid,memberUid                     eq,pres,sub&lt;br /&gt;
index nisMapName,nisMapEntry            eq,pres,sub&lt;br /&gt;
&lt;br /&gt;
# Replicas of this database&lt;br /&gt;
#replogfile /var/lib/ldap/openldap-master-replog&lt;br /&gt;
#replica host=ldap-1.example.com:389 starttls=critical&lt;br /&gt;
#     bindmethod=sasl saslmech=GSSAPI&lt;br /&gt;
#     authcId=host/ldap-master.example.com@EXAMPLE.COM&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Modificaremos as seguintes liñas:&lt;br /&gt;
&lt;br /&gt;
Engadimos a seguinte liña a lista de includes,  co esquema LDAP necesario para Asterisk.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
include         /etc/openldap/schema/asterisk.schema&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Previamente debemos copiar o ficheiro asterisk.schema o directorio schema de openldap&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[root@hercules scripts]# cp usr/src/asterisk/asterisk-1.6.1.0/contrib/scripts/asterisk.schema /etc/openldap/schema/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Modificamos a liñas&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
suffix          &amp;quot;dc=iessanclemente,dc=net&amp;quot;&lt;br /&gt;
rootdn          &amp;quot;cn=Manager,dc=iessanclemente,dc=net&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
rootpw          {SSHA}p1aUQtijsSqpYnsMjaJgyPrV58RYngkc&lt;br /&gt;
...&lt;br /&gt;
directory       /var/lib/ldap/iessanclemente-ldap&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
O password do &amp;#039;&amp;#039;rootdn&amp;#039;&amp;#039; obtémolo usando a ferramenta&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[root@hercules openldap]# slappasswd&lt;br /&gt;
New password:&lt;br /&gt;
Re-enter new password:&lt;br /&gt;
{SSHA}p1aUQtijsSqpYnsMjaJgyPrV58RYngkc&lt;br /&gt;
[root@hercules openldap]#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Tamén temos que crear o directorio &amp;#039;&amp;#039;/var/lib/ldap/iessanclemente-net&amp;#039;&amp;#039; que conterá a base de datos LDAP. Faremos este directorio pertencente o usuario ldap:ldap cos permisos 700 tal e como se indica no ficheiro s&amp;#039;&amp;#039;lapd.conf&amp;#039;&amp;#039;&lt;br /&gt;
Para que surtan efecto estes cambios rearrancamos o servidor ldap.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[root@hercules ldap]# /etc/init.d/ldap restart&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Neste punto só nos queda cargar algúns datos de exemplo na base de datos LDAP. Faremos isto mediante ficheiros ldiff.&lt;br /&gt;
A continuación detallamos os datos de exemplo que cargaremos, así como os ficheiros necesarios e os comandos ldap para facer a carga.&lt;br /&gt;
===sippeers.ldif===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
dn: ou=sippeers,dc=iessanclemente,dc=net&lt;br /&gt;
ou: sippeers&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
&lt;br /&gt;
dn: cn=Antonio Perez,ou=sippeers,dc=iessanclemente,dc=net&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: inetOrgPerson&lt;br /&gt;
objectClass: AsteriskSIPUser&lt;br /&gt;
cn: Antonio Perez&lt;br /&gt;
sn: Perez&lt;br /&gt;
AstAccountCallerID: 2001&lt;br /&gt;
AstAccountHost: dynamic&lt;br /&gt;
AstAccountRealmedPassword: {SSHA}9aenZD/V5WDUIQdDkd5llKejOQHN09sq&lt;br /&gt;
AstAccountContext: default&lt;br /&gt;
&lt;br /&gt;
dn: cn=Maria Arias,ou=sippeers,dc=iessanclemente,dc=net&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: inetOrgPerson&lt;br /&gt;
objectClass: AsteriskSIPUser&lt;br /&gt;
cn: Maria Arias&lt;br /&gt;
sn: Arias&lt;br /&gt;
AstAccountCallerID: 2002&lt;br /&gt;
AstAccountHost: dynamic&lt;br /&gt;
AstAccountRealmedPassword: {SSHA}sCtnygqFBp8oxWEd61KZAE2XTcIiJ63G&lt;br /&gt;
AstAccountContext: default&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ficheiro ldiff para crear dous usuarios SIP (Antonio Perez e María Arias) coas extensións 2001 e 2002 respectivamente.&lt;br /&gt;
&lt;br /&gt;
===extensions.ldif===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
dn: ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
ou: extensions&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
&lt;br /&gt;
dn: cn=2001,ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
cn: 2001&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: device&lt;br /&gt;
objectClass: AsteriskExtension&lt;br /&gt;
AstContext: users&lt;br /&gt;
AstExtension: 2001&lt;br /&gt;
AstPriority: 1&lt;br /&gt;
AstApplication: Dial&lt;br /&gt;
AstApplicationData: SIP/antonio perez&lt;br /&gt;
&lt;br /&gt;
dn: cn=2002,ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
cn: 2002&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: device&lt;br /&gt;
objectClass: AsteriskExtension&lt;br /&gt;
AstContext: users&lt;br /&gt;
AstExtension: 2002&lt;br /&gt;
AstPriority: 1&lt;br /&gt;
AstApplication: Dial&lt;br /&gt;
AstApplicationData: SIP/maria arias&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ficheiro ldiff para crear 2 extensións 2001 e 2002 que utilizaremos para chamar aos dous usuarios anteriormente dados de alta.&lt;br /&gt;
===eco-demo.ldif===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
dn: cn=600-1,ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
cn: 600-1&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: device&lt;br /&gt;
objectClass: AsteriskExtension&lt;br /&gt;
AstContext: demo&lt;br /&gt;
AstExtension: 600&lt;br /&gt;
AstPriority: 1&lt;br /&gt;
AstApplication: Playback&lt;br /&gt;
AstApplicationData: demo-echotest&lt;br /&gt;
&lt;br /&gt;
dn: cn=600-2,ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
cn: 600-2&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: device&lt;br /&gt;
objectClass: AsteriskExtension&lt;br /&gt;
AstContext: demo&lt;br /&gt;
AstExtension: 600&lt;br /&gt;
AstPriority: 2&lt;br /&gt;
AstApplication: Echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dn: cn=600-3,ou=extensions,dc=iessanclemente,dc=net&lt;br /&gt;
cn: 600-3&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: device&lt;br /&gt;
objectClass: AsteriskExtension&lt;br /&gt;
AstContext: demo&lt;br /&gt;
AstExtension: 600&lt;br /&gt;
AstPriority: 3&lt;br /&gt;
AstApplication: Playback&lt;br /&gt;
AstApplicationData: demo-echodone&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ficheiro ldiff co plan dunha proba de echo para a extenxión 600.&lt;br /&gt;
===Carga dos datos de exemplo===&lt;br /&gt;
A continuación cargamos en LDAP os anteriores ficheiros de configuración utilizando o comando ldapadd. Exemplo de carga das extensións.&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[root@hercules ldap]# ldapadd -x -D &amp;quot;cn=Manager,dc=iessanclemente,dc=net&amp;quot; -W -f extensions.ldif&lt;br /&gt;
Enter LDAP Password:&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Configuración Asterisk==&lt;br /&gt;
Editamos o ficheiro &amp;#039;&amp;#039;/etc/asterisk/res_ldap.conf&amp;#039;&amp;#039; e dentro da opción &amp;#039;&amp;#039;[_general]&amp;#039;&amp;#039; establecemos os seguintes parámetros&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[_general]&lt;br /&gt;
;&lt;br /&gt;
; Specify one of either host and port OR url.  URL is preferred, as you can&lt;br /&gt;
; use more options.&lt;br /&gt;
host=127.0.0.1                                          ; LDAP host&lt;br /&gt;
port=389&lt;br /&gt;
url=ldap://localhost:389&lt;br /&gt;
protocol=3&lt;br /&gt;
basedn=&amp;quot;dc=iessanclemente, dc=net&amp;quot;                      ; Base DN&lt;br /&gt;
user=&amp;quot;cn=Manager,dc=iessanclemente,dc=net&amp;quot;               ; Bind DN&lt;br /&gt;
pass=abc123. &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nos arpartados &amp;#039;&amp;#039;host&amp;#039;&amp;#039; e &amp;#039;&amp;#039;url&amp;#039;&amp;#039; establecemos o enderezo onde está instalado o servidor openldap. Neste caso está no mesmo servidor.&lt;br /&gt;
&lt;br /&gt;
Editamos o ficheiro &amp;#039;&amp;#039;/etc/asterisk/extconfig.conf&amp;#039;&amp;#039; e engadimos as seguintes liñas ao final&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sipusers =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,sip&lt;br /&gt;
sippeers =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,sip&lt;br /&gt;
voicemail =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,voicemail&lt;br /&gt;
voicemail_data =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,voicemail&lt;br /&gt;
extensions =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,extensions&lt;br /&gt;
queues =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,queue&lt;br /&gt;
queue_members =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,queue_member&lt;br /&gt;
musiconhold =&amp;gt; mysql,asterisk&lt;br /&gt;
queue_log =&amp;gt; mysql,asterisk&lt;br /&gt;
meetme =&amp;gt; ldap,&amp;quot;dc=iessanclemente,dc=net&amp;quot;,meetme&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editamos o ficheiro &amp;#039;&amp;#039;/etc/asterisk/extensions.conf&amp;#039;&amp;#039; para incluir as seguintes liñas&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
[users]&lt;br /&gt;
switch =&amp;gt; Realtime/@&lt;br /&gt;
&lt;br /&gt;
[demo]&lt;br /&gt;
switch =&amp;gt; Realtime/@&lt;br /&gt;
&lt;br /&gt;
[default]&lt;br /&gt;
include =&amp;gt; users&lt;br /&gt;
include =&amp;gt; demo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A versión 1.6 de Asterisk xa ven co módulo LDAP realtime interface, de todas maneiras comprobamos que este módulo está cargado no noso asterisk&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
hercules*CLI&amp;gt; module show like ldap&lt;br /&gt;
Module                         Description                              Use Count&lt;br /&gt;
res_config_ldap.so             LDAP realtime interface                  0       &lt;br /&gt;
1 modules loaded&lt;br /&gt;
hercules*CLI&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ramiro</name></author>
	</entry>
</feed>