Vous êtes ici : Accueil > Administration réseaux > Asterisk + LDAP

Asterisk + LDAP

Dans cet article, nous allons détailler l'installation et la configuration d'un serveur Asterisk couplé à un serveur LDAP. Cette méthode permet au serveur Asterisk de stocker les informations relatives aux utilisateur (SIP dans le cas de cet article) ainsi que le dialplan dans un annuaire LDAP.

Pré-requis :

Avant toute chose, il faut avoir un serveur LDAP fonctionnel. pour ma part mon serveur LDAP est couplé à un Samba et à le rôle d'un PDC (un exemple de configuration est disponible sur le site ici : PDC Samba + LDAP).

La racine de l'annuaire LDAP est dc=domain,dc=local

L'admin de l'annuaire est cn=admin,dc=domain,dc=local

Ce guide a été réalisé sur une Debian Lenny.

Notes :

Dans cet article, je vous montre qu'il est possible de mettre aussi les extensions dans l'annuaire LDAP mais personnellement, je préfère laisser la configuration dans le fichier d'origine (/etc/asterisk/extensions.conf). Je trouve cela plus lisible et en cas de soucis beaucoup plus pratique... C'est donc à vous de voir !

Installation d'Asterisk :

Avant toute chose, il faut récupérer la dernière version d'Asterisk (1.6.2.10 à l'écriture de cet article) disponible ici. Il faut ensuite décompresser l'archive téléchargée :

# tar xvzf asterisk-1.6.2.10.tar.gz

Rendons nous ensuite dans le dossier créé :

# cd asterisk-1.6.2.10

Notes :

La dernière version est à l'heure actuelle la version 1.8.2.1 disponible ici. Il suffit alors dans les deux étapes décrites précédemment de remplacer par le bon numéro de version. La configuration suivante de ne change pas par rapport à l'ancienne version.

Il faut ensuite installer les dépendances requises pour la compilation d'Asterisk :

# apt-get install gcc g++ make libncurses5-dev

Nous allons ensuite compiler asterisk :

Préparation à la compilation :

# ./configure

Ajout du module LDAP pour Asterisk et téléchargements des voix françaises :

# make menuconfig

Compilation :

# make

Installation :

# make install

Installation des exemples de fichiers de configuration :

# make sample

Configuration d'Asterisk :

Schéma LDAP :

Avant toute chose, nous allons indiquer à notre LDAP les variables à prendre en compte pour Asterisk. Ceci se passe dans un schéma disponible ici. Copier l'ensemble de ce fichier dans le fichier asterisk.schema que vous placerez dans le répertoire /etc/ldap/schema.

Il faut ensuite indiquer à LDAP de prendre en compte ce schéma. Pour cela, il faut modifier le fichier de configuration /etc/ldap/slapd.conf comme ceci :

include         /etc/ldap/schema/asterisk.schema

Pour que cette modification soit prises en compte, il faut relancer le serveur LDAP :

# /etc/init.d/slapd restart

Configuration de l'annuaire LDAP :

Afin de stocker les paramètres des comptes SIP de l'Asterisk, il faut que nous ayons un endroit ou les stockés. Nous pouvons les stocker à l'endroit ou le PDC Samba + LDAP stocke les utilisateurs mais pour ma part, j'ai décidé de séparer ces deux informations par soucis de lisibilité. J'ai donc choisi de créer une OU (Organizational Unit) dédiée à Asterisk. J'ai donc créer une OU Asterisk et avec deux "sous-OU" users et extensions. Vous pouvez ajouter cette configuration comme cela :

tout d'abord créez un fichier LDIF contenant ceci :

#OU asterisk
dn: ou=asterisk,dc=domain,dc=local
objectClass: top
objectClass: organizationalUnit
ou: asterisk

# OU users
dn: ou=users,ou=asterisk,dc=domain,dc=local
objectClass: top
objectClass: organizationalUnit
ou: users

# OU extensions
dn: ou=extensions,ou=asterisk,dc=domain,dc=local
objectClass: top
objectClass: organizationalUnit
ou: extensions

