Configurando o Asterisk com autenticação LDAP

O Asterisk é um PBX VoIP capaz de integrar-se com a telefonia convencional. Esse tutorial tem como finalidade auxiliar na configuração do Asterisk utilizando como base de dados o serviço de diretórios LDAP.

[ Hits: 65.121 ]

Por: Fabrício Rodrigo em 22/06/2010


Povoando LDAP



8) Adicionando usuários ao LDAP

Para carregar informações dos usuários para o banco de dados do LDAP, basta criar um arquivo ".ldif" com os dados correspondentes. O exemplo abaixo define os atributos mínimos de usuário SIP.

Início do arquivo users.ldif:

dn: ou=sipusers,dc=dominio,dc=com
ou: sipusers
objectClass: top
objectClass: organizationalUnit

dn: cn=joao,ou=sipusers,dc=dominio,dc=com
objectClass: top
objectClass: AsteriskSIPUser
cn: joao
AstAccountCallerID: 1001
AstAccountHost: dynamic
AstAccountRealmedPassword: {MD5}a94775781e5bb7d3e4ec047c56f0acc5
AstAccountContext: default
AstAccountType: friend

dn: cn=maria,ou=sipusers,dc=dominio,dc=com
objectClass: top
objectClass: AsteriskSIPUser
cn: maria
AstAccountCallerID: 1001
AstAccountHost: dynamic
AstAccountRealmedPassword: {MD5}a94775781e5bb7d3e4ec047c56f0acc5
AstAccountContext: default
AstAccountType: friend

Onde:
  • cn: nome de usuário da conta SIP.
  • AstAccountCallerID: informação de identificação do usuário.
  • AstAccountHost: a host dinâmico permite que o usuário se registre com IP variável.
  • AstAccountRealmedPassword: senha da conta. O hash md5 pode ser criado através do aplicativo md5sum.
  • AstAccountContext: é o contexto que o usuário está inserido; contextos de extensão foram definidos no extensions.conf .
  • AstAccountType: define o tipo de cliente. O tipo "peer" apenas efetua chamadas e "friend" fazem e recebem chamadas.

Para carregar o arquivo através do comando ldapadd execute o comando:

ldapadd -x -D "cn=adminldap" -f users.ldif

9) Adicionando extensões ao LDAP

Após ter inseridos os usuários na base de dados, deve ser inserido o plano de discagem. Primeiramente será associado um número de telefone com cada usuário.

Início do arquivo extensions.ldif:

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

dn: cn=1001-1,ou=extensions,dc=dominio,dc=com
cn: 1001-1
objectClass: top
objectClass: AsteriskExtension
AstContext: users
AstExtension: 1001
AstPriority: 1
AstApplication: Dial
AstApplicationData: SIP/joao,20

dn: cn=1002-1,ou=extensions,dc=dominio,dc=com
cn: 1002-1
objectClass: top
objectClass: AsteriskExtension
AstContext: users
AstExtension: 1002
AstPriority: 1
AstApplication: Dial
AstApplicationData: SIP/maria,20

Onde:
  • AstContext: contexto em que essa extensão existe.
  • AstExtension: identificador da extensão (número do ramal).
  • AstPriority: cada extensão pode executar vários comandos, a prioridade determina a ordem em que são executados.
  • AstApplication: o comando a ser executado quando a extensão recebe uma chamada. O Dial liga para outro usuário.
  • AstApplicationData: argumentos do comando a ser executado. O Dial tem dois argumentos; o primeiro é o usuário que a chamada irá conectar e o segundo é o tempo (segundos) que permanecerá chamando antes de sair.

Use ldapadd para adicionar o seguinte ao seu banco de dados LDAP através do comando:

ldapadd -x -D "cn=adminldap" -f extensions.ldif

10) Adicionando "echo" para teste

Será adicionada uma extensão ao plano de discagem, onde serão executados três comandos echo para teste. O número do ramal será '190'.

Início do arquivo echo.ldif:

dn: cn=190-1,ou=extensions,dc=dominio,dc=com
cn: 190-1
objectClass: top
objectClass: AsteriskExtension
AstContext: echo
AstExtension: 190
AstPriority: 1
AstApplication: Playback
AstApplicationData: demo-echotest

dn: cn=190-2,ou=extensions,dc=dominio,dc=com
cn: 190-2
objectClass: top
objectClass: AsteriskExtension
AstContext: echo
AstExtension: 190
AstPriority: 2
AstApplication: Echo

