PDA

Voir la version complète : Annonce temps d'attente file d'attente



Rico
19/11/2010, 10h23
Bonjour à tous,

J'ai un petit soucis avec le language FR et le chiffre "un" / "une".

Dans mes files d'attente, on annonce le temps estimé d'attente. Actuellement ça donne "un minute ...".

Si je modifie le son "un" par le son "une" dans les fichiers sons asterisk, je vais me retrouver, pour les VM, avec un truc genre "vous avez UNE nouveau message".

Donc j'ai fouillé dans la source de app_queue, et j'ai trouvé ceci ligne 3651 :

...
if (holdtime == 1)
{
ast_say_number(peer, holdtime, AST_DIGIT_ANY, peer->language, NULL);
play_file(peer, qe->parent->sound_minute);
}
...

Quelqu'un aurait une idée de comment le modifier ?
Je suis sur asterisk 1.6.1.6.

Cdt

fastm3
19/11/2010, 13h31
Quelqu'un aurait une idée de comment le modifier ?
Je suis sur asterisk 1.6.1.6.

Cdt
Peut etre. ;)


ast_say_number(peer, holdtime, AST_DIGIT_ANY, peer->language, 'f');normalement.

Verifie que les sons digits 1F et "et" sont presents

Fastm3.

ffossard
19/11/2010, 17h11
En cherchant j'ai trouvé un bug dans le fichier app_queue.c de la 1.6.20, mais rien à voir avec le problème :sleep:

edit: bug présent dans la 1.6.1.20 mais corrigé en 1.6.2: fichier queue-minute utilisé dans app_queue mais manquant dans les sounds.

Rico
19/11/2010, 18h13
Verifie que les sons digits 1F et "et" sont presents
Fastm3.

Merci pour cette info, je recompilerai le module lundi

c'est le digit "1F" dont tu parles ou c'est une faute de frappe ?

Rico

Rico
19/11/2010, 18h20
Bon apparement il s'agit bien de "1F", mais je ne l'ai trouvé ni dans le core sounds FR, ni dans le extra sounds FR

Lio
19/11/2010, 18h25
Whaaaa je saisis la balle au bonn, ce topic tomba à pic... tu connaitrais pas un tuto qui explique comment mettre ça en place !?

Un grand merci d'avance,

Lio

ffossard
19/11/2010, 18h46
Whaaaa je saisis la balle au bonn, ce topic tomba à pic... tu connaitrais pas un tuto qui explique comment mettre ça en place !?

Un grand merci d'avance,

Lio

Mettre en place ... quoi ?

ffossard
19/11/2010, 18h47
Bon apparement il s'agit bien de "1F", mais je ne l'ai trouvé ni dans le core sounds FR, ni dans le extra sounds FR

A mon avis on mets ce qu'on veut comme suffixe en dernier paramètre, là François a mis "F" mais on doit pouvoir mettre "tartempion" pour un fichier audio "1tartempion".

edit => raté, voir plus loin dans le sujet :wahoo:

Lio
19/11/2010, 19h13
Mettre en place ... quoi ?

Cette fonction justement : l'annonce du temps d'attente et en français en plus !

ffossard
19/11/2010, 20h06
Je trouve le fichier sample queues.conf bien expliqué, il suffit de lire, regarde les paramètres qui commencent par "announce", tu trouvera en 2 minutes.

(Cette manie de vouloir des tutos :mouais: )

fastm3
19/11/2010, 21h01
A mon avis on mets ce qu'on veut comme suffixe en dernier paramètre, là François a mis "F" mais on doit pouvoir mettre "tartempion" pour un fichier audio "1tartempion".

Perdu :D, pour la version francaise, il faut bien mettre f et le digit necessaire sera 1F et et. C'est a dire qu'il faut un fichier par exemple 1F.gsm et et.gsm ( ou le format desiré ) avec les autres digits. J'ai juste decouvert ca en regardant moi aussi les sources de la branche 1.6.2.

Le f veut dire feminin. 1F doit contenir le mot "une". Je vous laisse chercher pour "et". ;)
A+
Fastm3.

Lio
20/11/2010, 08h55
Je trouve le fichier sample queues.conf bien expliqué, il suffit de lire, regarde les paramètres qui commencent par "announce", tu trouvera en 2 minutes.

(Cette manie de vouloir des tutos :mouais: )

Super merci !!! C'est ce que je voulais savoir, c'est toujours plus simple quand on sait où chercher :)