Il faut ensuite ajouter ce fichier LDIF à notre arborescence LDAP, pour cela il faut utiliser la commande ldapadd :

# ldapadd -x -D "cn=admin,dc=domain,dc=local" -W -f chemindevotreldif
  • -x : permet d'utiliser une authentification simple (en opposition à l'authentiification SASL)
  • -D : permet de se connecter avec l'utilisateur indiqué (ici cn=admin,dc=domain,dc=local)
  • -W : permet de ne pas rentrer le mot de passe de l'admin LDAP dans la commande
  • -f : permet de spécifier un fichier LDIF à ajouter à l'annuaire LDAP

Connexion au serveur LDAP :

La configuration de la connexion entre le serveur Asterisk et le serveur LDAP se déroule dans le fichier /etc/asterisk/res_ldap.conf. La configuration se déroule en plusieurs parties. Tout d'abord, il y a une partie générale qui contient les paramètres de connexions au serveur LDAP puis vient la partie contenant les paramètres des utilisateurs SIP stockés dans l'annuaire LDAP :

[_general]
host=127.0.0.1
port=389
protocol=3
basedn=ou=asterisk,dc=domain,dc=local
pass=votremotdepasseadminLDAP
user=cn=admin,dc=domain,dc=local

[sip]
name = uid
callerid = AstAccountCallerID
canreinvite = AstAccountCanReinvite
context = AstAccountContext
host = AstAccountHost
type = AstAccountType
mailbox = AstAccountMailbox
md5secret = AstAccountRealmedPassword
fullcontact = AstAccountFullContact
nat = AstAccountNAT
qualify = AstAccountQualify
allow = AstAccountAllowedCodec
useragent = AstAccountUserAgent
lastms = AstAccountLastQualifyMilliseconds
additionalFilter=(objectClass=AsteriskSIPUser)

[extensions]
context  =  AstContext
exten  =  AstExtension
priority = AstPriority
app = AstApplication
appdata = AstApplicationData
additionalFilter=(objectClass=AsteriskExtension)

Comme vous pouvez le voir la section [sip] permet de faire la translation entre les variables Asterisk et les variables LDAP afin que les deux serveur puissent se "comprendre". Il en est de même pour la partie [extensions].

Une fois que nous avons définit la connexion entre le serveur Asterisk et le serveur LDAP, il faut dire à Asterisk où il doit aller chercher les paramètres des utilisateurs SIP. Pour cela, il faut modifier le fichier /etc/asterisk/extconfig.conf comme ceci :

sipusers => ldap,"ou=users,ou=asterisk,dc=domain,dc=local",sip
sippeers => ldap,"ou=users,ou=asterisk,dc=domain,dc=local",sip
extensions => ldap,"ou=extensions,ou=asterisk,dc=domain,dc=local",extensions

Configuration générale des comptes SIP :

La configuration générale des comptes SIP se passe comme lors d'une configuration normale, c'est à dire dans le fichier /etc/asterisk/sip.conf :

[general]
rtcachefriends=yes
callevents=yes
realm=domain.local
ATTENTION : cette configuration ne prend en compte que l'utilisation d'un LDAP pour l'authentification des utilisateur SIP. Si vous utilisez déjà un Asterisk, veuillez rajouter ces paramètres sans écraser les anciens contenus dans votre fichier.
  • rtcachefriends=yes   //permet de mettre en cache les infos des utilisateurs (obligatoire car elle permet de garder en mémoire l'adresse IP avec laquelle l'utilisateur s'est connecté. Sans ce paramètre l'appel n'aboutira pas car l'Asterisk ne saura pas trouver les utilisateurs.
  • callevents=yes         //permet de remonter les informations concernant un appel
  • realm=domain.local     //nom de domaine géré par l'annuaire LDAP

Configuration générale du dialplan :

La configuration générale du diaplan s'effectue dans le fichier /etc/asterisk/extensions.conf. Il faut rajouter cette ligne à au context concerné (ici internal) pour qu'il aille chercher ses informations dans l'annuaire LDAP :

