-
Problème avec GotoIf <
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 ?
-
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...
-
essaie sans le "", sinon, tu compares des chaines et le résultat est logique
-
Effectivement le problème est souvent tout bête.. Merci beaucoup ça fonctionne !