ffossard
20/11/2010, 18h58
Perdu :D, pour la version francaise, il faut bien mettre f et le digit necessaire sera 1F et et. C'est a dire qu'il faut un fichier par exemple 1F.gsm et et.gsm ( ou le format desiré ) avec les autres digits. J'ai juste decouvert ca en regardant moi aussi les sources de la branche 1.6.2.

Le f veut dire feminin. 1F doit contenir le mot "une". Je vous laisse chercher pour "et". ;)
A+
Fastm3.

Ah étrange de pas avoir mis "FR" :hebe:
Merci pour cette info intéressante :jap:
Sais-tu si il y'a moyen de passer ce paramètre sans modifier la source ?

fastm3
21/11/2010, 01h30
Sais-tu si il y'a moyen de passer ce paramètre sans modifier la source ?
A priori non, en fait c'est bien le module file d'attente qui devrait tenir compte du francais et comme minute est feminin...Ca me parait donc un patch a ajouter systematiquement, me semble t'il sachant qu'il ne perturbera pas si la langue est settée a en. Il faudrait aussi considerer les autres langues qui ont le meme principe.
C'est f comme feminin et non francais, il faut que la langue passée dans le precedent parametre soit fr par contre pour que ce parametre ait un sens et utilité. Tu peux regarder ast_say_number_full_fr dans say.c .
A+
Fastm3.

Rico
22/11/2010, 10h07
Et quelqu'un a t-il le son "1F" du coup ? Je ne le trouve pas

fastm3
22/11/2010, 13h20
Et quelqu'un a t-il le son "1F" du coup ? Je ne le trouve pas
Tu decoupes le son "une" d'un prompt existant ( core ou extra ) et tu le sauves sous 1F, c'est le plus simple me semble t'il pour garder la meme voix que tu utilises.
Fastm3.

Lio
23/11/2010, 14h52
Je trouve le fichier sample queues.conf bien expliqué, il suffit de lire, regarde les paramètres qui commencent par "announce", tu trouvera en 2 minutes.

(Cette manie de vouloir des tutos :mouais: )

Je trouve pas le fichier "sample queues.conf" il est où?
Quand je fais un locate queues.conf je trouve que :
/etc/asterisk/queues.conf
/usr/src/tbm-pbxconfig-5.5.1/amp_conf/astetc/queues.conf

Merci,

++

Lio

Rico
23/11/2010, 15h10
Bon j'ai fait les modifs hier, recompilé et réinstallé le module, mais j'ai toujorus le même probleme. Voici ce que j'ai fait :

J'ai modifié le fichier apps/app_queue.c dans les sources :