[internal] switch => Realtime/@

Vérification de la connexion au LDAP :

Avant toute chose, il faut recharger la configuration afin que les modifications que l'on a apporté soient prises en compte. Pour cela, il faut se connecter au CLI d'Asterisk :

# asterisk -vvvvvvvvvvvvvvvvvvvvvr

Mettre plusieurs v dans la commande permet d'augmenter le niveau de debug.

Normalement, vous devriez voir apparaître ces lignes dans le CLI :

== Parsing '/etc/asterisk/asterisk.conf':   == Found
== Parsing '/etc/asterisk/extconfig.conf':   == Found
== Binding sipusers to ldap/ou=users,ou=asterisk,dc=domain,dc=local/sip
== Binding sippeers to ldap/ou=users,ou=asterisk,dc=domain,dc=local/sip
== Binding extensions to ldap/ou=extensions,ou=asterisk,dc=domain,dc=local/extensions

Il faut ensuite taper les commandes suivantes dans le CLI:

srv-ced*CLI> module reload

Cette commande permet de recharger tous les modules qu'Asterisk à charger notamment le module LDAP.

Puis nous rechargeons le fichier sip.conf :

srv-ced*CLI> sip reload

Nous rechargeons ensuite le fichier extensions.conf:

srv-ced*CLI> dialplan reload

La commande realtime show ldap status permet de connaître l'état de la connexion entre le serveur Asterisk et le serveur LDAP.

srv-ced*CLI> realtime show ldap status
Connected to 'ldap://127.0.0.1:389', baseDN ou=asterisk,dc=domain,dc=local with username cn=admin,dc=domain,dc=local for 3 days, 16 hours, 2 minutes, 54 seconds.

Ajout des utilisateurs :

Maintenant que nos deux serveurs communiquent correctement ensemble, nous pouvons ajouter les utilisateurs dans notre annuaire LDAP. Cette opération peut vite être fastidieuse donc je me suis fait un petit script qui fait tout (ou presque pour moi) 🙂 . Le voici :

#!/bin/sh

#######################
#  Ajout user LDAP + Asterisk     #
#                                                        #
#    ced-info.com 10/08/2010     #
#######################

#Ajout de l'user dans Asterisk
#création du fichier temp pour le ldif
mkdir -p ~/tmp
touch ~/tmp/user.ldif
ldif=~/tmp/user.ldif

#Ajout de l'user
echo "Entrez le nom du nouvel utilisateur :"
read user

echo "Quel numéro voulez vous attribuer pour $user ?"
read num

echo "Mot de passe Asterisk pour $user :"
#on désactive l'affichage pour ne pas voir le mot de passe
stty -echo
read pass

#on réactive l'affichage
stty echo
echo ""

#on crypte le mot de passe en md5
md5pwd=`echo -n "$user:domain.local:$pass" | md5sum | cut -c1-32`

#On génère le ldif pour le user
echo "dn:uid=$user,ou=users,ou=asterisk,dc=domain,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskSIPUser">>$ldif
echo "cn: $user">>$ldif
echo "sn: $user">>$ldif
echo "uid: $user">>$ldif
echo "AstAccountContext: internal">>$ldif
echo "AstAccountCallerID: $user <$num>">>$ldif
echo "AstAccountRealmedPassword: $md5pwd">>$ldif
echo "AstAccountQualify: yes">>$ldif
echo "AstAccountNAT: yes">>$ldif
echo "AstAccountType: friend">>$ldif
echo "AstAccountHost: dynamic">>$ldif
echo "AstAccountMailbox: $num@default">>$ldif
echo "AstAccountCanReinvite: yes">>$ldif
echo "AstAccountAllowedCodec: alaw">>$ldif
echo "AstAccountLastQualifyMilliseconds: 500">>$ldif

#on génére le ldif pour le dialplan
echo "dn:cn=$num-1,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-1">>$ldif
echo "sn: $num-1">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 1">>$ldif
echo "AstApplication: Answer">>$ldif
echo "">>$ldif

