SVI - Appel d'extensions et par choix (1,2,3...)

Bonjour,

Je cherche à configurer un SVI dans lequel je puisse appeler un numéro d’extension via son numéro interne directement mais en conservant la possibilité de faire un choix (1,2,3…),

Exemple (j’essai d’être le plus clair et directe possible) :

=> Appel externe
=> SVI (Message Bienvenue + Choix extension si N° interne connu par l’appelant ou choix 2 pour un service en particulier, redirigé sur un groupe)
=> Mauvais choix/Pas de choix : Redirigé vers un groupe

J’ai déjà fait ça pour les appels vers les extensions :

;##### CHOICE : Extensions #####

exten => s,n,Read(Digits)
exten => s,n,Goto({Digits},1) exten => _XXX,2,Dial(Local/{Digits}@default)
exten => s,n,GotoIf(${Digits})
same = n,NoOp(waiting for DTMF during 5s)
same = n,Waitexten(5)

Par contre, je ne sais pas comment comparer mon “Digits” avec les extensions existantes afin de le renvoyer ou non, soit vers l’extension (si existante) soit vers le groupe (inexistante).

Merci ! :slight_smile:

Tu pourrais essayer avec la fonction DIALPLAN_EXISTS par exemple. Je t’invite à faire dans la CLI d’Asterisk :
core show functions
core show applications

Merci pour la réponse :slight_smile:

J’ai suivi la piste du DIALPLAN_EXISTS ce matin :

;##### Choix Extension #####

exten => s,n,NoOp(#### READ DIGITS #####)
exten => s,n,Read(Digits)

exten => s,n,NoOp(#### CHECK DIGITS = EXTENSIONS ####)
exten => s,n,GotoIf(["DIALPLAN_EXISTS(default,{Digits},1)" = “1” ]?calldigits:callgroup)
;Si "Digits est dans le dialplan ( =1) on va à “calldigits”, sinon à "callgroup"
|
;Par contre ici, quand je compose un numéro existant ou non, je suis toujours sur le "callgroup"
;J’ai modifié plusieurs fois la fonction, mais sans succès :frowning:
;Suivant la config, j’arrive soit à suivre le “calldigits” uniquement, soit le “callgroup” uniquement comme si la condition du “GotoIf” ne changeait jamais d’état…

exten => s,n,NoOp(#### CALL EXTENSION/GROUP ####)
exten => s,calldigits,Dial(Local/${Digits}@default)
exten => s,callgroup,Dial(Local/301@default)

Je continue mes recherches/tests :slight_smile:

Hello @Loic_S
je cherche à faire la même chose.
as tu finalement reussi ?

hello,
Je penses que tu n’utilises pas correctement la fonction DIALPLAN_EXISTS.

Tu peux peut-être tester quelque-chose comme ça :

exten => s,n,GotoIf([${DIALPLAN_EXISTS(default,${Digits},1)} = "1" ]?calldigits:callgroup)

Si cela ne marche pas utilise l’application NoOp() pour voir ce que retourne : DIALPLAN_EXISTS(default,${Digits},1)