Linux =>VOIP: Ldap_add: Invalid syntax (21)
Bixma
Messages postés
5
Statut
Membre
-
Bixma Messages postés 5 Statut Membre -
Bixma Messages postés 5 Statut Membre -
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.
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:
- Ldap_add: invalid syntax (21)
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
2 réponses
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
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
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é ;-\