echo "dn:cn=$num-2,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-2">>$ldif
echo "sn: $num-2">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 2">>$ldif
echo "AstApplication: Dial">>$ldif
echo "AstApplicationData: SIP/$user">>$ldif
echo "">>$ldif

echo "dn:cn=$num-3,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-3">>$ldif
echo "sn: $num-3">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 3">>$ldif
echo "AstApplication: Voicemail">>$ldif
echo "AstApplicationData: $num@default">>$ldif
echo "">>$ldif

echo "dn:cn=$num-4,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-4">>$ldif
echo "sn: $num-4">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 4">>$ldif
echo "AstApplication: Hangup">>$ldif

#on injecte le ldif dans le LDAP
echo "Ajout de $user dans asterisk !"
ldapadd -x -D "cn=admin,dc=domain,dc=local" -W -f $ldif

#ajout de la boite vocale dans voicemail.conf
voicemail=/etc/asterisk/voicemail.conf
echo "$num => $num,$user">>$voicemail

#on nettoie
rm $ldif

exit

Copiez l'intégralité de ce script dans un fichier (par exemple adduser.sh).

Rendez le fichier exécutable :

# chmod +x adduser.sh

Vous pouvez maintenant exécuter ce script et vous laisser guider 🙂

# ./adduser.sh

Test de la configuration :

Nous allons maintenant créer un utilisateur test. Lancez le script et répondez aux questions :

  • nom de l'utilisateur : test
  • numéro de l'utilisateur : 1000
  • mot de passe : test

Une fois l'utilisateur créé, prenez votre softphone préféré (pour ma part j'ai utilisé twinkle sous ubuntu car il permet de gérer deux lignes : cela m'évite de créer plusieurs utilisateurs test) et paramétré le pour qu'il puisse se connecter à votre serveur Asterisk. Pour le mot passe, même si dans le script, il prend la forme (utilisateur:domain.local:motdepasse), c'est toujours celui que vous avez rentrez dans le script à savoir test !

Vérifiez dans le CLI que votre utilisateur s'enregistre bien :

srv-ced*CLI>
    -- Registered SIP 'test' at 192.168.1.10 port 5060
       > Saved useragent "Twinkle/1.4.2" for peer test

Nous voyons que le client s'enregistre bien. Passons maintenant à l'appel :

srv-ced*CLI>
  == Using SIP RTP CoS mark 5
    -- Executing Answer("SIP/test-00000053", "")
    -- Executing Dial("SIP/test-00000053", "SIP/test")
  == Using SIP RTP CoS mark 5
    -- Called test
    -- SIP/test-00000054 is ringing
    -- SIP/test-00000056 answered SIP/test-00000055

Nous voyons que l'appel s'effectue correctement et que le correspondant décroche bien.

Notre configuration Asterisk + LDAP est désormais fonctionnelle. J'espère que cet article vous aura été utile et n'hésitez pas à laisser vos remarques :)!

ATTENTION : cette configuration ne prend en compte que l'utilisation d'un LDAP pour l'authentification des utilisateur SIP. Si vous utilisez déjà un Asterisk, veuillez rajouter ces paramètres sans écraser les anciens contenus dans votre fichier.

  • rtcachefriends=yes   //permet de mettre en cache les infos des utilisateurs (obligatoire car elle permet de garder en mémoire l'adresse IP avec laquelle l'utilisateur s'est connecté. Sans ce paramètre l'appel n'aboutira pas car l'Asterisk ne saura pas trouver les utilisateurs.
  • callevents=yes         //permet de remonter les informations concernant un appel
  • realm=127.0.0.1     //adresse IP de l'annuaire LDAP

Configuration générale du dialplan :

La configuration générale du diaplan s'effectue dans le fichier /etc/asterisk/extensions.conf. Il faut rajouter cette ligne à au context concerné (ici internal) pour qu'il aille chercher ses informations dans l'annuaire LDAP :

[internal]
switch => Realtime/@

Vérification de la connexion au LDAP :

Avant toute chose, il faut recharger la configuration afin que les modifications que l'on a apporté soient prises en compte. Pour cela, il faut se connecter au CLI d'Asterisk :