dn: cn=190-3,ou=extensions,dc=dominio,dc=com
cn: 190-3
objectClass: top
objectClass: AsteriskExtension
AstContext: echo
AstExtension: 190
AstPriority: 3
AstApplication: Playback
AstApplicationData: demo-echodone

A configuração básica do Asterisk e LDAP estão completas, agora basta reiniciar os serviços do Asterisk e LDAP e configurar os clientes VoIP.

Página anterior     Próxima página

Páginas do artigo
   1. Instalação do Asterisk com suporte ao LDAP
   2. Integrando o Asterisk ao LDAP
   3. Configurando LDAP
   4. Povoando LDAP
   5. Testando conexão com LDAP
   6. Instalando e configurando o cliente VoIP
Outros artigos deste autor

Webacula - Instalação e Configuração no Ubuntu 10.04

Instalação e configuração do Bacula com interface web (Bweb/Brestore)

Instalação e configuração do Snort Inline (modo IPS), Baynard2, Mysql e PulledPork no Debian Squeeze

Leitura recomendada

O que é e como configurar rede AD HOC no Ubuntu

Instalação e configuração do fluxbox-devel

Instalando o Lazarus no Slackware

Configurando o X.org

Criando um repositório local do Fedora

  
Comentários
[1] Comentário enviado por removido em 22/06/2010 - 11:03h

Alguem consegue me explicar oque é LDAP, por que parece isso não entra na minha cabeça.

[2] Comentário enviado por m4sk4r4 em 22/06/2010 - 14:57h

Bom o Artigo, já tem algum tempo que tenho tentado integrar o asterisk a uma base LDAP mas
não tinha sucesso, principalmente quando se tratava do schema do Asterisk para LDAP apresentava
incompatibilidade.

Vou testar seu artigo depois e ver como se comporta essa integração.

Me tire uma dúvida, numa base LDAP onde temos o Samba integrado como controlador de domínio
e onde os usuários modificam a senha através do windows pelo ctrl+alt+del, teriamos alguma forma
de utilizar a mesma senha de logon para as contas sip?

Abraço e Parabéns!!!

[3] Comentário enviado por renato_pacheco em 22/06/2010 - 21:48h

Poutz, mano! Muito fera o lance da integração do LDAP + Asterisk. Não sabia q isso era possível! Eu ainda não sei como faço pra instalar e fazer o Asterisk funcionar, mas o LDAP eu já aprendi anteriormente como se faz. Tem algum tuto ou algo semelhante q vc possa me passar sobre Asterisk? Add aos favoritos!!!

[4] Comentário enviado por fabriciorodrigo em 23/06/2010 - 08:29h

m4sk4r4, tecnicamente falando creio que tenha como fazer essa integração. No tópico 5, quando é mapeada as variáveis do asterisk para o LDAP,, é utilizado o mesmo login cn para identificação dos usuários, ou seja, com o login não teria problema. Porém o asterisk tem um atributo no schema responsável palo armazenamento da senha de acesso, que é o "AstAccountRealmedPassword".

Nessa situação que você me colocou, acho que existem duas possibilidades:
1. Fazer um script paralelo que quando o atributo de senha do usuário no samba é alterado, automaticamente seja alterado o atributo referente a senha no asterisk.
2. Alterar o mapa de variáveis direcionando o atributo de senha do asterisk para o correspondente no samba.

Tecnicamente falando creio que funcione, mas só testando mesmo pra saber. Se poder colaborar de alguma forma, fico a disposição.


renato, tem muita coisa na rede sobre o asterisk, tem algumas referências (as mais relevantes) no final do tutorial. Mais algumas interessantes são:
http://mestreasterisk.com.br/
http://www.dicas-l.com.br/dicas-l/20091213.php
http://www.asteriskonline.com.br
http://www.anderson.com.pt/asterisk-html
http://www.vivaolinux.com.br/artigo/Asterisk-O-PBX-de-codigo-aberto/




[5] Comentário enviado por fabriciorodrigo em 23/06/2010 - 08:33h

Victor, em poucas palavras, o LDAP é um "banco de dados" organizado de forma hierarquica. Tem muita coisa na rede sobre.

[6] Comentário enviado por thyago162 em 09/07/2015 - 10:03h

Otimo tutorial, porém to encontrando um problema. Quando vou cadastrar o usuário no softphone seja Zoipe ou X-litle, no terminal do asterisk está aparecendo "wrong password". Eu vi no arquivo res_ldap.conf que a senha tem que ser em MD5, mesmo gerando o MD5 e colocando a senha ele continua dando este erro. Alguma ideia?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts