Linux =>VOIP: Ldap_add: Invalid syntax (21)

Fermé
Bixma Messages postés 4 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 3 août 2012 - 25 juil. 2012 à 01:22
Bixma Messages postés 4 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 3 août 2012 - 26 juil. 2012 à 23:05
Bonjour,
Pour mon projet de fin d'année, je travaille sur l'installation d'un système VOIP]. Et pour cela j'ai mis en place un serveur LDAP et un serveur Asterisk qui communique entre eux. Et pour l'ajout des utilisateurs dans le LDAP, j'ai crée un script mais lorsque je l'exécute cela me fait :

adding new entry " uid=toot, ou=users, ou=asterisk, dc=domain, dc=local"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #2 invalid per syntax

add error.

Et voila mon script adduser.sh :

#!/bin/sh

#######################
# Ajout user LDAP + Asterisk
# #
#######################

#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 "L'adresse mail de $user :"
read mail

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
cat >$ldif <<EOF
dn:uid=$user,ou=users,ou=asterisk,dc=domain,dc=local
objectClass: top
objectClass: inetOrgPerson
objectClass: AsteriskSIPUser
cn: $user
sn: $user
uid: $user
AstAccountContext: internal
AstAccountCallerID: $user <$num>
AstAccountRealmedPassword: $md5pwd
AstAccountQualify: yes
AstAccountNAT: yes
AstAccountType: friend
AstAccountHost: dynamic
AstAccountMailbox: $num@default
AstAccountCanReinvite: yes
AstAccountAllowedCodec: alaw
AstAccountLastQualifyMilliseconds: 500

dn:cn=$num-1,ou=extensions,ou=asterisk,dc=local
objectClass: top
objectClass: inetOrgPerson
objectClass: AsteriskExtension
cn: $num-1
sn: $num-1
AstContext: internal
AstExtension: $num
AstPriority: 1
AstApplication: Answer

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

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

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

EOF

#on injecte le ldif dans le LDAP
echo "Ajout de $user dans asterisk !"
ldapadd -x -D "cn=admin,dc=local" -w isi -f $ldif || {
echo "Add error." 1>&2
exit 1
}

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

#on nettoie
rm $ldif

exit

Si vous avez une idée sur le problème, cela m'aiderai beaucoup. Car je suis à cours de solution.
Merci d'avance.
A voir également:

2 réponses

Bixma Messages postés 4 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 3 août 2012 1
26 juil. 2012 à 01:50
Non, d'après ce que j'ai lu dans des forums cela proviendrait des espaces en trop à la fin.

Pour ma part j'ai réussi à régler se problème en tapant la commande cat -vte adduser.sh , mais je me retrouve avec un autre problème :

ldap_add: No such object (32)
matched DN: dc=local

add error.

Si quelqu'un pourrait m'aider. Merci
1
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
26 juil. 2012 à 11:39
Pour ma part j'ai réussi à régler se problème en tapant la commande cat -vte adduser.sh
Cette commande ne fait que visualiser les caractères non-imprimables à l'écran et ne résout rien en elle même, sauf correction avec un éditeur après avoir vu un caractère non souhaité ;-\
0
Bixma Messages postés 4 Date d'inscription mercredi 25 juillet 2012 Statut Membre Dernière intervention 3 août 2012 1
26 juil. 2012 à 23:05
Oui désolé c'est vrai je me suis mal formulé, je voulais dire qu'elle m'a permis de voir les espaces qui se trouvait en trop et bien sur pas de régler complétement le problème mais sa apporte une certaine aide pour repérer les espaces en trop dans un script.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
25 juil. 2012 à 09:31
Salut,

adding new entry " uid=toot, ou=users, ou=asterisk, dc=domain, dc=local"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #2 invalid per syntax


Sans rien connaître à LDAP, ne serait-ce pas une répétition de valeur qui cause ton erreur ?
0