# asterisk -vvvvvvvvvvvvvvvvvvvvvr

Mettre plusieurs v dans la commande permet d'augmenter le niveau de debug.

Normalement, vous devriez voir apparaître ces lignes dans le CLI :

== Parsing '/etc/asterisk/asterisk.conf':   == Found
== Parsing '/etc/asterisk/extconfig.conf':   == Found
== Binding sipusers to ldap/ou=users,ou=asterisk,dc=domain,dc=local/sip
== Binding sippeers to ldap/ou=users,ou=asterisk,dc=domain,dc=local/sip
== Binding extensions to ldap/ou=extensions,ou=asterisk,dc=domain,dc=local/extensions

 

 

Il faut ensuite taper les commandes suivantes dans le CLI:

srv-ced*CLI> module reload

Cette commande permet de recharger tous les modules qu'Asterisk à charger notamment le module LDAP.

Puis nous rechargeons le fichier sip.conf :

srv-ced*CLI> sip reload

Nous rechargeons ensuite le fichier extensions.conf:

srv-ced*CLI> dialplan reload

La commande realtime show ldap status permet de connaître l'état de la connexion entre le serveur Asterisk et le serveur LDAP.

srv-ced*CLI> realtime show ldap status
Connected to 'ldap://127.0.0.1:389', baseDN ou=asterisk,dc=domain,dc=local with username cn=admin,dc=domain,dc=local for 3 days, 16 hours, 2 minutes, 54 seconds.

Ajout des utilisateurs :

Maintenant que nos deux serveurs communiquent correctement ensemble, nous pouvons ajouter les utilisateurs dans notre annuaire LDAP. Cette opération peut vite être fastidieuse donc je me suis fait un petit script qui fait tout (ou presque pour moi) 🙂 . Le voici :

#!/bin/sh

#######################
#  Ajout user LDAP + Asterisk     #
#                                                        #
#    ced-info.com 10/08/2010     #
#######################

#Ajout de l'user dans Asterisk
#création du fichier temp pour le ldif
mkdir -p ~/tmp
touch ~/tmp/user.ldif
ldif=~/tmp/user.ldif

#Ajout de l'user
echo "Entrez le nom du nouvel utilisateur :"
read user

echo "Quel numéro voulez vous attribuer pour $user ?"
read num

echo "Mot de passe Asterisk pour $user :"
#on désactive l'affichage pour ne pas voir le mot de passe
stty -echo
read pass

#on réactive l'affichage
stty echo
echo ""

#on crypte le mot de passe en md5
md5pwd=`echo -n "$user:domain.local:$pass" | md5sum | cut -c1-32`

#On génère le ldif pour le user
echo "dn:uid=$user,ou=users,ou=asterisk,dc=domain,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskSIPUser">>$ldif
echo "cn: $user">>$ldif
echo "sn: $user">>$ldif
echo "uid: $user">>$ldif
echo "AstAccountContext: internal">>$ldif
echo "AstAccountCallerID: $user <$num>">>$ldif
echo "AstAccountRealmedPassword: $md5pwd">>$ldif
echo "AstAccountQualify: yes">>$ldif
echo "AstAccountNAT: yes">>$ldif
echo "AstAccountType: friend">>$ldif
echo "AstAccountHost: dynamic">>$ldif
echo "AstAccountMailbox: $num@default">>$ldif
echo "AstAccountCanReinvite: yes">>$ldif
echo "AstAccountAllowedCodec: alaw">>$ldif
echo "AstAccountLastQualifyMilliseconds: 500">>$ldif

#on génére le ldif pour le dialplan
echo "dn:cn=$num-1,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-1">>$ldif
echo "sn: $num-1">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 1">>$ldif
echo "AstApplication: Answer">>$ldif
echo "">>$ldif

echo "dn:cn=$num-2,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-2">>$ldif
echo "sn: $num-2">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 2">>$ldif
echo "AstApplication: Dial">>$ldif
echo "AstApplicationData: SIP/$user">>$ldif
echo "">>$ldif