#ligne 3651
if (holdtime == 1) {
ast_say_number(peer, holdtime, AST_DIGIT_ANY, peer->language, 'f');
play_file(peer, qe->parent->sound_minute);


j'ai bien le fichier son 1F :


# ls /var/lib/asterisk/sounds/fr/digits/1* -la
...
-rw-r----- 1 asterisk asterisk 3743 sep 14 2009 /var/lib/asterisk/sounds/fr/digits/1.alaw
-rw-r--r-- 1 asterisk asterisk 12582 nov 22 14:00 /var/lib/asterisk/sounds/fr/digits/1F.wav
...



Mais dfans ma CLI j'ai toujours :


[2010-11-23 14:06:21] -- Hold time for fileattente is 1 minute(s) 30 seconds
[2010-11-23 14:06:21] -- <SIP/xxx-b7008320> Playing 'queue-holdtime.alaw' (language 'fr')
[2010-11-23 14:06:23] -- <SIP/xxx-b7008320> Playing 'digits/1.alaw' (language 'fr')
[2010-11-23 14:06:24] -- <SIP/xxx-b7008320> Playing 'queue-minute.alaw' (language 'fr')
[2010-11-23 14:06:25] -- <SIP/xxx-b7008320> Playing 'digits/30.alaw' (language 'fr')
[2010-11-23 14:06:25] -- <SIP/xxx-b7008320> Playing 'queue-seconds.alaw' (language 'fr')


Y'a-t-il quelque chose que j'ai oublié ?
Merci pour votre aide
Rico

fastm3
23/11/2010, 15h14
Tu n'installes pas a partir des sources. Le .sample est dispo apres une install "clean"...;) Recupere les sources a partir de asterisk.org

Tu as aussi la doc developpeur pour naviguer dans les sources.
A toi de choisir la version que tu utilises.
http://www.asterisk.org/developers/documentation

Le queue.conf.sample que tu obtiens du trunk est la:
http://www.asterisk.org/doxygen/trunk/Config_qu.html

Fastm3.

fastm3
23/11/2010, 15h18
Y'a-t-il quelque chose que j'ai oublié ?

Debugguer ?:D
Pas d'autres choix pour creuser. Verifies aussi que ta version du code source prends bien en compte le parametre 'f'. Je ne sais plus sur quelle branche j'ai regardé.
Fastm3.

Rico
23/11/2010, 15h33
Debugguer ?:D
Pas d'autres choix pour creuser. Verifies aussi que ta version du code source prends bien en compte le parametre 'f'. Je ne sais plus sur quelle branche j'ai regardé.
Fastm3.

Dans say.c, il semble bien prendre en compte le 'f' :



if (options && !strncasecmp(options, "f", 1))
mf = -1;
...
....
} else if (num == 1) {
if (mf < 0)
snprintf(fn, sizeof(fn), "digits/%dF", num);
else
snprintf(fn, sizeof(fn), "digits/%d", num);
...


je pige pas là

Rico
23/11/2010, 15h50
Même en activant le débug, il n'y a rien concernant les "ast_say_number"... Y'a t-il un autre moyen de debugger sans trop bidouiller dans le code source ? (cer c'est du C et je ne suis pas une bête en C ...) (et car que le systeme est en prod)

help !

Rico
23/11/2010, 17h17
Warning a la compilation :


# make
Generating input for menuselect ...
menuselect/menuselect --check-deps menuselect.makeopts
Generating embedded module rules ...
[CC] app_queue.c -> app_queue.o

app_queue.c: In function ‘try_calling’:
app_queue.c:3652: warning: passing argument 5 of ‘ast_say_number’ makes pointer from integer without a cast
[LD] app_queue.o -> app_queue.so
+--------- Asterisk Build Complete ---------+
#

ffossard
23/11/2010, 17h35
Et toujours pas de prise en compte du 'f':


Playing 'digits/1.alaw' (language 'fr')


François t'a déjà réussi à le faire lire ce son ?





/*! \brief ast_say_number_full_fr: French syntax */
/* Extra sounds needed:
1F: feminin 'une'
et: 'and' */
static int ast_say_number_full_fr(struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd)
{

fastm3
23/11/2010, 18h06
Et toujours pas de prise en compte du 'f':


Playing 'digits/1.alaw' (language 'fr')
François t'a déjà réussi à le faire lire ce son ?

Non, non, j'ai pas essayé, j'ai juste repondu a la question initiale en regardant le source. D'ailleurs, ca serait meme bien que cette modif soit en standard vu que les params ont ete , semble t'il ,choisis differents par langue.
Je n'utilise pas l'annonce de temps d'attente donc ca ne m'a jamais perturbé.
Ca me semble le plus simple et ca doit marcher d'apres le code. Peut etre le mauvais endroit d'appel qui a ete patché par rico mais je n'ai pas le temps d'aider plus et de debugger pour l'instant. En plus, je n'ai toujours pas recu la cotis de rico...:whistle:
Mais Rico va s'en sortir, j'en suis sur. ;)
Fastm3.

Rico
23/11/2010, 18h16
En plus, je n'ai toujours pas recu la cotis de rico...:whistle:


Ca va venir, désolé du retard mais je suis en plein déménagement en ce moment. J'essaye de faire ça dans la semaine

ffossard
23/11/2010, 18h26
Non, non, j'ai pas essayé, j'ai juste repondu a la question initiale en regardant le source. D'ailleurs, ca serait meme bien que cette modif soit en standard vu que les params ont ete , semble t'il ,choisis differents par langue.
Je n'utilise pas l'annonce de temps d'attente donc ca ne m'a jamais perturbé.
Ca me semble le plus simple et ca doit marcher d'apres le code. Peut etre le mauvais endroit d'appel qui a ete patché par rico mais je n'ai pas le temps d'aider plus et de debugger pour l'instant. En plus, je n'ai toujours pas recu la cotis de rico...:whistle:
Mais Rico va s'en sortir, j'en suis sur. ;)
Fastm3.

Ca n'est pas spécifique au Français, il y'a un bon nombre d'autres langues pour lesquelle c'est le même principe, c'est expliqué dans le say.c, c'est vrai qu'ils pourraient modifier le app_queue pour le faire automatiquement en fonction des spécificités de chaque langue, ça ne me semble pas un travail énorme.

Je suis sur le débogage, j'ai le temps en ce moment :tongue:

Rico
23/11/2010, 19h02
J'ai recompilé avec "f" au lieu de 'f' (quotes), et là... plus de warning !