PDA

Voir la version complète : Problème avec GotoIf <



marthi13
04/01/2017, 12h56
Salut,

J'utilise dans mon IVR la ligne suivant : exten => s,n,GotoIf($["${idcc}" < "3290"] ?1,1:2,1)
Elle a pour but de rediriger l'appelant vers 1,1 si ma variable idcc est inférieure a 3290 et vers 2,1 si elle est supérieure.
Néanmoins je viens de m'apercevoir qu'il y a un soucis.
Quand idcc = plus que 1000, c'est bon, quand idcc = de 100 à 300 c'est bon, mais si idcc = 400 à 999, ça va vers 2,1 alors que ça devrait aller vers 1,1...
Pareil de 1 à 32 ça fonctionne, mais de 33 à 99 non..

Je fais cela pour que l'appelant entre la variable :
exten => s,n,agi(googletts.agi,"Please enter your customer ID ?",en,any)
exten => s,n,Read(idcc,"",4,,2)
exten => s,n,NoOp(idcc=${idcc})

Quand j'entre 400 par exemple, idcc est bien = à 400. Mais c'est comme si lors du traitement il ajoutait un 0 pour arriver a 4 chiffres, ce qui donne 4000 et du coup be passe pas dans la bonne boucle..

Une idée pour corriger cela ?

marthi13
04/01/2017, 13h47
Je me dis que je pourrais corriger cela en ajoutant un 0 devant le 400 pour que cela donne 0400 et donc c'est bon.
Il faudrait donc utiliser la fonction If.
Si longueur de idcc = 3 alors idcc = 0${idcc}, si longueur idcc = 2 alors idcc = 00${idcc} et si longueur idcc = 1 alors idcc = 000${idcc}.
Là ça fonctionnerait, mais je ne sais pas vraiment comment utiliser la fonction If, elle est assez mal expliquée sur Voip-info.org...

jean
04/01/2017, 14h44
essaie sans le "", sinon, tu compares des chaines et le résultat est logique

marthi13
04/01/2017, 15h14
Effectivement le problème est souvent tout bête.. Merci beaucoup ça fonctionne !