echo "dn:cn=$num-3,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-3">>$ldif
echo "sn: $num-3">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 3">>$ldif
echo "AstApplication: Voicemail">>$ldif
echo "AstApplicationData: $num@default">>$ldif
echo "">>$ldif

echo "dn:cn=$num-4,ou=extensions,ou=asterisk,dc=ced-info,dc=local">>$ldif
echo "objectClass: top">>$ldif
echo "objectClass: inetOrgPerson">>$ldif
echo "objectClass: AsteriskExtension">>$ldif
echo "cn: $num-4">>$ldif
echo "sn: $num-4">>$ldif
echo "AstContext: internal">>$ldif
echo "AstExtension: $num">>$ldif
echo "AstPriority: 4">>$ldif
echo "AstApplication: Hangup">>$ldif

#on injecte le ldif dans le LDAP
echo "Ajout de $user dans asterisk !"
ldapadd -x -D "cn=admin,dc=domain,dc=local" -W -f $ldif

#ajout de la boite vocale dans voicemail.conf
voicemail=/etc/asterisk/voicemail.conf
echo "$num => $num,$user">>$voicemail

#on nettoie
rm $ldif

exit

Copiez l'intégralité de ce script dans un fichier (par exemple adduser.sh).

Rendez le fichier exécutable :

# chmod +x adduser.sh

Vous pouvez maintenant exécuter ce script et vous laisser guider 🙂

# ./adduser.sh

Test de la configuration :

Nous allons maintenant créer un utilisateur test. Lancez le script et répondez aux questions :

  • nom de l'utilisateur : test
  • numéro de l'utilisateur : 1000
  • mot de passe : test

Une fois l'utilisateur créé, prenez votre softphone préféré (pour ma part j'ai utilisé twinkle sous ubuntu car il permet de gérer deux lignes : cela m'évite de créer plusieurs utilisateurs test) et paramétré le pour qu'il puisse se connecter à votre serveur Asterisk. Pour le mot passe, même si dans le script, il prend la forme (utilisateur:domain.local:motdepasse), c'est toujours celui que vous avez rentrez dans le script à savoir test !

Vérifiez dans le CLI que votre utilisateur s'enregistre bien :

srv-ced*CLI>
    -- Registered SIP 'test' at 192.168.1.10 port 5060
       > Saved useragent "Twinkle/1.4.2" for peer test

Nous voyons que le client s'enregistre bien. Passons maintenant à l'appel :

srv-ced*CLI>
  == Using SIP RTP CoS mark 5
    -- Executing Answer("SIP/test-00000053", "")
    -- Executing Dial("SIP/test-00000053", "SIP/test")
  == Using SIP RTP CoS mark 5
    -- Called test
    -- SIP/test-00000054 is ringing
    -- SIP/test-00000056 answered SIP/test-00000055

Nous voyons que l'appel s'effectue correctement et que le correspondant décroche bien.

