PDA

Voir la version complète : Voicemail : téléphone dévié vers messagerie



Jacknight
02/10/2011, 19h04
Bonjour,

J'ai un soucis avec la messagerie Asterisk.

J'ai créé dans mon plan d'appel (extension.ael) une extension dédiée à la messagerie.

Du style :

context ael-services_internes {
// Pour laisser un message sur la messagerie
_7ZX => VoiceMail(${EXTEN:1}@messagerie,u);
// Consulter la messagerie. propre de l'abonne. "messagerie" correspond au context dans voicemail.conf
_8ZX => VoicemailMain(${EXTEN:1}@messagerie);
}


Ainsi, lorsque l'utilisateur disposant de l'extension 12 appel le 812, il peut consulter sa messagerie. Et lorsqu'on compose le 712, on peut laisser un message pour l'utilisateur du 12.

Cela fonctionne très bien, (et en français) lorsque je compose les numéros (812 et 712) sur les téléphones.

Tout se complique lorsque je saisi une déviation vers le 712 sur le téléphone de l'utilisateur 12.
Dans ce cas, si j'appelle le 12, asterisk est bien dévié vers le 712.
Le problème c'est que Asterisk me joue les fichiers en anglais alors que l'option "language=fr" est bien définie dans la section générale de sip.conf.

Sur un autre système Asterisk, les symptômes sont pires : je reçois carrément un message d'erreur me disant qu'il ne trouve ni le fichier vm-intro.alaw (dans le cas du 712), ni le fichier vm-password.alaw (dans le cas du 812).


File vm-intro does not exist in any format
Unable to open vm-intro (format 0x8 (alaw): No such file or directory

Je précise bien évidement que tous les sounds files existent dans /var/lib/asterisk/sounds/ , et que asterisk est lancé avec les droits de root.

La seule différence que j'ai pu noter entre le fais de composer directement le 712 ou de le subir en tant que déviation, c'est dans la console au niveau du channel :


Executing [712@ael-national:1] VoiceMail("SIP/Reception","12@messagerie") in new stack


Executing [712@ael-national:1] VoiceMail("Local/712@ael-national","12@messagerie") in new stack

(ael-national correspond à un context dans mon extension.ael.
Reception correspond à un "friend" dans mon sip.conf).

Si qqun a une idée je suis preneur.
Merci de votre aide !

Jacknight
08/10/2011, 18h53
Personne n'a-t-il jamais dévié son téléphone IP vers sa messagerie asterisk ?!

Reaper
09/10/2011, 13h22
Bonjour, peu de personnes utilise ael, c'est pour cette raison que tu as peu de réponses. Ajoute un Noop qui montre la variable language avant de jouer ce message.
Si c'est fr ça doit ce trouver sous /var/lib/asterisk/sounds/fr nous sommes d'accord ?

Jacknight
09/10/2011, 21h41
Bonjour,
Merci de votre réponse.

Oui nous sommes d'accord. Et j'ai bien tous les fichiers *.alaw sounds sous /var/lib/asterisk/sounds/fr/ (je travaille qu'en loi A (alaw) g711)

Ah mince j'ai fais peur avec le AEL, zut.
C'est que c'est quasi la même chose, sauf qu'on peut faire plus de trucs sympa :)

Ok je traduis. Ca donnerait ça la partie de mon dialplan qui nous intéresse :


[ael-services_internes]
; Pour laisser un message sur la messagerie
exten => _7ZX,1,NoOp(Variable LANGUAGE = ${LANGUAGE})
exten => _7ZX,n,VoiceMail(${EXTEN:1}@messagerie,u)

; Consulter la messagerie propre de l'abonne. "messagerie" correspond au context dans voicemail.conf
exten => _8ZX,1,VoicemailMain(${EXTEN:1}@messagerie)


Du coup j'ai rajouté le NoOp avec la variable LANGUAGE.
Le résultat que c'est ça m'affiche une chaîne vide.
C'est bizarre. Pourtant j'ai bien "language=fr" dans la section générale de mon sip.conf.
Faut-il que je modifie la valeur de cette variable manuellement avant l'appel à l'application voicemail ?

Reaper
09/10/2011, 21h55
Peu de gens utilise ael parce que c'est recompilé en dialplan classique après, effectue un set de language=fr juste avant d'envoyer en voicemail.
Test ?

Jacknight
09/10/2011, 22h06
J'ai testé un
Set(LANGUAGE="fr")
J'ai aussi testé un
LANGUAGE="fr"

Les deux fonctionnent et me retourne un "fr" lors du NoOP.
Mais le problème subsiste.

J'ai même refais une recompilation d'Asterisk. Ca ne change rien.
Dés qu'Asterisk passe par une déviation, il ne trouve plus le fichier.
Et aucun moyen de savoir ou il va le cherche ?!

Par contre lorsqu'on compose le 712, par exemple, ça fonctionne très bien et on entend bien le message de la messagerie asterisk (vm-intro.alaw).
décidément je vois plus quoi tester :gratgrat:

fastm3
10/10/2011, 08h44
Essaie deja Set(CHANNEL(language)=fr qui est la bonne methode depuis la 1.4 pour setter le language.
Enfin, dans le dialplan classique, je ne me suis jamais penché sur ael mais ca devrais etre pareil.

Rajoute un playback aprés et examine les logs de la cli en verifiant que lors du playback , il t'indique bien qu'il cherche le message fr.

Fasm3.