Notre configuration Asterisk + LDAP est désormais fonctionnelle. J'espère que cet article vous aura été utile et n'hésitez pas à laisser vos remarques :)!

  • ulrish

    Bonjourr , je configure un serveur asterisk et je voudrais utiliser LDAP pour la gestion de l'annuaire, j'ai donc utiliser votre tutoriel, mais je tiens à rappeler que sldap.conf est absent dans le dossier etc/ldap, nous l'avons crée. Le problème ce situe au niveau du redémarage de asterisk par la comande asterisk -vvvvvvvvvvvvvvvvvvvr voilà le resultat que j'obtiens:
    == Parsing '/etc/asterisk/asterisk.conf': == Found
    == Parsing '/etc/asterisk/extconfig.conf': == Found
    parse error: No category context for line 1 of /etc/asterisk/extconfig.conf
    Connected to Asterisk 1.8.4.4~dfsg-2ubuntu1.1 currently running on ireti-Aspire-5733 (pid = 934)
    Verbosity is at least 42

    Là je comprend pas trop et je sais pas si quelqu'un peut apporter une solution à mon problème.
    Merci de me repondre

  • carl

    J'ai comme projet de réaliser des appels par annuaires il m'a été dit que ldap+ asterisk me permettrait de le faire j'ai donc chercher un tuto pour m'aider, mais là je me demande ci le votre me permettrait d'arriver à mes fins? ie pouvoir faire des appels par repertoire?
    Merci pour votre aide

  • chaddly

    je te remercie pour ton tutoriel,on le suivant j'ai pu etablir la connexion entre mon serveur asterisk et ldap,cependant je ne parviens pas a authentifier les utilisateurs via le softphone

    pouvez vs m'aider
    merci

  • ced

    Quel softphone utilisez vous?

  • chaddly

    j'utilise xlite comme softphone

  • chaddly

    salut !!
    avant ,en utlisant le script permettant d'ajouter un utilisateur ,le dialplan... ne marchait pas et j'avais l'erreur suivante:

    dapadd: attributeDescription "dn": (possible missing newline after line 23, entry "uid=client,ou=users,ou=asterisk,dc=domain,dc=local"?)
    adding new entry "uid=client,ou=users,ou=asterisk,dc=domain,dc=local"
    ldap_add: Type or value exists (20)
    additional info: objectClass: value #0 provided more than once

    en supprimant la partie du dialplan et en laissant uniquement la partie d'ajout de l'utilisateur ,l'ajout de 'utilisateur ds ldap marche correctement.
    cependant l'authentification de l'utilisateur via le softphone ne marche pas

    aider moi s'il vs plait

  • chaddly

    salut !!
    avant en utilisant le script j'avais l'erreur suivante:
    ldapadd: attributeDescription "dn": (possible missing newline after line 23, entry "uid=client,ou=users,ou=asterisk,dc=domain,dc=local"?)
    adding new entry "uid=client,ou=users,ou=asterisk,dc=domain,dc=local"
    ldap_add: Type or value exists (20)
    additional info: objectClass: value #0 provided more than once

    en supprimant la partie du dialplan,et en laissant uniquement la partie de l'ajout de l'utilisateur ,l'ajout des ces derniers dans ldap marche tres bien .
    cependant l'authentification des utilisateurs depuis le softphone ne marche pas

    aidez moi s'il vous plait

    • cedinfo

      Quelles erreurs avez vous dans les logs d'asterisk lors de l'essai d'authentification de xlite ?

      • chaddly

        j'ai l'erreur suivante ls log :
        [Mar 7 18:21:47] NOTICE[1901] chan_sip.c: Registration from '"client"' failed for '192.168.2.51:1406' - Username/auth name mismatch

        • chaddly

          j'utilise centos 6.5
          pour le schema ,j'ai utilisé le schema contenant ds le repertoire /contrid/script et nn le tien ,est c k cela peut poser probleme?

          • chaddly

            en plus ,j'ai pas le fichier slapd.conf

          • ced

            C'est normal dans les nouvelles version d' OpenLDAP tout se passe dans les fichiers DIT. Ce qui permet de faire des modifications à chaud sans devoir forcément redémarrer le serveur OpenLDAP.
            L'article n'est donc plus à jour mais le principe de la connexion OpenLDAP/Asterisk est là, je le mettrais à jour dès que j'aurais fini la nouvelle version du site.

          • ced

            Je ne connais pas trop CentOS. L'article a été rédigé pour Debian et j'avais besoin de rajouter le schéma pour Ldap car il n'y était pas par défaut

        • ced

          Le message d'erreur indique une erreur dans le couple identifiant / mot de passe. Êtes-sûr que le mot de passe est bon?

          • chaddly

            salut !! j'ai reussi a resoudre mon probleme,cependant il m reste le dialplan .
            dans mon fichier extensions.conf j'ai pas le context internal . est c k g dois le creer manuellement ou bien choisir un autre context?

          • ced

            tout dépend du nom du contexte déclaré pour les utilisateurs. Mais oui si le contexte n'est pas défini dans le LDAP, il faut le mettre dans le fichier extensions.conf

  • Pingback: Walidaitmoummad | Pearltrees()